diff --git a/.circleci/config.yml b/.circleci/config.yml index f3d00641a0510..f0132e9a2e4db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,6 @@ executors: parameters: image: type: string - # First 10.x LTS release, but old Yarn default: "14.17.0" docker: - image: cimg/node:<< parameters.image >> @@ -86,7 +85,7 @@ aliases: command: yarn jest --ci --runInBand $(yarn -s jest --listTests | sed 's/\/home\/circleci\/project\///g' | circleci tests split) environment: NODE_OPTIONS: --max-old-space-size=2048 - GENERATE_JEST_REPORT: true + GENERATE_JEST_REPORT: "true" JEST_JUNIT_OUTPUT_DIR: ./test-results/jest-node/ JEST_JUNIT_OUTPUT_NAME: results.xml - store_test_results: @@ -145,7 +144,7 @@ commands: condition: << parameters.condition >> steps: - slack/status: - channel: eng-react-integration-status + channel: eng-react-integration-status e2e-test: parameters: @@ -244,7 +243,8 @@ jobs: <<: *test_template integration_tests_gatsby_source_wordpress: - machine: true + machine: + image: "ubuntu-2004:202107-02" steps: - run: command: | @@ -253,7 +253,7 @@ jobs: - run: nvm install v14 - run: nvm alias default v14 - run: nvm use v14 - - run: npm i -g yarn@1.22.10 + - run: npm i -g yarn@1.22.11 - e2e-test: test_path: integration-tests/gatsby-source-wordpress @@ -551,7 +551,7 @@ jobs: command: yarn jest --ci --runInBand ((yarn jest --listTests) | Foreach-Object {$_ -replace '.*\\packages', 'packages'} | Foreach-Object {$_ -replace '\\', '/'} | circleci tests split --split-by=timings) environment: NODE_OPTIONS: --max-old-space-size=2048 - GENERATE_JEST_REPORT: true + GENERATE_JEST_REPORT: "true" JEST_JUNIT_OUTPUT_DIR: ./test-results/jest-node/ JEST_JUNIT_OUTPUT_NAME: results.xml - store_test_results: diff --git a/packages/gatsby-admin/.eslintignore b/deprecated-packages/gatsby-admin/.eslintignore similarity index 100% rename from packages/gatsby-admin/.eslintignore rename to deprecated-packages/gatsby-admin/.eslintignore diff --git a/packages/gatsby-admin/CHANGELOG.md b/deprecated-packages/gatsby-admin/CHANGELOG.md similarity index 100% rename from packages/gatsby-admin/CHANGELOG.md rename to deprecated-packages/gatsby-admin/CHANGELOG.md diff --git a/packages/gatsby-admin/README.md b/deprecated-packages/gatsby-admin/README.md similarity index 100% rename from packages/gatsby-admin/README.md rename to deprecated-packages/gatsby-admin/README.md diff --git a/deprecated-packages/gatsby-admin/gatsby-browser.js b/deprecated-packages/gatsby-admin/gatsby-browser.js new file mode 100644 index 0000000000000..7e9cc7191acbf --- /dev/null +++ b/deprecated-packages/gatsby-admin/gatsby-browser.js @@ -0,0 +1,6 @@ +import React from "react" +import Layout from "./src/components/layout" + +export const wrapPageElement = ({ element, props }) => ( + {element} +) diff --git a/packages/gatsby-admin/gatsby-config.js b/deprecated-packages/gatsby-admin/gatsby-config.js similarity index 65% rename from packages/gatsby-admin/gatsby-config.js rename to deprecated-packages/gatsby-admin/gatsby-config.js index 0ad8b00f1ad26..e1d8e2c5de317 100644 --- a/packages/gatsby-admin/gatsby-config.js +++ b/deprecated-packages/gatsby-admin/gatsby-config.js @@ -1,8 +1,8 @@ module.exports = { plugins: [ - "gatsby-plugin-react-helmet", + `gatsby-plugin-react-helmet`, { - resolve: "gatsby-plugin-webfonts", + resolve: `gatsby-plugin-webfonts`, options: { fonts: { google: [ @@ -15,9 +15,9 @@ module.exports = { }, }, { - resolve: "gatsby-plugin-create-client-paths", + resolve: `gatsby-plugin-create-client-paths`, options: { - prefixes: ["/plugins/*"], + prefixes: [`/plugins/*`], }, }, ], diff --git a/deprecated-packages/gatsby-admin/gatsby-node.js b/deprecated-packages/gatsby-admin/gatsby-node.js new file mode 100644 index 0000000000000..e2a782db29163 --- /dev/null +++ b/deprecated-packages/gatsby-admin/gatsby-node.js @@ -0,0 +1,9 @@ +exports.onCreateWebpackConfig = ({ actions }) => { + actions.setWebpackConfig({ + resolve: { + alias: { + path: require.resolve(`path-browserify`), + }, + }, + }) +} diff --git a/packages/gatsby-admin/gatsby-ssr.js b/deprecated-packages/gatsby-admin/gatsby-ssr.js similarity index 100% rename from packages/gatsby-admin/gatsby-ssr.js rename to deprecated-packages/gatsby-admin/gatsby-ssr.js diff --git a/deprecated-packages/gatsby-admin/index.js b/deprecated-packages/gatsby-admin/index.js new file mode 100644 index 0000000000000..a734edb089513 --- /dev/null +++ b/deprecated-packages/gatsby-admin/index.js @@ -0,0 +1 @@ +// NOOP diff --git a/packages/gatsby-admin/package.json b/deprecated-packages/gatsby-admin/package.json similarity index 95% rename from packages/gatsby-admin/package.json rename to deprecated-packages/gatsby-admin/package.json index 96551cc9c3c03..4488bb1e49920 100644 --- a/packages/gatsby-admin/package.json +++ b/deprecated-packages/gatsby-admin/package.json @@ -25,8 +25,8 @@ "@feedback-fish/react": "^1.2.1", "@types/react-instantsearch-dom": "^5.2.6", "@types/socket.io-client": "^1.4.36", - "@typescript-eslint/eslint-plugin": "^4.29.3", - "@typescript-eslint/parser": "^4.29.3", + "@typescript-eslint/eslint-plugin": "^4.30.0", + "@typescript-eslint/parser": "^4.30.0", "csstype": "^2.6.17", "formik": "^2.2.9", "gatsby": "^4.0.0-zz-next.1", diff --git a/packages/gatsby-admin/src/bolt.svg b/deprecated-packages/gatsby-admin/src/bolt.svg similarity index 100% rename from packages/gatsby-admin/src/bolt.svg rename to deprecated-packages/gatsby-admin/src/bolt.svg diff --git a/packages/gatsby-admin/src/components/error-tracker.tsx b/deprecated-packages/gatsby-admin/src/components/error-tracker.tsx similarity index 100% rename from packages/gatsby-admin/src/components/error-tracker.tsx rename to deprecated-packages/gatsby-admin/src/components/error-tracker.tsx diff --git a/packages/gatsby-admin/src/components/gatsby-monogram.tsx b/deprecated-packages/gatsby-admin/src/components/gatsby-monogram.tsx similarity index 100% rename from packages/gatsby-admin/src/components/gatsby-monogram.tsx rename to deprecated-packages/gatsby-admin/src/components/gatsby-monogram.tsx diff --git a/packages/gatsby-admin/src/components/instantsearch-provider.tsx b/deprecated-packages/gatsby-admin/src/components/instantsearch-provider.tsx similarity index 100% rename from packages/gatsby-admin/src/components/instantsearch-provider.tsx rename to deprecated-packages/gatsby-admin/src/components/instantsearch-provider.tsx diff --git a/packages/gatsby-admin/src/components/layout.tsx b/deprecated-packages/gatsby-admin/src/components/layout.tsx similarity index 100% rename from packages/gatsby-admin/src/components/layout.tsx rename to deprecated-packages/gatsby-admin/src/components/layout.tsx diff --git a/packages/gatsby-admin/src/components/navbar.tsx b/deprecated-packages/gatsby-admin/src/components/navbar.tsx similarity index 100% rename from packages/gatsby-admin/src/components/navbar.tsx rename to deprecated-packages/gatsby-admin/src/components/navbar.tsx diff --git a/packages/gatsby-admin/src/components/pageview-tracker.tsx b/deprecated-packages/gatsby-admin/src/components/pageview-tracker.tsx similarity index 100% rename from packages/gatsby-admin/src/components/pageview-tracker.tsx rename to deprecated-packages/gatsby-admin/src/components/pageview-tracker.tsx diff --git a/packages/gatsby-admin/src/components/plugin-search.tsx b/deprecated-packages/gatsby-admin/src/components/plugin-search.tsx similarity index 100% rename from packages/gatsby-admin/src/components/plugin-search.tsx rename to deprecated-packages/gatsby-admin/src/components/plugin-search.tsx diff --git a/packages/gatsby-admin/src/components/providers.tsx b/deprecated-packages/gatsby-admin/src/components/providers.tsx similarity index 100% rename from packages/gatsby-admin/src/components/providers.tsx rename to deprecated-packages/gatsby-admin/src/components/providers.tsx diff --git a/packages/gatsby-admin/src/components/recipes-gui/code-diff.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/code-diff.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/code-diff.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/code-diff.js diff --git a/packages/gatsby-admin/src/components/recipes-gui/index.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/index.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/index.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/index.js diff --git a/packages/gatsby-admin/src/components/recipes-gui/recipe-step.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/recipe-step.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/recipe-step.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/recipe-step.js diff --git a/packages/gatsby-admin/src/components/recipes-gui/resource-message.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/resource-message.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/resource-message.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/resource-message.js diff --git a/packages/gatsby-admin/src/components/recipes-gui/utils.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/utils.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/utils.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/utils.js diff --git a/packages/gatsby-admin/src/components/recipes-gui/welcome-message.js b/deprecated-packages/gatsby-admin/src/components/recipes-gui/welcome-message.js similarity index 100% rename from packages/gatsby-admin/src/components/recipes-gui/welcome-message.js rename to deprecated-packages/gatsby-admin/src/components/recipes-gui/welcome-message.js diff --git a/packages/gatsby-admin/src/components/services-provider.tsx b/deprecated-packages/gatsby-admin/src/components/services-provider.tsx similarity index 100% rename from packages/gatsby-admin/src/components/services-provider.tsx rename to deprecated-packages/gatsby-admin/src/components/services-provider.tsx diff --git a/packages/gatsby-admin/src/external-link.svg b/deprecated-packages/gatsby-admin/src/external-link.svg similarity index 100% rename from packages/gatsby-admin/src/external-link.svg rename to deprecated-packages/gatsby-admin/src/external-link.svg diff --git a/packages/gatsby-admin/src/github.svg b/deprecated-packages/gatsby-admin/src/github.svg similarity index 100% rename from packages/gatsby-admin/src/github.svg rename to deprecated-packages/gatsby-admin/src/github.svg diff --git a/packages/gatsby-admin/src/graphql.svg b/deprecated-packages/gatsby-admin/src/graphql.svg similarity index 100% rename from packages/gatsby-admin/src/graphql.svg rename to deprecated-packages/gatsby-admin/src/graphql.svg diff --git a/packages/gatsby-admin/src/pages/index.tsx b/deprecated-packages/gatsby-admin/src/pages/index.tsx similarity index 100% rename from packages/gatsby-admin/src/pages/index.tsx rename to deprecated-packages/gatsby-admin/src/pages/index.tsx diff --git a/packages/gatsby-admin/src/pages/pages.tsx b/deprecated-packages/gatsby-admin/src/pages/pages.tsx similarity index 100% rename from packages/gatsby-admin/src/pages/pages.tsx rename to deprecated-packages/gatsby-admin/src/pages/pages.tsx diff --git a/packages/gatsby-admin/src/pages/plugins.tsx b/deprecated-packages/gatsby-admin/src/pages/plugins.tsx similarity index 100% rename from packages/gatsby-admin/src/pages/plugins.tsx rename to deprecated-packages/gatsby-admin/src/pages/plugins.tsx diff --git a/packages/gatsby-admin/src/pages/recipe.js b/deprecated-packages/gatsby-admin/src/pages/recipe.js similarity index 100% rename from packages/gatsby-admin/src/pages/recipe.js rename to deprecated-packages/gatsby-admin/src/pages/recipe.js diff --git a/packages/gatsby-admin/src/pages/recipes.tsx b/deprecated-packages/gatsby-admin/src/pages/recipes.tsx similarity index 100% rename from packages/gatsby-admin/src/pages/recipes.tsx rename to deprecated-packages/gatsby-admin/src/pages/recipes.tsx diff --git a/packages/gatsby-admin/src/prism-theme.tsx b/deprecated-packages/gatsby-admin/src/prism-theme.tsx similarity index 100% rename from packages/gatsby-admin/src/prism-theme.tsx rename to deprecated-packages/gatsby-admin/src/prism-theme.tsx diff --git a/packages/gatsby-admin/src/skaterboi.svg b/deprecated-packages/gatsby-admin/src/skaterboi.svg similarity index 100% rename from packages/gatsby-admin/src/skaterboi.svg rename to deprecated-packages/gatsby-admin/src/skaterboi.svg diff --git a/packages/gatsby-admin/src/sparkles.svg b/deprecated-packages/gatsby-admin/src/sparkles.svg similarity index 100% rename from packages/gatsby-admin/src/sparkles.svg rename to deprecated-packages/gatsby-admin/src/sparkles.svg diff --git a/packages/gatsby-admin/src/svg.d.ts b/deprecated-packages/gatsby-admin/src/svg.d.ts similarity index 100% rename from packages/gatsby-admin/src/svg.d.ts rename to deprecated-packages/gatsby-admin/src/svg.d.ts diff --git a/packages/gatsby-admin/src/urql-client.ts b/deprecated-packages/gatsby-admin/src/urql-client.ts similarity index 100% rename from packages/gatsby-admin/src/urql-client.ts rename to deprecated-packages/gatsby-admin/src/urql-client.ts diff --git a/packages/gatsby-admin/src/utils/algolia-config.ts b/deprecated-packages/gatsby-admin/src/utils/algolia-config.ts similarity index 100% rename from packages/gatsby-admin/src/utils/algolia-config.ts rename to deprecated-packages/gatsby-admin/src/utils/algolia-config.ts diff --git a/packages/gatsby-admin/src/utils/is-official-package.ts b/deprecated-packages/gatsby-admin/src/utils/is-official-package.ts similarity index 100% rename from packages/gatsby-admin/src/utils/is-official-package.ts rename to deprecated-packages/gatsby-admin/src/utils/is-official-package.ts diff --git a/packages/gatsby-admin/src/utils/use-develop-logs.ts b/deprecated-packages/gatsby-admin/src/utils/use-develop-logs.ts similarity index 100% rename from packages/gatsby-admin/src/utils/use-develop-logs.ts rename to deprecated-packages/gatsby-admin/src/utils/use-develop-logs.ts diff --git a/packages/gatsby-admin/src/utils/use-npm-data.tsx b/deprecated-packages/gatsby-admin/src/utils/use-npm-data.tsx similarity index 100% rename from packages/gatsby-admin/src/utils/use-npm-data.tsx rename to deprecated-packages/gatsby-admin/src/utils/use-npm-data.tsx diff --git a/packages/gatsby-admin/src/utils/use-telemetry.tsx b/deprecated-packages/gatsby-admin/src/utils/use-telemetry.tsx similarity index 100% rename from packages/gatsby-admin/src/utils/use-telemetry.tsx rename to deprecated-packages/gatsby-admin/src/utils/use-telemetry.tsx diff --git a/packages/gatsby-admin/static/favicon.ico b/deprecated-packages/gatsby-admin/static/favicon.ico similarity index 100% rename from packages/gatsby-admin/static/favicon.ico rename to deprecated-packages/gatsby-admin/static/favicon.ico diff --git a/packages/gatsby-admin/tsconfig.json b/deprecated-packages/gatsby-admin/tsconfig.json similarity index 100% rename from packages/gatsby-admin/tsconfig.json rename to deprecated-packages/gatsby-admin/tsconfig.json diff --git a/docs/contributing/gatsby-style-guide.md b/docs/contributing/gatsby-style-guide.md index ff6d03ae78c57..38dde5f1e2ca7 100644 --- a/docs/contributing/gatsby-style-guide.md +++ b/docs/contributing/gatsby-style-guide.md @@ -479,7 +479,7 @@ When there are multiple ways to complete a task, the docs should explain the fol 4. The best practice and why is it the best (if different than 3) 5. Any tips on how to pick an option -For example, `gatsby-image` is a component that includes Gatsby best practices for handling images, yet there are more fundamental and common ways of handling them. Documentation ought to make the best practice clear in addition to the most common and fundamental ways. +For example, `gatsby-plugin-image` is a component that includes Gatsby best practices for handling images, yet there are more fundamental and common ways of handling them. Documentation ought to make the best practice clear in addition to the most common and fundamental ways. ## Docs diff --git a/docs/docs/add-seo-component.md b/docs/docs/add-seo-component.md index c14fb7b1bf87d..c249fa30ebc4e 100644 --- a/docs/docs/add-seo-component.md +++ b/docs/docs/add-seo-component.md @@ -18,7 +18,7 @@ module.exports = { description: "Hogwarts Potions master, Head of Slytherin house and former Death Eater.", url: "https://www.doe.com", // No trailing slash allowed! - image: "/images/snape.jpg", // Path to your image you placed in the 'static' folder + image: "/snape.jpg", // Path to the image placed in the 'static' folder, in the project's root directory. twitterUsername: "@occlumency", }, } diff --git a/docs/docs/adding-a-shopping-cart-with-snipcart.md b/docs/docs/adding-a-shopping-cart-with-snipcart.md index 30d92417961d1..3d60f20912b17 100644 --- a/docs/docs/adding-a-shopping-cart-with-snipcart.md +++ b/docs/docs/adding-a-shopping-cart-with-snipcart.md @@ -111,7 +111,7 @@ You can add multiple custom fields by incrementing the index of the `data-item-c ### Selling digital products -Snipcart enables the sale of digital goods such as e-books, photography, and other artwork. To sell a file you intend for download, you'll need to upload it to your Snipcart dashboard and then add the resulting GUID as the value of the `data-item-file-guid` attribute to your product's markup. You can specify a file access expiry in days and a maximum number of downloads per order from the dashboard. +Snipcart enables the sale of digital goods such as e-books, photography, and other artwork. To sell a file for others to download, you'll need to upload it to your Snipcart dashboard and then add the resulting GUID as the value of the `data-item-file-guid` attribute to your product's markup. You can specify a file access expiry in days and a maximum number of downloads per order from the dashboard. ```jsx
diff --git a/docs/docs/building-an-ecommerce-site-with-shopify.md b/docs/docs/building-an-ecommerce-site-with-shopify.md index 648b8113b3e09..0f57ffc76024e 100644 --- a/docs/docs/building-an-ecommerce-site-with-shopify.md +++ b/docs/docs/building-an-ecommerce-site-with-shopify.md @@ -15,7 +15,7 @@ You can clone the starter, host it on Gatsby and connect it to your own Shopify 1. Create a new [Shopify account](https://www.shopify.com) and store if you don't have one. 2. Create a private app in your store by navigating to `Apps`, then `Manage private apps`. 3. Create a new private app, with any "Private app name" and leaving the default permissions as Read access under Admin API. -4. Enable the [Shopify Storefront API](https://help.shopify.com/en/api/storefront-api) by checking the box that says "Allow this app to access your storefront data using Storefront API". Make sure to also grant access to read product and customer tags by checking their corresponding boxes. +4. Enable the [Shopify Storefront API](https://help.shopify.com/en/api/storefront-api) by checking the box that says "Allow this app to access your storefront data using Storefront API". Make sure to also grant access to `Read product tags` and `Read customer tags` by checking their corresponding boxes. 5. Copy the password, you'll need it to configure your plugin below. ## Set up the Gatsby Shopify plugin @@ -42,6 +42,8 @@ plugins: [ ] ``` +_Note: You will likely not want to put your `password` and `storeUrl` directly in your `gatsby-config.js` file but rather, use an environment variable. Check out the [Gatsby Shopify starter](https://github.com/gatsbyjs/gatsby-starter-shopify) for an example of how to do that._ + 4. Run `gatsby develop` and make sure the site compiles successfully. ## Querying Shopify data and listing products @@ -87,7 +89,7 @@ const ProductsPage = ({ data }) => (
  • {node.title} - {" - "}${node.priceRange.minVariantPrice.amount} + {" - "}${node.priceRangeV2.minVariantPrice.amount}

    {node.description}

  • diff --git a/docs/docs/conceptual/security-in-gatsby.md b/docs/docs/conceptual/security-in-gatsby.md index bc84213a6e1de..a5f115314ef23 100644 --- a/docs/docs/conceptual/security-in-gatsby.md +++ b/docs/docs/conceptual/security-in-gatsby.md @@ -155,7 +155,7 @@ Sometimes in your Gatsby website, you will need display sensitive data or handle Content Security Policy is a security layer added in web applications to detect and prevent attacks, e.g. the XSS attack mentioned above. To add it to your Gatsby website, add [gatsby-plugin-csp](/plugins/gatsby-plugin-csp/) to your `gatsby-config.js` with the desired configuration. Note that -currently there is a [compatibility issue](https://github.com/gatsbyjs/gatsby/issues/10890) between [gatsby-plugin-csp](/plugins/gatsby-plugin-csp/) and other plugins that generate hashes in inline styles, including [gatsby-image](/plugins/gatsby-image). +currently there is a [compatibility issue](https://github.com/gatsbyjs/gatsby/issues/10890) between [gatsby-plugin-csp](/plugins/gatsby-plugin-csp/) and other plugins that generate hashes in inline styles, including [gatsby-plugin-image](/plugins/gatsby-plugin-image). > Note that not all browsers support CSP, check [can-i-use](https://caniuse.com/#feat=mdn-http_headers_csp_content-security-policy) for more information. diff --git a/docs/docs/creating-a-source-plugin.md b/docs/docs/creating-a-source-plugin.md index e7d88473ceb37..af94e02e71906 100644 --- a/docs/docs/creating-a-source-plugin.md +++ b/docs/docs/creating-a-source-plugin.md @@ -51,8 +51,6 @@ exports.sourceNodes = ({ actions, createNodeId, createContentDigest }) => { children: [], internal: { type: `MyNodeType`, - mediaType: `text/html`, - content: nodeContent, contentDigest: createContentDigest(myData), }, } @@ -305,7 +303,7 @@ This loose coupling between the data source and the transformer plugins allow Ga #### Sourcing and optimizing images from remote locations -A common use case for source plugins is pulling images from a remote location and optimizing them for use with [Gatsby Image](/plugins/gatsby-image/). An API may return a URL for an image on a CDN, which could be further optimized by Gatsby at build time. +A common use case for source plugins is pulling images from a remote location and optimizing them for use with [Gatsby Plugin Image](/plugins/gatsby-plugin-image/). An API may return a URL for an image on a CDN, which could be further optimized by Gatsby at build time. This can be achieved by the following steps: @@ -413,7 +411,9 @@ query { id remoteImage { childImageSharp { - # fluid or fixed fields for optimized images + gatsbyImageData( + # arguments for optimized images + ) } } } diff --git a/docs/docs/glossary/hydration.md b/docs/docs/glossary/hydration.md index a16821a82486a..8edef0144c41a 100644 --- a/docs/docs/glossary/hydration.md +++ b/docs/docs/glossary/hydration.md @@ -7,7 +7,7 @@ Learn what _hydration_ means, and how Gatsby makes use of React's hydration feat ## What is hydration? -_Hydration_ is the process of using client-side JavaScript to add application state and interactivity to server-rendered HTML. It's a feature of [React](/docs/glossary/react/), one of the underlying tools that makes the Gatsby framework. Gatsby uses hydration to transform the static HTML created at [build time](/docs/glossary/build/) into a React application. +_Hydration_ is the process of using client-side JavaScript to add application state and interactivity to server-rendered HTML. It's a feature of [React](/docs/glossary/react/), one of the underlying tools that make the Gatsby framework. Gatsby uses hydration to transform the static HTML created at [build time](/docs/glossary/build/) into a React application. A typical React application relies on client-side rendering. Instead of parsing HTML to create the [DOM](/docs/glossary#dom), client-side rendering uses JavaScript to create it. A minimal HTML document serves as the application container, and only contains links to the JavaScript and CSS necessary to render the application. @@ -34,9 +34,9 @@ A typical React application relies on client-side rendering. Instead of parsing With client-side rendering, most actions trigger local DOM updates instead of network requests. Clicking a navigation link builds the requested page on the client instead of requesting it from the server. Because they make fewer network requests, applications rendered in the browser provide a blazing-fast user experience — after the initial download. -That's the drawback to client-side rendering: none of your site's content is visible or interactive until the client downloads JavaScript and builds the DOM. However, not all clients can construct a DOM. For example, client-side rendering can prevent search engine and social media crawlers from consuming and indexing your site's URLs. Browser users, on the other hand, may see a blank page or loading image while your JavaScript bundle downloads and executes. +That's the drawback to client-side rendering: none of your site's content is visible or interactive until the client downloads JavaScript and builds the DOM. However, not all clients can construct a DOM. For example, client-side rendering can prevent search engines and social media crawlers from consuming and indexing your site's URLs. Browser users, on the other hand, may see a blank page or loading image while your JavaScript bundle downloads and executes. -[Server-side rendering](/docs/glossary/server-side-rendering/) makes HTML available to the client _before_ JavaScript loads. Your site visitors can see and read your content even if it is not fully interactive. Server rendering eliminates the blank page problem. Rendered HTML also makes it easier for search engine and social media crawlers to consume your site. Server-side rendering also has a drawback: every URL request requires another round trip to the server. +[Server-side rendering](/docs/glossary/server-side-rendering/) makes HTML available to the client _before_ JavaScript loads. Your site visitors can see and read your content even if it is not fully interactive. Server rendering eliminates the blank page problem. Rendered HTML also makes it easier for search engines and social media crawlers to consume your site. Server-side rendering also has a drawback: every URL request requires another round trip to the server. Hydration lets us take a hybrid approach. diff --git a/docs/docs/how-to/performance/improving-site-performance.md b/docs/docs/how-to/performance/improving-site-performance.md index 1c9c90474f940..b638424a3c317 100644 --- a/docs/docs/how-to/performance/improving-site-performance.md +++ b/docs/docs/how-to/performance/improving-site-performance.md @@ -125,7 +125,7 @@ For example, let's say you have a header that imports a JSON object in order to There's a couple ways to detect this: -- _Notice components and data that don't seem to be needed on every page._ If you're using v2 of Gatsby, certain methods of importing can cause code to get bundled on pages it doesn't belong on. Try replacing indirect import statements like `import { myIcon } from './icons/index.js'` with direct imports like `import { myIcon} from './icons/my-icon.js`. +- _Notice components and data that don't seem to be needed on every page._ If you're using v2 of Gatsby, certain methods of importing can cause code to get bundled on pages it doesn't belong on. Try replacing indirect import statements like `import { myIcon } from './icons/index.js'` with direct imports like `import { myIcon } from './icons/my-icon.js'`. - _Watch for unexpectedly large data imports._ If you notice large JSON objects, and you do need the data (or some portion of it), there are a couple options. @@ -194,7 +194,7 @@ Media files are often the largest files on a site, and so can delay page load si [Gatsby Plugin Image](/docs/how-to/images-and-media/using-gatsby-image/) is our approach to optimizing image loading performance. It does three basic things: -1. It delays non-essential work for images not above the fold to avoid esource congestion. +1. It delays non-essential work for images not above the fold to avoid resource congestion. 2. It provides a placeholder during image fetch. 3. It minimizes image file size to reduce request roundtrip time. diff --git a/docs/docs/how-to/previews-deploys-hosting/path-prefix.md b/docs/docs/how-to/previews-deploys-hosting/path-prefix.md index 4acf3c0bb9534..e0598050a0509 100644 --- a/docs/docs/how-to/previews-deploys-hosting/path-prefix.md +++ b/docs/docs/how-to/previews-deploys-hosting/path-prefix.md @@ -28,12 +28,16 @@ module.exports = { ## Build -The final step is to build your application with the `--prefix-paths` flag, like so: +The final step is to build your application with either the `--prefix-paths` flag or `PREFIX_PATHS` environment variable, like so: ```shell gatsby build --prefix-paths ``` +```shell +PREFIX_PATHS=true gatsby build +``` + If this flag is not passed, Gatsby will ignore your `pathPrefix` and build the site as if hosted from the root domain. ## Serve diff --git a/docs/docs/how-to/sourcing-data/headless-cms.md b/docs/docs/how-to/sourcing-data/headless-cms.md index 895cc0b863a4c..1ee483648db6c 100644 --- a/docs/docs/how-to/sourcing-data/headless-cms.md +++ b/docs/docs/how-to/sourcing-data/headless-cms.md @@ -35,24 +35,25 @@ The following CMSs have high popularity among Gatsby users and support key funct ## Other CMSs -| CMS | Guides | Plugin Docs | Official Starter | -| --------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------- | -| [Cosmic](https://cosmicjs.com/) | [guide](/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/) | [docs](/plugins/gatsby-source-cosmicjs) | [starters](/starters/?s=cosmic&v=2) | -| [ButterCMS](https://buttercms.com/) | [guide](/docs/sourcing-from-buttercms/) | [docs](/plugins/gatsby-source-buttercms) | [starter](/starters/ButterCMS/gatsby-starter-buttercms/) | -| [Ghost](https://ghost.org/) | [guide](/docs/sourcing-from-ghost/) | [docs](/plugins/gatsby-source-ghost/) | [starter](/starters/TryGhost/gatsby-starter-ghost/) | -| [Kentico Kontent](https://kontent.ai/) | [guide](/docs/sourcing-from-kentico-kontent) | [docs](/plugins/@kentico/gatsby-source-kontent) | [starter](/starters/Kentico/gatsby-starter-kontent-lumen/) | -| [Directus](https://directus.io/) | | [docs](/plugins/@directus/gatsby-source-directus/) | | -| [GraphCMS](https://graphcms.com/) | [guide](/docs/sourcing-from-graphcms) | [docs](/plugins/gatsby-source-graphql) | [starter](/starters/GraphCMS/gatsby-graphcms-tailwindcss-example/) | -| [Storyblok](https://www.storyblok.com/) | [guide](https://www.storyblok.com/tp/gatsby-multilanguage-website-tutorial) | [docs](/plugins/gatsby-source-storyblok) | [starter](https://github.com/storyblok/gatsby-storyblok-boilerplate) | -| [Cockpit](https://getcockpit.com/) | | [docs](/plugins/gatsby-plugin-cockpit) | | -| [CraftCMS](https://craftcms.com/) | | [docs](/plugins/gatsby-source-craftcms) | | -| [Agility CMS](https://agilitycms.com/) | [guide](/docs/sourcing-from-agilitycms/) | [docs](/plugins/@agility/gatsby-source-agilitycms/) | [starter](/starters/agility/agility-gatsby-starter/) | -| [Forestry](https://forestry.io/) | [guide](/docs/sourcing-from-forestry/) | | | -| [Gentics Mesh](https://getmesh.io) | [guide](/docs/sourcing-from-gentics-mesh) | | | -| [Seams-CMS](https://seams-cms.com/) | [guide](/docs/sourcing-from-seams-cms) | | | -| [Builder.io](https://www.builder.io/) | [guide](/docs/sourcing-from-builder-io/) | [docs](/plugins/@builder.io/gatsby/) | [starter](https://github.com/BuilderIO/gatsby-starter-builder) | -| [Flotiq](https://flotiq.com/) | [guide](/docs/sourcing-from-flotiq/) | [docs](/plugins/gatsby-source-flotiq) | [starter](https://github.com/flotiq/gatsby-starter-blog) | -| [Tina](https://tina.io) | [guide](https://tina.io/guides/#gatsby) | [docs](https://tina.io/docs/integrations/gatsby/) | | +| CMS | Guides | Plugin Docs | Official Starter | +| ----------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------- | +| [Cosmic](https://cosmicjs.com/) | [guide](/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/) | [docs](/plugins/gatsby-source-cosmicjs) | [starters](/starters/?s=cosmic&v=2) | +| [ButterCMS](https://buttercms.com/) | [guide](/docs/sourcing-from-buttercms/) | [docs](/plugins/gatsby-source-buttercms) | [starter](/starters/ButterCMS/gatsby-starter-buttercms/) | +| [Ghost](https://ghost.org/) | [guide](/docs/sourcing-from-ghost/) | [docs](/plugins/gatsby-source-ghost/) | [starter](/starters/TryGhost/gatsby-starter-ghost/) | +| [Kontent by Kentico](https://kontent.ai/) | [guide](/docs/sourcing-from-kentico-kontent) | [docs](/plugins/@kentico/gatsby-source-kontent) | [starter](/starters/Kentico/gatsby-starter-kontent-lumen/) | +| [Directus](https://directus.io/) | | [docs](/plugins/@directus/gatsby-source-directus/) | | +| [GraphCMS](https://graphcms.com/) | [guide](/docs/sourcing-from-graphcms) | [docs](/plugins/gatsby-source-graphql) | [starter](/starters/GraphCMS/gatsby-graphcms-tailwindcss-example/) | +| [Storyblok](https://www.storyblok.com/) | [guide](https://www.storyblok.com/tp/gatsby-multilanguage-website-tutorial) | [docs](/plugins/gatsby-source-storyblok) | [starter](https://github.com/storyblok/gatsby-storyblok-boilerplate) | +| [Cockpit](https://getcockpit.com/) | | [docs](/plugins/gatsby-plugin-cockpit) | | +| [CraftCMS](https://craftcms.com/) | | [docs](/plugins/gatsby-source-craftcms) | | +| [Agility CMS](https://agilitycms.com/) | [guide](/docs/sourcing-from-agilitycms/) | [docs](/plugins/@agility/gatsby-source-agilitycms/) | [starter](/starters/agility/agility-gatsby-starter/) | +| [Prepr CMS](https://prepr.io/) | [guide](https://docs.prepr.io/docs/frontend-integrations/v1/gatsby) | | | +| [Forestry](https://forestry.io/) | [guide](/docs/sourcing-from-forestry/) | | | +| [Gentics Mesh](https://getmesh.io) | [guide](/docs/sourcing-from-gentics-mesh) | | | +| [Seams-CMS](https://seams-cms.com/) | [guide](/docs/sourcing-from-seams-cms) | | | +| [Builder.io](https://www.builder.io/) | [guide](/docs/sourcing-from-builder-io/) | [docs](/plugins/@builder.io/gatsby/) | [starter](https://github.com/BuilderIO/gatsby-starter-builder) | +| [Flotiq](https://flotiq.com/) | [guide](/docs/sourcing-from-flotiq/) | [docs](/plugins/gatsby-source-flotiq) | [starter](https://github.com/flotiq/gatsby-starter-blog) | +| [Tina](https://tina.io) | [guide](https://tina.io/guides/#gatsby) | [docs](https://tina.io/docs/integrations/gatsby/) | | ## Integrating with other CMSs diff --git a/docs/docs/images/error-overlays.jpg b/docs/docs/images/error-overlays.jpg new file mode 100644 index 0000000000000..0f24b03c90c51 Binary files /dev/null and b/docs/docs/images/error-overlays.jpg differ diff --git a/docs/docs/reference/built-in-components/gatsby-image.md b/docs/docs/reference/built-in-components/gatsby-image.md index 4bd4afb3982e8..efc9c9f24ef1c 100644 --- a/docs/docs/reference/built-in-components/gatsby-image.md +++ b/docs/docs/reference/built-in-components/gatsby-image.md @@ -39,7 +39,7 @@ _For in-depth install instructions, check out the docs on [Using Gatsby Image](/ ### Gatsby image starts with a query -To feed file data in to Gatsby Image, set up a [GraphQL query](/docs/graphql-reference/) and either pass it into a component as props or write it directly in the component. One technique is to leverage the [`useStaticQuery`](/docs/how-to/querying-data/use-static-query/) hook. +To feed file data into Gatsby Image, set up a [GraphQL query](/docs/graphql-reference/) and either pass it into a component as props or write it directly in the component. One technique is to leverage the [`useStaticQuery`](/docs/how-to/querying-data/use-static-query/) hook. Common GraphQL queries for sourcing images include `file` from [gatsby-source-filesystem](/plugins/gatsby-source-filesystem/), and both `imageSharp` and `allImageSharp` from [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/), but ultimately the options available to you will depend on your content sources. diff --git a/docs/docs/reference/functions/getting-started.md b/docs/docs/reference/functions/getting-started.md index 957ae12703a65..a3cf29ab505df 100644 --- a/docs/docs/reference/functions/getting-started.md +++ b/docs/docs/reference/functions/getting-started.md @@ -190,6 +190,16 @@ export default function FormPage() { } ``` +## Functions in plugins and themes + +Plugins and themes can ship functions! This is powerful as it lets you pair frontend code with backend code. For example, if you built a plugin for an authorization service that includes a login component, you could ship alongside the component, a serverless function the component can use to connect to the remote API. + +### Namespacing + +Plugin/theme functions work exactly the same as normal functions except their routes must be created under the plugin's namespace e.g. `${PLUGIN_ROOT}/src/api/{pluginName}/my-plugin-function.js`. + +Shadowing with functions works similar to how shadowing works in general. You can shadow a plugin/theme function by copying the file from the plugin/theme's `src` tree into your site's `src` tree. For example, to shadow the `/gatsby-plugin-cool/do-something` function from the `gatsby-plugin-cool` plugin, you'd copy `node_modules/gatsby-plugin-cool/src/api/gatsby-plugin-cool/do-something.js` to `src/api/gatsby-plugin-cool/do-something.js`. From there, you can overwrite the implementation of the `/do-something` function as you normally would. + ## Limitations - Gatsby Functions do not support dynamic routes in Gatsby Cloud at the moment diff --git a/docs/docs/reference/graphql-data-layer/node-model.md b/docs/docs/reference/graphql-data-layer/node-model.md index c08706a803ce0..9abf396c3b5a0 100644 --- a/docs/docs/reference/graphql-data-layer/node-model.md +++ b/docs/docs/reference/graphql-data-layer/node-model.md @@ -15,9 +15,9 @@ createResolvers({ Query: { mood: { type: `String`, - resolve(source, args, context, info) { - const coffee = context.nodeModel.getAllNodes({ type: `Coffee` }) - if (!coffee.length) { + resolve: async (source, args, context, info) => { + const item = await context.nodeModel.findOne({ type: `Coffee` }) + if (!item) { return 😞 } return 😊 diff --git a/docs/docs/reference/graphql-data-layer/schema-customization.md b/docs/docs/reference/graphql-data-layer/schema-customization.md index 994631eba84e3..5e5081af36afa 100644 --- a/docs/docs/reference/graphql-data-layer/schema-customization.md +++ b/docs/docs/reference/graphql-data-layer/schema-customization.md @@ -394,17 +394,22 @@ exports.createSchemaCustomization = ({ actions, schema }) => { resolve: (source, args, context, info) => { // If you were linking by ID, you could use `getNodeById` to // find the correct author: + // // return context.nodeModel.getNodeById({ // id: source.author, // type: "AuthorJson", // }) + // // But since the example is using the author email as foreign key, - // you can use `runQuery`, or get all author nodes - // with `getAllNodes` and manually find the linked author - // node: - return context.nodeModel - .getAllNodes({ type: "AuthorJson" }) - .find(author => author.email === source.author) + // you can use `nodeModel.findOne` to find the linked author node. + // Note: Instead of getting all nodes and then using Array.prototype.find() + // Use nodeModel.findOne instead where possible! + return context.nodeModel.findOne({ + type: "AuthorJson", + query: { + filter: { email: { eq: source.author } } + } + }) }, }, }, @@ -766,10 +771,9 @@ available to custom field resolvers on the `context.nodeModel` argument passed to every resolver. Accessing node(s) by `id` (and optional `type`) is possible with [`getNodeById`](/docs/reference/graphql-data-layer/node-model/#getNodeById) and [`getNodesByIds`](/docs/reference/graphql-data-layer/node-model/#getNodesByIds). To get all nodes, or all -nodes of a certain type, use [`getAllNodes`](/docs/reference/graphql-data-layer/node-model/#getAllNodes). +nodes of a certain type, use [`findAll`](/docs/reference/graphql-data-layer/node-model/#findAll). And running a query from inside your resolver functions can be accomplished -with [`runQuery`](/docs/reference/graphql-data-layer/node-model/#runQuery), which accepts `filter` and `sort` -query arguments. +with `findAll` as well, which accepts `filter` and `sort` query arguments. You could for example add a field to the `AuthorJson` type that lists all recent posts by an author: @@ -780,8 +784,8 @@ exports.createResolvers = ({ createResolvers }) => { AuthorJson: { recentPosts: { type: ["MarkdownRemark"], - resolve(source, args, context, info) { - return context.nodeModel.runQuery({ + resolve: async (source, args, context, info) => { + const { entries } = await context.nodeModel.findAll({ query: { filter: { frontmatter: { @@ -791,8 +795,8 @@ exports.createResolvers = ({ createResolvers }) => { }, }, type: "MarkdownRemark", - firstOnly: false, }) + return entries }, }, }, @@ -801,13 +805,13 @@ exports.createResolvers = ({ createResolvers }) => { } ``` -When using `runQuery` to sort query results, be aware that both `sort.fields` +When using `findAll` to sort query results, be aware that both `sort.fields` and `sort.order` are `GraphQLList` fields. Also, nested fields on `sort.fields` have to be provided in dot-notation (not separated by triple underscores). For example: ```js -context.nodeModel.runQuery({ +context.nodeModel.findAll({ query: { sort: { fields: ["frontmatter.publishedAt"], @@ -833,16 +837,17 @@ exports.createResolvers = ({ createResolvers }) => { Query: { contributorsWithSwag: { type: ["ContributorJson"], - resolve(source, args, context, info) { - return context.nodeModel.runQuery({ + resolve: async (source, args, context, info) => { + const { entries } = await context.nodeModel.findAll({ query: { filter: { receivedSwag: { eq: true }, }, }, type: "ContributorJson", - firstOnly: false, }) + + return entries }, }, }, @@ -863,16 +868,17 @@ exports.createResolvers = ({ createResolvers }) => { args: { receivedSwag: "Boolean!", }, - resolve(source, args, context, info) { - return context.nodeModel.runQuery({ + resolve: async (source, args, context, info) => { + const { entries } = await context.nodeModel.findAll({ query: { filter: { receivedSwag: { eq: args.receivedSwag }, }, }, type: "ContributorJson", - firstOnly: false, }) + + return entries }, }, }, @@ -896,28 +902,30 @@ exports.createResolvers = ({ createResolvers }) => { args: { postsCount: "input PostsCountInput { min: Int, max: Int }", }, - resolve(source, args, context, info) { + resolve: async (source, args, context, info) => { const { max, min = 0 } = args.postsCount || {} const operator = max != null ? { lte: max } : { gte: min } - return context.nodeModel.runQuery({ + + const { entries } = await context.nodeModel.findAll({ query: { filter: { posts: operator, }, }, type: "ContributorJson", - firstOnly: false, }) + + return entries }, }, }, ContributorJson: { posts: { type: `Int`, - resolve: (source, args, context, info) => { - return context.nodeModel - .getAllNodes({ type: "MarkdownRemark" }) - .filter(post => post.frontmatter.author === source.email).length + resolve: async (source, args, context, info) => { + const { entries } = await context.nodeModel.findAll({ type: "MarkdownRemark" }) + const posts = entries.filter(post => post.frontmatter.author === source.email) + return Array.from(posts).length }, }, }, @@ -932,15 +940,12 @@ When creating custom field resolvers, it is important to ensure that Gatsby knows about the data a page depends on for hot reloading to work properly. When you retrieve nodes from the store with [`context.nodeModel`](/docs/reference/graphql-data-layer/node-model/) methods, it is usually not necessary to do anything manually, because Gatsby will register -dependencies for the query results automatically. The exception is `getAllNodes` -which will _not_ register data dependencies by default. This is because -requesting re-running of queries when any node of a certain type changes is -potentially a very expensive operation. If you are sure you really need this, +dependencies for the query results automatically. If you want to customize this, you can add a page data dependency either programmatically with [`context.nodeModel.trackPageDependencies`](/docs/reference/graphql-data-layer/node-model/#trackPageDependencies), or with: ```js -context.nodeModel.getAllNodes( +context.nodeModel.findAll( { type: "MarkdownRemark" }, { connectionType: "MarkdownRemark" } ) @@ -995,8 +1000,11 @@ exports.createResolvers = ({ createResolvers }) => { Query: { allTeamMembers: { type: ["TeamMember"], - resolve(source, args, context, info) { - return context.nodeModel.getAllNodes({ type: "TeamMember" }) + resolve: async (source, args, context, info) => { + // Whenever possible, use `limit` and `skip` on findAll calls to increase performance + const { entries } = await context.nodeModel.findAll({ type: "TeamMember", query: { limit: args.limit, skip: args.skip } }) + + return entries }, }, }, diff --git a/docs/docs/reference/local-development/fast-refresh.md b/docs/docs/reference/local-development/fast-refresh.md index a0362174eb80b..6aa468998ad61 100644 --- a/docs/docs/reference/local-development/fast-refresh.md +++ b/docs/docs/reference/local-development/fast-refresh.md @@ -16,9 +16,9 @@ Fast Refresh is enabled by default in Gatsby's development server and should sho ## Error Resilience -The Fast Refresh integration is good at catching errors instead of silently failing. Gatsby takes this opportunity to present you with a custom overlay that further explains the error and how to resolve it. Once it's resolved Fast Refresh will recover from that state. The overlay will indicate whether it's a compile error, [GraphQL](/docs/glossary#graphql) error, or runtime error. +The Fast Refresh integration is good at catching errors instead of silently failing. Gatsby takes this opportunity to present you with a custom overlay that further explains the error and how to resolve it. Once it's resolved Fast Refresh will recover from that state. The overlay will indicate whether it's a compile error, [GraphQL](/docs/glossary#graphql) error, runtime error, or `getServerData` error. -![Three error overlays from left to right: Compile error, GraphQL errors, and runtime errors](../../reference/release-notes/v3.0/compile-graphql-runtime-errors.jpg) +![Four error overlays from left to right, top to bottom: Compile error, GraphQL errors, runtime errors, and getServerData error](../../images/error-overlays.jpg) ### Compile Errors @@ -34,6 +34,10 @@ If the runtime error didn't occur during rendering, the component state will be If you have [error boundaries](https://reactjs.org/docs/error-boundaries) in your application (which is a good idea for graceful failures in production), they will retry rendering on the next edit after a rendering error. This means having an error boundary can prevent you from always getting reset to the root app state. However, keep in mind that error boundaries shouldn't be too granular. They are used by React in production, and should always be designed intentionally. +### `getServerData` Error + +These errors originate from your `getServerData` function in your page and can't be dismissed. When using [Server-Side Rendering (SSR)](/docs/reference/rendering-options/server-side-rendering/) your code is run at runtime and will show up on your deployed site. Your own code can be faulty but also third-party requests, e.g. to an external API, thus it's a good idea to add error handling to your function. + ## Limitations Fast Refresh tries to preserve local React state in the component you're editing, but only if it's safe to do so. There are a few reasons you might see local state being reset on every edit to a file: diff --git a/docs/docs/sourcing-from-kentico-kontent.md b/docs/docs/sourcing-from-kentico-kontent.md index f9fdfcab67800..489a6d4f38875 100644 --- a/docs/docs/sourcing-from-kentico-kontent.md +++ b/docs/docs/sourcing-from-kentico-kontent.md @@ -1,26 +1,26 @@ --- -title: Sourcing from Kentico Kontent +title: Sourcing from Kontent by Kentico --- -In this guide, you'll go through how to quickly source content for your Gatsby site from [Kentico Kontent](https://kontent.ai/). +In this guide, you'll go through how to quickly source content for your Gatsby site from [Kontent by Kentico](https://kontent.ai/). -Kentico Kontent is a hosted CMS that offers you Content as a Service (CaaS) for all your content needs. Using CaaS ensures that your content will be future-proof and reusable, so you can add a mobile app that uses the same content as your Gatsby site without worrying about how it will fit. Kentico Kontent offers CaaS with an easy-to-use editing interface and excellent collaboration features, so all your work on content can happen in one place without requiring technical help for each user. +Kontent is a hosted CMS that offers you Content as a Service (CaaS) for all your content needs. Using CaaS ensures that your content will be future-proof and reusable, so you can add a mobile app that uses the same content as your Gatsby site without worrying about how it will fit. Kontent offers CaaS with an easy-to-use editing interface and excellent collaboration features, so all your work on content can happen in one place without requiring technical help for each user. -You can also take advantage of Kentico Kontent's ability to deliver content in multiple languages and create relationships among various content with linked items. However you structure your content in Kentico Kontent, the [source plugin](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent) will ensure the proper nodes are created for your Gatsby site. +You can also take advantage of Kontent's ability to deliver content in multiple languages and create relationships among various content with linked items. However you structure your content in Kontent, the [source plugin](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent) will ensure the proper nodes are created for your Gatsby site. -_Note: For this guide, you'll work from scratch from the [Gatsby default starter](https://github.com/gatsbyjs/gatsby-starter-default) to get a feel for how sourcing from Kentico Kontent works. If you'd like to look at an example of a complete basic site, have a look at the [Kentico Kontent Gatsby starter site](https://github.com/Kentico/gatsby-starter-kontent), which includes worked examples for querying content. Or you could also check out the [Kontent starter based on Lumen template](https://github.com/Kentico/gatsby-starter-kontent-lumen), which is a minimal, lightweight and mobile-first starter for creating blogs using Gatsby and Kentico Kontent._ +_Note: For this guide, you'll work from scratch from the [Gatsby default starter](https://github.com/gatsbyjs/gatsby-starter-default) to get a feel for how sourcing from Kontent works. If you'd like to look at an example of a complete basic site, have a look at the [Kontent Gatsby starter site](https://github.com/Kentico/gatsby-starter-kontent), which includes worked examples for querying content. Or you could also check out the [Kontent starter based on Lumen template](https://github.com/Kentico/gatsby-starter-kontent-lumen), which is a minimal, lightweight and mobile-first starter for creating blogs using Gatsby and Kontent._ ## Setup -### Kentico Kontent +### Kontent -The first thing to do, if you haven't already done so, is [sign up for a Kentico Kontent account](https://app.kontent.ai/sign-up?utm_medium=gatsbyjsorg&utm_source=guide). This will automatically start a free 30-day trial with all Kentico Kontent features. At any point during the trial or after, you can switch to a Starter plan (which always starts as free) or a higher plan with more features. +The first thing to do, if you haven't already done so, is [sign up for a Kontent account](https://app.kontent.ai/sign-up?utm_medium=gatsbyjsorg&utm_source=guide). This will automatically start a free 30-day trial with all Kontent features. At any point during the trial or after, you can switch to a Starter plan (which always starts as free) or a higher plan with more features. -Once you have a subscription to Kentico Kontent, you need some content to retrieve. If you know what you want, you can set up your own content types (templates for your content) and then create content items (the actual content) based on them. If you'd like to take a shortcut and see some example content, you can use [Sample Project generator](https://app.kontent.ai/sample-project-generator) to generate project "Sample Project" and import sample content. This guide will continue with the example of the "Sample Project". +Once you have a subscription to Kontent, you need some content to retrieve. If you know what you want, you can set up your own content types (templates for your content) and then create content items (the actual content) based on them. If you'd like to take a shortcut and see some example content, you can use [Sample Project generator](https://app.kontent.ai/sample-project-generator) to generate project "Sample Project" and import sample content. This guide will continue with the example of the "Sample Project". -The created Sample Project is a comprehensive presentation of a fictional coffee company named Dancing Goat that showcases various Kentico Kontent features. It can be displayed in various channels, as you can see by going to the [Quickstart page in Kentico Kontent](https://app.kontent.ai/quickstart) from within that project. +The created Sample Project is a comprehensive presentation of a fictional coffee company named Dancing Goat that showcases various Kontent features. It can be displayed in various channels, as you can see by going to the [Quickstart page in Kontent](https://app.kontent.ai/quickstart) from within that project. -For this guide, you don't have to worry about most of the features. You'll pull some data to display within the Gatsby site you'll create in the next step. The only thing you need to continue is your Project ID, which you can find in Kentico Kontent under _Project settings_ -> _API keys_. +For this guide, you don't have to worry about most of the features. You'll pull some data to display within the Gatsby site you'll create in the next step. The only thing you need to continue is your Project ID, which you can find in Kontent under _Project settings_ -> _API keys_. ### Gatsby @@ -29,11 +29,11 @@ For this guide, you don't have to worry about most of the features. You'll pull Now that you have some content to pull, you can create a basic Gatsby site to display the content. Assuming you have the [Gatsby CLI installed](/docs/quick-start/#install-the-gatsby-cli), create a new site and navigate to it in your terminal: ```shell -gatsby new kentico-kontent-guide -cd kentico-kontent-guide +gatsby new kontent-guide +cd kontent-guide ``` -Next, install the [Kentico Kontent source plugin](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent): +Next, install the [Kontent source plugin](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent): ```shell npm install @kentico/gatsby-source-kontent @@ -63,17 +63,17 @@ module.exports = { } ``` -And that's enough for you to be able to access content from Kentico Kontent in your site. You can see this by starting Gatsby in development mode: +And that's enough for you to be able to access content from Kontent in your site. You can see this by starting Gatsby in development mode: ```shell gatsby develop ``` -To see all the content that's available from Kentico Kontent, you can test out GraphQL queries in GraphiQL at `http://localhost:8000/___graphql`. The queries generated from Kontent will be prefixed with `kontentItem` (for single nodes) or `allKontentItem`. +To see all the content that's available from Kontent, you can test out GraphQL queries in GraphiQL at `http://localhost:8000/___graphql`. The queries generated from Kontent will be prefixed with `kontentItem` (for single nodes) or `allKontentItem`. -To see how to put that data into your site, first go to `http://localhost:8000/`. Notice that the default title for the site is "Gatsby Default Starter". You can change that by pulling the title for your site from Kentico Kontent. +To see how to put that data into your site, first go to `http://localhost:8000/`. Notice that the default title for the site is "Gatsby Default Starter". You can change that by pulling the title for your site from Kontent. -The title here is generated in the layout from the site metadata. By default, the Kentico Kontent Sample Project has a single item named "Home" that is the only item of the Home type. So you can change the layout component to query the metadata of that item and then use that data to populate your title. +The title here is generated in the layout from the site metadata. By default, the Kontent Sample Project has a single item named "Home" that is the only item of the Home type. So you can change the layout component to query the metadata of that item and then use that data to populate your title. ```jsx:title=src/components/layout.js // ... @@ -96,13 +96,13 @@ const Layout = ({ children }) => { // ... ``` -If you look at `http://localhost:8000/`, you'll notice the title is now "Dancing Goat–Freshest coffee on the block!". You can change this title in Kentico Kontent to whatever you want and rerun `gatsby develop` to rebuild the site ([see below about automatic builds](#continuous-deployment)). +If you look at `http://localhost:8000/`, you'll notice the title is now "Dancing Goat–Freshest coffee on the block!". You can change this title in Kontent to whatever you want and rerun `gatsby develop` to rebuild the site ([see below about automatic builds](#continuous-deployment)). -So you've seen how to add content to existing pages in Gatsby using Kentico Kontent. Next, you will start creating new pages of your own. +So you've seen how to add content to existing pages in Gatsby using Kontent. Next, you will start creating new pages of your own. #### Creating new pages -It's great to be able to add content to existing static pages, but one of the great benefits of using CaaS is being able to define pages in Kentico Kontent and having them generated automatically. To see how, you'll add pages based on content from the Sample Project in the Article type (feel free to explore how these are structured in Kentico Kontent). +It's great to be able to add content to existing static pages, but one of the great benefits of using CaaS is being able to define pages in Kontent and having them generated automatically. To see how, you'll add pages based on content from the Sample Project in the Article type (feel free to explore how these are structured in Kontent). Start by making use of the URL pattern in the Article type to generate slugs for your Article nodes: @@ -137,7 +137,7 @@ exports.onCreateNode = ({ node, actions: { createNodeField } }) => { exports.createPages = async ({ graphql, actions }) => { const { createPage } = actions - // Query data from Kentico + // Query data from Kontent const result = await graphql(` { allKontentItemArticle { @@ -206,27 +206,27 @@ export const query = graphql` ` ``` -When you rerun `gatsby develop`, you'll be able to see each article as a page with content pulled from Kentico Kontent. To see a list of all pages, visit `http://localhost:8000/asdf` (or any other url that generates a 404). +When you rerun `gatsby develop`, you'll be able to see each article as a page with content pulled from Kontent. To see a list of all pages, visit `http://localhost:8000/asdf` (or any other url that generates a 404). -The body copy for this article comes from a rich text element in Kentico Kontent. Links and inline linked items (e.g., embedded videos) are not resolved by default for rich text elements. If you want to resolve them, you can query the required data in structured form for resolution and create your own React components. You could use [Rich text element component](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-kontent-components#rich-text-element-component) that is a part of the [@kentico/gatsby-kontent-components](https://www.gatsbyjs.com/plugins/@kentico/gatsby-kontent-components) package. +The body copy for this article comes from a rich text element in Kontent. Links and inline linked items (e.g., embedded videos) are not resolved by default for rich text elements. If you want to resolve them, you can query the required data in structured form for resolution and create your own React components. You could use [Rich text element component](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-kontent-components#rich-text-element-component) that is a part of the [@kentico/gatsby-kontent-components](https://www.gatsbyjs.com/plugins/@kentico/gatsby-kontent-components) package. -Since the Kontent source plugin is defining the GraphQL schema for data from Kentico Kontent, you could use this schema and extend it according to your needs. There are [some examples](https://github.com/Kentico/kontent-gatsby-packages/tree/master/site#examples) of what you could do in your application. +Since the Kontent source plugin is defining the GraphQL schema for data from Kontent, you could use this schema and extend it according to your needs. There are [some examples](https://github.com/Kentico/kontent-gatsby-packages/tree/master/site#examples) of what you could do in your application. -Now you know how to create pages programmatically and pull their content from Kentico Kontent. To get the most out of your CaaS, you'll want to also make sure your site builds automatically whenever published content changes inside Kentico Kontent. +Now you know how to create pages programmatically and pull their content from Kontent. To get the most out of your CaaS, you'll want to also make sure your site builds automatically whenever published content changes inside Kontent. ### Continuous deployment -To keep your site static but always up to date with the latest content from Kentico Kontent, it helps to set up automatic deployment whenever your published content changes. Here, you can see how to set that up using [Netlify](https://docs.netlify.com/site-deploys/create-deploys/#deploy-with-git), but the principle is similar using other services like [Gatsby Cloud](/docs/kontent/getting-started), or [Travis CI](https://travis-ci.org/), as with another [site sourced from Kentico Kontent](https://github.com/Kentico/kentico.github.io/wiki/How-the-automatic-deployment-works). +To keep your site static but always up to date with the latest content from Kontent, it helps to set up automatic deployment whenever your published content changes. Here, you can see how to set that up using [Netlify](https://docs.netlify.com/site-deploys/create-deploys/#deploy-with-git), but the principle is similar using other services like [Gatsby Cloud](/docs/kontent/getting-started), or [Travis CI](https://travis-ci.org/), as with another [site sourced from Kontent](https://github.com/Kentico/kentico.github.io/wiki/How-the-automatic-deployment-works). For automatic deployment from Netlify, first store your site's source code in a Git provider such as GitHub. Then log in to Netlify (e.g., through the same Git provider), create a new site from Git, and choose your site's source code. Netlify should automatically detect that you're using Gatsby and include the `gatsby build` command. If so, go ahead and deploy your site. Your site will now automatically build whenever you push changes to the source code in the Git repository. -Now that your site's up and running, you need to set up automatic builds when published content in Kentico Kontent changes. First, in Netlify [create a new build hook](https://docs.netlify.com/configure-builds/build-hooks/) with a name like "Change in Kentico Kontent content" and copy the URL. Then go to Kentico Kontent. Under _Project settings_, choose _Webhooks_ and create a new webhook. Give it a name like "Netlify build", paste the URL into the _URL address_ field and choose the [events to trigger the webhook](https://docs.kontent.ai/reference/webhooks-reference#a-events-to-trigger-a-webhook), you want to select just "DELIVERY API TRIGGERS" for content item events: "Publish" and "Unpublish". And that's it. Now whenever published content changes, your webhook will trigger a build in Netlify to ensure your static content is updated to the latest version. +Now that your site's up and running, you need to set up automatic builds when published content in Kontent changes. First, in Netlify [create a new build hook](https://docs.netlify.com/configure-builds/build-hooks/) with a name like "Change in Kontent content" and copy the URL. Then go to Kontent. Under _Project settings_, choose _Webhooks_ and create a new webhook. Give it a name like "Netlify build", paste the URL into the _URL address_ field and choose the [events to trigger the webhook](https://docs.kontent.ai/reference/webhooks-reference#a-events-to-trigger-a-webhook), you want to select just "DELIVERY API TRIGGERS" for content item events: "Publish" and "Unpublish". And that's it. Now whenever published content changes, your webhook will trigger a build in Netlify to ensure your static content is updated to the latest version. ## What's next? -You've seen how to set up a Gatsby site that sources content from Kentico Kontent and is automatically redeployed on any change to the content. Kentico Kontent is capable of creating many other kinds of relationships, including taxonomies for categorization, multiple languages, and linking items together. Want to do more? +You've seen how to set up a Gatsby site that sources content from Kontent and is automatically redeployed on any change to the content. Kontent is capable of creating many other kinds of relationships, including taxonomies for categorization, multiple languages, and linking items together. Want to do more? -- See [more about what the Kentico Kontent source plugin can do](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent#available-options). -- Read the [Kentico Kontent documentation](https://docs.kontent.ai) to see what's possible. -- Explore the [Kentico Kontent Gatsby starter](https://github.com/Kentico/gatsby-starter-kontent) to see a sample site. -- Explore the [Kentico Kontent Gatsby starter Lumen](https://github.com/Kentico/gatsby-starter-kontent-lumen) to see a more complete example. +- See [more about what the Kontent source plugin can do](https://github.com/Kentico/kontent-gatsby-packages/tree/master/packages/gatsby-source-kontent#available-options). +- Read the [Kontent documentation](https://docs.kontent.ai) to see what's possible. +- Explore the [Kontent Gatsby starter](https://github.com/Kentico/gatsby-starter-kontent) to see a sample site. +- Explore the [Kontent Gatsby starter Lumen](https://github.com/Kentico/gatsby-starter-kontent-lumen) to see a more complete example. diff --git a/docs/docs/sourcing-from-sanity.md b/docs/docs/sourcing-from-sanity.md index 42dba71f17b83..f2b1216547184 100644 --- a/docs/docs/sourcing-from-sanity.md +++ b/docs/docs/sourcing-from-sanity.md @@ -65,20 +65,20 @@ Gatsby cannot know about the types and fields without having documents of the gi ## Using images -Image fields will have the image URL available under the `field.asset.url` key, but you can also use [gatsby-image](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-image) for a smooth experience. It's a React component that enables responsive images and advanced image loading techniques. It works great with this source plugin, without requiring any additional build steps. +Image fields will have the image URL available under the `field.asset.url` key, but you can also use [gatsby-plugin-image](/plugins/gatsby-plugin-image/) for a smooth experience. It's a React component that enables responsive images and advanced image loading techniques. It works great with this source plugin, without requiring any additional build steps. -There are two types of responsive images supported; _fixed_ and _fluid_. To decide between the two, ask yourself: "do I know the exact size this image will be?" If yes, you'll want to use _fixed_. If not and its width and/or height need to vary depending on the size of the screen, then you'll want to use _fluid_. +There are three types of responsive images supported; _constrained_ (the default), _fixed_, and _full width_. To decide which one to use, ask yourself: "do I know the exact size this image will be?" If yes, you'll want to use _fixed_. If no and its width and/or height need to vary depending on the size of the screen, then you'll want to use _constrained_ or _full width_. (For more information, refer to the [`layout` option in the `gatsby-plugin-image` Reference Guide](/docs/reference/built-in-components/gatsby-plugin-image/#layout)). -### Fluid +### Constrained ```jsx import React from "react" -import Img from "gatsby-image" +import { GatsbyImage } from "gatsby-plugin-image" const Person = ({ data }) => (

    {data.sanityPerson.name}

    - +
    ) @@ -90,9 +90,7 @@ export const query = graphql` name profileImage { asset { - fluid(maxWidth: 700) { - ...GatsbySanityImageFluid - } + gatsbyImageData(placeholder: BLURRED) } } } @@ -104,12 +102,12 @@ export const query = graphql` ```jsx import React from "react" -import Img from "gatsby-image" +import { GatsbyImage } from "gatsby-plugin-image" const Person = ({ data }) => (

    {data.sanityPerson.name}

    - +
    ) @@ -121,9 +119,7 @@ export const query = graphql` name profileImage { asset { - fixed(width: 400) { - ...GatsbySanityImageFixed - } + gatsbyImageData(layout: FIXED, placeholder: BLURRED, width: 400) } } } @@ -131,19 +127,6 @@ export const query = graphql` ` ``` -### Available fragments - -These are the fragments available on image assets, which allows lookup of the fields required by gatsby-image in various modes: - -- `GatsbySanityImageFixed` -- `GatsbySanityImageFixed_noBase64` -- `GatsbySanityImageFixed_withWebp` -- `GatsbySanityImageFixed_withWebp_noBase64` -- `GatsbySanityImageFluid` -- `GatsbySanityImageFluid_noBase64` -- `GatsbySanityImageFluid_withWebp` -- `GatsbySanityImageFluid_withWebp_noBase64` - ## Overlaying drafts Sometimes you might be working on some new content that is not yet published, which you want to make sure looks alright within your Gatsby site. By setting the `overlayDrafts` setting to `true`, the draft versions will as the option says "overlay" the regular document. In terms of Gatsby nodes, it will _replace_ the published document with the draft. diff --git a/docs/docs/tutorial/part-1/index.mdx b/docs/docs/tutorial/part-1/index.mdx index fc9eb81ae3677..c754f6910ada8 100644 --- a/docs/docs/tutorial/part-1/index.mdx +++ b/docs/docs/tutorial/part-1/index.mdx @@ -227,7 +227,7 @@ GitHub is a website that many developers use to back up and share their code onl 3. To push your existing code from your computer to your new GitHub repository, enter the commands below in the command line. Be sure to swap out `YOUR_GITHUB_USERNAME` for your actual username and `YOUR_GITHUB_REPO_NAME` with the name you gave your GitHub repo (like `my-first-gatsby-site`). ``` - git remote add origin https://github.com/YOUR_GITHUB_USERNAME/YOUR_GITHUB_REPO_NAME.git + git remote add origin git@github.com:YOUR_GITHUB_USERNAME/YOUR_GITHUB_REPO_NAME.git git branch -M main git push -u origin main ``` @@ -264,6 +264,12 @@ To connect your code on GitHub to your Gatsby Cloud account, do the following: 1. If this is your first time connecting GitHub to Gatsby Cloud, you'll need to give Gatsby Cloud permission to access your GitHub account. When asked, **"Where should we host this new project?"** click the **"Select destination"** button. + + + **Note:** If you are part of more than one GitHub organization, you will need to first select the organization with which the repository resides at this step before selecting the repository itself. + + + ![The "Repository" tab of the "Add a site" screen.](./04-select-destination.png) 1. A new browser window should open, where GitHub will ask you whether you want to give Gatsby Cloud permission to your GitHub repositories. You can choose whether to give Gatsby Cloud access to all of your GitHub repositories or to only the repository you created (`my-first-gatsby-site`). Then click **"Install"**. diff --git a/docs/docs/tutorial/part-5/index.mdx b/docs/docs/tutorial/part-5/index.mdx index a614da0182f66..dd3e14e680d3c 100644 --- a/docs/docs/tutorial/part-5/index.mdx +++ b/docs/docs/tutorial/part-5/index.mdx @@ -174,7 +174,6 @@ The `gatsby-plugin-mdx` package requires a few additional dependencies to run: ` title: "My Super Cool Blog", }, plugins: [ - "gatsby-plugin-gatsby-cloud", "gatsby-plugin-image", "gatsby-plugin-sharp", { @@ -415,10 +414,10 @@ query MyQuery { Now that your GraphQL query is all set up, it's time to replace the page query in your Blog page component. -1. Start by swapping out the `allFile` page query in your Blog page for the one you just created using `allMdx`. (Don't forget to delete the query name!) You'll also need to import the `graphql` tag from the `gatsby` package. +1. Start by swapping out the `allFile` page query in your Blog page for the one you just created using `allMdx`. (Don't forget to delete the query name!) And if you haven't already from completing the [task in Part 4](/docs/tutorial/part-4/#task-use-a-page-query-to-pull-the-list-of-post-filenames-into-your-blog-page), you'll need to import the `graphql` tag from the `gatsby` package. ```js:title=src/pages/blog.js import * as React from 'react' - import { graphql } from 'gatsby' // highlight-line + import { graphql } from 'gatsby' import Layout from '../components/layout' const BlogPage = ({ data }) => { diff --git a/docs/docs/tutorial/part-6/index.mdx b/docs/docs/tutorial/part-6/index.mdx index 540fd8ffd0a1c..b3f85a9c54106 100644 --- a/docs/docs/tutorial/part-6/index.mdx +++ b/docs/docs/tutorial/part-6/index.mdx @@ -308,7 +308,7 @@ The diagram below shows how the query, query variables, and response all fit tog When you use Gatsby's File System Route API, it automatically adds some props into the page template component for each page: -* The `id` for the data layer node is used to create the page. +* The `id` for the data layer node used to create the page. * The field you used to create the dynamic part of the route. (In this case, the `slug` field.) Under the hood, Gatsby makes both of these values available to use as query variables in your page queries. diff --git a/docs/docs/tutorial/part-7/index.mdx b/docs/docs/tutorial/part-7/index.mdx index cc2398e9e8841..7202f55804098 100644 --- a/docs/docs/tutorial/part-7/index.mdx +++ b/docs/docs/tutorial/part-7/index.mdx @@ -354,8 +354,8 @@ Once you have your GraphQL query set up, you can add it to your blog post page t // highlight-start export const query = graphql` - query($slug: String) { - mdx(slug: {eq: $slug}) { + query($id: String) { + mdx(id: {eq: $id}) { body frontmatter { title @@ -533,7 +533,7 @@ Once your changes have been pushed to GitHub, Gatsby Cloud should notice the upd ### Key takeaways * Use the `StaticImage` component if your component always renders the same image (from a relative path or a remote URL). -* Use the `GatsbyImage` component if the image source is changes for different instances of your component (like if it gets passed in as a prop). +* Use the `GatsbyImage` component if the image source changes for different instances of your component (like if it gets passed in as a prop). diff --git a/docs/docs/why-gatsby-uses-graphql.md b/docs/docs/why-gatsby-uses-graphql.md index a3853c823165f..0f04008718037 100644 --- a/docs/docs/why-gatsby-uses-graphql.md +++ b/docs/docs/why-gatsby-uses-graphql.md @@ -220,12 +220,12 @@ In order to load the product and image data into GraphQL, you need to add a few - Optimize images ([`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/)) - Add data about optimized images to Gatsby’s data store ([`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/)) -In addition to the plugins, we’ll use [`gatsby-image`](/plugins/gatsby-image/) to display the optimized images with lazy loading. +In addition to the plugins, we’ll use [`gatsby-plugin-image`](/plugins/gatsby-plugin-image/) to display the optimized images with lazy loading. Install these packages using the command line: ```shell -npm install gatsby-source-filesystem gatsby-transformer-json gatsby-plugin-sharp gatsby-transformer-sharp gatsby-image +npm install gatsby-source-filesystem gatsby-transformer-json gatsby-plugin-sharp gatsby-transformer-sharp gatsby-plugin-image ``` Then add them to `gatsby-config.js`: @@ -330,7 +330,7 @@ Here’s what that looks like in practice: ```jsx:title=src/templates/product-graphql.js import React from "react" import { graphql } from "gatsby" -import Image from "gatsby-image" +import { GatsbyImage } from "gatsby-plugin-image" export const query = graphql` query($slug: String!) { @@ -340,9 +340,7 @@ export const query = graphql` price image { childImageSharp { - fluid { - ...GatsbyImageSharpFluid - } + gatsbyImageData(layout: CONSTRAINED, width: 150) } } } @@ -355,10 +353,10 @@ const Product = ({ data }) => { return (

    {product.title}

    - {product.title}

    {product.price}

    @@ -373,8 +371,7 @@ A few notes about this file: 1. The result of the query is added to the template component as the `data` prop. 2. The image path was automatically converted by the Sharp transformer into a “child node” that includes optimized versions of the image. -3. The query uses a [GraphQL fragment](/plugins/gatsby-image/#fragments) to query all the required data for optimized images. GraphQL fragments _do not work_ in the GraphQL Playground. -4. The `img` tag has been swapped out for a `gatsby-image` component named `Image`. Instead of a `src` attribute, it accepts an object with optimized image data. +3. The `img` tag has been swapped out for a `gatsby-plugin-image` component named `GatsbyImage`. Instead of a `src` attribute, it accepts an object with optimized image data. Save this file, run `gatsby develop`, then open `http://localhost:8000/gql/purple-hat/`: diff --git a/docs/docs/working-with-fonts-and-typography.md b/docs/docs/working-with-fonts-and-typography.md index 5bc7afa97ce63..ec78fd9c0e0b1 100644 --- a/docs/docs/working-with-fonts-and-typography.md +++ b/docs/docs/working-with-fonts-and-typography.md @@ -10,4 +10,4 @@ The three different kinds of fonts covered in this section are: - **[Web fonts](/docs/how-to/styling/using-web-fonts/)**: For when you want to use a font from a service like [Google Fonts](https://fonts.google.com/) or [Typekit Web Fonts](https://fonts.adobe.com/typekit). - **[Typography.js framework](/docs/using-typography-js/)**: For when you want to use a predefined set of fonts from the [Typography.js](https://kyleamathews.github.io/typography.js/) library. -Gatsby doesn’t have an opinion about which [styling approach](/docs/styling/) you choose. Most every possible option is supported through official and community plugins. (If there isn’t a plugin yet for your favorite option, consider [contributing](/docs/creating-plugins) one!) +Gatsby doesn’t have an opinion about which [styling approach](/docs/styling/) you choose. Almost every possible option is supported through official and community plugins. (If there isn’t a plugin yet for your favorite option, consider [contributing](/docs/creating-plugins) one!) diff --git a/docs/docs/working-with-images.md b/docs/docs/working-with-images.md index 67f1ac060c897..f9b6c26b9df4f 100644 --- a/docs/docs/working-with-images.md +++ b/docs/docs/working-with-images.md @@ -6,7 +6,7 @@ _This document uses the deprecated image plugin. Please check out how to work wi Optimizing images is a challenge on any website. To utilize best practices for performance across devices, you need multiple sizes and resolutions of each image. Luckily, Gatsby has several useful [plugins](/docs/plugins/) that work together to do that for images on [page components](/docs/conceptual/building-with-components/#page-components). -The recommended approach is to use [GraphQL queries](/docs/conceptual/graphql-concepts/) to get images of the optimal size or resolution, then, display them with the [`gatsby-image`](/plugins/gatsby-image/) component. +The recommended approach is to use [GraphQL queries](/docs/conceptual/graphql-concepts/) to get images of the optimal size or resolution, then, display them with the [`gatsby-plugin-image`](/plugins/gatsby-plugin-image/) component. ## Query images with GraphQL @@ -15,7 +15,7 @@ Querying images with GraphQL allows you to access the image's data as well as pe You'll need a few plugins for this: - [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) plugin allows you to [query files with GraphQL](/docs/conceptual/graphql-concepts/#images) -- [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp) powers the connections between Sharp and Gatsby Plugins +- [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/) powers the connections between Sharp and Gatsby Plugins - [`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/) allows you to create multiples images of the right sizes and resolutions with a query If the final image is of a fixed size, optimization relies on having multiple resolutions of the image. If it is responsive, meaning it stretches to fill a container or page, optimization relies on having different sizes of the same image. See the [Gatsby Image documentation for more information](/plugins/gatsby-image/#two-types-of-responsive-images). @@ -38,9 +38,9 @@ export const query = graphql` ` ``` -## Optimizing images with gatsby-image +## Optimizing images with gatsby-plugin-image -[`gatsby-image`](/plugins/gatsby-image/) is a plugin that automatically creates React components for optimized images that: +[`gatsby-image`](/plugins/gatsby-plugin-image/) is a plugin that automatically creates React components for optimized images that: > - Loads the optimal size of image for each device size and screen resolution > - Holds the image position while loading so your page doesn't jump around as images load diff --git a/e2e-tests/contentful/schema.gql b/e2e-tests/contentful/schema.gql index 2a8e30403f33d..7a501577d38cb 100644 --- a/e2e-tests/contentful/schema.gql +++ b/e2e-tests/contentful/schema.gql @@ -1,4 +1,4 @@ -### Type definitions saved at 2021-05-21T17:02:49.951Z ### +### Type definitions saved at 2021-09-25T11:33:25.217Z ### type File implements Node @dontInfer { sourceInstanceName: String! @@ -96,43 +96,23 @@ type SitePage implements Node @dontInfer { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON } -type MarkdownHeading { - id: String - value: String - depth: Int -} - -enum MarkdownHeadingLevels { - h1 - h2 - h3 - h4 - h5 - h6 -} - -enum MarkdownExcerptFormats { - PLAIN - HTML - MARKDOWN -} - -type MarkdownWordCount { - paragraphs: Int - sentences: Int - words: Int -} - -type MarkdownRemark implements Node @childOf(mimeTypes: ["text/markdown", "text/x-markdown"], types: ["contentfulTextLongPlainTextNode", "contentfulTextLongMarkdownTextNode", "contentfulTextLongLocalizedTextNode"]) @derivedTypes @dontInfer { - frontmatter: MarkdownRemarkFrontmatter - excerpt: String - rawMarkdownBody: String +type SitePlugin implements Node @dontInfer { + resolve: String + name: String + version: String + nodeAPIs: [String] + browserAPIs: [String] + ssrAPIs: [String] + pluginFilepath: String + pluginOptions: JSON + packageJson: JSON } -type MarkdownRemarkFrontmatter { - title: String +type SiteBuildMetadata implements Node @dontInfer { + buildTime: Date @dateformat } interface ContentfulEntry implements Node { @@ -184,15 +164,16 @@ type ContentfulNumber implements ContentfulReference & ContentfulEntry & Node @d contentful_id: String! node_locale: String! title: String - decimal: Float + integerLocalized: Int spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulNumberSys + metadata: ContentfulNumberMetadata + decimal: Float integer: Int content_reference: [ContentfulContentReference] @link(by: "id", from: "content reference___NODE") @proxy(from: "content reference___NODE") decimalLocalized: Float - integerLocalized: Int } type ContentfulNumberSys @derivedTypes { @@ -211,22 +192,31 @@ type ContentfulNumberSysContentTypeSys { id: String } +type ContentfulNumberMetadata { + tags: [ContentfulTag] @link(by: "id", from: "tags___NODE") +} + +type ContentfulTag implements Node @dontInfer { + name: String! + contentful_id: String! +} + type ContentfulContentReference implements ContentfulReference & ContentfulEntry & Node @derivedTypes @dontInfer { contentful_id: String! node_locale: String! title: String - manyLocalized: [ContentfulNumberContentfulTextUnion] @link(by: "id", from: "manyLocalized___NODE") + one: ContentfulContentReferenceContentfulTextUnion @link(by: "id", from: "one___NODE") + content_reference: [ContentfulContentReference] @link(by: "id", from: "content reference___NODE") @proxy(from: "content reference___NODE") spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulContentReferenceSys oneLocalized: ContentfulNumber @link(by: "id", from: "oneLocalized___NODE") - one: ContentfulContentReferenceContentfulTextUnion @link(by: "id", from: "one___NODE") - content_reference: [ContentfulContentReference] @link(by: "id", from: "content reference___NODE") @proxy(from: "content reference___NODE") many: [ContentfulContentReferenceContentfulNumberContentfulTextUnion] @link(by: "id", from: "many___NODE") + manyLocalized: [ContentfulNumberContentfulTextUnion] @link(by: "id", from: "manyLocalized___NODE") } -union ContentfulNumberContentfulTextUnion = ContentfulNumber | ContentfulText +union ContentfulContentReferenceContentfulTextUnion = ContentfulContentReference | ContentfulText type ContentfulContentReferenceSys @derivedTypes { type: String @@ -244,10 +234,10 @@ type ContentfulContentReferenceSysContentTypeSys { id: String } -union ContentfulContentReferenceContentfulTextUnion = ContentfulContentReference | ContentfulText - union ContentfulContentReferenceContentfulNumberContentfulTextUnion = ContentfulContentReference | ContentfulNumber | ContentfulText +union ContentfulNumberContentfulTextUnion = ContentfulNumber | ContentfulText + type ContentfulText implements ContentfulReference & ContentfulEntry & Node @derivedTypes @dontInfer { contentful_id: String! node_locale: String! @@ -257,12 +247,12 @@ type ContentfulText implements ContentfulReference & ContentfulEntry & Node @der createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulTextSys - shortLocalized: String longMarkdown: contentfulTextLongMarkdownTextNode @link(by: "id", from: "longMarkdown___NODE") + shortLocalized: String longPlain: contentfulTextLongPlainTextNode @link(by: "id", from: "longPlain___NODE") + shortList: [String] short: String content_reference: [ContentfulContentReference] @link(by: "id", from: "content reference___NODE") @proxy(from: "content reference___NODE") - shortList: [String] } type contentfulTextLongLocalizedTextNode implements Node @derivedTypes @childOf(types: ["ContentfulText"]) @dontInfer { @@ -312,14 +302,14 @@ type ContentfulMediaReference implements ContentfulReference & ContentfulEntry & contentful_id: String! node_locale: String! title: String - manyLocalized: [ContentfulAsset] @link(by: "id", from: "manyLocalized___NODE") + one: ContentfulAsset @link(by: "id", from: "one___NODE") spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulMediaReferenceSys - many: [ContentfulAsset] @link(by: "id", from: "many___NODE") oneLocalized: ContentfulAsset @link(by: "id", from: "oneLocalized___NODE") - one: ContentfulAsset @link(by: "id", from: "one___NODE") + many: [ContentfulAsset] @link(by: "id", from: "many___NODE") + manyLocalized: [ContentfulAsset] @link(by: "id", from: "manyLocalized___NODE") } type ContentfulMediaReferenceSys @derivedTypes { @@ -370,14 +360,14 @@ type ContentfulDate implements ContentfulReference & ContentfulEntry & Node @der contentful_id: String! node_locale: String! title: String - dateLocalized: Date @dateformat + dateTimeTimezone: Date @dateformat spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulDateSys - dateTime: Date @dateformat - dateTimeTimezone: Date @dateformat date: Date @dateformat + dateLocalized: Date @dateformat + dateTime: Date @dateformat } type ContentfulDateSys @derivedTypes { @@ -409,8 +399,8 @@ type ContentfulLocation implements ContentfulReference & ContentfulEntry & Node } type ContentfulLocationLocationLocalized { - lat: Float lon: Float + lat: Float } type ContentfulLocationSys @derivedTypes { @@ -438,25 +428,39 @@ type ContentfulJson implements ContentfulReference & ContentfulEntry & Node @der contentful_id: String! node_locale: String! title: String - jsonLocalized: contentfulJsonJsonLocalizedJsonNode @link(by: "id", from: "jsonLocalized___NODE") + json: contentfulJsonJsonJsonNode @link(by: "id", from: "json___NODE") spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulJsonSys - json: contentfulJsonJsonJsonNode @link(by: "id", from: "json___NODE") + jsonLocalized: contentfulJsonJsonLocalizedJsonNode @link(by: "id", from: "jsonLocalized___NODE") } -type contentfulJsonJsonLocalizedJsonNode implements Node @derivedTypes @childOf(types: ["ContentfulJson"]) @dontInfer { +type contentfulJsonJsonJsonNode implements Node @derivedTypes @childOf(types: ["ContentfulJson"]) @dontInfer { age: Int city: String name: String - sys: contentfulJsonJsonLocalizedJsonNodeSys + sys: contentfulJsonJsonJsonNodeSys + Actors: [contentfulJsonJsonJsonNodeActors] } -type contentfulJsonJsonLocalizedJsonNodeSys { +type contentfulJsonJsonJsonNodeSys { type: String } +type contentfulJsonJsonJsonNodeActors { + age: Int + name: String + wife: String + photo: String + weight: Float + Born_At: String @proxy(from: "Born At") + children: [String] + Birthdate: String + hasChildren: Boolean + hasGreyHair: Boolean +} + type ContentfulJsonSys @derivedTypes { type: String revision: Int @@ -473,28 +477,14 @@ type ContentfulJsonSysContentTypeSys { id: String } -type contentfulJsonJsonJsonNode implements Node @derivedTypes @childOf(types: ["ContentfulJson"]) @dontInfer { - Actors: [contentfulJsonJsonJsonNodeActors] - sys: contentfulJsonJsonJsonNodeSys +type contentfulJsonJsonLocalizedJsonNode implements Node @derivedTypes @childOf(types: ["ContentfulJson"]) @dontInfer { name: String age: Int city: String + sys: contentfulJsonJsonLocalizedJsonNodeSys } -type contentfulJsonJsonJsonNodeActors { - name: String - age: Int - Born_At: String @proxy(from: "Born At") - Birthdate: String - photo: String - wife: String - weight: Float - hasChildren: Boolean - hasGreyHair: Boolean - children: [String] -} - -type contentfulJsonJsonJsonNodeSys { +type contentfulJsonJsonLocalizedJsonNodeSys { type: String } @@ -502,21 +492,21 @@ type ContentfulRichText implements ContentfulReference & ContentfulEntry & Node contentful_id: String! node_locale: String! title: String - richTextValidated: ContentfulRichTextRichTextValidated + richText: ContentfulRichTextRichText spaceId: String createdAt: Date @dateformat updatedAt: Date @dateformat sys: ContentfulRichTextSys + richTextValidated: ContentfulRichTextRichTextValidated richTextLocalized: ContentfulRichTextRichTextLocalized - richText: ContentfulRichTextRichText } -type ContentfulRichTextRichTextValidated { +type ContentfulRichTextRichText { raw: String - references: [ContentfulAssetContentfulLocationContentfulNumberContentfulTextUnion] @link(by: "id", from: "references___NODE") + references: [ContentfulAssetContentfulContentReferenceContentfulLocationContentfulTextUnion] @link(by: "id", from: "references___NODE") } -union ContentfulAssetContentfulLocationContentfulNumberContentfulTextUnion = ContentfulAsset | ContentfulLocation | ContentfulNumber | ContentfulText +union ContentfulAssetContentfulContentReferenceContentfulLocationContentfulTextUnion = ContentfulAsset | ContentfulContentReference | ContentfulLocation | ContentfulText type ContentfulRichTextSys @derivedTypes { type: String @@ -534,22 +524,59 @@ type ContentfulRichTextSysContentTypeSys { id: String } -type ContentfulRichTextRichTextLocalized { +type ContentfulRichTextRichTextValidated { raw: String + references: [ContentfulAssetContentfulLocationContentfulNumberContentfulTextUnion] @link(by: "id", from: "references___NODE") } -type ContentfulRichTextRichText { +union ContentfulAssetContentfulLocationContentfulNumberContentfulTextUnion = ContentfulAsset | ContentfulLocation | ContentfulNumber | ContentfulText + +type ContentfulRichTextRichTextLocalized { raw: String - references: [ContentfulAssetContentfulContentReferenceContentfulLocationContentfulTextUnion] @link(by: "id", from: "references___NODE") } -union ContentfulAssetContentfulContentReferenceContentfulLocationContentfulTextUnion = ContentfulAsset | ContentfulContentReference | ContentfulLocation | ContentfulText - type ContentfulValidatedContentReference implements ContentfulReference & ContentfulEntry & Node @dontInfer { contentful_id: String! node_locale: String! } +type MarkdownHeading { + id: String + value: String + depth: Int +} + +enum MarkdownHeadingLevels { + h1 + h2 + h3 + h4 + h5 + h6 +} + +enum MarkdownExcerptFormats { + PLAIN + HTML + MARKDOWN +} + +type MarkdownWordCount { + paragraphs: Int + sentences: Int + words: Int +} + +type MarkdownRemark implements Node @childOf(mimeTypes: ["text/markdown", "text/x-markdown"], types: ["contentfulTextLongPlainTextNode", "contentfulTextLongMarkdownTextNode", "contentfulTextLongLocalizedTextNode"]) @derivedTypes @dontInfer { + frontmatter: MarkdownRemarkFrontmatter + excerpt: String + rawMarkdownBody: String +} + +type MarkdownRemarkFrontmatter { + title: String +} + type ContentfulContentType implements Node @derivedTypes @dontInfer { name: String displayField: String diff --git a/e2e-tests/contentful/snapshots.js b/e2e-tests/contentful/snapshots.js index eebeb902df067..2207ca7c22e03 100644 --- a/e2e-tests/contentful/snapshots.js +++ b/e2e-tests/contentful/snapshots.js @@ -28,7 +28,7 @@ module.exports = { }, "rich-text": { "rich-text: All Features": { - "1": "
    \n

    Rich Text: All Features

    \n

    The European languages

    \n

    are members of the same family. Their separate existence is a myth. For:

    \n
      \n
    • \n

      science

      \n
    • \n
    • \n

      music

      \n
    • \n
    • \n

      sport

      \n
    • \n
    • \n

      etc

      \n
    • \n
    \n

    Europe uses the same vocabulary.

    \n
    \n
    \"\"\n\n \n \n \n
    \n

    \n
    \n

    The languages only differ in:

    \n
      \n
    1. \n

      their grammar

      \n
    2. \n
    3. \n

      their pronunciation

      \n
    4. \n
    5. \n

      their most common words

      \n
    6. \n
    7. \n

      [Inline-ContentfulText]\n Text: Short\n :\n The quick brown fox jumps over the lazy dog.

      \n
    8. \n
    \n

    Everyone realizes why a new common language would be desirable: one could\n refuse to pay expensive translators.

    \n

    {\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n }

    \n

    To achieve this, it would be necessary to have uniform grammar,\n pronunciation and more common words.

    \n

    [ContentfulLocation] Lat:\n 52.51627\n , Long:\n 13.3777

    \n
    \n

    If several languages coalesce, the grammar of the resulting language is\n more simple and regular than that of the individual languages.

    \n
    \n

    The new common language will be more simple and regular than the existing\n European languages. It will be as simple as Occidental; in fact, it will be\n

    \n
    \n
    " + "1": "
    \n

    Rich Text: All Features

    \n

    The European languages

    \n

    are members of the same family. Their separate existence is a myth. For:

    \n
      \n
    • \n

      science

      \n
    • \n
    • \n

      music

      \n
    • \n
    • \n

      sport

      \n
    • \n
    • \n

      etc

      \n
    • \n
    \n

    Europe uses the same vocabulary.

    \n
    \n
    \"\"\n\n \n \n \n
    \n

    \n
    \n

    The languages only differ in:

    \n
      \n
    1. \n

      their grammar

      \n
    2. \n
    3. \n

      their pronunciation

      \n
    4. \n
    5. \n

      their most common words

      \n
    6. \n
    7. \n

      [Inline-ContentfulText]\n Text: Short\n :\n The quick brown fox jumps over the lazy dog.

      \n
    8. \n
    \n

    Everyone realizes why a new common language would be desirable: one could\n refuse to pay expensive translators.

    \n

    {\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n }

    \n

    To achieve this, it would be necessary to have uniform grammar,\n pronunciation and more common words.

    \n

    [ContentfulLocation] Lat:\n 52.51627\n , Long:\n 13.3777

    \n
    \n

    If several languages coalesce, the grammar of the resulting language is\n more simple and regular than that of the individual languages.

    \n
    \n

    The new common language will be more simple and regular than the existing\n European languages. It will be as simple as Occidental; in fact, it will be\n

    \n
    \n
    " }, "rich-text: Basic": { "1": "
    \n

    Rich Text: Basic

    \n

    The European languages

    \n

    are members of the same family. Their separate existence is a myth. For:

    \n
      \n
    • \n

      science

      \n
    • \n
    • \n

      music

      \n
    • \n
    • \n

      sport

      \n
    • \n
    • \n

      etc

      \n
    • \n
    \n

    Europe uses the same vocabulary.

    \n
    \n

    The languages only differ in:

    \n
      \n
    1. \n

      their grammar

      \n
    2. \n
    3. \n

      their pronunciation

      \n
    4. \n
    5. \n

      their most common words

      \n
    6. \n
    \n

    Everyone realizes why a new common language would be desirable: one could\n refuse to pay expensive translators.

    \n

    {\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n }

    \n

    To achieve this, it would be necessary to have uniform grammar,\n pronunciation and more common words.

    \n
    \n

    If several languages coalesce, the grammar of the resulting language is\n more simple and regular than that of the individual languages.

    \n
    \n

    The new common language will be more simple and regular than the existing\n European languages. It will be as simple as Occidental; in fact, it will be\n

    \n
    \n
    " @@ -37,7 +37,7 @@ module.exports = { "1": "
    \n

    Rich Text: Embedded Entry

    \n

    Embedded Entry

    \n

    [ContentfulText]\n The quick brown fox jumps over the lazy dog.

    \n

    \n

    \n
    \n
    " }, "rich-text: Embedded Asset": { - "1": "
    \n

    Rich Text: Embedded asset

    \n

    Embedded Asset

    \n
    \n
    \n \n \n \n
    \n

    \n

    \n

    \n
    \n
    " + "1": "
    \n

    Rich Text: Embedded asset

    \n

    Embedded Asset

    \n
    \n
    \n \n \n \n
    \n

    \n

    \n

    \n
    \n
    " }, "rich-text: Embedded Entry With Deep Reference Loop": { "1": "
    \n

    Rich Text: Embedded entry with deep reference loop

    \n

    Embedded entry with deep reference loop

    \n

    [ContentfulReference]\n Content Reference: Many (2nd level loop)\n : [\n Number: Integer, Text: Short, Content Reference: One (Loop A ->\n B)\n ]

    \n

    \n

    \n
    \n
    " diff --git a/e2e-tests/development-runtime/cypress/integration/functionality/query-data-caches.js b/e2e-tests/development-runtime/cypress/integration/functionality/query-data-caches.js index c6b9148e77a9a..e8a999aa5ac0a 100644 --- a/e2e-tests/development-runtime/cypress/integration/functionality/query-data-caches.js +++ b/e2e-tests/development-runtime/cypress/integration/functionality/query-data-caches.js @@ -110,7 +110,9 @@ function pageTitleAndDataAssertion(config) { function runTests(config) { preTestSetup(config) - cy.visit(`/query-data-caches/${config.slug}/page-A/`).waitForRouteChange() + cy.visit(`/query-data-caches/${config.slug}/page-A/`, { + failOnStatusCode: config.initialPage !== `404`, + }).waitForRouteChange() setupForAssertingNotReloading() diff --git a/e2e-tests/development-runtime/cypress/integration/ssr.js b/e2e-tests/development-runtime/cypress/integration/ssr.js new file mode 100644 index 0000000000000..00dc2236c4fd4 --- /dev/null +++ b/e2e-tests/development-runtime/cypress/integration/ssr.js @@ -0,0 +1,108 @@ +const staticPath = `/ssr/static-path/` +const paramPath = `/ssr/param-path/` +const wildcardPath = `/ssr/wildcard-path/` + +describe(`Static path ('${staticPath}')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(staticPath).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(staticPath + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{}`) + }) + + it(`Client navigation to same path with different query params`, () => { + cy.visit(staticPath).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath + `?foo=baz`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"baz"}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + }) +}) + +describe(`Param path ('${paramPath}:param')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(paramPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(paramPath + `foo/` + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + }) + + it(`Client navigation to same param path with different query params and url params`, () => { + cy.visit(paramPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + cy.window() + .then(win => win.___navigate(paramPath + `foo/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + cy.window() + .then(win => win.___navigate(paramPath + `baz/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"baz"}`) + cy.window() + .then(win => win.___navigate(paramPath + `baz/`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"baz"}`) + }) +}) + +describe(`Wildcard path ('${wildcardPath}*')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(wildcardPath + `foo/nested/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo/nested"}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(wildcardPath + `foo/nested/` + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo/nested"}`) + }) + + it(`Client navigation to same param path with different query params and url params`, () => { + cy.visit(wildcardPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `foo/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `baz/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"baz"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `baz/`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"baz"}`) + }) +}) diff --git a/e2e-tests/development-runtime/src/pages/ssr/param-path/[param].js b/e2e-tests/development-runtime/src/pages/ssr/param-path/[param].js new file mode 100644 index 0000000000000..af860ab139565 --- /dev/null +++ b/e2e-tests/development-runtime/src/pages/ssr/param-path/[param].js @@ -0,0 +1,22 @@ +import React from "react" + +export default function Params({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + return { + props: { + arg, + }, + } +} diff --git a/e2e-tests/development-runtime/src/pages/ssr/static-path.js b/e2e-tests/development-runtime/src/pages/ssr/static-path.js new file mode 100644 index 0000000000000..32c669c4337c9 --- /dev/null +++ b/e2e-tests/development-runtime/src/pages/ssr/static-path.js @@ -0,0 +1,29 @@ +import React from "react" +import path from "path" +import * as fs from "fs" + +export default function StaticPath({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + const pkgJSON = JSON.parse( + fs.readFileSync(path.join(__dirname, "../../../package.json"), "utf8") + ) + + return { + props: { + version: pkgJSON.version, + arg, + }, + } +} diff --git a/e2e-tests/development-runtime/src/pages/ssr/wildcard-path/[...wildcard].js b/e2e-tests/development-runtime/src/pages/ssr/wildcard-path/[...wildcard].js new file mode 100644 index 0000000000000..9af5b2c9e2f71 --- /dev/null +++ b/e2e-tests/development-runtime/src/pages/ssr/wildcard-path/[...wildcard].js @@ -0,0 +1,22 @@ +import React from "react" + +export default function Wildcard({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + return { + props: { + arg, + }, + } +} diff --git a/e2e-tests/production-runtime/cypress/integration/redirects.js b/e2e-tests/production-runtime/cypress/integration/redirects.js index 49229e27fa8dc..82e83350723ca 100644 --- a/e2e-tests/production-runtime/cypress/integration/redirects.js +++ b/e2e-tests/production-runtime/cypress/integration/redirects.js @@ -75,7 +75,7 @@ describe(`Redirects`, () => { failOnStatusCode: false, }).waitForRouteChange() - cy.location(`pathname`).should(`equal`, `/redirect-search-hash/`) + cy.location(`pathname`).should(`equal`, `/redirect-search-hash`) cy.location(`hash`).should(`equal`, `#anchor`) cy.location(`search`).should(`equal`, ``) }) @@ -96,7 +96,7 @@ describe(`Redirects`, () => { failOnStatusCode: false, }).waitForRouteChange() - cy.location(`pathname`).should(`equal`, `/redirect-search-hash/`) + cy.location(`pathname`).should(`equal`, `/redirect-search-hash`) cy.location(`hash`).should(`equal`, ``) cy.location(`search`).should(`equal`, `?query_param=hello`) }) @@ -117,7 +117,7 @@ describe(`Redirects`, () => { failOnStatusCode: false, }).waitForRouteChange() - cy.location(`pathname`).should(`equal`, `/redirect-search-hash/`) + cy.location(`pathname`).should(`equal`, `/redirect-search-hash`) cy.location(`hash`).should(`equal`, `#anchor`) cy.location(`search`).should(`equal`, `?query_param=hello`) }) diff --git a/e2e-tests/production-runtime/cypress/integration/ssr.js b/e2e-tests/production-runtime/cypress/integration/ssr.js new file mode 100644 index 0000000000000..f191a0089cce9 --- /dev/null +++ b/e2e-tests/production-runtime/cypress/integration/ssr.js @@ -0,0 +1,134 @@ +const staticPath = `/ssr/static-path/` +const paramPath = `/ssr/param-path/` +const wildcardPath = `/ssr/wildcard-path/` + +describe(`Static path ('${staticPath}')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(staticPath).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(staticPath + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{}`) + }) + + it(`Client navigation to same path with different query params`, () => { + cy.visit(staticPath).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath + `?foo=baz`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"baz"}`) + cy.getTestElement(`params`).contains(`{}`) + cy.window() + .then(win => win.___navigate(staticPath)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{}`) + }) +}) + +describe(`Param path ('${paramPath}:param')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(paramPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(paramPath + `foo/` + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + }) + + it(`Client navigation to same param path with different query params and url params`, () => { + cy.visit(paramPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + cy.window() + .then(win => win.___navigate(paramPath + `foo/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"foo"}`) + cy.window() + .then(win => win.___navigate(paramPath + `baz/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"param":"baz"}`) + cy.window() + .then(win => win.___navigate(paramPath + `baz/`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"param":"baz"}`) + }) +}) + +describe(`Wildcard path ('${wildcardPath}*')`, () => { + it(`Direct visit no query params`, () => { + cy.visit(wildcardPath + `foo/nested/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo/nested"}`) + }) + + it(`Direct visit with query params`, () => { + cy.visit(wildcardPath + `foo/nested/` + `?foo=bar`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo/nested"}`) + }) + + it(`Client navigation to same param path with different query params and url params`, () => { + cy.visit(wildcardPath + `foo/`).waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `foo/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"foo"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `baz/` + `?foo=bar`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{"foo":"bar"}`) + cy.getTestElement(`params`).contains(`{"wildcard":"baz"}`) + cy.window() + .then(win => win.___navigate(wildcardPath + `baz/`)) + .waitForRouteChange() + cy.getTestElement(`query`).contains(`{}`) + cy.getTestElement(`params`).contains(`{"wildcard":"baz"}`) + }) +}) + +describe(`500 status`, () => { + const errorPath = `/ssr/error-path/` + + it(`Display 500 page on direct navigation`, () => { + cy.visit(errorPath, { failOnStatusCode: false }).waitForRouteChange() + + cy.location(`pathname`) + .should(`equal`, errorPath) + .getTestElement(`500`) + .should(`exist`) + }) + + it(`Display 500 page on client navigation`, () => { + cy.visit(`/`).waitForRouteChange() + + cy.window() + .then(win => win.___navigate(errorPath)) + .waitForRouteChange() + + cy.location(`pathname`) + .should(`equal`, errorPath) + .getTestElement(`500`) + .should(`exist`) + }) +}) diff --git a/e2e-tests/production-runtime/src/pages/500.js b/e2e-tests/production-runtime/src/pages/500.js new file mode 100644 index 0000000000000..ef502460313d8 --- /dev/null +++ b/e2e-tests/production-runtime/src/pages/500.js @@ -0,0 +1,17 @@ +import * as React from "react" +import { Link } from "gatsby" + +import Layout from "../components/layout" + +const InternalServerErrorPage = () => ( + +

    INTERNAL SERVER ERROR

    +

    Page could not be displayed

    +
    500
    + + Go to Index + +
    +) + +export default InternalServerErrorPage diff --git a/e2e-tests/production-runtime/src/pages/ssr/error-path.js b/e2e-tests/production-runtime/src/pages/ssr/error-path.js new file mode 100644 index 0000000000000..34014e10769c5 --- /dev/null +++ b/e2e-tests/production-runtime/src/pages/ssr/error-path.js @@ -0,0 +1,13 @@ +import React from "react" + +export default function ErrorPath({ serverData }) { + return ( +
    +
    This will never render
    +
    + ) +} + +export function getServerData() { + throw new Error(`Some runtime error`) +} diff --git a/e2e-tests/production-runtime/src/pages/ssr/param-path/[param].js b/e2e-tests/production-runtime/src/pages/ssr/param-path/[param].js new file mode 100644 index 0000000000000..af860ab139565 --- /dev/null +++ b/e2e-tests/production-runtime/src/pages/ssr/param-path/[param].js @@ -0,0 +1,22 @@ +import React from "react" + +export default function Params({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + return { + props: { + arg, + }, + } +} diff --git a/e2e-tests/production-runtime/src/pages/ssr/static-path.js b/e2e-tests/production-runtime/src/pages/ssr/static-path.js new file mode 100644 index 0000000000000..ed3265bef789f --- /dev/null +++ b/e2e-tests/production-runtime/src/pages/ssr/static-path.js @@ -0,0 +1,22 @@ +import React from "react" + +export default function StaticPath({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + return { + props: { + arg, + }, + } +} diff --git a/e2e-tests/production-runtime/src/pages/ssr/wildcard-path/[...wildcard].js b/e2e-tests/production-runtime/src/pages/ssr/wildcard-path/[...wildcard].js new file mode 100644 index 0000000000000..9af5b2c9e2f71 --- /dev/null +++ b/e2e-tests/production-runtime/src/pages/ssr/wildcard-path/[...wildcard].js @@ -0,0 +1,22 @@ +import React from "react" + +export default function Wildcard({ serverData }) { + return ( +
    +

    Query

    +
    {JSON.stringify(serverData?.arg?.query)}
    +

    Params

    +
    {JSON.stringify(serverData?.arg?.params)}
    +

    Debug

    +
    {JSON.stringify({ serverData }, null, 2)}
    +
    + ) +} + +export function getServerData(arg) { + return { + props: { + arg, + }, + } +} diff --git a/examples/README.md b/examples/README.md index 4420e0206356f..c5a6e0db56c55 100644 --- a/examples/README.md +++ b/examples/README.md @@ -20,3 +20,16 @@ Complex/complete websites are for studying how to build more complex websites. - Notifications setup to ping PRs on success/failure of build - For `using-x` websites, link to the site from the plugin README and to the plugin(s) from the website. + +## Building all the example websites + +There's also a bash script in this folder called `build-all-examples.sh`, which automates the process of changing into each example folder, running `npm i`, and running `gatsby build`. + +To execute this script, run the following commands from the terminal: + +```sh +cd examples +./build-all-examples.sh > build-results.txt +``` + +🚨 WARNING: This script takes a LONG time to run. (Hours.) diff --git a/examples/build-all-examples.sh b/examples/build-all-examples.sh new file mode 100755 index 0000000000000..10450da9b53e8 --- /dev/null +++ b/examples/build-all-examples.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# 🚨 WARNING: This script takes a LONG time to run. (Hours.) + +# To use this script, first run the following from the command line: +# cd examples +# ./build-all-examples.sh > build-results.txt + +# Output will be put into a new file at examples/build-results.txt + +# NOTE: Some of the builds will fail because the folder structure +# for that example is different. e.g., examples/creating-source-plugins/ +# contains multiple Gatsby sites, each in their own folder. +# +# This script won't catch all those edge cases. It's mainly an attempt +# to handle all the easy cases, while identifying individual failing +# examples that need to be investigated manually. + +# For each directory in examples/ +for exampleDirectory in ./*/; do + # Debugging? Uncomment conditional below to test only 2 examples + # Expected behavior: + # - creating-source-plugins fails (since folder contains nested Gatsby sites) + # - client-only-paths succeeds + # + # if [[ $exampleDirectory != "./creating-source-plugins/" && $exampleDirectory != "./client-only-paths/" ]]; then + # continue + # fi + + cd $exampleDirectory + echo "👀 CHECKING: $exampleDirectory" + + echo "Installing $exampleDirectory..." + if npm install --no-save > /dev/null 2>&1; then + # --no-save flag prevents empty newline from being added to the end of package.json + echo "Successfully installed: $exampleDirectory" + else + echo "🚨 ERROR installing: $exampleDirectory" + cd .. + continue + fi + + echo "Building $exampleDirectory..." + if gatsby build > /dev/null 2>&1; then + echo "✅ SUCCESS building: $exampleDirectory" + else + echo "🚨 ERROR building: $exampleDirectory" + fi + + # Move back into the examples/ directory + cd .. + +done diff --git a/integration-tests/artifacts/gatsby-config.js b/integration-tests/artifacts/gatsby-config.js index e2b647bcbfc76..257509b39ed85 100644 --- a/integration-tests/artifacts/gatsby-config.js +++ b/integration-tests/artifacts/gatsby-config.js @@ -6,8 +6,5 @@ module.exports = { github: `sidharthachatterjee`, moreInfo: `Sid is amazing`, }, - flags: { - PRESERVE_WEBPACK_CACHE: true, - }, plugins: [`gatsby-plugin-webpack-1`, `gatsby-plugin-webpack-2`], } diff --git a/integration-tests/functions/__tests__/__snapshots__/functions-dev.js.snap b/integration-tests/functions/__tests__/__snapshots__/functions-dev.js.snap index 8a67d275d8f84..ff56c6b025dde 100644 --- a/integration-tests/functions/__tests__/__snapshots__/functions-dev.js.snap +++ b/integration-tests/functions/__tests__/__snapshots__/functions-dev.js.snap @@ -1,5 +1,19 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`develop dynamic routes param routes 1`] = ` +Object { + "super": "additional", + "userId": "23", +} +`; + +exports[`develop dynamic routes unnamed wildcard routes 1`] = ` +Object { + "*": "super", + "0": "super", +} +`; + exports[`develop functions can parse different ways of sending data file in multipart/form 1`] = ` Array [ Object { @@ -90,35 +104,22 @@ Object { } `; -exports[`develop routing dynamic routes 1`] = ` -Object { - "super": "additional", - "userId": "23", -} -`; - -exports[`develop routing dynamic routes 2`] = ` -Object { - "0": "super", -} -`; - -exports[`develop routing routes with special characters 1`] = `"I-Am-Capitalized.js"`; +exports[`develop routes with special characters 1`] = `"I-Am-Capitalized.js"`; -exports[`develop routing routes with special characters 2`] = `"some whitespace.js"`; +exports[`develop routes with special characters 2`] = `"some whitespace.js"`; -exports[`develop routing routes with special characters 3`] = `"with-äöü-umlaut.js"`; +exports[`develop routes with special characters 3`] = `"with-äöü-umlaut.js"`; -exports[`develop routing routes with special characters 4`] = `"some-àè-french.js"`; +exports[`develop routes with special characters 4`] = `"some-àè-french.js"`; -exports[`develop routing routes with special characters 5`] = `"some-אודות.js"`; +exports[`develop routes with special characters 5`] = `"some-אודות.js"`; -exports[`develop routing secondary-level API 1`] = `"I am at a secondary-level"`; +exports[`develop secondary-level API 1`] = `"I am at a secondary-level"`; -exports[`develop routing secondary-level API 2`] = `"I am another sub-directory function"`; +exports[`develop secondary-level API 2`] = `"I am another sub-directory function"`; -exports[`develop routing secondary-level API with index.js 1`] = `"I am an index.js in a sub-directory!"`; +exports[`develop secondary-level API with index.js 1`] = `"I am an index.js in a sub-directory!"`; -exports[`develop routing top-level API 1`] = `"I am at the top-level"`; +exports[`develop top-level API 1`] = `"I am at the top-level"`; exports[`develop typescript typescript functions work 1`] = `"I am typescript"`; diff --git a/integration-tests/functions/__tests__/__snapshots__/functions-prod.js.snap b/integration-tests/functions/__tests__/__snapshots__/functions-prod.js.snap index d46bdd617bc45..72ee383760b68 100644 --- a/integration-tests/functions/__tests__/__snapshots__/functions-prod.js.snap +++ b/integration-tests/functions/__tests__/__snapshots__/functions-prod.js.snap @@ -1,5 +1,19 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`production dynamic routes param routes 1`] = ` +Object { + "super": "additional", + "userId": "23", +} +`; + +exports[`production dynamic routes unnamed wildcard routes 1`] = ` +Object { + "*": "super", + "0": "super", +} +`; + exports[`production functions can parse different ways of sending data file in multipart/form 1`] = ` Array [ Object { @@ -86,35 +100,22 @@ Object { } `; -exports[`production routing dynamic routes 1`] = ` -Object { - "super": "additional", - "userId": "23", -} -`; - -exports[`production routing dynamic routes 2`] = ` -Object { - "0": "super", -} -`; - -exports[`production routing routes with special characters 1`] = `"I-Am-Capitalized.js"`; +exports[`production routes with special characters 1`] = `"I-Am-Capitalized.js"`; -exports[`production routing routes with special characters 2`] = `"some whitespace.js"`; +exports[`production routes with special characters 2`] = `"some whitespace.js"`; -exports[`production routing routes with special characters 3`] = `"with-äöü-umlaut.js"`; +exports[`production routes with special characters 3`] = `"with-äöü-umlaut.js"`; -exports[`production routing routes with special characters 4`] = `"some-àè-french.js"`; +exports[`production routes with special characters 4`] = `"some-àè-french.js"`; -exports[`production routing routes with special characters 5`] = `"some-אודות.js"`; +exports[`production routes with special characters 5`] = `"some-אודות.js"`; -exports[`production routing secondary-level API 1`] = `"I am at a secondary-level"`; +exports[`production secondary-level API 1`] = `"I am at a secondary-level"`; -exports[`production routing secondary-level API 2`] = `"I am another sub-directory function"`; +exports[`production secondary-level API 2`] = `"I am another sub-directory function"`; -exports[`production routing secondary-level API with index.js 1`] = `"I am an index.js in a sub-directory!"`; +exports[`production secondary-level API with index.js 1`] = `"I am an index.js in a sub-directory!"`; -exports[`production routing top-level API 1`] = `"I am at the top-level"`; +exports[`production top-level API 1`] = `"I am at the top-level"`; exports[`production typescript typescript functions work 1`] = `"I am typescript"`; diff --git a/integration-tests/functions/gatsby-config.js b/integration-tests/functions/gatsby-config.js index 445d1dbc7e60c..8436e938e9234 100644 --- a/integration-tests/functions/gatsby-config.js +++ b/integration-tests/functions/gatsby-config.js @@ -1,6 +1,5 @@ module.exports = { flags: { - FUNCTIONS: true, DEV_SSR: true, }, siteMetadata: { diff --git a/integration-tests/functions/src/api/named-wildcard/[...foo].js b/integration-tests/functions/src/api/named-wildcard/[...foo].js new file mode 100644 index 0000000000000..c585268295a4e --- /dev/null +++ b/integration-tests/functions/src/api/named-wildcard/[...foo].js @@ -0,0 +1,3 @@ +export default function (req, res) { + res.json(req.params) +} diff --git a/integration-tests/functions/test-helpers.js b/integration-tests/functions/test-helpers.js index 2951738b6f440..665697864460d 100644 --- a/integration-tests/functions/test-helpers.js +++ b/integration-tests/functions/test-helpers.js @@ -7,63 +7,79 @@ const FormData = require("form-data") export function runTests(env, host) { describe(env, () => { - describe(`routing`, () => { - test(`top-level API`, async () => { - const result = await fetch(`${host}/api/top-level`).then(res => - res.text() - ) + test(`top-level API`, async () => { + const result = await fetch(`${host}/api/top-level`).then(res => + res.text() + ) - expect(result).toMatchSnapshot() - }) - test(`secondary-level API`, async () => { - const result = await fetch( - `${host}/api/a-directory/function` - ).then(res => res.text()) + expect(result).toMatchSnapshot() + }) + test(`secondary-level API`, async () => { + const result = await fetch(`${host}/api/a-directory/function`).then(res => + res.text() + ) - expect(result).toMatchSnapshot() - }) - test(`secondary-level API with index.js`, async () => { - const result = await fetch(`${host}/api/a-directory`).then(res => - res.text() - ) + expect(result).toMatchSnapshot() + }) + test(`secondary-level API with index.js`, async () => { + const result = await fetch(`${host}/api/a-directory`).then(res => + res.text() + ) - expect(result).toMatchSnapshot() - }) - test(`secondary-level API`, async () => { - const result = await fetch(`${host}/api/dir/function`).then(res => - res.text() - ) + expect(result).toMatchSnapshot() + }) + test(`secondary-level API`, async () => { + const result = await fetch(`${host}/api/dir/function`).then(res => + res.text() + ) + + expect(result).toMatchSnapshot() + }) + + test(`routes with special characters`, async () => { + const routes = [ + `${host}/api/I-Am-Capitalized`, + `${host}/api/some whitespace`, + `${host}/api/with-äöü-umlaut`, + `${host}/api/some-àè-french`, + encodeURI(`${host}/api/some-אודות`), + ] + + for (const route of routes) { + const result = await fetch(route).then(res => res.text()) expect(result).toMatchSnapshot() - }) - test(`routes with special characters`, async () => { - const routes = [ - `${host}/api/I-Am-Capitalized`, - `${host}/api/some whitespace`, - `${host}/api/with-äöü-umlaut`, - `${host}/api/some-àè-french`, - encodeURI(`${host}/api/some-אודות`), - ] + } + }) + + describe(`dynamic routes`, () => { + test(`param routes`, async () => { + const routes = [`${host}/api/users/23/additional`] for (const route of routes) { - const result = await fetch(route).then(res => res.text()) + const result = await fetch(route).then(res => res.json()) expect(result).toMatchSnapshot() } }) - - test(`dynamic routes`, async () => { - const routes = [ - `${host}/api/users/23/additional`, - `${host}/api/dir/super`, - ] - + test(`unnamed wildcard routes`, async () => { + const routes = [`${host}/api/dir/super`] for (const route of routes) { const result = await fetch(route).then(res => res.json()) expect(result).toMatchSnapshot() } }) + test(`named wildcard routes`, async () => { + const route = `${host}/api/named-wildcard/super` + const result = await fetch(route).then(res => res.json()) + + expect(result).toMatchInlineSnapshot(` + Object { + "foo": "super", + } + `) + }) }) describe(`environment variables`, () => { diff --git a/integration-tests/gatsby-cli/__tests__/build.js b/integration-tests/gatsby-cli/__tests__/build.js index 724150a93662a..e31a54dee070a 100644 --- a/integration-tests/gatsby-cli/__tests__/build.js +++ b/integration-tests/gatsby-cli/__tests__/build.js @@ -25,7 +25,6 @@ describe(`gatsby build`, () => { logs.should.contain(`success createPages`) logs.should.contain(`success createPagesStatefully`) logs.should.contain(`success onPreExtractQueries`) - logs.should.contain(`success update schema`) logs.should.contain(`success extract queries from components`) logs.should.contain(`success write out requires`) logs.should.contain(`success write out redirect data`) diff --git a/integration-tests/gatsby-cli/__tests__/develop.js b/integration-tests/gatsby-cli/__tests__/develop.js index 47e62188fc504..db41335abe2f7 100644 --- a/integration-tests/gatsby-cli/__tests__/develop.js +++ b/integration-tests/gatsby-cli/__tests__/develop.js @@ -39,7 +39,6 @@ describe(`gatsby develop`, () => { logs.should.contain(`success createPages`) logs.should.contain(`success createPagesStatefully`) logs.should.contain(`success onPreExtractQueries`) - logs.should.contain(`success update schema`) logs.should.contain(`success extract queries from components`) logs.should.contain(`success write out requires`) logs.should.contain(`success write out redirect data`) diff --git a/integration-tests/gatsby-cli/__tests__/repl.js b/integration-tests/gatsby-cli/__tests__/repl.js index 203345e364c49..9eec28120ea7f 100644 --- a/integration-tests/gatsby-cli/__tests__/repl.js +++ b/integration-tests/gatsby-cli/__tests__/repl.js @@ -34,7 +34,6 @@ describe(`gatsby repl`, () => { logs.should.contain(`success createPages`) logs.should.contain(`success createPagesStatefully`) logs.should.contain(`success onPreExtractQueries`) - logs.should.contain(`success update schema`) logs.should.contain(`success extract queries from components`) logs.should.contain(`success write out redirect data`) logs.should.contain(`success onPostBootstrap`) diff --git a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap index 28df70c637a56..3a3037af00f00 100644 --- a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap +++ b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap @@ -1,53 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`[gatsby-source-wordpress] Run tests on develop build Gatsby image processing transforms inline-html images properly 1`] = ` -"

    Wysiwyh Editor Field test content.

    -

     

    -

    H1

    -

    \\"\\"\\"\\" \\"\\"\\"\\"

    -" -`; - exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves correct number of nodes 1`] = ` Array [ Object { diff --git a/integration-tests/gatsby-source-wordpress/gatsby-config.js b/integration-tests/gatsby-source-wordpress/gatsby-config.js index 7c1f214ab9caf..17166e55442f5 100644 --- a/integration-tests/gatsby-source-wordpress/gatsby-config.js +++ b/integration-tests/gatsby-source-wordpress/gatsby-config.js @@ -65,13 +65,6 @@ const wpPluginOptions = !process.env.DEFAULT_PLUGIN_OPTIONS 50 : // and we don't actually need more than 1000 in production 1000, - - beforeChangeNode: ({ remoteNode }) => { - console.log(`Hi from an inline fn!`) - remoteNode.beforeChangeNodeTest = `TEST-${remoteNode.id}` - - return remoteNode - }, }, // excluding this because it causes Gatsby to throw errors BlockEditorContentNode: { exclude: true }, diff --git a/integration-tests/gatsby-source-wordpress/package.json b/integration-tests/gatsby-source-wordpress/package.json index cafc0b6f5ebb6..ae4d9268f2430 100644 --- a/integration-tests/gatsby-source-wordpress/package.json +++ b/integration-tests/gatsby-source-wordpress/package.json @@ -17,6 +17,7 @@ "gatsby-source-filesystem": "next", "gatsby-source-wordpress": "next", "gatsby-transformer-sharp": "next", + "gatsby-plugin-image": "next", "react": "^17.0.2", "react-dom": "^17.0.2" }, diff --git a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js index 6696ca4e164ad..ee7736045c3d4 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js @@ -231,14 +231,6 @@ describe(`data resolution`, () => { beforeChangeNodeTest } } - # inline fn in gatsby-config.js - # support for this will be removed in future versions - allWpPost { - nodes { - id - beforeChangeNodeTest - } - } } `, }) @@ -246,9 +238,6 @@ describe(`data resolution`, () => { result.data.allWpPage.nodes.forEach(node => { expect(node.beforeChangeNodeTest).toBe(`TEST-${node.id}`) }) - result.data.allWpPost.nodes.forEach(node => { - expect(node.beforeChangeNodeTest).toBe(`TEST-${node.id}`) - }) }) it(`resolves root fields`, async () => { diff --git a/integration-tests/gatsby-source-wordpress/test-fns/gatsby-image.js b/integration-tests/gatsby-source-wordpress/test-fns/gatsby-image.js index dd6a7d577f3f5..d36d488204e2d 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/gatsby-image.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/gatsby-image.js @@ -5,68 +5,25 @@ const { const execall = require("execall") const countGatsbyImgs = string => - // divide by 2 because we now have two classes gatsby-image-wrapper and inline-gatsby-image-wrapper - execall(/gatsby-image-wrapper/gim, string).length / 2 + execall(/[^-]gatsby-image-wrapper[^-]/gim, string).length describe(`Gatsby image processing`, () => { it(`transforms inline-html images properly`, async () => { const { - data: { - // wpPage, - // gute, - // editedInline, - // editedMediaLibrary, - acfPage, - // httpProtocolPage, - }, + data: { acfPage }, } = await fetchGraphql({ url: `http://localhost:8000/__graphql`, query: /* GraphQL */ ` { - # Inline gatsby-image Gutenberg test #8964 - # wpPage(id: { eq: "cG9zdDo4OTY0" }) { - # content - # } - # edited Inline gatsby-image test - # editedInline: wpPage(databaseId: { eq: 9208 }) { - # content - # } - # edited via media library Inline gatsby-image test - # editedMediaLibrary: wpPage(databaseId: { eq: 9219 }) { - # content - # } - # inline html ACF test acfPage: wpPage(databaseId: { eq: 7646 }) { acfPageFields { wysiwygEditorField } } - # Page with img src hardcoded to http isntead of https - # httpProtocolPage: wpPage(databaseId: { eq: 10513 }) { - # content - # } } `, }) - - // expect(wpPage.content).toBeTruthy() - // expect(countGatsbyImgs(wpPage.content)).toBe(2) - // expect(wpPage.content).toMatchSnapshot() - - // expect(editedInline.content).toBeTruthy() - // expect(countGatsbyImgs(editedInline.content)).toBe(1) - // expect(editedInline.content).toMatchSnapshot() - - // expect(editedMediaLibrary.content).toBeTruthy() - // expect(countGatsbyImgs(editedMediaLibrary.content)).toBe(1) - // expect(editedMediaLibrary.content).toMatchSnapshot() - expect(acfPage.acfPageFields.wysiwygEditorField).toBeTruthy() expect(countGatsbyImgs(acfPage.acfPageFields.wysiwygEditorField)).toBe(2) - expect(acfPage.acfPageFields.wysiwygEditorField).toMatchSnapshot() - - // expect(httpProtocolPage.content).toBeTruthy() - // expect(countGatsbyImgs(httpProtocolPage.content)).toBe(1) - // expect(httpProtocolPage.content).toMatchSnapshot() }) }) diff --git a/integration-tests/long-term-caching/__tests__/long-term-caching.js b/integration-tests/long-term-caching/__tests__/long-term-caching.js index d66098e4a2986..1325237caa23f 100644 --- a/integration-tests/long-term-caching/__tests__/long-term-caching.js +++ b/integration-tests/long-term-caching/__tests__/long-term-caching.js @@ -59,7 +59,8 @@ describe(`long term caching`, () => { const indexPath = `${rootPath}/src/pages/index.js` const data = await readFile(indexPath, `utf8`) - const import1 = `import gray from "gray-percentage"` + // unused imports are removed, so we need to use it somehow + const import1 = `import gray from "gray-percentage"\nconsole.log(gray)` const modifiedData = `${import1}\n${data}` await writeFile(`${pagesPath}/index.js`, modifiedData) diff --git a/package.json b/package.json index f8c69fd499652..80e10b9b97c92 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@types/signal-exit": "^3.0.0", "@types/stack-trace": "^0.0.29", "@types/webpack-merge": "^4.1.5", - "@typescript-eslint/eslint-plugin": "^4.29.3", - "@typescript-eslint/parser": "^4.29.3", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", "babel-jest": "^24.9.0", "chalk": "^4.1.2", "chokidar": "^3.5.2", @@ -39,11 +39,11 @@ "eslint-config-google": "^0.14.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-filenames": "^1.3.2", - "eslint-plugin-flowtype": "^5.9.2", + "eslint-plugin-flowtype": "^6.1.0", "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-react": "^7.25.1", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.26.1", "fs-extra": "^10.0.0", "glob": "^7.1.7", "husky": "3.1.0", @@ -63,7 +63,7 @@ "npm-packlist": "^2.1.5", "npm-run-all": "4.1.5", "plop": "^1.9.1", - "prettier": "2.3.2", + "prettier": "2.4.1", "remark": "^13.0.0", "remark-cli": "^9.0.0", "remark-frontmatter": "^3.0.0", @@ -87,7 +87,7 @@ "rimraf": "^3.0.2", "svgo": "1.3.2", "ts-jest": "^22", - "typescript": "^4.3.5", + "typescript": "^4.4.3", "unified": "^9.2.0", "yargs": "^15.4.1" }, @@ -130,7 +130,7 @@ "lerna": "lerna", "lerna-prepare": "lerna run prepare", "lint": "npm-run-all --continue-on-error -p lint:code lint:docs lint:other", - "lint:code": "eslint --ext .js,.jsx,.ts,.tsx .", + "lint:code": "eslint --ext .js,.jsx,.ts,.tsx --quiet .", "lint:docs": "remark docs/{contributing,docs,tutorial}", "lint:other": "npm run prettier -- --check", "lint:scripts": "sh scripts/lint-shell-scripts.sh", diff --git a/packages/babel-plugin-remove-graphql-queries/package.json b/packages/babel-plugin-remove-graphql-queries/package.json index 608965f295cba..8ff87b7703735 100644 --- a/packages/babel-plugin-remove-graphql-queries/package.json +++ b/packages/babel-plugin-remove-graphql-queries/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-remove-graphql-queries", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Jason Quense ", "repository": { "type": "git", @@ -10,12 +10,12 @@ "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/babel-plugin-remove-graphql-queries#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.0.0-zz-next.1" + "gatsby-core-utils": "^3.0.0-zz-next.3" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/babel-preset-gatsby-package/package.json b/packages/babel-preset-gatsby-package/package.json index 6fe6b3d30e29d..d847e7ebc4764 100644 --- a/packages/babel-preset-gatsby-package/package.json +++ b/packages/babel-preset-gatsby-package/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-gatsby-package", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.2", "author": "Philipp Spiess ", "repository": { "type": "git", diff --git a/packages/babel-preset-gatsby/package.json b/packages/babel-preset-gatsby/package.json index c5f255e2a9647..87a660dda33c3 100644 --- a/packages/babel-preset-gatsby/package.json +++ b/packages/babel-preset-gatsby/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-gatsby", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.4", "author": "Philipp Spiess ", "repository": { "type": "git", @@ -22,8 +22,8 @@ "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-legacy-polyfills": "^2.0.0-zz-next.1" + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-legacy-polyfills": "^2.0.0-zz-next.2" }, "peerDependencies": { "@babel/core": "^7.11.6", @@ -38,7 +38,7 @@ }, "devDependencies": { "@babel/cli": "^7.15.4", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "slash": "^3.0.0" }, diff --git a/packages/babel-preset-gatsby/src/dependencies.ts b/packages/babel-preset-gatsby/src/dependencies.ts index aa96a632159dc..cb6c05d03bf13 100644 --- a/packages/babel-preset-gatsby/src/dependencies.ts +++ b/packages/babel-preset-gatsby/src/dependencies.ts @@ -18,8 +18,7 @@ export default (_?: unknown, options: IPresetOptions = {}) => { require.resolve(`@babel/runtime/package.json`) ) - // TODO(v3): Remove process.env.GATSBY_BUILD_STAGE, needs to be passed as an option - const stage = options.stage || process.env.GATSBY_BUILD_STAGE || `test` + const stage = options.stage || `test` const pluginBabelConfig = loadCachedConfig() const targets = pluginBabelConfig.browserslist diff --git a/packages/create-gatsby/package.json b/packages/create-gatsby/package.json index 7e6cf075ce4ca..1f61abbcadac5 100644 --- a/packages/create-gatsby/package.json +++ b/packages/create-gatsby/package.json @@ -1,6 +1,6 @@ { "name": "create-gatsby", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.3", "main": "lib/index.js", "bin": "cli.js", "license": "MIT", @@ -18,6 +18,7 @@ "devDependencies": { "@ascorbic/worker-threads-shim": "^1.0.0", "@babel/runtime": "^7.15.4", + "@lukeed/uuid": "^2.0.0", "@types/configstore": "^4.0.0", "@types/fs-extra": "^9.0.12", "@types/node": "^14.17.14", @@ -27,15 +28,14 @@ "eslint": "^7.32.0", "execa": "^5.1.1", "fs-extra": "^10.0.0", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "joi": "^17.4.2", "microbundle": "^0.13.3", "node-fetch": "^2.6.1", "prettier": "^2.3.2", "string-length": "^4.0.2", "terminal-link": "^2.1.1", - "tiny-spin": "^1.0.2", - "uuid": "3.4.0" + "tiny-spin": "^1.0.2" }, "repository": { "type": "git", diff --git a/packages/create-gatsby/src/init-starter.ts b/packages/create-gatsby/src/init-starter.ts index 91442926e18aa..b74c6470db5fc 100644 --- a/packages/create-gatsby/src/init-starter.ts +++ b/packages/create-gatsby/src/init-starter.ts @@ -149,7 +149,7 @@ const install = async ( reporter.success(`Installed plugins`) } catch (e) { - reporter.panic(e.message) + reporter.panic((e as Error).message) } finally { process.chdir(prevDir) } @@ -178,7 +178,7 @@ const clone = async ( reporter.success(`Created site from template`) } catch (err) { - reporter.panic(err.message) + reporter.panic((err as Error).message) } stop() diff --git a/packages/create-gatsby/src/install-plugins.ts b/packages/create-gatsby/src/install-plugins.ts index 94e66d3f3d986..2f0b8838131e3 100644 --- a/packages/create-gatsby/src/install-plugins.ts +++ b/packages/create-gatsby/src/install-plugins.ts @@ -72,7 +72,9 @@ const addPluginsToProject = async ( await addPlugins(plugins, pluginOptions, rootPath, packages) } catch (e) { throw new Error( - `Something went wrong when trying to add the plugins to the project: ${e.message}` + `Something went wrong when trying to add the plugins to the project: ${ + (e as Error).message + }` ) } } @@ -95,7 +97,7 @@ export async function installPlugins( packages ) } catch (e) { - reporter.error(e.message) + reporter.error((e as Error).message) return } } diff --git a/packages/create-gatsby/src/tracking.ts b/packages/create-gatsby/src/tracking.ts index 640ee1b6638ca..d0c2d60801895 100644 --- a/packages/create-gatsby/src/tracking.ts +++ b/packages/create-gatsby/src/tracking.ts @@ -1,5 +1,5 @@ import fetch from "node-fetch" -import uuidv4 from "uuid/v4" +import { v4 as uuidv4 } from "@lukeed/uuid" import { getConfigStore } from "./get-config-store" const store = getConfigStore() diff --git a/packages/create-gatsby/src/types.d.ts b/packages/create-gatsby/src/types.d.ts index 105fddd102e9d..0acf19b243a69 100644 --- a/packages/create-gatsby/src/types.d.ts +++ b/packages/create-gatsby/src/types.d.ts @@ -1,3 +1,2 @@ declare module "stream-filter" declare module "ansi-wordwrap" -declare module 'uuid/v4'; diff --git a/packages/gatsby-admin/gatsby-browser.js b/packages/gatsby-admin/gatsby-browser.js deleted file mode 100644 index 34637c0e73d42..0000000000000 --- a/packages/gatsby-admin/gatsby-browser.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -import Layout from './src/components/layout' - -export const wrapPageElement = ({ element,props }) =>( - {element} -) \ No newline at end of file diff --git a/packages/gatsby-admin/gatsby-node.js b/packages/gatsby-admin/gatsby-node.js deleted file mode 100644 index f8701b58a67a8..0000000000000 --- a/packages/gatsby-admin/gatsby-node.js +++ /dev/null @@ -1,9 +0,0 @@ -exports.onCreateWebpackConfig = ({ actions }) => { - actions.setWebpackConfig({ - resolve: { - alias: { - path: require.resolve("path-browserify") - } - } - }) - } diff --git a/packages/gatsby-admin/index.js b/packages/gatsby-admin/index.js deleted file mode 100644 index 55eeda8ca98b2..0000000000000 --- a/packages/gatsby-admin/index.js +++ /dev/null @@ -1 +0,0 @@ -// NOOP \ No newline at end of file diff --git a/packages/gatsby-cli/CHANGELOG.md b/packages/gatsby-cli/CHANGELOG.md index 26898a4411181..77508e8f14704 100644 --- a/packages/gatsby-cli/CHANGELOG.md +++ b/packages/gatsby-cli/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [3.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-cli@3.14.1/packages/gatsby-cli) (2021-10-06) + +#### Features + +- Don't crash the build process when in preview mode [#33184](https://github.com/gatsbyjs/gatsby/issues/33184) [#33433](https://github.com/gatsbyjs/gatsby/issues/33433) ([1604efb](https://github.com/gatsbyjs/gatsby/commit/1604efbdde97c138b11626923875ae118f7b5e67)) + ## [3.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-cli@3.14.0/packages/gatsby-cli) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-cli/package.json b/packages/gatsby-cli/package.json index 4883e35bc800e..8e2e42da2b79e 100644 --- a/packages/gatsby-cli/package.json +++ b/packages/gatsby-cli/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-cli", "description": "Gatsby command-line interface for creating new sites and running Gatsby commands", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.5", "author": "Kyle Mathews ", "bin": { "gatsby": "cli.js" @@ -12,43 +12,43 @@ "dependencies": { "@babel/code-frame": "^7.14.0", "@babel/runtime": "^7.15.4", - "@types/common-tags": "^1.8.0", - "better-opn": "^2.0.0", - "boxen": "^5.1.1", + "@types/common-tags": "^1.8.1", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", "chalk": "^4.1.2", "clipboardy": "^2.3.0", "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^2.0.0-zz-next.1", - "envinfo": "^7.7.3", + "create-gatsby": "^2.0.0-zz-next.3", + "envinfo": "^7.8.1", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-recipes": "^1.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", - "hosted-git-info": "^3.0.6", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-recipes": "^1.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", + "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", - "joi": "^17.4.0", + "joi": "^17.4.2", "lodash": "^4.17.21", - "meant": "^1.0.2", - "node-fetch": "^2.6.1", - "opentracing": "^0.14.4", - "pretty-error": "^2.1.1", + "meant": "^1.0.3", + "node-fetch": "^2.6.5", + "opentracing": "^0.14.5", + "pretty-error": "^2.1.2", "progress": "^2.0.3", - "prompts": "^2.3.2", - "redux": "^4.0.5", + "prompts": "^2.4.1", + "redux": "4.0.5", "resolve-cwd": "^3.0.0", "semver": "^7.3.5", - "signal-exit": "^3.0.3", + "signal-exit": "^3.0.5", "source-map": "0.7.3", "stack-trace": "^0.0.10", "strip-ansi": "^5.2.0", - "update-notifier": "^5.0.1", + "update-notifier": "^5.1.0", "uuid": "3.4.0", "yargs": "^15.4.1", - "yoga-layout-prebuilt": "^1.9.6", + "yoga-layout-prebuilt": "^1.10.0", "yurnalist": "^2.1.0" }, "devDependencies": { @@ -61,7 +61,7 @@ "@rollup/plugin-replace": "^2.4.2", "@types/hosted-git-info": "^3.0.1", "@types/yargs": "^15.0.14", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "ink": "^3.0.8", "ink-spinner": "^4.0.2", @@ -71,7 +71,7 @@ "rollup": "^2.52.7", "rollup-plugin-auto-external": "^2.0.0", "rollup-plugin-internal": "^1.0.4", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "files": [ "lib/", diff --git a/packages/gatsby-cli/src/create-cli.ts b/packages/gatsby-cli/src/create-cli.ts index 7fa623f401faa..e31538c9c1f3f 100644 --- a/packages/gatsby-cli/src/create-cli.ts +++ b/packages/gatsby-cli/src/create-cli.ts @@ -204,11 +204,6 @@ function buildLocalCommands(cli: yargs.Argv, isLocalSite: boolean): void { (args: yargs.Arguments, cmd: (args: yargs.Arguments) => unknown) => { process.env.NODE_ENV = process.env.NODE_ENV || `development` - if (process.env.GATSBY_EXPERIMENTAL_ENABLE_ADMIN) { - const { startGraphQLServer } = require(`gatsby-recipes`) - startGraphQLServer(siteInfo.directory, true) - } - if (args.hasOwnProperty(`inspect`)) { args.inspect = args.inspect || 9229 } diff --git a/packages/gatsby-cli/src/reporter/loggers/ink/components/pageTree.tsx b/packages/gatsby-cli/src/reporter/loggers/ink/components/pageTree.tsx index 68553eeada891..864d7ff8a9485 100644 --- a/packages/gatsby-cli/src/reporter/loggers/ink/components/pageTree.tsx +++ b/packages/gatsby-cli/src/reporter/loggers/ink/components/pageTree.tsx @@ -29,9 +29,9 @@ const Description: React.FC = function Description(props) { (SSG) Generated at build time - D (DSG) Defered static generation - page generated at runtime + D (DSG) Deferred static generation - page generated at runtime - ∞ (SSR) Server-side renders at runtime (uses getServerDate) + ∞ (SSR) Server-side renders at runtime (uses getServerData) λ (Function) Gatsby function diff --git a/packages/gatsby-cli/src/reporter/loggers/yurnalist/index.ts b/packages/gatsby-cli/src/reporter/loggers/yurnalist/index.ts index 28c4cd476e34f..33a937b5f8184 100644 --- a/packages/gatsby-cli/src/reporter/loggers/yurnalist/index.ts +++ b/packages/gatsby-cli/src/reporter/loggers/yurnalist/index.ts @@ -103,8 +103,8 @@ function generatePageTreeToConsole( boxen( [ ` (SSG) Generated at build time`, - `D (DSG) Defered static generation - page generated at runtime`, - `∞ (SSR) Server-side renders at runtime (uses getServerDate)`, + `D (DSG) Deferred static generation - page generated at runtime`, + `∞ (SSR) Server-side renders at runtime (uses getServerData)`, `λ (Function) Gatsby function`, ].join(`\n`), { diff --git a/packages/gatsby-cli/src/reporter/redux/internal-actions.ts b/packages/gatsby-cli/src/reporter/redux/internal-actions.ts index 44d6c074cf86c..ff104f2c90f7e 100644 --- a/packages/gatsby-cli/src/reporter/redux/internal-actions.ts +++ b/packages/gatsby-cli/src/reporter/redux/internal-actions.ts @@ -1,4 +1,4 @@ -import uuidv4 from "uuid" +import { uuid } from "gatsby-core-utils" import { trackCli } from "gatsby-telemetry" import signalExit from "signal-exit" import { Dispatch } from "redux" @@ -199,7 +199,7 @@ export const startActivity = ({ type: Actions.StartActivity, payload: { id, - uuid: uuidv4(), + uuid: uuid.v4(), text, type, status, diff --git a/packages/gatsby-cli/src/reporter/start-logger.ts b/packages/gatsby-cli/src/reporter/start-logger.ts index 0b650b29b162f..25805009904af 100644 --- a/packages/gatsby-cli/src/reporter/start-logger.ts +++ b/packages/gatsby-cli/src/reporter/start-logger.ts @@ -3,10 +3,6 @@ */ import semver from "semver" import { isCI } from "gatsby-core-utils" -import { initializeIPCLogger } from "./loggers/ipc" -import { initializeJSONLogger } from "./loggers/json" -import { initializeYurnalistLogger } from "./loggers/yurnalist" -import { initializeINKLogger } from "./loggers/ink" export const startLogger = (): void => { if (!process.env.GATSBY_LOGGER) { @@ -26,14 +22,18 @@ export const startLogger = (): void => { // This is just workaround to not crash process when reporter is used in worker context. // process.env.FORCE_COLOR = `0` - initializeIPCLogger() + // TODO move to dynamic imports + require(`./loggers/ipc`).initializeIPCLogger() } if (process.env.GATSBY_LOGGER.includes(`json`)) { - initializeJSONLogger() + // TODO move to dynamic imports + require(`./loggers/json`).initializeJSONLogger() } else if (process.env.GATSBY_LOGGER.includes(`yurnalist`)) { - initializeYurnalistLogger() + // TODO move to dynamic imports + require(`./loggers/yurnalist`).initializeYurnalistLogger() } else { - initializeINKLogger() + // TODO move to dynamic imports + require(`./loggers/ink`).initializeINKLogger() } } diff --git a/packages/gatsby-cli/src/structured-errors/error-map.ts b/packages/gatsby-cli/src/structured-errors/error-map.ts index 3e0fe659e7b72..b8a9f74cbdf1a 100644 --- a/packages/gatsby-cli/src/structured-errors/error-map.ts +++ b/packages/gatsby-cli/src/structured-errors/error-map.ts @@ -47,6 +47,23 @@ const errors = { level: Level.ERROR, docsUrl: `https://gatsby.dev/debug-html`, }, + "95314": { + text: (context): string => context.errorMessage, + level: Level.ERROR, + docsUrl: `https://gatsby.dev/debug-html`, + }, + "95315": { + text: (context): string => + `Error in getServerData in ${context.pagePath} / "${context.potentialPagePath}".`, + level: Level.ERROR, + category: ErrorCategory.USER, + }, + "98001": { + text: (): string => + `Built Rendering Engines failed validation failed validation.\n\nPlease open an issue with a reproduction at https://github.com/gatsbyjs/gatsby/issues/new for more help`, + type: Type.WEBPACK, + level: Level.ERROR, + }, "98123": { text: (context): string => `${context.stageLabel} failed\n\n${ @@ -598,6 +615,7 @@ const errors = { context.stuckStatusDiagnosticMessage }`, level: Level.ERROR, + docsUrl: `https://support.gatsbyjs.com/hc/en-us/articles/360056811354`, }, /** Node Manifest warnings */ diff --git a/packages/gatsby-codemods/package.json b/packages/gatsby-codemods/package.json index e41e060ffce08..78a52444ea2ee 100644 --- a/packages/gatsby-codemods/package.json +++ b/packages/gatsby-codemods/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-codemods", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.2", "description": "A collection of codemod scripts for use with JSCodeshift that help migrate to newer versions of Gatsby.", "main": "index.js", "scripts": { @@ -36,7 +36,7 @@ }, "devDependencies": { "@babel/cli": "^7.15.4", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "engines": { diff --git a/packages/gatsby-core-utils/package.json b/packages/gatsby-core-utils/package.json index 320481ce2c4db..ce1887a659298 100644 --- a/packages/gatsby-core-utils/package.json +++ b/packages/gatsby-core-utils/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-core-utils", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.3", "description": "A collection of gatsby utils used in different gatsby packages", "keywords": [ "gatsby", @@ -44,10 +44,11 @@ "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", "@types/ci-info": "2.0.0", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", + "is-uuid": "^1.0.2", "msw": "^0.35.0", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "engines": { "node": ">=14.15.0" diff --git a/packages/gatsby-core-utils/src/__tests__/uuid.ts b/packages/gatsby-core-utils/src/__tests__/uuid.ts new file mode 100644 index 0000000000000..28f23d9734ece --- /dev/null +++ b/packages/gatsby-core-utils/src/__tests__/uuid.ts @@ -0,0 +1,27 @@ +/** + * Copied from https://github.com/lukeed/uuid + * https://github.com/lukeed/uuid/blob/master/test/index.js + */ +import isUUID from "is-uuid" +import { v4 as uuid } from "../uuid" + +describe(`uuid`, () => { + it(`returns`, () => { + const out = uuid() + expect(out).toHaveLength(36) + expect(typeof out).toBe(`string`) + }) + + it(`unique`, () => { + const length = 1e6 + expect(uuid()).not.toBe(uuid()) + + const unique = new Set(Array.from({ length }, uuid)) + expect(unique.size).toBe(length) + }) + + it(`validate`, () => { + const arr = Array.from({ length: 1e3 }, uuid) + expect(arr.map(item => isUUID.v4(item)).filter(Boolean)).toHaveLength(1e3) + }) +}) diff --git a/packages/gatsby-core-utils/src/index.ts b/packages/gatsby-core-utils/src/index.ts index 85d2ec3f79a48..7eabecaa1467f 100644 --- a/packages/gatsby-core-utils/src/index.ts +++ b/packages/gatsby-core-utils/src/index.ts @@ -9,6 +9,7 @@ export { getGatsbyVersion } from "./get-gatsby-version" export { getTermProgram } from "./get-term-program" export { fetchRemoteFile, IFetchRemoteFileOptions } from "./fetch-remote-file" export { isTruthy } from "./is-truthy" +export * as uuid from "./uuid" export { getMatchPath } from "./match-path" export * from "./service-lock" export * from "./site-metadata" diff --git a/packages/gatsby-core-utils/src/uuid.ts b/packages/gatsby-core-utils/src/uuid.ts new file mode 100644 index 0000000000000..4d752cca7ba82 --- /dev/null +++ b/packages/gatsby-core-utils/src/uuid.ts @@ -0,0 +1,36 @@ +/** + * Copied from https://github.com/lukeed/uuid + * https://github.com/lukeed/uuid/blob/master/src/secure.js + */ +import { randomBytes } from "crypto" + +const SIZE = 4096 +const HEX: Array = [] +let IDX = 0 +let BUFFER: Buffer + +for (; IDX < 256; IDX++) { + HEX[IDX] = (IDX + 256).toString(16).substring(1) +} + +export function v4(): string { + if (!BUFFER || IDX + 16 > SIZE) { + BUFFER = randomBytes(SIZE) + IDX = 0 + } + + let i = 0 + let tmp + let out = `` + for (; i < 16; i++) { + tmp = BUFFER[IDX + i] + if (i == 6) out += HEX[(tmp & 15) | 64] + else if (i == 8) out += HEX[(tmp & 63) | 128] + else out += HEX[tmp] + + if (i & 1 && i > 1 && i < 11) out += `-` + } + + IDX += 16 + return out +} diff --git a/packages/gatsby-cypress/package.json b/packages/gatsby-cypress/package.json index f1757ce018caa..c04cc61b33362 100644 --- a/packages/gatsby-cypress/package.json +++ b/packages/gatsby-cypress/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-cypress", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.2", "description": "Cypress tools for Gatsby projects", "main": "index.js", "repository": { @@ -20,7 +20,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "keywords": [ diff --git a/packages/gatsby-design-tokens/package.json b/packages/gatsby-design-tokens/package.json index ad9c7cb586fd3..3583ae66e5468 100644 --- a/packages/gatsby-design-tokens/package.json +++ b/packages/gatsby-design-tokens/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-design-tokens", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "description": "Gatsby Design Tokens", "main": "dist/index.js", "module": "dist/index.esm.js", diff --git a/packages/gatsby-dev-cli/package.json b/packages/gatsby-dev-cli/package.json index b2c7af3c2e041..0ca35da0f725c 100644 --- a/packages/gatsby-dev-cli/package.json +++ b/packages/gatsby-dev-cli/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-dev-cli", "description": "CLI helpers for contributors working on Gatsby", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bin": { "gatsby-dev": "./dist/index.js" @@ -20,14 +20,14 @@ "got": "^11.8.2", "is-absolute": "^1.0.0", "lodash": "^4.17.21", - "signal-exit": "^3.0.3", + "signal-exit": "^3.0.5", "verdaccio": "^4.12.2", "yargs": "^15.4.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-dev-cli#readme", diff --git a/packages/gatsby-dev-cli/src/utils/check-deps-changes.js b/packages/gatsby-dev-cli/src/utils/check-deps-changes.js index c9d529582fa1e..e6092f652853d 100644 --- a/packages/gatsby-dev-cli/src/utils/check-deps-changes.js +++ b/packages/gatsby-dev-cli/src/utils/check-deps-changes.js @@ -60,16 +60,16 @@ exports.checkDepsChanges = async ({ // this allow us to not publish to local repository // and save some time/work try { - const response = await got( - `https://unpkg.com/${packageName}/package.json` - ) + const version = getPackageVersion(packageName) + const url = `https://unpkg.com/${packageName}@${version}/package.json` + const response = await got(url) if (response?.statusCode !== 200) { - throw new Error(`No response or non 200 code`) + throw new Error(`No response or non 200 code for ${url}`) } localPKGjson = JSON.parse(response.body) - } catch { + } catch (e) { console.log( - `'${packageName}' doesn't seem to be installed and is not published on NPM.` + `'${packageName}' doesn't seem to be installed and is not published on NPM. Error: ${e.message}` ) return { didDepsChanged: true, @@ -182,3 +182,12 @@ exports.checkDepsChanges = async ({ packageNotInstalled, } } + +function getPackageVersion(packageName) { + const projectPackageJson = JSON.parse( + fs.readFileSync(`./package.json`, `utf-8`) + ) + const { dependencies = {}, devDependencies = {} } = projectPackageJson + const version = dependencies[packageName] || devDependencies[packageName] + return version || `latest` +} diff --git a/packages/gatsby-graphiql-explorer/package.json b/packages/gatsby-graphiql-explorer/package.json index b77cf8e07bade..89679efe456bd 100644 --- a/packages/gatsby-graphiql-explorer/package.json +++ b/packages/gatsby-graphiql-explorer/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-graphiql-explorer", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.2", "description": "GraphiQL IDE with custom features for Gatsby users", "main": "index.js", "scripts": { @@ -38,7 +38,7 @@ "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", "babel-loader": "^8.2.2", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "core-js": "^3.17.2", "cross-env": "^7.0.3", "css-loader": "^6.2.0", diff --git a/packages/gatsby-legacy-polyfills/package.json b/packages/gatsby-legacy-polyfills/package.json index 49ef1d2f9152e..04dc667c83bf0 100644 --- a/packages/gatsby-legacy-polyfills/package.json +++ b/packages/gatsby-legacy-polyfills/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-legacy-polyfills", "description": "Polyfills for legacy browsers", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.2", "main": "dist/polyfills.js", "author": "Ward Peeters ", "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-legacy-polyfills#readme", @@ -31,6 +31,7 @@ "dist/" ], "devDependencies": { + "yet-another-abortcontroller-polyfill": "0.0.4", "chokidar-cli": "^3.0.0", "codegen.macro": "^4.1.0", "core-js": "3.9.0", diff --git a/packages/gatsby-legacy-polyfills/src/polyfills.js b/packages/gatsby-legacy-polyfills/src/polyfills.js index 3e48a3cc7294d..75e6129b295f0 100644 --- a/packages/gatsby-legacy-polyfills/src/polyfills.js +++ b/packages/gatsby-legacy-polyfills/src/polyfills.js @@ -6,6 +6,7 @@ codegen` module.exports = imports.map(file => 'import "core-js/' + file + '"').join("\\n") ` +import "yet-another-abortcontroller-polyfill" import "whatwg-fetch" import "url-polyfill" import assign from "object-assign" diff --git a/packages/gatsby-link/package.json b/packages/gatsby-link/package.json index ed2732ea3c222..18d5be253783c 100644 --- a/packages/gatsby-link/package.json +++ b/packages/gatsby-link/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-link", "description": "An enhanced Link component for Gatsby sites with support for resource prefetching", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.4", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,8 +14,8 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "@testing-library/react": "^9.5.0", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "@testing-library/react": "^11.2.7", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-link/src/index.js b/packages/gatsby-link/src/index.js index 47f6fc2e77767..d80fa11c6a0ab 100644 --- a/packages/gatsby-link/src/index.js +++ b/packages/gatsby-link/src/index.js @@ -80,16 +80,14 @@ const createIntersectionObserver = (el, cb) => { if (el === entry.target) { // Check if element is within viewport, remove listener, destroy observer, and run link callback. // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0 - if (entry.isIntersecting || entry.intersectionRatio > 0) { - io.unobserve(el) - io.disconnect() - cb() - } + cb(entry.isIntersecting || entry.intersectionRatio > 0) } }) }) + // Add element to the observer io.observe(el) + return { instance: io, el } } @@ -113,39 +111,30 @@ class GatsbyLink extends React.Component { this.state = { IOSupported, } + this.abortPrefetch = null this.handleRef = this.handleRef.bind(this) } _prefetch() { - let currentPath = window.location.pathname + let currentPath = window.location.pathname + window.location.search // reach router should have the correct state if (this.props._location && this.props._location.pathname) { - currentPath = this.props._location.pathname + currentPath = this.props._location.pathname + this.props._location.search } const rewrittenPath = rewriteLinkPath(this.props.to, currentPath) - const newPathName = parsePath(rewrittenPath).pathname + const parsed = parsePath(rewrittenPath) + + const newPathName = parsed.pathname + parsed.search - // Prefech is used to speed up next navigations. When you use it on the current navigation, + // Prefetch is used to speed up next navigations. When you use it on the current navigation, // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete if (currentPath !== newPathName) { - ___loader.enqueue(newPathName) + return ___loader.enqueue(newPathName) } - } - componentDidUpdate(prevProps, prevState) { - // Preserve non IO functionality if no support - if (this.props.to !== prevProps.to && !this.state.IOSupported) { - this._prefetch() - } - } - - componentDidMount() { - // Preserve non IO functionality if no support - if (!this.state.IOSupported) { - this._prefetch() - } + return undefined } componentWillUnmount() { @@ -154,12 +143,19 @@ class GatsbyLink extends React.Component { } const { instance, el } = this.io + if (this.abortPrefetch) { + this.abortPrefetch.abort() + } + instance.unobserve(el) instance.disconnect() } handleRef(ref) { - if (this.props.innerRef && this.props.innerRef.hasOwnProperty(`current`)) { + if ( + this.props.innerRef && + Object.prototype.hasOwnProperty.call(this.props.innerRef, `current`) + ) { this.props.innerRef.current = ref } else if (this.props.innerRef) { this.props.innerRef(ref) @@ -167,8 +163,14 @@ class GatsbyLink extends React.Component { if (this.state.IOSupported && ref) { // If IO supported and element reference found, setup Observer functionality - this.io = createIntersectionObserver(ref, () => { - this._prefetch() + this.io = createIntersectionObserver(ref, inViewPort => { + if (inViewPort) { + this.abortPrefetch = this._prefetch() + } else { + if (this.abortPrefetch) { + this.abortPrefetch.abort() + } + } }) } } @@ -224,7 +226,8 @@ class GatsbyLink extends React.Component { if (onMouseEnter) { onMouseEnter(e) } - ___loader.hovering(parsePath(prefixedTo).pathname) + const parsed = parsePath(prefixedTo) + ___loader.hovering(parsed.pathname + parsed.search) }} onClick={e => { if (onClick) { diff --git a/packages/gatsby-page-utils/package.json b/packages/gatsby-page-utils/package.json index 7869d043e7fde..22073255d6270 100644 --- a/packages/gatsby-page-utils/package.json +++ b/packages/gatsby-page-utils/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-page-utils", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.3", "description": "Gatsby library that helps creating pages", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -26,7 +26,7 @@ "bluebird": "^3.7.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" @@ -35,10 +35,10 @@ "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", "@types/micromatch": "^4.0.2", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "rimraf": "^3.0.2", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "files": [ "dist/" diff --git a/packages/gatsby-plugin-benchmark-reporting/package.json b/packages/gatsby-plugin-benchmark-reporting/package.json index a6b645b4b5786..862535046968d 100644 --- a/packages/gatsby-plugin-benchmark-reporting/package.json +++ b/packages/gatsby-plugin-benchmark-reporting/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-benchmark-reporting", "description": "Gatsby Benchmark Reporting", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.3", "author": "Peter van der Zee ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,13 +16,13 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1" + "babel-preset-gatsby-package": "^2.0.0-zz-next.2" }, "dependencies": { "@babel/runtime": "^7.15.4", "fast-glob": "^3.2.7", - "node-fetch": "^2.6.1", - "uuid": "3.4.0" + "gatsby-core-utils": "^3.0.0-zz-next.3", + "node-fetch": "^2.6.5" }, "scripts": { "build": "babel src --out-dir . --ignore \"**/__tests__\"", diff --git a/packages/gatsby-plugin-benchmark-reporting/src/gatsby-node.js b/packages/gatsby-plugin-benchmark-reporting/src/gatsby-node.js index 8cb4ab2e2532a..9e097480c4375 100644 --- a/packages/gatsby-plugin-benchmark-reporting/src/gatsby-node.js +++ b/packages/gatsby-plugin-benchmark-reporting/src/gatsby-node.js @@ -2,7 +2,7 @@ const { performance } = require(`perf_hooks`) const { sync: glob } = require(`fast-glob`) const nodeFetch = require(`node-fetch`) -const uuidv4 = require(`uuid/v4`) +const { uuid } = require(`gatsby-core-utils`) const { execSync } = require(`child_process`) const fs = require(`fs`) @@ -167,7 +167,7 @@ class BenchMeta { return { time: this.localTime, - sessionId: process.gatsbyTelemetrySessionId || uuidv4(), + sessionId: process.gatsbyTelemetrySessionId || uuid.v4(), cwd: process.cwd() ?? ``, timestamps: this.timestamps, gitHash, diff --git a/packages/gatsby-plugin-canonical-urls/package.json b/packages/gatsby-plugin-canonical-urls/package.json index dd3584fbaa514..bd9f1dbd30664 100644 --- a/packages/gatsby-plugin-canonical-urls/package.json +++ b/packages/gatsby-plugin-canonical-urls/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-canonical-urls", "description": "Add canonical links to HTML pages Gatsby generates.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-canonical-urls#readme", diff --git a/packages/gatsby-plugin-catch-links/package.json b/packages/gatsby-plugin-catch-links/package.json index 97f3e56d04095..86a5e844dd5c0 100644 --- a/packages/gatsby-plugin-catch-links/package.json +++ b/packages/gatsby-plugin-catch-links/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-catch-links", "description": "Intercepts local links from markdown and other non-react pages and does a client-side pushState to avoid the browser having to refresh the page.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-catch-links#readme", diff --git a/packages/gatsby-plugin-coffeescript/package.json b/packages/gatsby-plugin-coffeescript/package.json index 557eec7905919..ec04b51ab6968 100644 --- a/packages/gatsby-plugin-coffeescript/package.json +++ b/packages/gatsby-plugin-coffeescript/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-coffeescript", "description": "Adds CoffeeScript support for Gatsby", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -18,7 +18,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-coffeescript#readme", diff --git a/packages/gatsby-plugin-create-client-paths/README.md b/packages/gatsby-plugin-create-client-paths/README.md index ab4905e2b4405..e0060aa0aed21 100644 --- a/packages/gatsby-plugin-create-client-paths/README.md +++ b/packages/gatsby-plugin-create-client-paths/README.md @@ -1,5 +1,7 @@ # gatsby-plugin-create-client-paths +**Please Note:** With recent versions of Gatsby this plugin became obsolete. You should use the [File System Route API](https://www.gatsbyjs.com/docs/reference/routing/file-system-route-api/#creating-client-only-routes) to create client-only paths. + Use this plugin to simplify creating a “hybrid” Gatsby app with both statically rendered pages as well as "client-paths". These paths exist on the client only and do not correspond to index.html files in an app's built assets. For more information refer to [client-only routes & user authentication](https://www.gatsbyjs.org/docs/client-only-routes-and-user-authentication/). diff --git a/packages/gatsby-plugin-create-client-paths/package.json b/packages/gatsby-plugin-create-client-paths/package.json index 869403175244b..cfa42f0422f5c 100644 --- a/packages/gatsby-plugin-create-client-paths/package.json +++ b/packages/gatsby-plugin-create-client-paths/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-create-client-paths", "description": "Gatsby-plugin for creating paths that exist only on the client", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "scott.eckenthal@gmail.com", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-create-client-paths#readme", diff --git a/packages/gatsby-plugin-cxs/package.json b/packages/gatsby-plugin-cxs/package.json index fe02d5deb7ee3..ad5ce653a9716 100644 --- a/packages/gatsby-plugin-cxs/package.json +++ b/packages/gatsby-plugin-cxs/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-cxs", "description": "Gatsby plugin to add SSR support for ctx", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Chen-Tai Hou ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,10 +12,10 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "cxs": "^6.2.0", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-cxs#readme", "keywords": [ diff --git a/packages/gatsby-plugin-emotion/package.json b/packages/gatsby-plugin-emotion/package.json index 305ed9bf56a6b..f90620d97a6ba 100644 --- a/packages/gatsby-plugin-emotion/package.json +++ b/packages/gatsby-plugin-emotion/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-emotion", "description": "Gatsby plugin to add support for Emotion", - "version": "7.0.0-zz-next.1", + "version": "7.0.0-zz-next.2", "author": "Tegan Churchill ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-facebook-analytics/package.json b/packages/gatsby-plugin-facebook-analytics/package.json index 17348a43fb6d6..b955342b6b180 100644 --- a/packages/gatsby-plugin-facebook-analytics/package.json +++ b/packages/gatsby-plugin-facebook-analytics/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-facebook-analytics", "description": "Gatsby plugin to add facebook analytics onto a site", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Yeison Daza ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-facebook-analytics#readme", diff --git a/packages/gatsby-plugin-feed/README.md b/packages/gatsby-plugin-feed/README.md index ced826685180a..fdaaeb1789175 100644 --- a/packages/gatsby-plugin-feed/README.md +++ b/packages/gatsby-plugin-feed/README.md @@ -30,13 +30,13 @@ module.exports = { feeds: [ { serialize: ({ query: { site, allMarkdownRemark } }) => { - return allMarkdownRemark.edges.map(edge => { - return Object.assign({}, edge.node.frontmatter, { - description: edge.node.excerpt, - date: edge.node.frontmatter.date, - url: site.siteMetadata.siteUrl + edge.node.fields.slug, - guid: site.siteMetadata.siteUrl + edge.node.fields.slug, - custom_elements: [{ "content:encoded": edge.node.html }], + return allMarkdownRemark.nodes.map(node => { + return Object.assign({}, node.frontmatter, { + description: node.excerpt, + date: node.frontmatter.date, + url: site.siteMetadata.siteUrl + node.fields.slug, + guid: site.siteMetadata.siteUrl + node.fields.slug, + custom_elements: [{ "content:encoded": node.html }], }) }) }, @@ -45,15 +45,15 @@ module.exports = { allMarkdownRemark( sort: { order: DESC, fields: [frontmatter___date] }, ) { - edges { - node { - excerpt - html - fields { slug } - frontmatter { - title - date - } + nodes { + excerpt + html + fields { + slug + } + frontmatter { + title + date } } } @@ -76,15 +76,16 @@ module.exports = { } ``` -Each feed must include `output`, `query`, and `title`. Additionally, it is strongly recommended to pass a custom `serialize` function, otherwise an internal serialize function will be used which may not exactly match your particular use case. +Each feed must include `output`, `query`, `title`, and `serialize`. You'll need to write the `serialize` function in order to fit your use case. `match` is an optional configuration, indicating which pages will have feed reference included. The accepted types of `match` are `string` or `undefined`. By default, when `match` is not configured, all pages will have feed reference inserted. If `string` is provided, it will be used to build a RegExp and then to test whether `pathname` of current page satisfied this regular expression. Only pages that satisfied this rule will have feed reference included. + `link` is an optional configuration that will override the default generated rss link from `output`. All additional options are passed through to the [`rss`][rss] utility. For more info on those additional options, [explore the `itemOptions` section of the `rss` package](https://www.npmjs.com/package/rss#itemoptions). Check out an example of [how you could implement](https://www.gatsbyjs.org/docs/adding-an-rss-feed/) to your own site, with a custom `serialize` function, and additional functionality. -_NOTE: This plugin only generates the `xml` file(s) when run in `production` mode! To test your feed, run: `gatsby build && gatsby serve`._ +_**Note**: This plugin only generates the `xml` file(s) when run in `production` mode! To test your feed, run: `gatsby build && gatsby serve`._ [rss]: https://www.npmjs.com/package/rss diff --git a/packages/gatsby-plugin-feed/package.json b/packages/gatsby-plugin-feed/package.json index 17c8ee1074495..76efbbbdfa98c 100644 --- a/packages/gatsby-plugin-feed/package.json +++ b/packages/gatsby-plugin-feed/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-feed", "description": "Creates an RSS feed for your Gatsby site.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Nicholas Young ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -11,14 +11,14 @@ "@hapi/joi": "^15.1.1", "common-tags": "^1.8.0", "fs-extra": "^10.0.0", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "lodash.merge": "^4.6.2", "rss": "^1.2.2" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-feed#readme", diff --git a/packages/gatsby-plugin-feed/src/plugin-options.js b/packages/gatsby-plugin-feed/src/plugin-options.js index 6b636eb0c2b19..3e56b9ee20bf2 100644 --- a/packages/gatsby-plugin-feed/src/plugin-options.js +++ b/packages/gatsby-plugin-feed/src/plugin-options.js @@ -1,13 +1,12 @@ import { parse } from "gatsby/graphql" import { stripIndent } from "common-tags" -// TODO: make serialize required in next major version bump const feed = ({ Joi }) => Joi.object({ output: Joi.string().required(), query: Joi.string().required(), - title: Joi.string(), - serialize: Joi.func(), + title: Joi.string().required(), + serialize: Joi.func().required(), match: Joi.string(), link: Joi.string(), }) @@ -26,13 +25,12 @@ const feed = ({ Joi }) => } }) -// TODO: make feeds required in next major version bump export default ({ Joi }) => Joi.object({ generator: Joi.string(), query: Joi.string(), setup: Joi.func(), - feeds: Joi.array().items(feed({ Joi })), + feeds: Joi.array().items(feed({ Joi })).required(), }) .unknown(true) .external(({ query }) => { diff --git a/packages/gatsby-plugin-flow/package.json b/packages/gatsby-plugin-flow/package.json index bc62cf371c233..ee3274a5fcba1 100644 --- a/packages/gatsby-plugin-flow/package.json +++ b/packages/gatsby-plugin-flow/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-flow", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.3", "description": "Provides drop-in support for Flow by adding @babel/preset-flow.", "main": "index.js", "scripts": { @@ -30,9 +30,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "peerDependencies": { "gatsby": "^4.0.0-next" diff --git a/packages/gatsby-plugin-fullstory/package.json b/packages/gatsby-plugin-fullstory/package.json index 620edf34ef8f9..a57960156551a 100644 --- a/packages/gatsby-plugin-fullstory/package.json +++ b/packages/gatsby-plugin-fullstory/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-fullstory", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "description": "Plugin to add the tracking code for Fullstory.com", "main": "index.js", "scripts": { @@ -29,7 +29,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-gatsby-cloud/package.json b/packages/gatsby-plugin-gatsby-cloud/package.json index 019bb6a8fb7ac..44646e0f0444d 100644 --- a/packages/gatsby-plugin-gatsby-cloud/package.json +++ b/packages/gatsby-plugin-gatsby-cloud/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-gatsby-cloud", "description": "A Gatsby plugin which optimizes working with Gatsby Cloud", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.5", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -10,8 +10,8 @@ "@babel/runtime": "^7.15.4", "date-fns": "^2.23.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", "kebab-hash": "^0.1.2", "lodash": "^4.17.21", "webpack-assets-manifest": "^5.0.6" @@ -19,17 +19,17 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "@testing-library/dom": "^7.31.2", + "@testing-library/dom": "^8.5.0", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^13.2.1", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cpy-cli": "^3.1.1", "cross-env": "^7.0.3", "del-cli": "^3.0.1", "jest": "^26.6.3", "msw": "^0.35.0", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.5" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-gatsby-cloud#readme", "keywords": [ diff --git a/packages/gatsby-plugin-gatsby-cloud/src/__tests__/gatsby-browser.js b/packages/gatsby-plugin-gatsby-cloud/src/__tests__/gatsby-browser.js index 0e73d3590f8ef..2ac2a57a74332 100644 --- a/packages/gatsby-plugin-gatsby-cloud/src/__tests__/gatsby-browser.js +++ b/packages/gatsby-plugin-gatsby-cloud/src/__tests__/gatsby-browser.js @@ -84,7 +84,7 @@ describe(`Preview status indicator`, () => { beforeEach(() => { // it will disable setTimeout behaviour - only fetchData once - jest.useFakeTimers() + jest.useFakeTimers(`modern`) // reset all mocks jest.resetModules() global.fetch = require(`node-fetch`) @@ -274,7 +274,7 @@ describe(`Preview status indicator`, () => { const pathToBuildLogs = `https://www.gatsbyjs.com/dashboard/999/sites/111/builds/123/details` const returnTo = encodeURIComponent(pathToBuildLogs) - await await act(() => { + await act(async () => { render() }) @@ -338,7 +338,7 @@ describe(`Preview status indicator`, () => { navigator.clipboard = { writeText: jest.fn() } let copyLinkTooltip - await act(() => { + await act(async () => { render() }) diff --git a/packages/gatsby-plugin-gatsby-cloud/src/__tests__/routes.js b/packages/gatsby-plugin-gatsby-cloud/src/__tests__/routes.js index acc9d269c9f9f..0f2e1714af88a 100644 --- a/packages/gatsby-plugin-gatsby-cloud/src/__tests__/routes.js +++ b/packages/gatsby-plugin-gatsby-cloud/src/__tests__/routes.js @@ -24,6 +24,16 @@ describe(`Routes IPC`, () => { pages.set(`/path/1/`, { mode: `DSG`, path: `/path/1` }) pages.set(`/path/2/`, { mode: `SSR`, path: `/path/2` }) pages.set(`/path/3/`, { mode: `SSG`, path: `/path/3` }) + pages.set(`/path/4/`, { + mode: `SSR`, + path: `/path/[id].js`, + matchPath: `/path/:id`, + }) + pages.set(`/path/5/`, { + mode: `SSR`, + path: `/path/[...].js`, + matchPath: `/path/*`, + }) onPostBuild( { @@ -77,6 +87,10 @@ describe(`Routes IPC`, () => { "page-data/path/1/page-data.json": `DSG`, "path/2/index.html": `SSR`, "page-data/path/2/page-data.json": `SSR`, + "page-data/path/*/page-data.json": `SSR`, + "page-data/path/:id/page-data.json": `SSR`, + "path/*/index.html": `SSR`, + "path/:id/index.html": `SSR`, }, }, }, @@ -115,6 +129,10 @@ describe(`Routes IPC`, () => { "page-data\\path\\1\\page-data.json": `DSG`, "path\\2\\index.html": `SSR`, "page-data\\path\\2\\page-data.json": `SSR`, + "path\\:id\\index.html": `SSR`, + "page-data\\path\\:id\\page-data.json": `SSR`, + "path\\*\\index.html": `SSR`, + "page-data\\path\\*\\page-data.json": `SSR`, }, }, }, diff --git a/packages/gatsby-plugin-gatsby-cloud/src/gatsby-node.js b/packages/gatsby-plugin-gatsby-cloud/src/gatsby-node.js index c894f16b5b31e..6c7f720510cb4 100644 --- a/packages/gatsby-plugin-gatsby-cloud/src/gatsby-node.js +++ b/packages/gatsby-plugin-gatsby-cloud/src/gatsby-node.js @@ -53,8 +53,10 @@ exports.onPostBuild = async ( for (const [pathname, page] of pages) { if (page.mode && page.mode !== `SSG`) { index++ - batch[generateHtmlPath(``, pathname)] = page.mode - batch[generatePageDataPath(``, pathname)] = page.mode + + const fullPathName = page.matchPath ? page.matchPath : pathname + batch[generateHtmlPath(``, fullPathName)] = page.mode + batch[generatePageDataPath(``, fullPathName)] = page.mode if (index % 1000 === 0) { await emitRoutes(batch) @@ -111,6 +113,7 @@ exports.onPostBuild = async ( } await Promise.all([ + ensureEmittingFileNodesFinished, buildHeadersProgram(pluginData, pluginOptions), createSiteConfig(pluginData, pluginOptions), createRedirects(pluginData, redirects, rewrites), @@ -154,18 +157,28 @@ const pluginOptionsSchema = function ({ Joi }) { exports.pluginOptionsSchema = pluginOptionsSchema -exports.onPostBootstrap = async ({ getNodesByType }) => { - /** - * Emit via IPC absolute paths to files that should be stored - */ - const fileNodes = getNodesByType(`File`) +/** + * We emit File Nodes via IPC and we need to make sure build doesn't finish before all of + * messages were sent. + */ +let ensureEmittingFileNodesFinished +exports.onPreBootstrap = ({ emitter, getNodesByType }) => { + emitter.on(`API_FINISHED`, action => { + if (action.payload.apiName !== `sourceNodes`) { + return + } - // TODO: This is missing the cacheLocations .cache/caches + .cache/caches-lmdb - let fileNodesEmitted - for (const file of fileNodes) { - fileNodesEmitted = emitFileNodes({ - path: file.absolutePath, - }) - } - await fileNodesEmitted + async function doEmitFileNodes() { + const fileNodes = getNodesByType(`File`) + + // TODO: This is missing the cacheLocations .cache/caches + .cache/caches-lmdb + for (const file of fileNodes) { + await emitFileNodes({ + path: file.absolutePath, + }) + } + } + + ensureEmittingFileNodesFinished = doEmitFileNodes() + }) } diff --git a/packages/gatsby-plugin-google-analytics/package.json b/packages/gatsby-plugin-google-analytics/package.json index 2a16bfea487e5..9d2c8bff57fc4 100644 --- a/packages/gatsby-plugin-google-analytics/package.json +++ b/packages/gatsby-plugin-google-analytics/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-google-analytics", "description": "Gatsby plugin to add google analytics onto a site", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,8 +14,8 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "@testing-library/react": "^9.5.0", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "@testing-library/react": "^11.2.7", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-google-analytics#readme", diff --git a/packages/gatsby-plugin-google-gtag/package.json b/packages/gatsby-plugin-google-gtag/package.json index 9b9c1f5678f41..9b1f73acc5702 100644 --- a/packages/gatsby-plugin-google-gtag/package.json +++ b/packages/gatsby-plugin-google-gtag/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-google-gtag", "description": "Gatsby plugin to add google gtag onto a site", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Tyler Buchea ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-google-gtag#readme", diff --git a/packages/gatsby-plugin-google-tagmanager/package.json b/packages/gatsby-plugin-google-tagmanager/package.json index 685ebd03fa8e8..1693f1f5301f6 100644 --- a/packages/gatsby-plugin-google-tagmanager/package.json +++ b/packages/gatsby-plugin-google-tagmanager/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-google-tagmanager", "description": "Gatsby plugin to add google tagmanager onto a site", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Thijs Koerselman ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,9 +13,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-google-tagmanager#readme", "keywords": [ diff --git a/packages/gatsby-plugin-graphql-config/package.json b/packages/gatsby-plugin-graphql-config/package.json index 36971c6197178..488cc285eeb5f 100644 --- a/packages/gatsby-plugin-graphql-config/package.json +++ b/packages/gatsby-plugin-graphql-config/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-graphql-config", "description": "Gatsby plugin to write out a graphql-config with develop process endpoint configured", - "version": "1.0.0-zz-next.1", + "version": "1.0.0-zz-next.2", "author": "Rikki Schulte ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-image/CHANGELOG.md b/packages/gatsby-plugin-image/CHANGELOG.md index 4958c4137d32d..febe72182dbce 100644 --- a/packages/gatsby-plugin-image/CHANGELOG.md +++ b/packages/gatsby-plugin-image/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [1.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-image@1.14.1/packages/gatsby-plugin-image) (2021-10-06) + +#### Features + +- support multiple sources using gatsby-plugin-image [#32544](https://github.com/gatsbyjs/gatsby/issues/32544) [#33436](https://github.com/gatsbyjs/gatsby/issues/33436) ([11231fc](https://github.com/gatsbyjs/gatsby/commit/11231fcaa1093bf5250a2cb621f2bba90e84ee85)) + ## [1.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-image@1.14.0/packages/gatsby-plugin-image) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-plugin-image/package.json b/packages/gatsby-plugin-image/package.json index 9b783e4c66b5b..e875b6c4192da 100644 --- a/packages/gatsby-plugin-image/package.json +++ b/packages/gatsby-plugin-image/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-image", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.3", "scripts": { "build": "npm-run-all -s clean -p build:*", "build:gatsby-node": "tsc --jsx react --downlevelIteration true --skipLibCheck true --esModuleInterop true --outDir dist/ src/gatsby-node.ts src/babel-plugin-parse-static-images.ts src/resolver-utils.ts src/types.d.ts -d --declarationDir dist/src", @@ -61,7 +61,7 @@ "npm-run-all": "^4.1.5", "postcss": "^8.2.9", "terser": "^5.3.8", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "peerDependencies": { "@babel/core": "^7.12.3", @@ -77,12 +77,12 @@ "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "babel-jsx-utils": "^1.1.0", - "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.1", + "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.3", "camelcase": "^5.3.1", "chokidar": "^3.5.2", "common-tags": "^1.8.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "objectFitPolyfill": "^2.3.5", "prop-types": "^15.7.2" }, diff --git a/packages/gatsby-plugin-image/src/gatsby-node.ts b/packages/gatsby-plugin-image/src/gatsby-node.ts index 8b035a1983111..139122befaed3 100644 --- a/packages/gatsby-plugin-image/src/gatsby-node.ts +++ b/packages/gatsby-plugin-image/src/gatsby-node.ts @@ -1,8 +1,22 @@ import { GatsbyNode } from "gatsby" import { getCacheDir } from "./node-apis/node-utils" +import { + ImageFormatType, + ImageLayoutType, + ImagePlaceholderType, +} from "./resolver-utils" export * from "./node-apis/preprocess-source" +export const createSchemaCustomization: GatsbyNode["createSchemaCustomization"] = + ({ actions, schema }) => { + actions.createTypes([ + schema.buildEnumType(ImageFormatType), + schema.buildEnumType(ImageLayoutType), + schema.buildEnumType(ImagePlaceholderType), + ]) + } + export const onCreateBabelConfig: GatsbyNode["onCreateBabelConfig"] = ({ actions, store, diff --git a/packages/gatsby-plugin-image/src/resolver-utils.ts b/packages/gatsby-plugin-image/src/resolver-utils.ts index ad900ae8e5560..b21a3ab991ff2 100644 --- a/packages/gatsby-plugin-image/src/resolver-utils.ts +++ b/packages/gatsby-plugin-image/src/resolver-utils.ts @@ -1,18 +1,13 @@ +import { GraphQLFieldResolver } from "gatsby/graphql" import { - GraphQLNonNull, - GraphQLJSON, - GraphQLInt, - GraphQLList, - GraphQLString, - GraphQLFieldConfig, - GraphQLFieldResolver, - GraphQLFieldConfigArgumentMap, - GraphQLEnumType, - GraphQLFloat, -} from "gatsby/graphql" + EnumTypeComposerAsObjectDefinition, + ObjectTypeComposerFieldConfigAsObjectDefinition, + ObjectTypeComposerArgumentConfigMapDefinition, +} from "graphql-compose" import { stripIndent } from "common-tags" +import { ISharpGatsbyImageArgs, IImageSizeArgs } from "./image-utils" -export const ImageFormatType = new GraphQLEnumType({ +export const ImageFormatType: EnumTypeComposerAsObjectDefinition = { name: `GatsbyImageFormat`, values: { NO_CHANGE: { value: `` }, @@ -22,18 +17,18 @@ export const ImageFormatType = new GraphQLEnumType({ WEBP: { value: `webp` }, AVIF: { value: `avif` }, }, -}) +} -export const ImageLayoutType = new GraphQLEnumType({ +export const ImageLayoutType: EnumTypeComposerAsObjectDefinition = { name: `GatsbyImageLayout`, values: { FIXED: { value: `fixed` }, FULL_WIDTH: { value: `fullWidth` }, CONSTRAINED: { value: `constrained` }, }, -}) +} -export const ImagePlaceholderType = new GraphQLEnumType({ +export const ImagePlaceholderType: EnumTypeComposerAsObjectDefinition = { name: `GatsbyImagePlaceholder`, values: { DOMINANT_COLOR: { value: `dominantColor` }, @@ -41,7 +36,7 @@ export const ImagePlaceholderType = new GraphQLEnumType({ BLURRED: { value: `blurred` }, NONE: { value: `none` }, }, -}) +} export interface IGatsbyGraphQLFieldConfig { description?: string @@ -54,27 +49,46 @@ export interface IGatsbyGraphQLResolverArgumentConfig { type: string | Array defaultValue?: TValue } +export type IGatsbyImageResolverArgs = Pick< + ISharpGatsbyImageArgs & IImageSizeArgs, + | "aspectRatio" + | "backgroundColor" + | "breakpoints" + | "height" + | "layout" + | "outputPixelDensities" + | "sizes" + | "width" +> export function getGatsbyImageResolver( - resolve: GraphQLFieldResolver, - extraArgs?: Record -): IGatsbyGraphQLFieldConfig { + resolve: GraphQLFieldResolver< + TSource, + TContext, + IGatsbyImageResolverArgs & TArgs + >, + extraArgs?: ObjectTypeComposerArgumentConfigMapDefinition +): ObjectTypeComposerFieldConfigAsObjectDefinition< + TSource, + TContext, + IGatsbyImageResolverArgs & TArgs +> { return { type: `JSON!`, args: { layout: { - type: `enum GatsbyImageLayout { FIXED, FULL_WIDTH, CONSTRAINED }`, + type: ImageLayoutType.name, description: stripIndent` The layout for the image. FIXED: A static image sized, that does not resize according to the screen width - FULL_WIDTH: The image resizes to fit its container. Pass a "sizes" option if it isn't going to be the full width of the screen. + FULL_WIDTH: The image resizes to fit its container. Pass a "sizes" option if it isn't going to be the full width of the screen. CONSTRAINED: Resizes to fit its container, up to a maximum width, at which point it will remain fixed in size. `, }, width: { type: `Int`, description: stripIndent` - The display width of the generated image for layout = FIXED, and the display width of the largest image for layout = CONSTRAINED. + The display width of the generated image for layout = FIXED, and the display width of the largest image for layout = CONSTRAINED. The actual largest image resolution will be this value multiplied by the largest value in outputPixelDensities Ignored if layout = FULL_WIDTH. `, @@ -87,14 +101,14 @@ export function getGatsbyImageResolver( aspectRatio: { type: `Float`, description: stripIndent` - If set along with width or height, this will set the value of the other dimension to match the provided aspect ratio, cropping the image if needed. + If set along with width or height, this will set the value of the other dimension to match the provided aspect ratio, cropping the image if needed. If neither width or height is provided, height will be set based on the intrinsic width of the source image. `, }, sizes: { type: `String`, description: stripIndent` - The "sizes" property, passed to the img tag. This describes the display size of the image. + The "sizes" property, passed to the img tag. This describes the display size of the image. This does not affect the generated images, but is used by the browser to decide which images to download. You can leave this blank for fixed images, or if the responsive image container will be the full width of the screen. In these cases we will generate an appropriate value. `, @@ -125,15 +139,37 @@ export function getGatsbyImageResolver( } } -export function getGatsbyImageFieldConfig( - resolve: GraphQLFieldResolver, - extraArgs?: GraphQLFieldConfigArgumentMap -): GraphQLFieldConfig { +export type IGatsbyImageFieldArgs = Pick< + ISharpGatsbyImageArgs & IImageSizeArgs, + | "aspectRatio" + | "backgroundColor" + | "breakpoints" + | "formats" + | "height" + | "layout" + | "outputPixelDensities" + | "placeholder" + | "sizes" + | "width" +> + +export function getGatsbyImageFieldConfig( + resolve: GraphQLFieldResolver< + TSource, + TContext, + IGatsbyImageFieldArgs & TArgs + >, + extraArgs?: ObjectTypeComposerArgumentConfigMapDefinition +): ObjectTypeComposerFieldConfigAsObjectDefinition< + TSource, + TContext, + IGatsbyImageFieldArgs & TArgs +> { return { - type: new GraphQLNonNull(GraphQLJSON), + type: `JSON!`, args: { layout: { - type: ImageLayoutType, + type: ImageLayoutType.name, description: stripIndent` The layout for the image. FIXED: A static image sized, that does not resize according to the screen width @@ -142,7 +178,7 @@ export function getGatsbyImageFieldConfig( `, }, width: { - type: GraphQLInt, + type: `Int`, description: stripIndent` The display width of the generated image for layout = FIXED, and the display width of the largest image for layout = CONSTRAINED. The actual largest image resolution will be this value multiplied by the largest value in outputPixelDensities @@ -150,19 +186,19 @@ export function getGatsbyImageFieldConfig( `, }, height: { - type: GraphQLInt, + type: `Int`, description: stripIndent` If set, the height of the generated image. If omitted, it is calculated from the supplied width, matching the aspect ratio of the source image.`, }, aspectRatio: { - type: GraphQLFloat, + type: `Float`, description: stripIndent` - If set along with width or height, this will set the value of the other dimension to match the provided aspect ratio, cropping the image if needed. + If set along with width or height, this will set the value of the other dimension to match the provided aspect ratio, cropping the image if needed. If neither width or height is provided, height will be set based on the intrinsic width of the source image. `, }, placeholder: { - type: ImagePlaceholderType, + type: ImagePlaceholderType.name, description: stripIndent` Format of generated placeholder image, displayed while the main image loads. BLURRED: a blurred, low resolution image, encoded as a base64 data URI (default) @@ -171,24 +207,24 @@ export function getGatsbyImageFieldConfig( NONE: no placeholder. Set the argument "backgroundColor" to use a fixed background color.`, }, formats: { - type: GraphQLList(ImageFormatType), + type: `[${ImageFormatType.name}]`, description: stripIndent` The image formats to generate. Valid values are AUTO (meaning the same format as the source image), JPG, PNG, WEBP and AVIF. The default value is [AUTO, WEBP], and you should rarely need to change this. Take care if you specify JPG or PNG when you do not know the formats of the source images, as this could lead to unwanted results such as converting JPEGs to PNGs. Specifying - both PNG and JPG is not supported and will be ignored. + both PNG and JPG is not supported and will be ignored. `, defaultValue: [``, `webp`], }, outputPixelDensities: { - type: GraphQLList(GraphQLFloat), + type: `[Float]`, description: stripIndent` A list of image pixel densities to generate for FIXED and CONSTRAINED images. You should rarely need to change this. It will never generate images larger than the source, and will always include a 1x image. Default is [ 1, 2 ] for fixed images, meaning 1x, 2x, 3x, and [0.25, 0.5, 1, 2] for fluid. In this case, an image with a fluid layout and width = 400 would generate images at 100, 200, 400 and 800px wide. `, }, breakpoints: { - type: GraphQLList(GraphQLInt), + type: `[Int]`, description: stripIndent` Specifies the image widths to generate. You should rarely need to change this. For FIXED and CONSTRAINED images it is better to allow these to be determined automatically, based on the image size. For FULL_WIDTH images this can be used to override the default, which is [750, 1080, 1366, 1920]. @@ -196,7 +232,7 @@ export function getGatsbyImageFieldConfig( `, }, sizes: { - type: GraphQLString, + type: `String`, description: stripIndent` The "sizes" property, passed to the img tag. This describes the display size of the image. This does not affect the generated images, but is used by the browser to decide which images to download. You can leave this blank for fixed images, or if the responsive image @@ -204,7 +240,7 @@ export function getGatsbyImageFieldConfig( `, }, backgroundColor: { - type: GraphQLString, + type: `String`, description: `Background color applied to the wrapper, or when "letterboxing" an image to another aspect ratio.`, }, ...extraArgs, diff --git a/packages/gatsby-plugin-jss/package.json b/packages/gatsby-plugin-jss/package.json index 22b1fe8819784..fea9c650e2ece 100644 --- a/packages/gatsby-plugin-jss/package.json +++ b/packages/gatsby-plugin-jss/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-jss", "description": "Gatsby plugin that adds SSR support for JSS", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Vladimir Guguiev ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-jss#readme", diff --git a/packages/gatsby-plugin-layout/package.json b/packages/gatsby-plugin-layout/package.json index 0123020d8079b..db53e37b8928a 100644 --- a/packages/gatsby-plugin-layout/package.json +++ b/packages/gatsby-plugin-layout/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-layout", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.2", "description": "Reimplements the behavior of layout components in gatsby@1, which was removed in version 2.", "main": "index.js", "scripts": { @@ -29,7 +29,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-less/package.json b/packages/gatsby-plugin-less/package.json index 9ef718d064d09..02bf07e2afc49 100644 --- a/packages/gatsby-plugin-less/package.json +++ b/packages/gatsby-plugin-less/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-less", "description": "Gatsby plugin to add support for using Less", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "monastic.panic@gmail.com", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-less#readme", diff --git a/packages/gatsby-plugin-lodash/package.json b/packages/gatsby-plugin-lodash/package.json index d4e119a0532ad..0ddea29168fe7 100644 --- a/packages/gatsby-plugin-lodash/package.json +++ b/packages/gatsby-plugin-lodash/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-lodash", "description": "Easy modular Lodash builds. Adds the Lodash webpack & Babel plugins to your Gatsby build", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-lodash#readme", diff --git a/packages/gatsby-plugin-manifest/README.md b/packages/gatsby-plugin-manifest/README.md index d6579bbb488bf..11ff85fd3ac5c 100644 --- a/packages/gatsby-plugin-manifest/README.md +++ b/packages/gatsby-plugin-manifest/README.md @@ -1,7 +1,7 @@ # gatsby-plugin-manifest The web app manifest (part of the [PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) specification) enabled by this plugin allows users to add your site to their home screen on most mobile browsers — -[see here](http://caniuse.com/#feat=web-app-manifest). The manifest provides configuration and icons to the phone. +[see here](https://caniuse.com/web-app-manifest). The manifest provides configuration and icons to the phone. This plugin provides several features beyond manifest configuration to make your life easier, they are: @@ -44,11 +44,11 @@ module.exports = { } ``` -If you're using this plugin together with [`gatsby-plugin-offline`](https://www.gatsbyjs.org/packages/gatsby-plugin-offline) (recommended), +If you're using this plugin together with [`gatsby-plugin-offline`](https://www.gatsbyjs.com/plugins/gatsby-plugin-offline/) (recommended), this plugin should be listed _before_ the offline plugin so that it can cache the created `manifest.webmanifest`. -For more information on configuring your web app [see here](https://developers.google.com/web/fundamentals/web-app-manifest/). +For more information on configuring your web app [see here](https://web.dev/add-manifest/). ### Configure icons and their generations - **Required** @@ -134,7 +134,7 @@ icons: [ ], // Add or remove icon sizes as desired ``` -In the manual mode, you are responsible for defining the entire web app manifest and providing the defined icons in the [static](https://www.gatsbyjs.org/docs/static-folder/) folder. Only icons you provide will be available. There is no automatic resizing done for you. +In the manual mode, you are responsible for defining the entire web app manifest and providing the defined icons in the [static](https://www.gatsbyjs.com/docs/how-to/images-and-media/static-folder/) folder. Only icons you provide will be available. There is no automatic resizing done for you. ### Feature configuration - **Optional** @@ -144,7 +144,7 @@ Localization allows you to create unique manifests for each localized version of The default site language should be configured in your root plugin options. Any additional languages should be defined in the `localize` array. The root settings will be used as defaults if not overridden in a locale. Any configuration option available in the root is also available in the `localize` array. -`lang` and `start_url` are the only _required_ options in the array objects. `name`, `short_name`, and `description` are [recommended](https://www.w3.org/TR/appmanifest/#dfn-directionality-capable-members) to be translated if being used in the default language. All other config options are optional. This is helpful if you want to provide unique icons for each locale. +`lang` and `start_url` are the only _required_ options in the array objects. `name`, `short_name`, and `description` are [recommended](https://www.w3.org/TR/appmanifest/#dir-member) to be translated if being used in the default language. All other config options are optional. This is helpful if you want to provide unique icons for each locale. The [`lang` option](https://www.w3.org/TR/appmanifest/#lang-member) is part of the web app manifest specification and thus is required to be a [valid language tag](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry). @@ -358,7 +358,7 @@ Add a `crossorigin` attribute to the manifest `", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "semver": "^7.3.5", - "sharp": "^0.29.0" + "sharp": "^0.29.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-manifest#readme", diff --git a/packages/gatsby-plugin-mdx/gatsby/create-schema-customization.js b/packages/gatsby-plugin-mdx/gatsby/create-schema-customization.js index 33e7480ff9b8d..81312cd4a1128 100644 --- a/packages/gatsby-plugin-mdx/gatsby/create-schema-customization.js +++ b/packages/gatsby-plugin-mdx/gatsby/create-schema-customization.js @@ -78,7 +78,7 @@ module.exports = function createSchemaCustomization( debug(`required`, plugin) if (_.isFunction(requiredPlugin.setParserPlugins)) { for (const parserPlugin of requiredPlugin.setParserPlugins( - plugin.options || {} + plugin.pluginOptions || {} )) { if (_.isArray(parserPlugin)) { const [parser, parserPluginOptions] = parserPlugin diff --git a/packages/gatsby-plugin-mdx/loaders/mdx-loader.js b/packages/gatsby-plugin-mdx/loaders/mdx-loader.js index 9f9432df06a4b..1a79e267efee2 100644 --- a/packages/gatsby-plugin-mdx/loaders/mdx-loader.js +++ b/packages/gatsby-plugin-mdx/loaders/mdx-loader.js @@ -209,7 +209,7 @@ ${contentWithoutFrontmatter}` debug(`required`, plugin) if (_.isFunction(requiredPlugin.setParserPlugins)) { for (const parserPlugin of requiredPlugin.setParserPlugins( - plugin.options || {} + plugin.pluginOptions || {} )) { if (_.isArray(parserPlugin)) { const [parser, parserPluginOptions] = parserPlugin diff --git a/packages/gatsby-plugin-mdx/package.json b/packages/gatsby-plugin-mdx/package.json index b16564fbd61b3..36ddd7f9b020c 100644 --- a/packages/gatsby-plugin-mdx/package.json +++ b/packages/gatsby-plugin-mdx/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-mdx", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.3", "description": "MDX integration for Gatsby", "main": "index.js", "license": "MIT", @@ -37,7 +37,7 @@ "escape-string-regexp": "^1.0.5", "eval": "^0.1.4", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "gray-matter": "^4.0.2", "json5": "^2.1.3", "loader-utils": "^1.4.0", @@ -62,7 +62,7 @@ "devDependencies": { "@mdx-js/mdx": "^1.6.16", "@mdx-js/react": "^1.6.16", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "jest": "^24.9.0", "js-combinatorics": "^1.4.5", "react-test-renderer": "^16.13.1" diff --git a/packages/gatsby-plugin-mdx/utils/get-source-plugins-as-remark-plugins.js b/packages/gatsby-plugin-mdx/utils/get-source-plugins-as-remark-plugins.js index 62460627552c3..9e045446624e5 100644 --- a/packages/gatsby-plugin-mdx/utils/get-source-plugins-as-remark-plugins.js +++ b/packages/gatsby-plugin-mdx/utils/get-source-plugins-as-remark-plugins.js @@ -60,7 +60,7 @@ module.exports = async function getSourcePluginsAsRemarkPlugins({ cache, ...helpers, }, - plugin.options || {} + plugin.pluginOptions || {} ) return markdownAST diff --git a/packages/gatsby-plugin-netlify-cms/package.json b/packages/gatsby-plugin-netlify-cms/package.json index f2f0843ac3503..00d94f1804473 100644 --- a/packages/gatsby-plugin-netlify-cms/package.json +++ b/packages/gatsby-plugin-netlify-cms/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-netlify-cms", "description": "A Gatsby plugin which generates the Netlify CMS single page app", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "Shawn Erquhart ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -20,7 +20,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "react": "^16.12.0", "react-dom": "^16.12.0" diff --git a/packages/gatsby-plugin-no-sourcemaps/package.json b/packages/gatsby-plugin-no-sourcemaps/package.json index 3f14f619c8b78..344bf1d139456 100644 --- a/packages/gatsby-plugin-no-sourcemaps/package.json +++ b/packages/gatsby-plugin-no-sourcemaps/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-no-sourcemaps", "description": "Disable sourcemaps when building JavaScript", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Stuart Taylor ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" diff --git a/packages/gatsby-plugin-nprogress/package.json b/packages/gatsby-plugin-nprogress/package.json index 4b66027a66159..c8ee9a07181c5 100644 --- a/packages/gatsby-plugin-nprogress/package.json +++ b/packages/gatsby-plugin-nprogress/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-nprogress", "description": "Shows page loading indicator when loading page resources is delayed", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-nprogress#readme", diff --git a/packages/gatsby-plugin-offline/package.json b/packages/gatsby-plugin-offline/package.json index 4cd1e2c75adb1..df42fbe4ba915 100644 --- a/packages/gatsby-plugin-offline/package.json +++ b/packages/gatsby-plugin-offline/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-offline", "description": "Gatsby plugin which sets up a site to be able to run offline", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -9,7 +9,7 @@ "dependencies": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "glob": "^7.1.7", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", @@ -18,10 +18,10 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cpx": "^1.5.0", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "rewire": "^5.0.0" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-offline#readme", diff --git a/packages/gatsby-plugin-page-creator/package.json b/packages/gatsby-plugin-page-creator/package.json index 40d7eddd38227..8b9efa67d8d50 100644 --- a/packages/gatsby-plugin-page-creator/package.json +++ b/packages/gatsby-plugin-page-creator/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-page-creator", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "description": "Gatsby plugin that automatically creates pages from React components in specified directories", "main": "index.js", "scripts": { @@ -29,17 +29,17 @@ "@sindresorhus/slugify": "^1.1.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-page-utils": "^2.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-page-utils": "^2.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", "globby": "^11.0.4", "lodash": "^4.17.21" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-postcss/package.json b/packages/gatsby-plugin-postcss/package.json index 759dba3f65e6e..7f3609d37b49d 100644 --- a/packages/gatsby-plugin-postcss/package.json +++ b/packages/gatsby-plugin-postcss/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-postcss", "description": "Gatsby plugin to handle PostCSS", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Marat Dreizin ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-postcss#readme", diff --git a/packages/gatsby-plugin-preact/package.json b/packages/gatsby-plugin-preact/package.json index a99866fc26fe4..eadd3d151ad30 100644 --- a/packages/gatsby-plugin-preact/package.json +++ b/packages/gatsby-plugin-preact/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-preact", "description": "A Gatsby plugin which replaces React with Preact", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,7 +16,7 @@ "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-preact#readme", diff --git a/packages/gatsby-plugin-preload-fonts/package.json b/packages/gatsby-plugin-preload-fonts/package.json index c3d680ac5ff74..6d1f13ad9e199 100644 --- a/packages/gatsby-plugin-preload-fonts/package.json +++ b/packages/gatsby-plugin-preload-fonts/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-preload-fonts", "description": "Gatsby plugin for preloading fonts per page", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.3", "author": "Aaron Ross ", "main": "index.js", "bin": { @@ -15,7 +15,7 @@ "chalk": "^4.1.2", "date-fns": "^2.23.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "graphql-request": "^1.8.2", "progress": "^2.0.3", "puppeteer": "^3.3.0" @@ -23,7 +23,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "del-cli": "^3.0.1" }, diff --git a/packages/gatsby-plugin-react-css-modules/package.json b/packages/gatsby-plugin-react-css-modules/package.json index 5d81045e7d391..5ab711966604e 100644 --- a/packages/gatsby-plugin-react-css-modules/package.json +++ b/packages/gatsby-plugin-react-css-modules/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-react-css-modules", "description": "Gatsby plugin that transforms styleName to className using compile time CSS module resolution", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Ming Aldrich-Gan ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-react-css-modules#readme", diff --git a/packages/gatsby-plugin-react-helmet/README.md b/packages/gatsby-plugin-react-helmet/README.md index 81e8c5480e6db..9b44782d4637b 100644 --- a/packages/gatsby-plugin-react-helmet/README.md +++ b/packages/gatsby-plugin-react-helmet/README.md @@ -41,5 +41,4 @@ If you are using this plugin with React hooks, you may notice some errors like ` ## Examples -- [kentcdodds.com](https://github.com/kentcdodds/kentcdodds.com/blob/master/src/components/seo/index.js) -- [Jason Lengstorf personal website](https://github.com/jlengstorf/gatsby-theme-jason-blog/blob/master/src/components/SEO/SEO.js) +- [gatsby-starter-blog](https://github.com/gatsbyjs/gatsby/blob/master/starters/blog/src/components/seo.js) diff --git a/packages/gatsby-plugin-react-helmet/package.json b/packages/gatsby-plugin-react-helmet/package.json index d1ccae75f9ac3..bbe0dcf84b207 100644 --- a/packages/gatsby-plugin-react-helmet/package.json +++ b/packages/gatsby-plugin-react-helmet/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-react-helmet", "description": "Manage document head data with react-helmet. Provides drop-in server rendering support for Gatsby.", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-react-helmet#readme", diff --git a/packages/gatsby-plugin-remove-trailing-slashes/package.json b/packages/gatsby-plugin-remove-trailing-slashes/package.json index 6af22885a1cf2..44c3cccf24861 100644 --- a/packages/gatsby-plugin-remove-trailing-slashes/package.json +++ b/packages/gatsby-plugin-remove-trailing-slashes/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-remove-trailing-slashes", "description": "Removes trailing slashes from your project's paths. For example, yoursite.com/about/ becomes yoursite.com/about", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "scott.eckenthal@gmail.com", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-remove-trailing-slashes#readme", diff --git a/packages/gatsby-plugin-sass/package.json b/packages/gatsby-plugin-sass/package.json index ab643badf49e7..eb1f51cc65f3d 100644 --- a/packages/gatsby-plugin-sass/package.json +++ b/packages/gatsby-plugin-sass/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-sass", "description": "Gatsby plugin to handle SCSS/Sass files", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Daniel Farrell ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,10 +14,10 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "autoprefixer": "^10.3.3", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "autoprefixer": "^10.3.6", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-sass#readme", "keywords": [ diff --git a/packages/gatsby-plugin-schema-snapshot/package.json b/packages/gatsby-plugin-schema-snapshot/package.json index 54fc77870fe32..52b1e16ee0be4 100644 --- a/packages/gatsby-plugin-schema-snapshot/package.json +++ b/packages/gatsby-plugin-schema-snapshot/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-schema-snapshot", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.2", "main": "index.js", "license": "MIT", "keywords": [ diff --git a/packages/gatsby-plugin-sharp/CHANGELOG.md b/packages/gatsby-plugin-sharp/CHANGELOG.md index 1691888af4477..31ce451c08523 100644 --- a/packages/gatsby-plugin-sharp/CHANGELOG.md +++ b/packages/gatsby-plugin-sharp/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [3.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-sharp@3.14.1/packages/gatsby-plugin-sharp) (2021-10-06) + +**Note:** Version bump only for package gatsby-plugin-sharp + ## [3.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-sharp@3.14.0/packages/gatsby-plugin-sharp) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-plugin-sharp/README.md b/packages/gatsby-plugin-sharp/README.md index e6aa34190e659..a9f30f6843982 100644 --- a/packages/gatsby-plugin-sharp/README.md +++ b/packages/gatsby-plugin-sharp/README.md @@ -132,8 +132,6 @@ for more details. - `webpQuality` (int) - `srcSetBreakpoints` (array of int, default: []) - `background` (string, default: 'rgba(0,0,0,1)') -- [deprecated] `sizeByPixelDensity` (bool, default: false) - - Pixel density is only used in vector images, which Gatsby’s implementation of Sharp doesn’t support. This option is currently a no-op and will be removed in the next major version of Gatsby. #### Returns diff --git a/packages/gatsby-plugin-sharp/package.json b/packages/gatsby-plugin-sharp/package.json index d2a798bfcdc99..710cb7d999a8c 100644 --- a/packages/gatsby-plugin-sharp/package.json +++ b/packages/gatsby-plugin-sharp/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-sharp", "description": "Wrapper of the Sharp image manipulation library for Gatsby plugins", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.6", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,9 +12,9 @@ "bluebird": "^3.7.2", "filenamify": "^4.3.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", "got": "^11.8.2", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.3.3", @@ -22,17 +22,17 @@ "probe-image-size": "^6.0.0", "progress": "^2.0.3", "semver": "^7.3.5", - "sharp": "^0.29.0", + "sharp": "^0.29.1", "svgo": "1.3.2", "uuid": "3.4.0" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "@types/sharp": "^0.28.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "@types/sharp": "^0.29.2", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-image": "^2.0.0-zz-next.1" + "gatsby-plugin-image": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-sharp#readme", "keywords": [ diff --git a/packages/gatsby-plugin-sharp/src/__tests__/__snapshots__/index.js.snap b/packages/gatsby-plugin-sharp/src/__tests__/__snapshots__/index.js.snap index ad86535eea532..904734059256f 100644 --- a/packages/gatsby-plugin-sharp/src/__tests__/__snapshots__/index.js.snap +++ b/packages/gatsby-plugin-sharp/src/__tests__/__snapshots__/index.js.snap @@ -166,63 +166,6 @@ exports[`gatsby-plugin-sharp fixed does not warn when the requested width is equ } `; -exports[`gatsby-plugin-sharp fixed should give the same result with createJob as with createJobV2 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - Object { - "args": Object { - "isLazy": false, - "operations": Array [ - Object { - "args": Object { - "toFormat": "png", - "width": 1, - }, - "outputPath": "89172/test.png", - }, - Object { - "args": Object { - "toFormat": "png", - "width": 2, - }, - "outputPath": "002c7/test.png", - }, - Object { - "args": Object { - "toFormat": "png", - "width": 2, - }, - "outputPath": "002c7/test.png", - }, - ], - "pluginOptions": Object { - "base64Width": 20, - "defaultQuality": 50, - "failOnError": true, - "forceBase64Format": "", - "lazyImageGeneration": true, - "stripMetadata": true, - "useMozJpeg": false, - }, - }, - "inputPaths": Array [ - "/packages/gatsby-plugin-sharp/src/__tests__/images/test.png", - ], - "name": "IMAGE_PROCESSING", - "outputDir": "/public/static/1234", - }, - ], - ], - "results": Array [ - Object { - "type": "return", - "value": Promise {}, - }, - ], -} -`; - exports[`gatsby-plugin-sharp fixed warns when the requested width is greater than the image width 1`] = ` [MockFunction] { "calls": Array [ @@ -1085,23 +1028,6 @@ Object { } `; -exports[`gatsby-plugin-sharp fluid includes responsive image properties, e.g. sizes, srcset, etc. with the createJob api 1`] = ` -Object { - "aspectRatio": 1, - "base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsTAAALEwEAmpwYAAABP0lEQVQ4y2P4r8ZANmKgvuZ/agy/VaHojyopmv+CNf/XQCCoCEHNf1VBqv+oM5yVY1giwbBakuG2AkjknzoW/eh2/tdgOCPHYM7OwMDAwAgiGFgYGMJ5GF4og43ApRmuk58JqpMJRjIwMBizMbxTZviPaj8ihCD6rThAStkgljJATWEHc3P5wT5SxdD8B2ztERmQIiYGdAAxSpaF4T2q5TDN4HCaLgZSxMyAE1yQgwY+Fs1zxQloviSPTTMktM7JgVzIiKEH4hElFoavKogAQgltiJA3F0gdOyPC58yw8GsUwhFgUMvVGR4oMqiwogQbhOHLxfBLDcVabIlEneGxEkMMLwMvTLc4M0OdEMN3VfRIxp48/6mDnPdCieGkHCiRflRh+K+JPXljz1IQJ0AzhjrRGQPZC5As+ZeuhQGRmgHU8mT34D0STQAAAABJRU5ErkJggg==", - "density": 72, - "originalImg": "/static/1234/7e516/test.png", - "originalName": "test.png", - "presentationHeight": 100, - "presentationWidth": 100, - "sizes": "(max-width: 100px) 100vw, 100px", - "src": "/static/1234/7e516/test.png", - "srcSet": "/static/1234/7e516/test.png 100w", - "srcSetType": "image/png", - "tracedSVG": undefined, -} -`; - exports[`gatsby-plugin-sharp fluid infers the maxWidth if only maxHeight is given 1`] = ` [MockFunction] { "calls": Array [ @@ -1358,49 +1284,6 @@ exports[`gatsby-plugin-sharp fluid reject any breakpoints larger than the origin } `; -exports[`gatsby-plugin-sharp fluid should give the same result with createJob as with createJobV2 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - Object { - "args": Object { - "isLazy": false, - "operations": Array [ - Object { - "args": Object { - "toFormat": "png", - "width": 100, - }, - "outputPath": "7e516/test.png", - }, - ], - "pluginOptions": Object { - "base64Width": 20, - "defaultQuality": 50, - "failOnError": true, - "forceBase64Format": "", - "lazyImageGeneration": true, - "stripMetadata": true, - "useMozJpeg": false, - }, - }, - "inputPaths": Array [ - "/packages/gatsby-plugin-sharp/src/__tests__/images/test.png", - ], - "name": "IMAGE_PROCESSING", - "outputDir": "/public/static/1234", - }, - ], - ], - "results": Array [ - Object { - "type": "return", - "value": Promise {}, - }, - ], -} -`; - exports[`gatsby-plugin-sharp fluid should throw if maxWidth is less than 1 1`] = `[MockFunction]`; exports[`gatsby-plugin-sharp fluid should throw on srcSet breakpoints less than 1 1`] = `[MockFunction]`; @@ -1416,97 +1299,7 @@ Object { } `; -exports[`gatsby-plugin-sharp queueImageResizing with createJob file name works with spaces & special characters createJob 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - Object { - "args": Object { - "isLazy": false, - "operations": Array [ - Object { - "args": Object { - "toFormat": "png", - "width": 3, - }, - "outputPath": "4a20d/spaces and '\\"@#$%^&,.png", - }, - ], - "pluginOptions": Object { - "base64Width": 20, - "defaultQuality": 50, - "failOnError": true, - "forceBase64Format": "", - "lazyImageGeneration": true, - "stripMetadata": true, - "useMozJpeg": false, - }, - }, - "inputPaths": Array [ - "/packages/gatsby-plugin-sharp/src/__tests__/images/144-density.png", - ], - "name": "IMAGE_PROCESSING", - "outputDir": "/public/static/1234", - }, - Object {}, - undefined, - ], - ], - "results": Array [ - Object { - "type": "return", - "value": Promise {}, - }, - ], -} -`; - -exports[`gatsby-plugin-sharp queueImageResizing with createJob should round height when auto-calculated createJob 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - Object { - "args": Object { - "isLazy": false, - "operations": Array [ - Object { - "args": Object { - "toFormat": "png", - "width": 3, - }, - "outputPath": "4a20d/test.png", - }, - ], - "pluginOptions": Object { - "base64Width": 20, - "defaultQuality": 50, - "failOnError": true, - "forceBase64Format": "", - "lazyImageGeneration": true, - "stripMetadata": true, - "useMozJpeg": false, - }, - }, - "inputPaths": Array [ - "/packages/gatsby-plugin-sharp/src/__tests__/images/144-density.png", - ], - "name": "IMAGE_PROCESSING", - "outputDir": "/public/static/1234", - }, - Object {}, - undefined, - ], - ], - "results": Array [ - Object { - "type": "return", - "value": Promise {}, - }, - ], -} -`; - -exports[`gatsby-plugin-sharp queueImageResizing with createJobV2 file name works with spaces & special characters createJobV2 1`] = ` +exports[`gatsby-plugin-sharp queueImageResizing file name works with spaces & special characters createJobV2 1`] = ` [MockFunction] { "calls": Array [ Array [ @@ -1549,7 +1342,7 @@ exports[`gatsby-plugin-sharp queueImageResizing with createJobV2 file name works } `; -exports[`gatsby-plugin-sharp queueImageResizing with createJobV2 should round height when auto-calculated createJobV2 1`] = ` +exports[`gatsby-plugin-sharp queueImageResizing should round height when auto-calculated createJobV2 1`] = ` [MockFunction] { "calls": Array [ Array [ diff --git a/packages/gatsby-plugin-sharp/src/__tests__/index.js b/packages/gatsby-plugin-sharp/src/__tests__/index.js index dd8bbb209b32a..2fee9ed0d9867 100644 --- a/packages/gatsby-plugin-sharp/src/__tests__/index.js +++ b/packages/gatsby-plugin-sharp/src/__tests__/index.js @@ -1,6 +1,5 @@ const path = require(`path`) const fs = require(`fs-extra`) -jest.mock(`../scheduler`) jest.mock(`async/queue`, () => () => { return { @@ -16,8 +15,6 @@ jest.mock(`gatsby/dist/redux/actions`, () => { }) const sharp = require(`sharp`) -const { scheduleJob } = require(`../scheduler`) -scheduleJob.mockReturnValue(Promise.resolve()) fs.ensureDirSync = jest.fn() fs.existsSync = jest.fn().mockReturnValue(false) @@ -71,100 +68,63 @@ describe(`gatsby-plugin-sharp`, () => { } describe(`queueImageResizing`, () => { - ;[`createJob`, `createJobV2`].forEach(api => { - describe(`with ${api}`, () => { - let actions - beforeEach(() => { - actions = {} - if (api === `createJobV2`) { - actions.createJobV2 = jest.fn().mockReturnValue(Promise.resolve()) - } - setActions(actions) - scheduleJob.mockClear() - }) - - it(`should round height when auto-calculated ${api}`, () => { - // Resize 144-density.png (281x136) with a 3px width - const result = queueImageResizing({ - file: getFileObject(path.join(__dirname, `images/144-density.png`)), - args: { width: 3 }, - }) - - // Width should be: w = (3 * 136) / 281 = 1.451957295 - // We expect value to be rounded to 1 - expect(result.height).toBe(1) - if (api === `createJobV2`) { - expect(actions.createJobV2).toHaveBeenCalledTimes(1) - expect(actions.createJobV2).toMatchSnapshot() - } else { - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(scheduleJob).toMatchSnapshot() - } - }) + let actions + beforeEach(() => { + actions = { + createJobV2: jest.fn().mockReturnValue(Promise.resolve()), + } + setActions(actions) + }) - it(`file name works with spaces & special characters ${api}`, async () => { - // test name encoding with various characters - const testName = `spaces and '"@#$%^&,` - - const queueResult = queueImageResizing({ - file: getFileObject( - path.join(__dirname, `images/144-density.png`), - testName - ), - args: { width: 3 }, - }) - - const queueResultName = path.parse(queueResult.src).name - - // decoding to check for outputting same name - expect(decodeURIComponent(queueResultName)).toBe(testName) - - // regex for special characters above and spaces - // testname should match, the queue result should not - expect(testName.match(/[!@#$^&," ]/)).not.toBe(false) - expect(queueResultName.match(/[!@#$^&," ]/)).not.toBe(true) - if (api === `createJobV2`) { - expect(actions.createJobV2).toHaveBeenCalledTimes(1) - expect(actions.createJobV2).toMatchSnapshot() - } else { - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(scheduleJob).toMatchSnapshot() - } - }) + it(`should round height when auto-calculated createJobV2`, () => { + // Resize 144-density.png (281x136) with a 3px width + const result = queueImageResizing({ + file: getFileObject(path.join(__dirname, `images/144-density.png`)), + args: { width: 3 }, + }) - // re-enable when image processing on demand is implemented - it.skip(`should process immediately when asked`, async () => { - const result = queueImageResizing({ - file: getFileObject(path.join(__dirname, `images/144-density.png`)), - args: { width: 3 }, - }) + // Width should be: w = (3 * 136) / 281 = 1.451957295 + // We expect value to be rounded to 1 + expect(result.height).toBe(1) + expect(actions.createJobV2).toHaveBeenCalledTimes(1) + expect(actions.createJobV2).toMatchSnapshot() + }) - await result.finishedPromise + it(`file name works with spaces & special characters createJobV2`, async () => { + // test name encoding with various characters + const testName = `spaces and '"@#$%^&,` - expect(scheduleJob).toMatchSnapshot() - }) + const queueResult = queueImageResizing({ + file: getFileObject( + path.join(__dirname, `images/144-density.png`), + testName + ), + args: { width: 3 }, }) + + const queueResultName = path.parse(queueResult.src).name + + // decoding to check for outputting same name + expect(decodeURIComponent(queueResultName)).toBe(testName) + + // regex for special characters above and spaces + // testname should match, the queue result should not + expect(testName.match(/[!@#$^&," ]/)).not.toBe(false) + expect(queueResultName.match(/[!@#$^&," ]/)).not.toBe(true) + expect(actions.createJobV2).toHaveBeenCalledTimes(1) + expect(actions.createJobV2).toMatchSnapshot() }) - it(`should return the same result when using createJob as createJobV2`, async () => { - scheduleJob.mockClear() - const actions = { - createJobV2: jest.fn(() => Promise.resolve()), - } - setActions(actions) - const resultV2 = await queueImageResizing({ + // re-enable when image processing on demand is implemented + it.skip(`should process immediately when asked`, async () => { + const result = queueImageResizing({ file: getFileObject(path.join(__dirname, `images/144-density.png`)), args: { width: 3 }, }) - setActions({}) - const result = await queueImageResizing({ - file: getFileObject(path.join(__dirname, `images/144-density.png`)), - args: { width: 3 }, - }) - expect(actions.createJobV2).toHaveBeenCalledTimes(1) - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(result).toStrictEqual(resultV2) + await result.finishedPromise + + expect(actions.createJobV2).toMatchSnapshot() }) }) @@ -173,7 +133,6 @@ describe(`gatsby-plugin-sharp`, () => { beforeEach(() => { actions.createJobV2 = jest.fn().mockReturnValue(Promise.resolve()) setActions(actions) - scheduleJob.mockClear() }) it(`includes responsive image properties, e.g. sizes, srcset, etc.`, async () => { @@ -183,26 +142,6 @@ describe(`gatsby-plugin-sharp`, () => { expect(result).toMatchSnapshot() }) - it(`includes responsive image properties, e.g. sizes, srcset, etc. with the createJob api`, async () => { - setActions({}) - const result = await fluid({ file }) - - expect(actions.createJobV2).not.toHaveBeenCalled() - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(result).toMatchSnapshot() - }) - - it(`should give the same result with createJob as with createJobV2`, async () => { - const resultV2 = await fluid({ file }) - - setActions({}) - const result = await fluid({ file }) - expect(actions.createJobV2).toHaveBeenCalledTimes(1) - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(result).toStrictEqual(resultV2) - expect(actions.createJobV2).toMatchSnapshot() - }) - it(`adds pathPrefix if defined`, async () => { const pathPrefix = `/blog` const result = await fluid({ @@ -416,25 +355,9 @@ describe(`gatsby-plugin-sharp`, () => { beforeEach(() => { actions.createJobV2 = jest.fn().mockReturnValue(Promise.resolve()) setActions(actions) - scheduleJob.mockClear() console.warn = jest.fn() }) - it(`should give the same result with createJob as with createJobV2`, async () => { - const actions = { - createJobV2: jest.fn(() => Promise.resolve()), - } - setActions(actions) - const resultV2 = await fixed({ file, args: { width: 1 } }) - - setActions({}) - const result = await fixed({ file, args: { width: 1 } }) - expect(actions.createJobV2).toHaveBeenCalledTimes(1) - expect(scheduleJob).toHaveBeenCalledTimes(1) - expect(result).toStrictEqual(resultV2) - expect(actions.createJobV2).toMatchSnapshot() - }) - it(`does not warn when the requested width is equal to the image width`, async () => { const args = { width: 1 } diff --git a/packages/gatsby-plugin-sharp/src/__tests__/scheduler.js b/packages/gatsby-plugin-sharp/src/__tests__/scheduler.js deleted file mode 100644 index a2b0fcaea4931..0000000000000 --- a/packages/gatsby-plugin-sharp/src/__tests__/scheduler.js +++ /dev/null @@ -1,184 +0,0 @@ -jest.mock(`../gatsby-worker`, () => { - return { - IMAGE_PROCESSING: jest.fn(), - } -}) -jest.mock(`got`) -const got = require(`got`) -const fs = require(`fs-extra`) - -const workerMock = require(`../gatsby-worker`).IMAGE_PROCESSING - -describe(`scheduler`, () => { - let actions = {} - let scheduler - beforeEach(() => { - workerMock.mockReset() - actions = { - createJob: jest.fn(), - endJob: jest.fn(), - } - - jest.isolateModules(() => { - scheduler = require(`../scheduler`) - }) - }) - - it(`should schedule an image processing job`, async () => { - workerMock.mockResolvedValue() - const { scheduleJob } = scheduler - - const job = { - inputPaths: [`/test-image[new].jpg`], - outputDir: `/public/static/`, - args: { - operations: [ - { - outputPath: `/1234/test-image[new].jpg`, - args: { - width: `100`, - }, - }, - ], - pluginOptions: {}, - }, - } - await scheduleJob(job, actions) - - expect(workerMock).toHaveBeenCalledWith( - expect.objectContaining({ - inputPaths: job.inputPaths.map(inputPath => { - return { - path: inputPath, - contentDigest: expect.any(String), - } - }), - outputDir: job.outputDir, - args: job.args, - }) - ) - }) - - it(`should fail the job when transform failed`, async () => { - workerMock.mockRejectedValue(`failed transform`) - const { scheduleJob } = scheduler - - expect.assertions(1) - try { - await scheduleJob( - { - inputPaths: [`/test-image.jpg`], - outputDir: `/public/static/`, - args: { - operations: [ - { - outputPath: `/1234/test-image.jpg`, - args: {}, - }, - ], - pluginOptions: {}, - }, - }, - actions - ) - } catch (err) { - expect(err).toEqual(`failed transform`) - } - }) - - it(`Shouldn't schedule a job when outputFile already exists`, async () => { - workerMock.mockResolvedValue() - const orignalSync = fs.existsSync - fs.existsSync = jest.fn().mockReturnValue(true) - const { scheduleJob } = scheduler - const job = { - inputPaths: [`/test-image.jpg`], - outputDir: `/public/static/`, - args: { - operations: [ - { - outputPath: `/1234/test-image.jpg`, - args: {}, - }, - ], - pluginOptions: {}, - }, - } - await scheduleJob(job, actions) - - expect(workerMock).not.toHaveBeenCalled() - fs.existsSync = orignalSync - }) - - it(`Shouldn't schedule a job when with same outputFile is already being queued`, async () => { - workerMock.mockResolvedValue() - const { scheduleJob } = scheduler - const job = { - inputPaths: [`/test-image.jpg`], - outputDir: `/public/static/`, - args: { - operations: [ - { - outputPath: `/1234/test-image.jpg`, - args: {}, - }, - ], - pluginOptions: {}, - }, - } - const jobPromise = scheduleJob(job, actions) - const job2Promise = scheduleJob(job, actions) - expect(jobPromise).toStrictEqual(job2Promise) - - await Promise.all([jobPromise, job2Promise]) - - expect(workerMock).toHaveBeenCalledTimes(1) - }) - - describe(`Gatsby cloud`, () => { - beforeAll(() => { - process.env.GATSBY_CLOUD_IMAGE_SERVICE_URL = `https://example.com/image-service` - }) - - beforeEach(() => { - got.post.mockReset() - got.post.mockResolvedValueOnce({}) - }) - - afterAll(() => { - delete process.env.GATSBY_CLOUD_IMAGE_SERVICE_URL - }) - - it(`should offload sharp transforms to the cloud`, async () => { - const { scheduleJob } = scheduler - const job = { - inputPaths: [`/test-image.jpg`], - outputDir: `/public/static/`, - args: { - operations: [ - { - outputPath: `/1234/test-image3.jpg`, - args: {}, - }, - ], - pluginOptions: {}, - }, - } - - await scheduleJob(job, actions) - - expect(got.post).toHaveBeenCalledWith( - process.env.GATSBY_CLOUD_IMAGE_SERVICE_URL, - { - json: { - file: job.inputPaths[0], - hash: expect.any(String), - transforms: job.args.operations, - options: job.args.pluginOptions, - }, - responseType: `json`, - } - ) - }) - }) -}) diff --git a/packages/gatsby-plugin-sharp/src/gatsby-worker.js b/packages/gatsby-plugin-sharp/src/gatsby-worker.js index bfbb3f00e46e1..f1670de53070d 100644 --- a/packages/gatsby-plugin-sharp/src/gatsby-worker.js +++ b/packages/gatsby-plugin-sharp/src/gatsby-worker.js @@ -32,7 +32,8 @@ const q = queue( args.pluginOptions ) ), - Math.max(1, cpuCoreCount() - 1) + // When inside query workers, we only want to use the current core + process.env.GATSBY_WORKER_POOL_WORKER ? 1 : Math.max(1, cpuCoreCount() - 1) ) /** diff --git a/packages/gatsby-plugin-sharp/src/index.js b/packages/gatsby-plugin-sharp/src/index.js index 0d701feff6ad3..2f0091c754136 100644 --- a/packages/gatsby-plugin-sharp/src/index.js +++ b/packages/gatsby-plugin-sharp/src/index.js @@ -7,7 +7,6 @@ const _ = require(`lodash`) const fs = require(`fs-extra`) const path = require(`path`) -const { scheduleJob } = require(`./scheduler`) const { createArgsDigest } = require(`./process-file`) const { reportError } = require(`./report-error`) const { @@ -138,14 +137,7 @@ function createJob(job, { reporter }) { // in resolve / reject handlers). If we would use async/await // entire closure would keep duplicate job in memory until // initial job finish. - let promise = null - if (actions.createJobV2) { - promise = actions.createJobV2(job) - } else { - promise = scheduleJob(job, actions, reporter) - } - - promise.catch(err => { + const promise = actions.createJobV2(job).catch(err => { reporter.panic(`error converting image`, err) }) @@ -432,24 +424,7 @@ async function stats({ file, reporter }) { async function fluid({ file, args = {}, reporter, cache }) { const options = healOptions(getPluginOptions(), args, file.extension) - if (options.sizeByPixelDensity) { - /* - * We learned that `sizeByPixelDensity` is only valid for vector images, - * and Gatsby’s implementation of Sharp doesn’t support vector images. - * This means we should remove this option in the next major version of - * Gatsby, but for now we can no-op and warn. - * - * See https://github.com/gatsbyjs/gatsby/issues/12743 - * - * TODO: remove the sizeByPixelDensity option in the next breaking release - */ - reporter.warn( - `the option sizeByPixelDensity is deprecated and should not be used. It will be removed in the next major release of Gatsby.` - ) - } - // Account for images with a high pixel density. We assume that these types of - // images are intended to be displayed at their native resolution. let metadata try { const pipeline = sharp() diff --git a/packages/gatsby-plugin-sharp/src/plugin-options.js b/packages/gatsby-plugin-sharp/src/plugin-options.js index a3e3ade52326e..5c0f4d7844fb6 100644 --- a/packages/gatsby-plugin-sharp/src/plugin-options.js +++ b/packages/gatsby-plugin-sharp/src/plugin-options.js @@ -26,7 +26,6 @@ const generalArgs = { pathPrefix: ``, toFormat: ``, toFormatBase64: ``, - sizeByPixelDensity: false, rotate: 0, } diff --git a/packages/gatsby-plugin-sharp/src/scheduler.js b/packages/gatsby-plugin-sharp/src/scheduler.js deleted file mode 100644 index 0c5a64b51e077..0000000000000 --- a/packages/gatsby-plugin-sharp/src/scheduler.js +++ /dev/null @@ -1,96 +0,0 @@ -const uuidv4 = require(`uuid/v4`) -const path = require(`path`) -const fs = require(`fs-extra`) -const got = require(`got`) -const { createContentDigest } = require(`gatsby-core-utils`) -const worker = require(`./gatsby-worker`) - -const processImages = async (jobId, job, actions) => { - try { - await worker.IMAGE_PROCESSING(job) - } finally { - actions.endJob({ id: jobId }, { name: `gatsby-plugin-sharp` }) - } -} - -const jobsInFlight = new Map() -const scheduleJob = async (job, actions, reporter) => { - const inputPaths = job.inputPaths.filter( - inputPath => !fs.existsSync(path.join(job.outputDir, inputPath)) - ) - - // all paths exists so we bail - if (!inputPaths.length) { - return Promise.resolve() - } - - const convertedJob = { - inputPaths: inputPaths.map(inputPath => { - return { - path: inputPath, - // we don't care about the content, we never did so the old api will still have the same flaws - contentDigest: createContentDigest(inputPath), - } - }), - outputDir: job.outputDir, - args: job.args, - } - - const jobDigest = createContentDigest(convertedJob) - if (jobsInFlight.has(jobDigest)) { - return jobsInFlight.get(jobDigest) - } - - if (process.env.GATSBY_CLOUD_IMAGE_SERVICE_URL) { - const cloudJob = got - .post(process.env.GATSBY_CLOUD_IMAGE_SERVICE_URL, { - json: { - file: job.inputPaths[0], - hash: createContentDigest(job), - transforms: job.args.operations, - options: job.args.pluginOptions, - }, - responseType: `json`, - }) - .then(() => {}) - - jobsInFlight.set(jobDigest, cloudJob) - return cloudJob - } - - // If output file already exists don't re-run image processing - // this has been in here from the beginning, job api v2 does this correct - // to not break existing behahaviour we put this in here too. - job.args.operations = job.args.operations.filter( - operation => !fs.existsSync(path.join(job.outputDir, operation.outputPath)) - ) - - if (!job.args.operations.length) { - jobsInFlight.set(jobDigest, Promise.resolve()) - return jobsInFlight.get(jobDigest) - } - - const jobId = uuidv4() - actions.createJob( - { - id: jobId, - description: `processing image ${job.inputPaths[0]}`, - imagesCount: job.args.operations.length, - }, - { name: `gatsby-plugin-sharp` } - ) - - const promise = new Promise((resolve, reject) => { - setImmediate(() => { - processImages(jobId, convertedJob, actions).then(result => { - resolve(result) - }, reject) - }) - }) - - jobsInFlight.set(jobDigest, promise) - - return promise -} - -export { scheduleJob } diff --git a/packages/gatsby-plugin-sitemap/README.md b/packages/gatsby-plugin-sitemap/README.md index 63f3f2fb2a7c3..2ad35c13484da 100644 --- a/packages/gatsby-plugin-sitemap/README.md +++ b/packages/gatsby-plugin-sitemap/README.md @@ -65,7 +65,7 @@ The options are as follows: - [`resolveSiteUrl`](#resolveSiteUrl) (function) Takes the output of the data query and lets you return the site URL. Sync or async functions allowed. - [`resolvePagePath`](#resolvePagePath) (function) Takes a page object and returns the uri of the page (no domain or protocol). - [`resolvePages`](#resolvePagePath) (function) Takes the output of the data query and expects an array of page objects to be returned. Sync or async functions allowed. -- [`filterPages`](#filterPages) (function) Takes the current page a string (or other object) from the `exclude` array and expects a boolean to be returned. `true` excludes the path, `false` keeps it. +- [`filterPages`](#filterPages) (function) Takes the current page and a string (or other object) from the `exclude` array and expects a boolean to be returned. `true` excludes the path, `false` keeps it. - [`serialize`](#serialize) (function) Takes the output of `filterPages` and lets you return a sitemap entry. Sync or async functions allowed. The following pages are **always** excluded: `/dev-404-page`,`/404` &`/offline-plugin-app-shell-fallback`, this cannot be changed even by customizing the [`filterPages`](#filterPages) function. diff --git a/packages/gatsby-plugin-sitemap/package.json b/packages/gatsby-plugin-sitemap/package.json index 224cdb941a97a..43318227e75bb 100644 --- a/packages/gatsby-plugin-sitemap/package.json +++ b/packages/gatsby-plugin-sitemap/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-sitemap", "description": "Gatsby plugin that automatically creates a sitemap for your site", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.4", "contributors": [ "Alex Moon ", "Nicholas Young " @@ -18,9 +18,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-sitemap#readme", "keywords": [ diff --git a/packages/gatsby-plugin-styled-components/package.json b/packages/gatsby-plugin-styled-components/package.json index cf94c675ab877..777c87624c869 100644 --- a/packages/gatsby-plugin-styled-components/package.json +++ b/packages/gatsby-plugin-styled-components/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-styled-components", "description": "Gatsby plugin to add support for styled components", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Guten Ye ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-styled-components#readme", diff --git a/packages/gatsby-plugin-styled-jsx/package.json b/packages/gatsby-plugin-styled-jsx/package.json index e8f8e9e6035ec..df0ab40c52d1e 100644 --- a/packages/gatsby-plugin-styled-jsx/package.json +++ b/packages/gatsby-plugin-styled-jsx/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-styled-jsx", "description": "Adds SSR support for styled-jsx", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Tim Suchanek ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-styled-jsx#readme", diff --git a/packages/gatsby-plugin-styletron/package.json b/packages/gatsby-plugin-styletron/package.json index 15cd419785856..28d2cbe797cd1 100644 --- a/packages/gatsby-plugin-styletron/package.json +++ b/packages/gatsby-plugin-styletron/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-styletron", "description": "A Gatsby plugin for styletron with built-in server-side rendering support", - "version": "7.0.0-zz-next.1", + "version": "7.0.0-zz-next.2", "author": "Nadiia Dmytrenko ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "styletron-engine-atomic": "^1.4.8", "styletron-react": "^6.0.1" diff --git a/packages/gatsby-plugin-stylus/package.json b/packages/gatsby-plugin-stylus/package.json index b83a9e941030d..b46c3795586ac 100644 --- a/packages/gatsby-plugin-stylus/package.json +++ b/packages/gatsby-plugin-stylus/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-stylus", "description": "Gatsby support for Stylus", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Ian Sinnott ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-stylus#readme", diff --git a/packages/gatsby-plugin-subfont/package.json b/packages/gatsby-plugin-subfont/package.json index 59943ca23d3b2..8ef5257449c91 100644 --- a/packages/gatsby-plugin-subfont/package.json +++ b/packages/gatsby-plugin-subfont/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-subfont", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "description": "Runs the font delivery optimizing CLI tool subfont on the homepage of your site during the Gatsby build", "main": "index.js", "scripts": { @@ -30,7 +30,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-twitter/package.json b/packages/gatsby-plugin-twitter/package.json index 899b712f67990..554bc8adf47d9 100644 --- a/packages/gatsby-plugin-twitter/package.json +++ b/packages/gatsby-plugin-twitter/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-twitter", "description": "Loads the Twitter JavaScript for embedding tweets.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,9 +12,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-twitter#readme", "keywords": [ diff --git a/packages/gatsby-plugin-typescript/package.json b/packages/gatsby-plugin-typescript/package.json index 7a8179b1387f7..924b0f02eebec 100644 --- a/packages/gatsby-plugin-typescript/package.json +++ b/packages/gatsby-plugin-typescript/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-typescript", "description": "Adds TypeScript support to Gatsby", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,12 +16,12 @@ "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@babel/runtime": "^7.15.4", - "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.1" + "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.3" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "peerDependencies": { diff --git a/packages/gatsby-plugin-typography/package.json b/packages/gatsby-plugin-typography/package.json index 211800dbf6dc8..f396dff9b141a 100644 --- a/packages/gatsby-plugin-typography/package.json +++ b/packages/gatsby-plugin-typography/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-typography", "description": "Gatsby plugin to setup server rendering of Typography.js' CSS", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "react": "^16.12.0", "react-dom": "^16.12.0", diff --git a/packages/gatsby-plugin-utils/package.json b/packages/gatsby-plugin-utils/package.json index ae4899274ff2f..a147327afcfc4 100644 --- a/packages/gatsby-plugin-utils/package.json +++ b/packages/gatsby-plugin-utils/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-utils", - "version": "2.0.0-zz-next.1", + "version": "2.0.0-zz-next.3", "description": "Gatsby utils that help creating plugins", "main": "dist/index.js", "scripts": { @@ -27,10 +27,10 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "rimraf": "^3.0.2", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "peerDependencies": { "gatsby": "^4.0.0-next" diff --git a/packages/gatsby-react-router-scroll/package.json b/packages/gatsby-react-router-scroll/package.json index 16d9e04db969f..3c773fe04542a 100644 --- a/packages/gatsby-react-router-scroll/package.json +++ b/packages/gatsby-react-router-scroll/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-react-router-scroll", "description": "React Router scroll management forked from https://github.com/ytase/react-router-scroll for Gatsby", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Jimmy Jia", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,9 +13,9 @@ "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", "babel-plugin-dev-expression": "^0.2.2", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "history": "^4.10.1" + "history": "^5.0.1" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-react-router-scroll#readme", "keywords": [ diff --git a/packages/gatsby-react-router-scroll/src/__tests__/session-storage.ts b/packages/gatsby-react-router-scroll/src/__tests__/session-storage.ts index 42627ae2c592d..045b80fe0e21c 100644 --- a/packages/gatsby-react-router-scroll/src/__tests__/session-storage.ts +++ b/packages/gatsby-react-router-scroll/src/__tests__/session-storage.ts @@ -1,15 +1,31 @@ -import { createLocation } from "history" +import { parsePath, Path } from "history" import { SessionStorage } from "../session-storage" describe(`SessionStorage`, () => { it(`Handles different scroll positions on pages with key of \`initial\``, () => { const inst = new SessionStorage() const key = `initial` - const fooLocation = createLocation(`/foo`, {}, key) - const barLocation = createLocation(`/bar`, {}, key) - inst.save(fooLocation, key, 100) - inst.save(barLocation, key, 0) - expect(inst.read(fooLocation, key)).toBe(100) - expect(inst.read(barLocation, key)).toBe(0) + const fooLocation = parsePath(`/foo`) + const barLocation = parsePath(`/bar`) + inst.save( + { + ...fooLocation, + hash: ``, + search: ``, + } as Path, + key, + 100 + ) + inst.save( + { + ...barLocation, + hash: ``, + search: ``, + } as Path, + key, + 0 + ) + expect(inst.read(fooLocation as Path, key)).toBe(100) + expect(inst.read(barLocation as Path, key)).toBe(0) }) }) diff --git a/packages/gatsby-react-router-scroll/src/session-storage.ts b/packages/gatsby-react-router-scroll/src/session-storage.ts index 52ce119f08ceb..1384bb6d29fe3 100644 --- a/packages/gatsby-react-router-scroll/src/session-storage.ts +++ b/packages/gatsby-react-router-scroll/src/session-storage.ts @@ -1,9 +1,9 @@ -import { Location } from "history" +import { Path } from "history" const STATE_KEY_PREFIX = `@@scroll|` const GATSBY_ROUTER_SCROLL_STATE = `___GATSBY_REACT_ROUTER_SCROLL` export class SessionStorage { - read(location: Location, key: string): number { + read(location: Path, key: string): number { const stateKey = this.getStateKey(location, key) try { @@ -28,7 +28,7 @@ export class SessionStorage { } } - save(location: Location, key: string, value: number): void { + save(location: Path, key: string, value: number): void { const stateKey = this.getStateKey(location, key) const storedValue = JSON.stringify(value) @@ -50,7 +50,7 @@ export class SessionStorage { } } - getStateKey(location: Location, key: string): string { + getStateKey(location: Path, key: string): string { const stateKeyBase = `${STATE_KEY_PREFIX}${location.pathname}` return key === null || typeof key === `undefined` ? stateKeyBase diff --git a/packages/gatsby-recipes/package.json b/packages/gatsby-recipes/package.json index b5788fc2aea72..1b2e8f8707456 100644 --- a/packages/gatsby-recipes/package.json +++ b/packages/gatsby-recipes/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-recipes", "description": "Core functionality for Gatsby Recipes", - "version": "1.0.0-zz-next.1", + "version": "1.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -31,8 +31,8 @@ "express": "^4.17.1", "express-graphql": "^0.12.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", diff --git a/packages/gatsby-remark-autolink-headers/package.json b/packages/gatsby-remark-autolink-headers/package.json index d51d9b7d98308..4364cb6351438 100644 --- a/packages/gatsby-remark-autolink-headers/package.json +++ b/packages/gatsby-remark-autolink-headers/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-autolink-headers", "description": "Gatsby plugin to autolink headers in markdown processed by Remark", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,9 +16,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-autolink-headers#readme", "keywords": [ diff --git a/packages/gatsby-remark-code-repls/package.json b/packages/gatsby-remark-code-repls/package.json index b8fffbfd7a9ed..8f6c5e05a457f 100644 --- a/packages/gatsby-remark-code-repls/package.json +++ b/packages/gatsby-remark-code-repls/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-code-repls", "description": "Gatsby plugin to auto-generate links to popular REPLs like Babel and Codepen", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "Brian Vaughn ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -18,7 +18,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-code-repls#readme", diff --git a/packages/gatsby-remark-copy-linked-files/package.json b/packages/gatsby-remark-copy-linked-files/package.json index 4d3d7d69e7210..cf913110b7bf1 100644 --- a/packages/gatsby-remark-copy-linked-files/package.json +++ b/packages/gatsby-remark-copy-linked-files/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-copy-linked-files", "description": "Find files which are linked to from markdown and copy them to the public directory", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -19,7 +19,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "remark": "^13.0.0", "remark-mdx": "^1.6.22" diff --git a/packages/gatsby-remark-custom-blocks/package.json b/packages/gatsby-remark-custom-blocks/package.json index 434d5dbfd62b5..380c9d402a60e 100644 --- a/packages/gatsby-remark-custom-blocks/package.json +++ b/packages/gatsby-remark-custom-blocks/package.json @@ -1,19 +1,19 @@ { "name": "gatsby-remark-custom-blocks", "description": "Gatsby remark plugin for adding custom blocks in markdown", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Mohammad Asad Mohammad ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { "@babel/runtime": "^7.15.4", - "remark-custom-blocks": "^2.5.0" + "remark-custom-blocks": "^2.5.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "rimraf": "^3.0.2", "unist-util-find": "^1.0.2" diff --git a/packages/gatsby-remark-embed-snippet/package.json b/packages/gatsby-remark-embed-snippet/package.json index 5087c7c401965..18dc47121a9a4 100644 --- a/packages/gatsby-remark-embed-snippet/package.json +++ b/packages/gatsby-remark-embed-snippet/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-embed-snippet", "description": "Gatsby plugin to embed formatted code snippets within markdown", - "version": "7.0.0-zz-next.1", + "version": "7.0.0-zz-next.2", "author": "Brian Vaughn ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-embed-snippet#readme", diff --git a/packages/gatsby-remark-graphviz/package.json b/packages/gatsby-remark-graphviz/package.json index f46291425209d..028ca5813714e 100644 --- a/packages/gatsby-remark-graphviz/package.json +++ b/packages/gatsby-remark-graphviz/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-graphviz", "description": "Processes graphviz code blocks and renders to SVG using viz.js", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Anthony Marcar ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "hast-util-to-html": "^7.1.3", "mdast-util-to-hast": "^10.2.0", diff --git a/packages/gatsby-remark-images-contentful/README.md b/packages/gatsby-remark-images-contentful/README.md index c6d81abd45773..292e24fcbc085 100644 --- a/packages/gatsby-remark-images-contentful/README.md +++ b/packages/gatsby-remark-images-contentful/README.md @@ -44,16 +44,15 @@ plugins: [ ## Options -| Name | Default | Description | -| ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `maxWidth` | `650` | The `maxWidth` in pixels of the `div` where the markdown will be displayed. This value is used when deciding what the width of the various responsive thumbnails should be. | -| `linkImagesToOriginal` | `true` | Add a link to each image to the original image. Sometimes people want to see a full-sized version of an image e.g. to see extra detail on a part of the image and this is a convenient and common pattern for enabling this. Set this option to false to disable this behavior. | -| `showCaptions` | `false` | Add a caption to each image with the contents of the title attribute, when this is not empty. Set this option to true to enable this behavior. | -| `sizeByPixelDensity` | `false` | Analyze images' pixel density to make decisions about target image size. This is what GitHub is doing when embedding images in tickets. This is a useful setting for documentation pages with a lot of screenshots. It can have unintended side effects on high-pixel density artworks.

    Example: A screenshot made on a retina screen with a resolution of 144 (e.g. Macbook) and a width of 100px, will be rendered at 50px. | -| `wrapperStyle` | | Add custom styles to the div wrapping the responsive images. Use regular CSS syntax, e.g. `margin-bottom:10px; background: red;` | -| `backgroundColor` | `white` | Set the background color of the image to match the background of your design | -| `withWebp` | `false` | Additionally generate WebP versions alongside your chosen file format. They are added as a srcset with the appropriate mimetype and will be loaded in browsers that support the format. | -| `loading` | `lazy` | Set the browser's native lazy loading attribute. One of `lazy`, `eager` or `auto`. | +| Name | Default | Description | +| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `maxWidth` | `650` | The `maxWidth` in pixels of the `div` where the markdown will be displayed. This value is used when deciding what the width of the various responsive thumbnails should be. | +| `linkImagesToOriginal` | `true` | Add a link to each image to the original image. Sometimes people want to see a full-sized version of an image e.g. to see extra detail on a part of the image and this is a convenient and common pattern for enabling this. Set this option to false to disable this behavior. | +| `showCaptions` | `false` | Add a caption to each image with the contents of the title attribute, when this is not empty. Set this option to true to enable this behavior. | +| `wrapperStyle` | | Add custom styles to the div wrapping the responsive images. Use regular CSS syntax, e.g. `margin-bottom:10px; background: red;` | +| `backgroundColor` | `white` | Set the background color of the image to match the background of your design | +| `withWebp` | `false` | Additionally generate WebP versions alongside your chosen file format. They are added as a srcset with the appropriate mimetype and will be loaded in browsers that support the format. | +| `loading` | `lazy` | Set the browser's native lazy loading attribute. One of `lazy`, `eager` or `auto`. | ## Troubleshooting diff --git a/packages/gatsby-remark-images-contentful/package.json b/packages/gatsby-remark-images-contentful/package.json index 475891fed6368..4560ae2bfb0f7 100644 --- a/packages/gatsby-remark-images-contentful/package.json +++ b/packages/gatsby-remark-images-contentful/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-remark-images-contentful", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.4", "description": "Process Images in Contentful markdown so they can use the images API.", "main": "index.js", "scripts": { @@ -22,13 +22,13 @@ "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "semver": "^7.3.5", - "sharp": "^0.29.0", + "sharp": "^0.29.1", "unist-util-select": "^3.0.4" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "keywords": [ diff --git a/packages/gatsby-remark-images-contentful/src/utils/index.js b/packages/gatsby-remark-images-contentful/src/utils/index.js index 3a3d65c3ce039..5a23c0c5d7858 100644 --- a/packages/gatsby-remark-images-contentful/src/utils/index.js +++ b/packages/gatsby-remark-images-contentful/src/utils/index.js @@ -30,14 +30,10 @@ const buildResponsiveSizes = async ( ) const { width, height, density } = metadata - const { sizeByPixelDensity, maxWidth, sizes } = options + const { maxWidth, sizes } = options const aspectRatio = width / height - const pixelRatio = - sizeByPixelDensity && typeof density === `number` && density > 0 - ? density / 72 - : 1 - const presentationWidth = Math.min(maxWidth, Math.round(width / pixelRatio)) + const presentationWidth = Math.min(maxWidth, width) const presentationHeight = Math.round(presentationWidth * (height / width)) const sizesQuery = sizes || `(max-width: ${presentationWidth}px) 100vw, ${presentationWidth}px` diff --git a/packages/gatsby-remark-images/README.md b/packages/gatsby-remark-images/README.md index 4e3a85f1a2093..bb2bbe7c1d288 100644 --- a/packages/gatsby-remark-images/README.md +++ b/packages/gatsby-remark-images/README.md @@ -65,7 +65,6 @@ a reserved keyword `GATSBY_EMPTY_ALT` can be used. | `linkImagesToOriginal` | `true` | Add a link to each image to the original image. Sometimes people want to see a full-sized version of an image e.g. to see extra detail on a part of the image and this is a convenient and common pattern for enabling this. Set this option to `false` to disable this behavior. | | `showCaptions` | `false` | Add a caption to each image with the contents of the title attribute, when this is not empty. If the title attribute is empty but the alt attribute is not, it will be used instead. Set this option to true to enable this behavior. You can also pass an array instead to specify which value should be used for the caption — for example, passing `['alt', 'title']` would use the alt attribute first, and then the title. When this is set to `true` it is the same as passing `['title', 'alt']`. If you just want to use the title (and omit captions for images that have alt attributes but no title), pass `['title']`. | | `markdownCaptions` | `false` | Parse the caption as markdown instead of raw text. Ignored if `showCaptions` is `false`. | -| `sizeByPixelDensity` | `false` | [deprecated] Pixel density is only used in vector images, which Gatsby’s implementation of Sharp doesn’t support. This option is currently a no-op and will be removed in the next major version of Gatsby. | | `wrapperStyle` | | Add custom styles to the div wrapping the responsive images. Use the syntax for the style attribute e.g. `margin-bottom:10px; background: red;` or a function returning a style string which receives the information about the image you can use to dynamically set styles based on the `aspectRatio` for example. | | `backgroundColor` | `white` | Set the background color of the image to match the background image of your design.

    **Note:**
    - set this option to `transparent` for a transparent image background.
    - set this option to `none` to completely remove the image background. | | `quality` | `50` | The quality level of the generated files. | diff --git a/packages/gatsby-remark-images/package.json b/packages/gatsby-remark-images/package.json index 1fc8a11379766..10876708da1ca 100644 --- a/packages/gatsby-remark-images/package.json +++ b/packages/gatsby-remark-images/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-images", "description": "Processes images in markdown so they can be used in the production build.", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.4", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -10,7 +10,7 @@ "@babel/runtime": "^7.15.4", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "mdast-util-definitions": "^4.0.0", @@ -22,9 +22,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", "hast-util-to-html": "^7.1.3", "mdast-util-to-hast": "^10.2.0" }, diff --git a/packages/gatsby-remark-images/src/__tests__/gatsby-node.js b/packages/gatsby-remark-images/src/__tests__/gatsby-node.js index 26fe943df03f8..9b747332ab73a 100644 --- a/packages/gatsby-remark-images/src/__tests__/gatsby-node.js +++ b/packages/gatsby-remark-images/src/__tests__/gatsby-node.js @@ -9,7 +9,6 @@ describe(`pluginOptionsSchema`, () => { `"linkImagesToOriginal" must be a boolean`, `"showCaptions" must be one of [boolean, array]`, `"markdownCaptions" must be a boolean`, - `"sizeByPixelDensity" must be a boolean`, `"wrapperStyle" must be one of [object, string]`, `"backgroundColor" must be a string`, `"quality" must be a number`, @@ -27,7 +26,6 @@ describe(`pluginOptionsSchema`, () => { linkImagesToOriginal: `This should be a boolean`, showCaptions: `This should be a boolean`, markdownCaptions: `This should be a boolean`, - sizeByPixelDensity: `This should be a boolean`, wrapperStyle: true, backgroundColor: 123, quality: `This should be a number`, @@ -49,7 +47,6 @@ describe(`pluginOptionsSchema`, () => { linkImagesToOriginal: false, showCaptions: true, markdownCaptions: true, - sizeByPixelDensity: true, wrapperStyle: { marginTop: `1rem`, padding: `1.5rem`, color: `blue` }, backgroundColor: `red`, quality: 77, diff --git a/packages/gatsby-remark-images/src/gatsby-node.js b/packages/gatsby-remark-images/src/gatsby-node.js index db2e87e8015d6..a1c958cca3aee 100644 --- a/packages/gatsby-remark-images/src/gatsby-node.js +++ b/packages/gatsby-remark-images/src/gatsby-node.js @@ -29,11 +29,6 @@ exports.pluginOptionsSchema = function ({ Joi }) { .description( `Parse the caption as markdown instead of raw text. Ignored if showCaptions is false.` ), - sizeByPixelDensity: Joi.boolean() - .default(false) - .description( - `[deprecated] Pixel density is only used in vector images, which Gatsby’s implementation of Sharp doesn’t support. This option is currently a no-op and will be removed in the next major version of Gatsby.` - ), wrapperStyle: Joi.alternatives().try( Joi.object({}).unknown(true), Joi.function().maxArity(1), diff --git a/packages/gatsby-remark-katex/package.json b/packages/gatsby-remark-katex/package.json index e0535a7645c7c..003387be5fc9a 100644 --- a/packages/gatsby-remark-katex/package.json +++ b/packages/gatsby-remark-katex/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-katex", "description": "Transform math nodes to html markup", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.3", "author": "Jeffrey Xiao ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,9 +16,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "katex": "^0.13.17", + "katex": "^0.13.18", "remark": "^13.0.0" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-katex#readme", diff --git a/packages/gatsby-remark-prismjs/package.json b/packages/gatsby-remark-prismjs/package.json index 08c751b449a62..0d6ba153930b4 100644 --- a/packages/gatsby-remark-prismjs/package.json +++ b/packages/gatsby-remark-prismjs/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-prismjs", "description": "Adds syntax highlighting to code blocks at build time using PrismJS", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cheerio": "^1.0.0-rc.10", "cross-env": "^7.0.3", "prismjs": "^1.21.0", diff --git a/packages/gatsby-remark-responsive-iframe/package.json b/packages/gatsby-remark-responsive-iframe/package.json index 286ef66759136..e086333c881e9 100644 --- a/packages/gatsby-remark-responsive-iframe/package.json +++ b/packages/gatsby-remark-responsive-iframe/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-responsive-iframe", "description": "Make iframes in Markdown processed by Remark responsive", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -16,7 +16,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "remark": "^13.0.0", "remark-mdx": "^1.6.21", diff --git a/packages/gatsby-remark-smartypants/package.json b/packages/gatsby-remark-smartypants/package.json index 03ced7be4b047..bfde2d1a1cc99 100644 --- a/packages/gatsby-remark-smartypants/package.json +++ b/packages/gatsby-remark-smartypants/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-remark-smartypants", "description": "Use retext-smartypants to auto-enhance typography of markdown", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-smartypants#readme", diff --git a/packages/gatsby-source-contentful/README.md b/packages/gatsby-source-contentful/README.md index 8410ad0a53344..18417fc8cba72 100644 --- a/packages/gatsby-source-contentful/README.md +++ b/packages/gatsby-source-contentful/README.md @@ -435,6 +435,7 @@ query pageQuery($id: String!) { raw references { ... on ContentfulAsset { + # You'll need to query contentful_id in each reference contentful_id __typename fixed(width: 1600) { @@ -487,10 +488,12 @@ const options = { function BlogPostTemplate({ data }) { const { bodyRichText } = data.contentfulBlogPost - return
    {bodyRichText && renderRichText(richTextField, options)}
    + return
    {bodyRichText && renderRichText(bodyRichText, options)}
    } ``` +**Note:** The `contentful_id` field must be queried on rich-text references in order for the `renderNode` to receive the correct data. + ### Embedding an image in a Rich Text field **Import** diff --git a/packages/gatsby-source-contentful/package.json b/packages/gatsby-source-contentful/package.json index 884df53e6789e..b95cdfa88ae54 100644 --- a/packages/gatsby-source-contentful/package.json +++ b/packages/gatsby-source-contentful/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-contentful", "description": "Gatsby source plugin for building websites using the Contentful CMS as a data source", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.5", "author": "Marcus Ericsson (mericsson.com)", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -17,9 +17,9 @@ "common-tags": "^1.8.0", "contentful": "^8.4.2", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", - "gatsby-source-filesystem": "^4.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", + "gatsby-source-filesystem": "^4.0.0-zz-next.3", "is-online": "^8.5.1", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.21", @@ -30,7 +30,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "nock": "^13.1.3" }, diff --git a/packages/gatsby-source-contentful/src/__fixtures__/restricted-content-type.js b/packages/gatsby-source-contentful/src/__fixtures__/restricted-content-type.js index 86c5f7a2a02d2..8adda16238442 100644 --- a/packages/gatsby-source-contentful/src/__fixtures__/restricted-content-type.js +++ b/packages/gatsby-source-contentful/src/__fixtures__/restricted-content-type.js @@ -1,3 +1,45 @@ +exports.contentTypeItems = () => [ + { + sys: { + space: { + sys: { + type: `Link`, + linkType: `Space`, + id: `uzfinxahlog0`, + contentful_id: `uzfinxahlog0`, + }, + }, + id: `reference`, + type: `ContentType`, + createdAt: `2020-06-03T14:17:18.696Z`, + updatedAt: `2020-06-03T14:17:18.696Z`, + environment: { + sys: { + id: `master`, + type: `Link`, + linkType: `Environment`, + }, + }, + revision: 1, + contentful_id: `person`, + }, + displayField: `name`, + name: `Reference`, + description: ``, + fields: [ + { + id: `name`, + name: `Name`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + ], + }, +] + exports.initialSync = () => { return { currentSyncData: { @@ -7,47 +49,6 @@ exports.initialSync = () => { deletedAssets: [], nextSyncToken: `12345`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `reference`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Reference`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { diff --git a/packages/gatsby-source-contentful/src/__fixtures__/rich-text-data.js b/packages/gatsby-source-contentful/src/__fixtures__/rich-text-data.js index 6a0200de2dc4e..0be1eaa13ee55 100644 --- a/packages/gatsby-source-contentful/src/__fixtures__/rich-text-data.js +++ b/packages/gatsby-source-contentful/src/__fixtures__/rich-text-data.js @@ -1,3 +1,61 @@ +exports.contentTypeItems = () => [ + { + sys: { + space: { + sys: { + type: `Link`, + linkType: `Space`, + id: `ahntqop9oi7x`, + }, + }, + id: `page`, + type: `ContentType`, + createdAt: `2020-10-16T11:43:48.221Z`, + updatedAt: `2020-10-16T11:44:25.392Z`, + environment: { + sys: { + id: `master`, + type: `Link`, + linkType: `Environment`, + }, + }, + revision: 2, + }, + displayField: `title`, + name: `Page`, + description: ``, + fields: [ + { + id: `title`, + name: `Title`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `slug`, + name: `Slug`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `content`, + name: `Content`, + type: `RichText`, + localized: true, + required: false, + disabled: false, + omitted: false, + }, + ], + }, +] + exports.initialSync = () => { return { currentSyncData: { @@ -692,63 +750,7 @@ exports.initialSync = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw3CmxolIsOxF10EMMOGCXM-IFrCrhc0LUPDvkjDkms7w5gLw4sqw4_CvxsiZMOFFsOawpM8R8OVPAhMJ8O1w6zCmg`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `ahntqop9oi7x`, - }, - }, - id: `page`, - type: `ContentType`, - createdAt: `2020-10-16T11:43:48.221Z`, - updatedAt: `2020-10-16T11:44:25.392Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 2, - }, - displayField: `title`, - name: `Page`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `content`, - name: `Content`, - type: `RichText`, - localized: true, - required: false, - disabled: false, - omitted: false, - }, - ], - }, - ], + defaultLocale: `en-US`, locales: [ { @@ -792,6 +794,8 @@ exports.initialSync = () => { tagItems: [], } } + +// @todo this fixture is unused exports.deleteLinkedPage = () => { return { currentSyncData: { @@ -826,63 +830,6 @@ exports.deleteLinkedPage = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw3CqcO3w6XCrMKuITDDiEoQSMKvIMOYwrzCn3sHPH3CvsK3w4A9w6LCjsOVwrjCjGwbw4rCl0fDl8OhU8Oqw67DhMOCwozDmxrChsOtRD4`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `ahntqop9oi7x`, - }, - }, - id: `page`, - type: `ContentType`, - createdAt: `2020-10-16T11:43:48.221Z`, - updatedAt: `2020-10-16T11:44:25.392Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 2, - }, - displayField: `title`, - name: `Page`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `content`, - name: `Content`, - type: `RichText`, - localized: true, - required: false, - disabled: false, - omitted: false, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { diff --git a/packages/gatsby-source-contentful/src/__fixtures__/starter-blog-data.js b/packages/gatsby-source-contentful/src/__fixtures__/starter-blog-data.js index eafa7a2723a4d..5808f74fe837a 100644 --- a/packages/gatsby-source-contentful/src/__fixtures__/starter-blog-data.js +++ b/packages/gatsby-source-contentful/src/__fixtures__/starter-blog-data.js @@ -1,3 +1,235 @@ +exports.contentTypeItems = () => [ + { + sys: { + space: { + sys: { + type: `Link`, + linkType: `Space`, + id: `uzfinxahlog0`, + contentful_id: `uzfinxahlog0`, + }, + }, + id: `person`, + type: `ContentType`, + createdAt: `2020-06-03T14:17:18.696Z`, + updatedAt: `2020-06-03T14:17:18.696Z`, + environment: { + sys: { + id: `master`, + type: `Link`, + linkType: `Environment`, + }, + }, + revision: 1, + contentful_id: `person`, + }, + displayField: `name`, + name: `Person`, + description: ``, + fields: [ + { + id: `name`, + name: `Name`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `title`, + name: `Title`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `company`, + name: `Company`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `shortBio`, + name: `Short Bio`, + type: `Text`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `email`, + name: `Email`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `phone`, + name: `Phone`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `facebook`, + name: `Facebook`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `twitter`, + name: `Twitter`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `github`, + name: `Github`, + type: `Symbol`, + localized: false, + required: false, + disabled: false, + omitted: false, + }, + { + id: `image`, + name: `Image`, + type: `Link`, + localized: false, + required: false, + disabled: false, + omitted: false, + linkType: `Asset`, + }, + ], + }, + { + sys: { + space: { + sys: { + type: `Link`, + linkType: `Space`, + id: `uzfinxahlog0`, + contentful_id: `uzfinxahlog0`, + }, + }, + id: `blogPost`, + type: `ContentType`, + createdAt: `2020-06-03T14:17:19.068Z`, + updatedAt: `2020-06-03T14:17:19.068Z`, + environment: { + sys: { + id: `master`, + type: `Link`, + linkType: `Environment`, + }, + }, + revision: 1, + contentful_id: `blogPost`, + }, + displayField: `title`, + name: `Blog Post`, + description: ``, + fields: [ + { + id: `title`, + name: `Title`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `slug`, + name: `Slug`, + type: `Symbol`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `heroImage`, + name: `Hero Image`, + type: `Link`, + localized: false, + required: true, + disabled: false, + omitted: false, + linkType: `Asset`, + }, + { + id: `description`, + name: `Description`, + type: `Text`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `body`, + name: `Body`, + type: `Text`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `author`, + name: `Author`, + type: `Link`, + localized: false, + required: false, + disabled: false, + omitted: false, + linkType: `Entry`, + }, + { + id: `publishDate`, + name: `Publish Date`, + type: `Date`, + localized: false, + required: true, + disabled: false, + omitted: false, + }, + { + id: `tags`, + name: `Tags`, + type: `Array`, + localized: false, + required: false, + disabled: false, + omitted: false, + items: { + type: `Symbol`, + validations: [{ in: [`general`, `javascript`, `static-sites`] }], + }, + }, + ], + }, +] + exports.initialSync = () => { return { currentSyncData: { @@ -420,237 +652,6 @@ exports.initialSync = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw 4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw3CswoUY34WECLCh152KsOLQcKwH8Kfw4kOQcOlw6TCr8OmEcKiwrhBZ8KhwrLCrcOsA8KYAMOFwo1kBMOZwrHDgCbDllcXVA`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `person`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Person`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `company`, - name: `Company`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `shortBio`, - name: `Short Bio`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `email`, - name: `Email`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `phone`, - name: `Phone`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `facebook`, - name: `Facebook`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `twitter`, - name: `Twitter`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `github`, - name: `Github`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `image`, - name: `Image`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - ], - }, - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `blogPost`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:19.068Z`, - updatedAt: `2020-06-03T14:17:19.068Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `blogPost`, - }, - displayField: `title`, - name: `Blog Post`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `heroImage`, - name: `Hero Image`, - type: `Link`, - localized: false, - required: true, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - { - id: `description`, - name: `Description`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `body`, - name: `Body`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `author`, - name: `Author`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Entry`, - }, - { - id: `publishDate`, - name: `Publish Date`, - type: `Date`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `tags`, - name: `Tags`, - type: `Array`, - localized: false, - required: false, - disabled: false, - omitted: false, - items: { - type: `Symbol`, - validations: [{ in: [`general`, `javascript`, `static-sites`] }], - }, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { @@ -810,237 +811,6 @@ exports.createBlogPost = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw0YQMOfwrtZBsOQw41ww7xhJj8Ew4TChcOow6ZPPVVZaMOfOlFEwp7CpcOxwpd_YcKBw5jCkznDgMO6w4lsw73CrcOmwpILwqTClg`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `person`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Person`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `company`, - name: `Company`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `shortBio`, - name: `Short Bio`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `email`, - name: `Email`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `phone`, - name: `Phone`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `facebook`, - name: `Facebook`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `twitter`, - name: `Twitter`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `github`, - name: `Github`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `image`, - name: `Image`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - ], - }, - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `blogPost`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:19.068Z`, - updatedAt: `2020-06-03T14:17:19.068Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `blogPost`, - }, - displayField: `title`, - name: `Blog Post`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `heroImage`, - name: `Hero Image`, - type: `Link`, - localized: false, - required: true, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - { - id: `description`, - name: `Description`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `body`, - name: `Body`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `author`, - name: `Author`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Entry`, - }, - { - id: `publishDate`, - name: `Publish Date`, - type: `Date`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `tags`, - name: `Tags`, - type: `Array`, - localized: false, - required: false, - disabled: false, - omitted: false, - items: { - type: `Symbol`, - validations: [{ in: [`general`, `javascript`, `static-sites`] }], - }, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { @@ -1162,237 +932,6 @@ exports.updateBlogPost = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw0OwpjDkMOywrZewqlOAMK_wp_DmcOzLRXDmlJ3wp5VextfJMKtw43CngvCrw7Cn07CgnNJw4XDscOsw5zCuXbDrMKnw7rCsTPCpxE`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `person`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Person`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `company`, - name: `Company`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `shortBio`, - name: `Short Bio`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `email`, - name: `Email`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `phone`, - name: `Phone`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `facebook`, - name: `Facebook`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `twitter`, - name: `Twitter`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `github`, - name: `Github`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `image`, - name: `Image`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - ], - }, - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `blogPost`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:19.068Z`, - updatedAt: `2020-06-03T14:17:19.068Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `blogPost`, - }, - displayField: `title`, - name: `Blog Post`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `heroImage`, - name: `Hero Image`, - type: `Link`, - localized: false, - required: true, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - { - id: `description`, - name: `Description`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `body`, - name: `Body`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `author`, - name: `Author`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Entry`, - }, - { - id: `publishDate`, - name: `Publish Date`, - type: `Date`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `tags`, - name: `Tags`, - type: `Array`, - localized: false, - required: false, - disabled: false, - omitted: false, - items: { - type: `Symbol`, - validations: [{ in: [`general`, `javascript`, `static-sites`] }], - }, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { @@ -1476,237 +1015,6 @@ exports.removeBlogPost = () => { deletedAssets: [], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw13woJkDMK6fDpuN014SMKXw4MowpNDLcKVGQlXJiNSw53DlcKow4Fjw5HDqjthfQQrwo5MBlfDr3UfZjjCiMKi`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `person`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Person`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `company`, - name: `Company`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `shortBio`, - name: `Short Bio`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `email`, - name: `Email`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `phone`, - name: `Phone`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `facebook`, - name: `Facebook`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `twitter`, - name: `Twitter`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `github`, - name: `Github`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `image`, - name: `Image`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - ], - }, - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `blogPost`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:19.068Z`, - updatedAt: `2020-06-03T14:17:19.068Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `blogPost`, - }, - displayField: `title`, - name: `Blog Post`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `heroImage`, - name: `Hero Image`, - type: `Link`, - localized: false, - required: true, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - { - id: `description`, - name: `Description`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `body`, - name: `Body`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `author`, - name: `Author`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Entry`, - }, - { - id: `publishDate`, - name: `Publish Date`, - type: `Date`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `tags`, - name: `Tags`, - type: `Array`, - localized: false, - required: false, - disabled: false, - omitted: false, - items: { - type: `Symbol`, - validations: [{ in: [`general`, `javascript`, `static-sites`] }], - }, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { @@ -1790,237 +1098,6 @@ exports.removeAsset = () => { ], nextSyncToken: `FEnChMOBwr1Yw4TCqsK2LcKpCH3CjsORIyLDrGbDtgozw6xreMKCwpjCtlxATw0LNMOLwow1KMKwAW_Ci8OIwoPDgcK-Hn5Rw5XDvwXCsMK7wpPDk2jDtywiw6lyU8KEwprCojzDscOMwollMCbCicK_XTUEw7wZ`, }, - contentTypeItems: [ - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `person`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:18.696Z`, - updatedAt: `2020-06-03T14:17:18.696Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `person`, - }, - displayField: `name`, - name: `Person`, - description: ``, - fields: [ - { - id: `name`, - name: `Name`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `company`, - name: `Company`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `shortBio`, - name: `Short Bio`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `email`, - name: `Email`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `phone`, - name: `Phone`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `facebook`, - name: `Facebook`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `twitter`, - name: `Twitter`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `github`, - name: `Github`, - type: `Symbol`, - localized: false, - required: false, - disabled: false, - omitted: false, - }, - { - id: `image`, - name: `Image`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - ], - }, - { - sys: { - space: { - sys: { - type: `Link`, - linkType: `Space`, - id: `uzfinxahlog0`, - contentful_id: `uzfinxahlog0`, - }, - }, - id: `blogPost`, - type: `ContentType`, - createdAt: `2020-06-03T14:17:19.068Z`, - updatedAt: `2020-06-03T14:17:19.068Z`, - environment: { - sys: { - id: `master`, - type: `Link`, - linkType: `Environment`, - }, - }, - revision: 1, - contentful_id: `blogPost`, - }, - displayField: `title`, - name: `Blog Post`, - description: ``, - fields: [ - { - id: `title`, - name: `Title`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `slug`, - name: `Slug`, - type: `Symbol`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `heroImage`, - name: `Hero Image`, - type: `Link`, - localized: false, - required: true, - disabled: false, - omitted: false, - linkType: `Asset`, - }, - { - id: `description`, - name: `Description`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `body`, - name: `Body`, - type: `Text`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `author`, - name: `Author`, - type: `Link`, - localized: false, - required: false, - disabled: false, - omitted: false, - linkType: `Entry`, - }, - { - id: `publishDate`, - name: `Publish Date`, - type: `Date`, - localized: false, - required: true, - disabled: false, - omitted: false, - }, - { - id: `tags`, - name: `Tags`, - type: `Array`, - localized: false, - required: false, - disabled: false, - omitted: false, - items: { - type: `Symbol`, - validations: [{ in: [`general`, `javascript`, `static-sites`] }], - }, - }, - ], - }, - ], defaultLocale: `en-US`, locales: [ { diff --git a/packages/gatsby-source-contentful/src/__tests__/download-contentful-assets.js b/packages/gatsby-source-contentful/src/__tests__/download-contentful-assets.js index de3a56eaeb667..321ade53c36c4 100644 --- a/packages/gatsby-source-contentful/src/__tests__/download-contentful-assets.js +++ b/packages/gatsby-source-contentful/src/__tests__/download-contentful-assets.js @@ -1,4 +1,5 @@ -const { downloadContentfulAssets } = require(`../download-contentful-assets`) +// @ts-check +import { downloadContentfulAssets } from "../download-contentful-assets" jest.mock(`gatsby-source-filesystem`, () => { return { @@ -54,7 +55,7 @@ const fixtures = [ }, ] -describe.only(`downloadContentfulAssets`, () => { +describe(`downloadContentfulAssets`, () => { it(`derives unique cache key from node locale and id`, async () => { const cache = { get: jest.fn(() => Promise.resolve(null)), diff --git a/packages/gatsby-source-contentful/src/__tests__/download-with-retry.js b/packages/gatsby-source-contentful/src/__tests__/download-with-retry.js deleted file mode 100644 index ef416c6b8c974..0000000000000 --- a/packages/gatsby-source-contentful/src/__tests__/download-with-retry.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * @jest-environment node - */ - -import nock from "nock" - -import downloadAndRetry from "../download-with-retry" - -nock.disableNetConnect() - -const host = `https://images.ctfassets.net` -const path = `/foo/bar/baz/image.jpg` -const url = [host, path].join(``) - -const reporter = { - verbose: jest.fn(), -} - -describe(`download-with-retry`, () => { - afterEach(() => { - nock.cleanAll() - reporter.verbose.mockClear() - }) - - test(`resolves regular response`, async () => { - const scope = nock(host).get(path).reply(200) - - await downloadAndRetry({ method: `get`, url }, reporter) - - expect(reporter.verbose).not.toHaveBeenCalled() - expect(scope.isDone()).toBeTruthy() - }) - - test(`does not retry for no reason`, async () => { - const scope = nock(host).get(path).twice().reply(200) - - await downloadAndRetry({ method: `get`, url }, reporter) - - expect(reporter.verbose).not.toHaveBeenCalled() - expect(scope.isDone()).toBeFalsy() - }) - - test(`does not retry on 404`, async () => { - const scope = nock(host).get(path).twice().reply(404) - - await expect( - downloadAndRetry({ method: `get`, url }, reporter) - ).rejects.toThrowError( - `Unable to download asset from https://images.ctfassets.net/foo/bar/baz/image.jpg. Request failed with status code 404` - ) - - expect(reporter.verbose).not.toHaveBeenCalled() - expect(scope.isDone()).toBeFalsy() - scope.persist(false) - }) - - test(`does retry on 503`, async () => { - const scope = nock(host).get(path).twice().reply(503).get(path).reply(200) - - await downloadAndRetry({ method: `get`, url }, reporter) - - expect(reporter.verbose).toHaveBeenCalledTimes(2) - expect(reporter.verbose).toHaveBeenCalledWith( - `Retry attempt #1 for https://images.ctfassets.net/foo/bar/baz/image.jpg` - ) - expect(reporter.verbose).toHaveBeenCalledWith( - `Retry attempt #2 for https://images.ctfassets.net/foo/bar/baz/image.jpg` - ) - expect(scope.isDone()).toBeTruthy() - }) - - test(`stops retry after 3 attempts`, async () => { - const scope = nock(host).get(path).times(4).reply(503) - - await expect( - downloadAndRetry({ method: `get`, url }, reporter) - ).rejects.toThrowError( - `Unable to download asset from https://images.ctfassets.net/foo/bar/baz/image.jpg. Request failed with status code 503` - ) - - expect(reporter.verbose).toHaveBeenCalledTimes(3) - expect(reporter.verbose).toHaveBeenCalledWith( - `Retry attempt #3 for https://images.ctfassets.net/foo/bar/baz/image.jpg` - ) - expect(scope.isDone()).toBeTruthy() - }) -}) diff --git a/packages/gatsby-source-contentful/src/__tests__/extend-node-type.js b/packages/gatsby-source-contentful/src/__tests__/extend-node-type.js index 133bb08cf25f1..cb35887c09511 100644 --- a/packages/gatsby-source-contentful/src/__tests__/extend-node-type.js +++ b/packages/gatsby-source-contentful/src/__tests__/extend-node-type.js @@ -1,11 +1,17 @@ -const { +// @ts-check +import fs from "fs-extra" +import { fetchRemoteFile } from "gatsby-core-utils" +import { createUrl, + generateImageSource, + getBase64Image, resolveFixed, resolveFluid, resolveResize, - generateImageSource, - getBase64Image, -} = require(`../extend-node-type`) +} from "../extend-node-type" + +jest.mock(`gatsby-core-utils`) +jest.mock(`fs-extra`) describe(`contentful extend node type`, () => { describe(`createUrl`, () => { @@ -102,6 +108,13 @@ describe(`contentful extend node type`, () => { }) describe(`getBase64Image`, () => { + beforeEach(() => { + // @ts-ignore + fetchRemoteFile.mockClear() + // @ts-ignore + fs.readFile.mockResolvedValue(Buffer.from(`test`)) + }) + const imageProps = { aspectRatio: 4.8698224852071, baseUrl: `//images.ctfassets.net/k8iqpp6u0ior/3ljGfnpegOnBTFGhV07iC1/94257340bda15ad4ca8462da3a8afa07/347966-contentful-logo-wordmark-dark__1_-4cd185-original-1582664935__1_.png`, @@ -128,18 +141,18 @@ describe(`contentful extend node type`, () => { } test(`keeps image format`, async () => { const result = await getBase64Image(imageProps) - expect(result).toMatch( - `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAMAAAC5ge+kAAAAllBMVEUAAABHl745rOE7tOc7tOcqMDkqMDkqMDkqMDnfzG9Pm7o7tOc7tOcqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDn4wF/eXWDtXGjtXGgqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDkqMDnbVmDpWGbtXGjtXGh1tTylAAAAMnRSTlMATd3gVSUjTCDgHRIscF+MeqB8qpqbk4ienYAxr+AeEipyZI9/aW+No4WJeWuuTdzgVnu3oiUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQflCBQANxNx70pyAAAAMklEQVQI12NkBII/DCDA+htIsDEy/mBj4WDEBCwiyLwnIpyMjL/ZWASB7PMMMPAZTAIALlUHKTqI1/MAAAAASUVORK5CYII=` - ) + + expect(fetchRemoteFile).toHaveBeenCalled() + expect(result).toMatchInlineSnapshot(`"data:image/png;base64,dGVzdA=="`) }) test(`uses given image format`, async () => { const result = await getBase64Image({ ...imageProps, options: { ...imageProps.options, toFormat: `jpg` }, }) - expect(result).toMatch( - `data:image/jpg;base64,/9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCAAEABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAIDBv/EACQQAAIBAgQHAQAAAAAAAAAAAAECAAMRBBITJAUUFSFBUWHB/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIx/9oADAMBAAIRAxEAPwDV4NObWqM70dOoVvROUt9Psy7pYud5jO/jWiJM8lsDSFB+Do+Xe4xQosAtW35ERFC//9k=` - ) + + expect(fetchRemoteFile).toHaveBeenCalled() + expect(result).toMatchInlineSnapshot(`"data:image/jpg;base64,dGVzdA=="`) }) }) diff --git a/packages/gatsby-source-contentful/src/__tests__/fetch-backoff.js b/packages/gatsby-source-contentful/src/__tests__/fetch-backoff.js index cc3658bcf5407..f9c951e172bd6 100644 --- a/packages/gatsby-source-contentful/src/__tests__/fetch-backoff.js +++ b/packages/gatsby-source-contentful/src/__tests__/fetch-backoff.js @@ -1,9 +1,10 @@ /** * @jest-environment node */ +// @ts-check import nock from "nock" -import fetchData from "../fetch" +import { fetchContent } from "../fetch" import { createPluginConfig } from "../plugin-options" const host = `localhost` @@ -82,13 +83,7 @@ describe(`fetch-backoff`, () => { `/spaces/${options.spaceId}/environments/master/sync?initial=true&limit=444` ) .reply(200, { items: [] }) - // Content types - .get( - `/spaces/${options.spaceId}/environments/master/content_types?skip=0&limit=1000&order=sys.createdAt` - ) - .reply(200, { items: [] }) - - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).not.toBeCalled() expect(reporter.warn.mock.calls).toMatchInlineSnapshot(` @@ -125,13 +120,8 @@ describe(`fetch-backoff`, () => { `/spaces/${options.spaceId}/environments/master/sync?initial=true&limit=1000` ) .reply(200, { items: [] }) - // Content types - .get( - `/spaces/${options.spaceId}/environments/master/content_types?skip=0&limit=1000&order=sys.createdAt` - ) - .reply(200, { items: [] }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).not.toBeCalled() expect(reporter.warn).not.toBeCalled() diff --git a/packages/gatsby-source-contentful/src/__tests__/fetch-network-errors.js b/packages/gatsby-source-contentful/src/__tests__/fetch-network-errors.js index 8f3d0a2db687a..d629c5966cbce 100644 --- a/packages/gatsby-source-contentful/src/__tests__/fetch-network-errors.js +++ b/packages/gatsby-source-contentful/src/__tests__/fetch-network-errors.js @@ -1,9 +1,10 @@ /** * @jest-environment node */ +// @ts-check import nock from "nock" -import fetchData from "../fetch" +import { fetchContent } from "../fetch" import { createPluginConfig } from "../plugin-options" nock.disableNetConnect() @@ -65,13 +66,8 @@ describe(`fetch-retry`, () => { `/spaces/${options.spaceId}/environments/master/sync?initial=true&limit=1000` ) .reply(200, { items: [] }) - // Content types - .get( - `/spaces/${options.spaceId}/environments/master/content_types?skip=0&limit=1000&order=sys.createdAt` - ) - .reply(200, { items: [] }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).not.toBeCalled() expect(scope.isDone()).toBeTruthy() @@ -106,8 +102,8 @@ describe(`fetch-retry`, () => { ) try { - await fetchData({ pluginConfig, reporter }) - jest.fail() + await fetchContent({ pluginConfig, reporter, syncToken: null }) + throw new Error(`fetchContent should throw an error`) } catch (e) { const msg = expect(e.context.sourceMessage) msg.toEqual( @@ -132,14 +128,15 @@ describe(`fetch-network-errors`, () => { .get(`/spaces/${options.spaceId}/`) .replyWithError({ code: `ECONNRESET` }) try { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ ...options, contentfulClientConfig: { retryOnError: false }, }), reporter, + syncToken: null, }) - jest.fail() + throw new Error(`fetchContent should throw an error`) } catch (e) { expect(e.context.sourceMessage).toEqual( expect.stringContaining( @@ -159,14 +156,15 @@ describe(`fetch-network-errors`, () => { .reply(502, `Bad Gateway`) try { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ ...options, contentfulClientConfig: { retryOnError: false }, }), reporter, + syncToken: null, }) - jest.fail() + throw new Error(`fetchContent should throw an error`) } catch (e) { expect(e.context.sourceMessage).toEqual( expect.stringContaining( @@ -193,14 +191,15 @@ describe(`fetch-network-errors`, () => { }) try { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ ...options, contentfulClientConfig: { retryOnError: false }, }), reporter, + syncToken: null, }) - jest.fail() + throw new Error(`fetchContent should throw an error`) } catch (e) { const msg = expect(e.context.sourceMessage) diff --git a/packages/gatsby-source-contentful/src/__tests__/fetch.js b/packages/gatsby-source-contentful/src/__tests__/fetch.js index d9bbbd4479047..ee3da2e893090 100644 --- a/packages/gatsby-source-contentful/src/__tests__/fetch.js +++ b/packages/gatsby-source-contentful/src/__tests__/fetch.js @@ -1,5 +1,10 @@ -// disable output coloring for tests -process.env.FORCE_COLOR = 0 +// @ts-check +import { createClient } from "contentful" +import { fetchContent, fetchContentTypes } from "../fetch" +import { + formatPluginOptionsForCLI, + createPluginConfig, +} from "../plugin-options" const mockClient = { getLocales: jest.fn(() => @@ -56,15 +61,9 @@ jest.mock(`../plugin-options`, () => { }) // jest so test output is not filled with contentful plugin logs +// @ts-ignore global.console = { log: jest.fn(), time: jest.fn(), timeEnd: jest.fn() } -const contentful = require(`contentful`) -const fetchData = require(`../fetch`) -const { - formatPluginOptionsForCLI, - createPluginConfig, -} = require(`../plugin-options`) - const proxyOption = { host: `localhost`, port: 9001, @@ -85,16 +84,19 @@ beforeAll(() => { global.process = { ...realProcess, + // @ts-ignore exit: jest.fn(), } }) const start = jest.fn() +const tick = jest.fn() const end = jest.fn() const mockActivity = { start, end, + tick, done: end, } @@ -107,11 +109,14 @@ const reporter = { } beforeEach(() => { + // @ts-ignore global.process.exit.mockClear() reporter.panic.mockClear() mockClient.getLocales.mockClear() + // @ts-ignore formatPluginOptionsForCLI.mockClear() - contentful.createClient.mockClear() + // @ts-ignore + createClient.mockClear() }) afterAll(() => { @@ -119,9 +124,9 @@ afterAll(() => { }) it(`calls contentful.createClient with expected params`, async () => { - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).not.toBeCalled() - expect(contentful.createClient).toBeCalledWith( + expect(createClient).toBeCalledWith( expect.objectContaining({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, environment: `env`, @@ -133,16 +138,17 @@ it(`calls contentful.createClient with expected params`, async () => { }) it(`calls contentful.createClient with expected params and default fallbacks`, async () => { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, spaceId: `rocybtov1ozk`, }), reporter, + syncToken: null, }) expect(reporter.panic).not.toBeCalled() - expect(contentful.createClient).toBeCalledWith( + expect(createClient).toBeCalledWith( expect.objectContaining({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, environment: `master`, @@ -153,7 +159,7 @@ it(`calls contentful.createClient with expected params and default fallbacks`, a }) it(`calls contentful.getContentTypes with default page limit`, async () => { - await fetchData({ + await fetchContentTypes({ pluginConfig: createPluginConfig({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, spaceId: `rocybtov1ozk`, @@ -170,7 +176,7 @@ it(`calls contentful.getContentTypes with default page limit`, async () => { }) it(`calls contentful.getContentTypes with custom plugin option page limit`, async () => { - await fetchData({ + await fetchContentTypes({ pluginConfig: createPluginConfig({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, spaceId: `rocybtov1ozk`, @@ -189,20 +195,21 @@ it(`calls contentful.getContentTypes with custom plugin option page limit`, asyn describe(`Tags feature`, () => { it(`tags are disabled by default`, async () => { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, spaceId: `rocybtov1ozk`, pageLimit: 50, }), reporter, + syncToken: null, }) expect(reporter.panic).not.toBeCalled() expect(mockClient.getTags).not.toBeCalled() }) it(`calls contentful.getTags when enabled`, async () => { - await fetchData({ + await fetchContent({ pluginConfig: createPluginConfig({ accessToken: `6f35edf0db39085e9b9c19bd92943e4519c77e72c852d961968665f1324bfc94`, spaceId: `rocybtov1ozk`, @@ -210,6 +217,7 @@ describe(`Tags feature`, () => { enableTags: true, }), reporter, + syncToken: null, }) expect(reporter.panic).not.toBeCalled() @@ -227,7 +235,7 @@ describe(`Displays troubleshooting tips and detailed plugin options on contentfu throw new Error(`error`) }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).toBeCalledWith( expect.objectContaining({ @@ -260,11 +268,12 @@ describe(`Displays troubleshooting tips and detailed plugin options on contentfu it(`Connection error`, async () => { mockClient.getLocales.mockImplementation(() => { const err = new Error(`error`) + // @ts-ignore err.code = `ENOTFOUND` throw err }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).toBeCalledWith( expect.objectContaining({ @@ -295,23 +304,23 @@ describe(`Displays troubleshooting tips and detailed plugin options on contentfu it(`API 404 response handling`, async () => { mockClient.getLocales.mockImplementation(() => { const err = new Error(`error`) + // @ts-ignore err.responseData = { status: 404 } throw err }) const masterOptions = { ...options, environment: `master` } const masterConfig = createPluginConfig(masterOptions) - await fetchData({ + await fetchContent({ pluginConfig: masterConfig, reporter, + syncToken: null, }) expect(reporter.panic).toBeCalledWith( expect.objectContaining({ context: { - sourceMessage: expect.stringContaining( - `Check if host and spaceId settings are correct` - ), + sourceMessage: expect.stringContaining(`Endpoint not found`), }, }) ) @@ -340,17 +349,18 @@ describe(`Displays troubleshooting tips and detailed plugin options on contentfu it(`API 404 response handling with environment set`, async () => { mockClient.getLocales.mockImplementation(() => { const err = new Error(`error`) + // @ts-ignore err.responseData = { status: 404 } throw err }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).toBeCalledWith( expect.objectContaining({ context: { sourceMessage: expect.stringContaining( - `Unable to access your space. Check if environment is correct and your accessToken has access to the env and the master environments.` + `Unable to access your space.` ), }, }) @@ -380,18 +390,17 @@ describe(`Displays troubleshooting tips and detailed plugin options on contentfu it(`API authorization error handling`, async () => { mockClient.getLocales.mockImplementation(() => { const err = new Error(`error`) + // @ts-ignore err.responseData = { status: 401 } throw err }) - await fetchData({ pluginConfig, reporter }) + await fetchContent({ pluginConfig, reporter, syncToken: null }) expect(reporter.panic).toBeCalledWith( expect.objectContaining({ context: { - sourceMessage: expect.stringContaining( - `Check if accessToken and environment are correct` - ), + sourceMessage: expect.stringContaining(`Authorization error.`), }, }) ) diff --git a/packages/gatsby-source-contentful/src/__tests__/gatsby-node.js b/packages/gatsby-source-contentful/src/__tests__/gatsby-node.js index 1b6a3c2f488b5..ec4a29e9bdb8e 100644 --- a/packages/gatsby-source-contentful/src/__tests__/gatsby-node.js +++ b/packages/gatsby-source-contentful/src/__tests__/gatsby-node.js @@ -1,4 +1,17 @@ +// @ts-check // This is more an integration test than it is a unit test. We try to mock as little as we can +import _ from "lodash" +import { + onPreBootstrap, + createSchemaCustomization, + sourceNodes, +} from "../gatsby-node" +import { fetchContent, fetchContentTypes } from "../fetch" +import { makeId } from "../normalize" + +import startersBlogFixture from "../__fixtures__/starter-blog-data" +import richTextFixture from "../__fixtures__/rich-text-data" +import restrictedContentTypeFixture from "../__fixtures__/restricted-content-type" jest.mock(`../fetch`) jest.mock(`gatsby-core-utils`, () => { @@ -7,45 +20,78 @@ jest.mock(`gatsby-core-utils`, () => { } }) -const gatsbyNode = require(`../gatsby-node`) -const fetch = require(`../fetch`) -const normalize = require(`../normalize`) +const defaultPluginOptions = { spaceId: `testSpaceId` } -const startersBlogFixture = require(`../__fixtures__/starter-blog-data`) -const richTextFixture = require(`../__fixtures__/rich-text-data`) -const restrictedContentTypeFixture = require(`../__fixtures__/restricted-content-type`) - -const pluginOptions = { spaceId: `testSpaceId` } +// @ts-ignore +fetchContentTypes.mockImplementation(() => + startersBlogFixture.contentTypeItems() +) const createMockCache = () => { + const actualCacheMap = new Map() return { - get: jest.fn(), - set: jest.fn(), + get: jest.fn(key => _.cloneDeep(actualCacheMap.get(key))), + set: jest.fn((key, value) => actualCacheMap.set(key, value)), directory: __dirname, + actualMap: actualCacheMap, } } describe(`gatsby-node`, () => { - const actions = { createTypes: jest.fn() } - const schema = { buildObjectType: jest.fn() } - const store = {} + const actions = { createTypes: jest.fn(), setPluginStatus: jest.fn() } + const schema = { buildObjectType: jest.fn(), buildInterfaceType: jest.fn() } + const store = { + getState: jest.fn(() => { + return { program: { directory: process.cwd() }, status: {} } + }), + } const cache = createMockCache() - const getCache = jest.fn() + const getCache = jest.fn(() => cache) const reporter = { info: jest.fn(), verbose: jest.fn(), + panic: jest.fn(), activityTimer: () => { return { start: jest.fn(), end: jest.fn() } }, } + const parentSpan = {} const createNodeId = jest.fn(value => value) let currentNodeMap const getNodes = () => Array.from(currentNodeMap.values()) const getNode = id => currentNodeMap.get(id) + const getNodesByType = jest.fn() const getFieldValue = (value, locale, defaultLocale) => value[locale] ?? value[defaultLocale] + const simulateGatsbyBuild = async function ( + pluginOptions = defaultPluginOptions + ) { + await onPreBootstrap({ store }) + + await createSchemaCustomization( + { schema, actions, reporter, cache }, + pluginOptions + ) + + await sourceNodes( + { + actions, + getNode, + getNodes, + getNodesByType, + createNodeId, + store, + cache, + getCache, + reporter, + parentSpan, + }, + pluginOptions + ) + } + const testIfContentTypesExists = contentTypeItems => { contentTypeItems.forEach(contentType => { const contentTypeId = createNodeId(contentType.name) @@ -69,7 +115,7 @@ describe(`gatsby-node`, () => { ) const nodeId = createNodeId( - normalize.makeId({ + makeId({ spaceId: entry.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -92,7 +138,7 @@ describe(`gatsby-node`, () => { switch (fieldDefinition.type) { case `Link`: { const linkId = createNodeId( - normalize.makeId({ + makeId({ spaceId: entry.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -156,7 +202,7 @@ describe(`gatsby-node`, () => { locales.forEach(locale => { deletedEntries.forEach(entry => { const nodeId = createNodeId( - normalize.makeId({ + makeId({ spaceId: entry.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -185,7 +231,7 @@ describe(`gatsby-node`, () => { locales.forEach(locale => { assets.forEach(asset => { const assetId = createNodeId( - normalize.makeId({ + makeId({ spaceId: asset.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -205,7 +251,7 @@ describe(`gatsby-node`, () => { locales.forEach(locale => { assets.forEach(asset => { const assetId = createNodeId( - normalize.makeId({ + makeId({ spaceId: asset.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -234,7 +280,7 @@ describe(`gatsby-node`, () => { locales.forEach(locale => { deletedAssets.forEach(asset => { const assetId = createNodeId( - normalize.makeId({ + makeId({ spaceId: asset.sys.space.sys.id, defaultLocale: defaultLocale, currentLocale: locale, @@ -250,7 +296,10 @@ describe(`gatsby-node`, () => { } beforeEach(() => { - fetch.mockClear() + // @ts-ignore + fetchContent.mockClear() + // @ts-ignore + fetchContentTypes.mockClear() currentNodeMap = new Map() actions.createNode = jest.fn(async node => { node.internal.owner = `gatsby-source-contentful` @@ -262,38 +311,23 @@ describe(`gatsby-node`, () => { } actions.touchNode = jest.fn() actions.setPluginStatus = jest.fn() - store.getState = jest.fn(() => { - return { - status: {}, - } - }) + store.getState.mockClear() + cache.actualMap.clear() + cache.get.mockClear() + cache.set.mockClear() }) it(`should create nodes from initial payload`, async () => { - cache.get.mockClear() - cache.set.mockClear() - fetch.mockImplementationOnce(startersBlogFixture.initialSync) + // @ts-ignore + fetchContent.mockImplementationOnce(startersBlogFixture.initialSync) const locales = [`en-US`, `nl`] - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() - testIfContentTypesExists(startersBlogFixture.initialSync().contentTypeItems) + testIfContentTypesExists(startersBlogFixture.contentTypeItems()) testIfEntriesExists( startersBlogFixture.initialSync().currentSyncData.entries, - startersBlogFixture.initialSync().contentTypeItems, + startersBlogFixture.contentTypeItems(), locales ) testIfAssetsExistsAndMatch( @@ -301,41 +335,63 @@ describe(`gatsby-node`, () => { locales ) + expect(store.getState).toHaveBeenCalled() + // Tries to load data from cache - expect(cache.get).toHaveBeenCalledWith( - `contentful-sync-token-testSpaceId-master` - ) expect(cache.get).toHaveBeenCalledWith( `contentful-sync-data-testSpaceId-master` ) - expect(cache.get.mock.calls.length).toBe(2) + + expect(cache.get.mock.calls).toMatchInlineSnapshot(` + Array [ + Array [ + "contentful-content-types-testSpaceId-master", + ], + Array [ + "contentful-sync-data-testSpaceId-master", + ], + ] + `) // Stores sync token and raw/unparsed data to the cache - expect(cache.set).toHaveBeenCalledWith( - `contentful-sync-token-testSpaceId-master`, - startersBlogFixture.initialSync().currentSyncData.nextSyncToken + expect(actions.setPluginStatus).toHaveBeenCalledWith({ + [`contentful-sync-token-testSpaceId-master`]: + startersBlogFixture.initialSync().currentSyncData.nextSyncToken, + }) + + // Check for valid cache data + const cacheCall = cache.set.mock.calls.filter( + args => args[0] === `contentful-sync-data-testSpaceId-master` ) - expect(cache.set).toHaveBeenCalledWith( - `contentful-sync-data-testSpaceId-master`, - { - entries: startersBlogFixture.initialSync().currentSyncData.entries, - assets: startersBlogFixture.initialSync().currentSyncData.assets, - } + + expect(cacheCall).toBeTruthy() + expect(cacheCall[0][1].entries).toHaveLength( + startersBlogFixture.initialSync().currentSyncData.entries.length + ) + expect(cacheCall[0][1].assets).toHaveLength( + startersBlogFixture.initialSync().currentSyncData.assets.length ) - expect(cache.set.mock.calls.length).toBe(2) + + expect(cache.set.mock.calls.map(v => v[0])).toMatchInlineSnapshot(` + Array [ + "contentful-content-types-testSpaceId-master", + "contentful-sync-data-testSpaceId-master", + ] + `) }) it(`should add a new blogpost and update linkedNodes`, async () => { const locales = [`en-US`, `nl`] - fetch + fetchContent + // @ts-ignore .mockImplementationOnce(startersBlogFixture.initialSync) .mockImplementationOnce(startersBlogFixture.createBlogPost) const createdBlogEntry = startersBlogFixture.createBlogPost().currentSyncData.entries[0] const createdBlogEntryIds = locales.map(locale => - normalize.makeId({ + makeId({ spaceId: createdBlogEntry.sys.space.sys.id, currentLocale: locale, defaultLocale: locales[0], @@ -345,20 +401,7 @@ describe(`gatsby-node`, () => { ) // initial sync - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() // check if blog posts do not exists createdBlogEntryIds.forEach(entryId => { @@ -366,26 +409,12 @@ describe(`gatsby-node`, () => { }) // add new blog post - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) - testIfContentTypesExists( - startersBlogFixture.createBlogPost().contentTypeItems - ) + await simulateGatsbyBuild() + + testIfContentTypesExists(startersBlogFixture.contentTypeItems()) testIfEntriesExists( startersBlogFixture.createBlogPost().currentSyncData.entries, - startersBlogFixture.createBlogPost().contentTypeItems, + startersBlogFixture.contentTypeItems(), locales ) testIfAssetsExistsAndMatch( @@ -402,7 +431,8 @@ describe(`gatsby-node`, () => { it(`should update a blogpost`, async () => { const locales = [`en-US`, `nl`] - fetch + fetchContent + // @ts-ignore .mockImplementationOnce(startersBlogFixture.initialSync) .mockImplementationOnce(startersBlogFixture.createBlogPost) .mockImplementationOnce(startersBlogFixture.updateBlogPost) @@ -410,7 +440,7 @@ describe(`gatsby-node`, () => { const updatedBlogEntry = startersBlogFixture.updateBlogPost().currentSyncData.entries[0] const updatedBlogEntryIds = locales.map(locale => - normalize.makeId({ + makeId({ spaceId: updatedBlogEntry.sys.space.sys.id, currentLocale: locale, defaultLocale: locales[0], @@ -420,63 +450,22 @@ describe(`gatsby-node`, () => { ) // initial sync - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() // create blog post - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() updatedBlogEntryIds.forEach(blogEntryId => { expect(getNode(blogEntryId).title).toBe(`Integration tests`) }) // updated blog post - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() - testIfContentTypesExists( - startersBlogFixture.updateBlogPost().contentTypeItems - ) + testIfContentTypesExists(startersBlogFixture.contentTypeItems()) testIfEntriesExists( startersBlogFixture.updateBlogPost().currentSyncData.entries, - startersBlogFixture.updateBlogPost().contentTypeItems, + startersBlogFixture.contentTypeItems(), locales ) testIfAssetsExistsAndMatch( @@ -494,7 +483,8 @@ describe(`gatsby-node`, () => { it(`should remove a blogpost and update linkedNodes`, async () => { const locales = [`en-US`, `nl`] - fetch + fetchContent + // @ts-ignore .mockImplementationOnce(startersBlogFixture.initialSync) .mockImplementationOnce(startersBlogFixture.createBlogPost) .mockImplementationOnce(startersBlogFixture.removeBlogPost) @@ -505,7 +495,7 @@ describe(`gatsby-node`, () => { ? removedBlogEntry.sys.type.substring(`Deleted`.length) : removedBlogEntry.sys.type const removedBlogEntryIds = locales.map(locale => - normalize.makeId({ + makeId({ spaceId: removedBlogEntry.sys.space.sys.id, currentLocale: locale, defaultLocale: locales[0], @@ -515,36 +505,10 @@ describe(`gatsby-node`, () => { ) // initial sync - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() // create blog post - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() const authorIds = [] // check if blog post exists @@ -555,24 +519,9 @@ describe(`gatsby-node`, () => { }) // remove blog post - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() - testIfContentTypesExists( - startersBlogFixture.removeBlogPost().contentTypeItems - ) + testIfContentTypesExists(startersBlogFixture.contentTypeItems()) testIfEntriesDeleted( startersBlogFixture.removeBlogPost().currentSyncData.assets, locales @@ -587,7 +536,8 @@ describe(`gatsby-node`, () => { it(`should remove an asset`, async () => { const locales = [`en-US`, `nl`] - fetch + fetchContent + // @ts-ignore .mockImplementationOnce(startersBlogFixture.initialSync) .mockImplementationOnce(startersBlogFixture.createBlogPost) .mockImplementationOnce(startersBlogFixture.removeAsset) @@ -595,7 +545,7 @@ describe(`gatsby-node`, () => { const removedAssetEntry = startersBlogFixture.createBlogPost().currentSyncData.entries[0] const removedAssetEntryIds = locales.map(locale => - normalize.makeId({ + makeId({ spaceId: removedAssetEntry.sys.space.sys.id, currentLocale: locale, defaultLocale: locales[0], @@ -605,33 +555,10 @@ describe(`gatsby-node`, () => { ) // initial sync - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() // create blog post - await gatsbyNode.sourceNodes({ - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }) + await simulateGatsbyBuild() // check if blog post exists removedAssetEntryIds.forEach(assetId => { @@ -645,22 +572,9 @@ describe(`gatsby-node`, () => { ) // remove asset - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() - testIfContentTypesExists(startersBlogFixture.removeAsset().contentTypeItems) + testIfContentTypesExists(startersBlogFixture.contentTypeItems()) testIfEntriesExists( startersBlogFixture.removeAsset().currentSyncData.entries, startersBlogFixture.removeAsset().contentTypeItems, @@ -673,29 +587,20 @@ describe(`gatsby-node`, () => { }) it(`stores rich text as raw with references attached`, async () => { - fetch.mockImplementationOnce(richTextFixture.initialSync) + // @ts-ignore + fetchContent.mockImplementationOnce(richTextFixture.initialSync) + // @ts-ignore + fetchContentTypes.mockImplementationOnce(richTextFixture.contentTypeItems) // initial sync - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions - ) + await simulateGatsbyBuild() const initNodes = getNodes() const homeNodes = initNodes.filter( ({ contentful_id: id }) => id === `6KpLS2NZyB3KAvDzWf4Ukh` ) + expect(homeNodes).toHaveLength(2) homeNodes.forEach(homeNode => { expect(homeNode.content.references___NODE).toStrictEqual([ ...new Set(homeNode.content.references___NODE), @@ -705,35 +610,16 @@ describe(`gatsby-node`, () => { }) it(`panics when localeFilter reduces locale list to 0`, async () => { - cache.get.mockClear() - cache.set.mockClear() - fetch.mockImplementationOnce(startersBlogFixture.initialSync) + // @ts-ignore + fetchContent.mockImplementationOnce(startersBlogFixture.initialSync) const locales = [`en-US`, `nl`] - const mockPanicReporter = { - ...reporter, - panic: jest.fn(), - } - - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter: mockPanicReporter, - createNodeId, - cache, - getCache, - schema, - }, - { - ...pluginOptions, - localeFilter: () => false, - } - ) + await simulateGatsbyBuild({ + ...defaultPluginOptions, + localeFilter: () => false, + }) - expect(mockPanicReporter.panic).toBeCalledWith( + expect(reporter.panic).toBeCalledWith( expect.objectContaining({ context: { sourceMessage: `Please check if your localeFilter is configured properly. Locales '${locales.join( @@ -745,31 +631,18 @@ describe(`gatsby-node`, () => { }) it(`panics when response contains restricted content types`, async () => { - cache.get.mockClear() - cache.set.mockClear() - fetch.mockImplementationOnce(restrictedContentTypeFixture.initialSync) - - const mockPanicReporter = { - ...reporter, - panic: jest.fn(), - } - - await gatsbyNode.sourceNodes( - { - actions, - store, - getNodes, - getNode, - reporter: mockPanicReporter, - createNodeId, - cache, - getCache, - schema, - }, - pluginOptions + // @ts-ignore + fetchContent.mockImplementationOnce( + restrictedContentTypeFixture.initialSync + ) + // @ts-ignore + fetchContentTypes.mockImplementationOnce( + restrictedContentTypeFixture.contentTypeItems ) - expect(mockPanicReporter.panic).toBeCalledWith( + await simulateGatsbyBuild() + + expect(reporter.panic).toBeCalledWith( expect.objectContaining({ context: { sourceMessage: `Restricted ContentType name found. The name "reference" is not allowed.`, diff --git a/packages/gatsby-source-contentful/src/__tests__/normalize.js b/packages/gatsby-source-contentful/src/__tests__/normalize.js index 078eae8c0db8e..36861f5571d68 100644 --- a/packages/gatsby-source-contentful/src/__tests__/normalize.js +++ b/packages/gatsby-source-contentful/src/__tests__/normalize.js @@ -1,4 +1,14 @@ -const normalize = require(`../normalize`) +// @ts-check +import { + buildEntryList, + buildResolvableSet, + buildForeignReferenceMap, + createNodesForContentType, + createAssetNodes, + buildFallbackChain, + getLocalizedField, + makeId, +} from "../normalize" import { createPluginConfig } from "../plugin-options" const { @@ -28,7 +38,7 @@ describe(`Process contentful data (by name)`, () => { let foreignReferenceMap it(`builds entry list`, () => { - entryList = normalize.buildEntryList({ + entryList = buildEntryList({ mergedSyncData: currentSyncData, contentTypeItems, }) @@ -36,22 +46,19 @@ describe(`Process contentful data (by name)`, () => { }) it(`builds list of resolvable data`, () => { - resolvable = normalize.buildResolvableSet({ + resolvable = buildResolvableSet({ assets: currentSyncData.assets, entryList, - defaultLocale, - locales, }) expect(resolvable).toMatchSnapshot() }) it(`builds foreignReferenceMap`, () => { - foreignReferenceMap = normalize.buildForeignReferenceMap({ + foreignReferenceMap = buildForeignReferenceMap({ contentTypeItems, entryList, resolvable, defaultLocale, - locales, space, useNameForId: true, }) @@ -61,9 +68,9 @@ describe(`Process contentful data (by name)`, () => { it(`creates nodes for each entry`, () => { const createNode = jest.fn() const createNodeId = jest.fn(id => id) - const getNode = jest.fn(id => undefined) // All nodes are new + const getNode = jest.fn(() => undefined) // All nodes are new contentTypeItems.forEach((contentTypeItem, i) => { - normalize.createNodesForContentType({ + createNodesForContentType({ contentTypeItem, restrictedNodeFields, conflictFieldPrefix, @@ -91,7 +98,7 @@ describe(`Process contentful data (by name)`, () => { const createNodeId = jest.fn(id => id) const assets = currentSyncData.assets assets.forEach(assetItem => { - normalize.createAssetNodes({ + createAssetNodes({ assetItem, createNode, createNodeId, @@ -106,24 +113,21 @@ describe(`Process contentful data (by name)`, () => { describe(`Skip existing nodes in warm build`, () => { it(`creates nodes for each entry`, () => { - const entryList = normalize.buildEntryList({ + const entryList = buildEntryList({ mergedSyncData: currentSyncData, contentTypeItems, }) - const resolvable = normalize.buildResolvableSet({ + const resolvable = buildResolvableSet({ assets: currentSyncData.assets, entryList, - defaultLocale, - locales, }) - const foreignReferenceMap = normalize.buildForeignReferenceMap({ + const foreignReferenceMap = buildForeignReferenceMap({ contentTypeItems, entryList, resolvable, defaultLocale, - locales, space, useNameForId: true, }) @@ -146,7 +150,7 @@ describe(`Skip existing nodes in warm build`, () => { return undefined }) contentTypeItems.forEach((contentTypeItem, i) => { - normalize.createNodesForContentType({ + createNodesForContentType({ contentTypeItem, restrictedNodeFields, conflictFieldPrefix, @@ -175,7 +179,7 @@ describe(`Skip existing nodes in warm build`, () => { const createNodeId = jest.fn(id => id) const assets = currentSyncData.assets assets.forEach(assetItem => { - normalize.createAssetNodes({ + createAssetNodes({ assetItem, createNode, createNodeId, @@ -190,24 +194,21 @@ describe(`Skip existing nodes in warm build`, () => { describe(`Process existing mutated nodes in warm build`, () => { it(`creates nodes for each entry`, () => { - const entryList = normalize.buildEntryList({ + const entryList = buildEntryList({ mergedSyncData: currentSyncData, contentTypeItems, }) - const resolvable = normalize.buildResolvableSet({ + const resolvable = buildResolvableSet({ assets: currentSyncData.assets, entryList, - defaultLocale, - locales, }) - const foreignReferenceMap = normalize.buildForeignReferenceMap({ + const foreignReferenceMap = buildForeignReferenceMap({ contentTypeItems, entryList, resolvable, defaultLocale, - locales, space, useNameForId: true, }) @@ -232,7 +233,7 @@ describe(`Process existing mutated nodes in warm build`, () => { return undefined }) contentTypeItems.forEach((contentTypeItem, i) => { - normalize.createNodesForContentType({ + createNodesForContentType({ contentTypeItem, restrictedNodeFields, conflictFieldPrefix, @@ -261,7 +262,7 @@ describe(`Process existing mutated nodes in warm build`, () => { const createNodeId = jest.fn(id => id) const assets = currentSyncData.assets assets.forEach(assetItem => { - normalize.createAssetNodes({ + createAssetNodes({ assetItem, createNode, createNodeId, @@ -280,7 +281,7 @@ describe(`Process contentful data (by id)`, () => { let foreignReferenceMap it(`builds entry list`, () => { - entryList = normalize.buildEntryList({ + entryList = buildEntryList({ mergedSyncData: currentSyncData, contentTypeItems, }) @@ -288,22 +289,19 @@ describe(`Process contentful data (by id)`, () => { }) it(`builds list of resolvable data`, () => { - resolvable = normalize.buildResolvableSet({ + resolvable = buildResolvableSet({ assets: currentSyncData.assets, entryList, - defaultLocale, - locales, }) expect(resolvable).toMatchSnapshot() }) it(`builds foreignReferenceMap`, () => { - foreignReferenceMap = normalize.buildForeignReferenceMap({ + foreignReferenceMap = buildForeignReferenceMap({ contentTypeItems, entryList, resolvable, defaultLocale, - locales, space, useNameForId: false, }) @@ -313,9 +311,9 @@ describe(`Process contentful data (by id)`, () => { it(`creates nodes for each entry`, () => { const createNode = jest.fn() const createNodeId = jest.fn(id => id) - const getNode = jest.fn(id => undefined) // All nodes are new + const getNode = jest.fn(() => undefined) // All nodes are new contentTypeItems.forEach((contentTypeItem, i) => { - normalize.createNodesForContentType({ + createNodesForContentType({ contentTypeItem, restrictedNodeFields, conflictFieldPrefix, @@ -340,7 +338,7 @@ describe(`Process contentful data (by id)`, () => { const createNodeId = jest.fn(id => id) const assets = currentSyncData.assets assets.forEach(assetItem => { - normalize.createAssetNodes({ + createAssetNodes({ assetItem, createNode, createNodeId, @@ -363,10 +361,10 @@ describe(`Gets field value based on current locale`, () => { { code: `de`, fallbackCode: `en-US` }, { code: `gsw_CH`, fallbackCode: `de` }, ] - const localesFallback = normalize.buildFallbackChain(locales) + const localesFallback = buildFallbackChain(locales) it(`Gets the specified locale`, () => { expect( - normalize.getLocalizedField({ + getLocalizedField({ field, localesFallback, locale: { @@ -375,7 +373,7 @@ describe(`Gets field value based on current locale`, () => { }) ).toBe(field[`en-US`]) expect( - normalize.getLocalizedField({ + getLocalizedField({ field, localesFallback, locale: { @@ -390,7 +388,7 @@ describe(`Gets field value based on current locale`, () => { "en-US": false, } expect( - normalize.getLocalizedField({ + getLocalizedField({ field: falseyField, localesFallback, locale: { @@ -400,7 +398,7 @@ describe(`Gets field value based on current locale`, () => { ).toBe(falseyField[`en-US`]) expect( - normalize.getLocalizedField({ + getLocalizedField({ field: falseyField, localesFallback, locale: { @@ -411,7 +409,7 @@ describe(`Gets field value based on current locale`, () => { }) it(`falls back to the locale's fallback locale if passed a locale that doesn't have a localized field`, () => { expect( - normalize.getLocalizedField({ + getLocalizedField({ field, localesFallback, locale: { @@ -422,7 +420,7 @@ describe(`Gets field value based on current locale`, () => { }) it(`returns null if passed a locale that doesn't have a field on a localized field`, () => { expect( - normalize.getLocalizedField({ + getLocalizedField({ field, localesFallback: { "es-ES": null, de: null }, locale: { @@ -433,7 +431,7 @@ describe(`Gets field value based on current locale`, () => { }) it(`returns null if passed a locale that doesn't have a field nor a fallbackCode`, () => { expect( - normalize.getLocalizedField({ + getLocalizedField({ field, localesFallback, locale: { @@ -447,7 +445,7 @@ describe(`Gets field value based on current locale`, () => { describe(`Make IDs`, () => { it(`It doesn't postfix the spaceId and the id if its the default locale`, () => { expect( - normalize.makeId({ + makeId({ spaceId: `spaceId`, id: `id`, type: `type`, @@ -458,7 +456,7 @@ describe(`Make IDs`, () => { }) it(`It does postfix the spaceId and the id if its not the default locale`, () => { expect( - normalize.makeId({ + makeId({ spaceId: `spaceId`, id: `id`, type: `type`, diff --git a/packages/gatsby-source-contentful/src/__tests__/plugin-options.js b/packages/gatsby-source-contentful/src/__tests__/plugin-options.js index 7237f915856b7..a600c97b6a8bb 100644 --- a/packages/gatsby-source-contentful/src/__tests__/plugin-options.js +++ b/packages/gatsby-source-contentful/src/__tests__/plugin-options.js @@ -1,7 +1,8 @@ -// disable output coloring for tests -process.env.FORCE_COLOR = 0 +// @ts-check +import { maskText, formatPluginOptionsForCLI } from "../plugin-options" -const { maskText, formatPluginOptionsForCLI } = require(`../plugin-options`) +// disable output coloring for tests +process.env.FORCE_COLOR = `0` const maskedCharacterCount = input => input.split(``).filter(char => char === `*`).length diff --git a/packages/gatsby-source-contentful/src/__tests__/rich-text.js b/packages/gatsby-source-contentful/src/__tests__/rich-text.js index a7798736c7f79..2e17579b5ff7e 100644 --- a/packages/gatsby-source-contentful/src/__tests__/rich-text.js +++ b/packages/gatsby-source-contentful/src/__tests__/rich-text.js @@ -1,3 +1,4 @@ +// @ts-check import React from "react" import { render } from "@testing-library/react" import { renderRichText } from "gatsby-source-contentful/rich-text" @@ -427,7 +428,12 @@ const references = [ describe(`rich text`, () => { test(`renders with default options`, () => { const { container } = render( - renderRichText({ raw: cloneDeep(raw), references: cloneDeep(references) }) + <> + {renderRichText({ + raw: cloneDeep(raw), + references: cloneDeep(references), + })} + ) expect(container).toMatchSnapshot() }) @@ -506,10 +512,12 @@ describe(`rich text`, () => { }, } const { container } = render( - renderRichText( - { raw: cloneDeep(raw), references: cloneDeep(references) }, - options - ) + <> + {renderRichText( + { raw: cloneDeep(raw), references: cloneDeep(references) }, + options + )} + ) expect(container).toMatchSnapshot() }) diff --git a/packages/gatsby-source-contentful/src/cache-image.js b/packages/gatsby-source-contentful/src/cache-image.js deleted file mode 100644 index 3386eedb65be6..0000000000000 --- a/packages/gatsby-source-contentful/src/cache-image.js +++ /dev/null @@ -1,85 +0,0 @@ -const crypto = require(`crypto`) -const { resolve, parse } = require(`path`) - -const { pathExists, createWriteStream } = require(`fs-extra`) - -const downloadWithRetry = require(`./download-with-retry`).default - -const inFlightImageCache = new Map() - -module.exports = async function cacheImage(store, image, options, reporter) { - const program = store.getState().program - const CACHE_DIR = resolve(`${program.directory}/.cache/contentful/assets/`) - const { - file: { url, fileName, details }, - } = image - const { - width, - height, - maxWidth, - maxHeight, - resizingBehavior, - cropFocus, - background, - } = options - const userWidth = maxWidth || width - const userHeight = maxHeight || height - - const aspectRatio = details.image.height / details.image.width - const resultingWidth = Math.round(userWidth || 800) - const resultingHeight = Math.round(userHeight || resultingWidth * aspectRatio) - - const params = [`w=${resultingWidth}`, `h=${resultingHeight}`] - if (resizingBehavior) { - params.push(`fit=${resizingBehavior}`) - } - if (cropFocus) { - params.push(`f=${cropFocus}`) - } - if (background) { - params.push(`bg=${background}`) - } - - const optionsHash = crypto - .createHash(`md5`) - .update(JSON.stringify([url, ...params])) - .digest(`hex`) - - const { name, ext } = parse(fileName) - const absolutePath = resolve(CACHE_DIR, `${name}-${optionsHash}${ext}`) - - // Query the filesystem for file existence - const alreadyExists = await pathExists(absolutePath) - // Whether the file exists or not, if we are downloading it then await - const inFlight = inFlightImageCache.get(absolutePath) - if (inFlight) { - await inFlight - } else if (!alreadyExists) { - // File doesn't exist and is not being download yet - const downloadPromise = new Promise((resolve, reject) => { - const previewUrl = `http:${url}?${params.join(`&`)}` - - downloadWithRetry( - { - url: previewUrl, - responseType: `stream`, - }, - reporter - ) - .then(response => { - const file = createWriteStream(absolutePath) - response.data.pipe(file) - file.on(`finish`, resolve) - file.on(`error`, reject) - }) - .catch(reject) - }) - inFlightImageCache.set(absolutePath, downloadPromise) - await downloadPromise - // When the file is downloaded, remove the promise from the cache - inFlightImageCache.delete(absolutePath) - } - - // Now the file should be completely downloaded - return absolutePath -} diff --git a/packages/gatsby-source-contentful/src/create-schema-customization.js b/packages/gatsby-source-contentful/src/create-schema-customization.js new file mode 100644 index 0000000000000..4da9e73db99e7 --- /dev/null +++ b/packages/gatsby-source-contentful/src/create-schema-customization.js @@ -0,0 +1,144 @@ +// @ts-check +import _ from "lodash" +import { fetchContentTypes } from "./fetch" +import { createPluginConfig } from "./plugin-options" +import { CODES } from "./report" + +async function getContentTypesFromContentFul({ + cache, + reporter, + pluginConfig, +}) { + // Get content type items from Contentful + const contentTypeItems = await fetchContentTypes({ pluginConfig, reporter }) + + // Check for restricted content type names and set id based on useNameForId + const useNameForId = pluginConfig.get(`useNameForId`) + const restrictedContentTypes = [`entity`, `reference`, `asset`] + + if (pluginConfig.get(`enableTags`)) { + restrictedContentTypes.push(`tags`) + } + + contentTypeItems.forEach(contentTypeItem => { + // Establish identifier for content type + // Use `name` if specified, otherwise, use internal id (usually a natural-language constant, + // but sometimes a base62 uuid generated by Contentful, hence the option) + let contentTypeItemId + if (useNameForId) { + contentTypeItemId = contentTypeItem.name.toLowerCase() + } else { + contentTypeItemId = contentTypeItem.sys.id.toLowerCase() + } + + if (restrictedContentTypes.includes(contentTypeItemId)) { + reporter.panic({ + id: CODES.FetchContentTypes, + context: { + sourceMessage: `Restricted ContentType name found. The name "${contentTypeItemId}" is not allowed.`, + }, + }) + } + }) + + // Store processed content types in cache for sourceNodes + const sourceId = `${pluginConfig.get(`spaceId`)}-${pluginConfig.get( + `environment` + )}` + const CACHE_CONTENT_TYPES = `contentful-content-types-${sourceId}` + await cache.set(CACHE_CONTENT_TYPES, contentTypeItems) + + return contentTypeItems +} + +export async function createSchemaCustomization( + { schema, actions, reporter, cache }, + pluginOptions +) { + const { createTypes } = actions + + const pluginConfig = createPluginConfig(pluginOptions) + + let contentTypeItems + if (process.env.GATSBY_WORKER_ID) { + const sourceId = `${pluginConfig.get(`spaceId`)}-${pluginConfig.get( + `environment` + )}` + contentTypeItems = await cache.get(`contentful-content-types-${sourceId}`) + } else { + contentTypeItems = await getContentTypesFromContentFul({ + cache, + reporter, + pluginConfig, + }) + } + + const contentfulTypes = [ + schema.buildInterfaceType({ + name: `ContentfulEntry`, + fields: { + contentful_id: { type: `String!` }, + id: { type: `ID!` }, + node_locale: { type: `String!` }, + }, + extensions: { infer: false }, + interfaces: [`Node`], + }), + schema.buildInterfaceType({ + name: `ContentfulReference`, + fields: { + contentful_id: { type: `String!` }, + id: { type: `ID!` }, + }, + extensions: { infer: false }, + }), + schema.buildObjectType({ + name: `ContentfulAsset`, + fields: { + contentful_id: { type: `String!` }, + id: { type: `ID!` }, + }, + interfaces: [`ContentfulReference`, `Node`], + }), + ] + + // Create types for each content type + contentTypeItems.forEach(contentTypeItem => + contentfulTypes.push( + schema.buildObjectType({ + name: _.upperFirst( + _.camelCase( + `Contentful ${ + pluginConfig.get(`useNameForId`) + ? contentTypeItem.name + : contentTypeItem.sys.id + }` + ) + ), + fields: { + contentful_id: { type: `String!` }, + id: { type: `ID!` }, + node_locale: { type: `String!` }, + }, + interfaces: [`ContentfulReference`, `ContentfulEntry`, `Node`], + }) + ) + ) + + if (pluginConfig.get(`enableTags`)) { + contentfulTypes.push( + schema.buildObjectType({ + name: `ContentfulTag`, + fields: { + name: { type: `String!` }, + contentful_id: { type: `String!` }, + id: { type: `ID!` }, + }, + interfaces: [`Node`], + extensions: { dontInfer: {} }, + }) + ) + } + + createTypes(contentfulTypes) +} diff --git a/packages/gatsby-source-contentful/src/download-contentful-assets.js b/packages/gatsby-source-contentful/src/download-contentful-assets.js index 829069acf74c5..5fdf69e49645e 100644 --- a/packages/gatsby-source-contentful/src/download-contentful-assets.js +++ b/packages/gatsby-source-contentful/src/download-contentful-assets.js @@ -1,5 +1,6 @@ -const { createRemoteFileNode } = require(`gatsby-source-filesystem`) -const { createUrl } = require(`./extend-node-type`) +// @ts-check +import { createRemoteFileNode } from "gatsby-source-filesystem" +import { createUrl } from "./extend-node-type" /** * @name distributeWorkload @@ -26,13 +27,12 @@ async function distributeWorkload(workers, count = 50) { * @param gatsbyFunctions - Gatsby's internal helper functions */ -const downloadContentfulAssets = async gatsbyFunctions => { +export async function downloadContentfulAssets(gatsbyFunctions) { const { actions: { createNode, touchNode }, createNodeId, store, cache, - getCache, getNodesByType, reporter, assetDownloadWorkers, @@ -83,7 +83,6 @@ const downloadContentfulAssets = async gatsbyFunctions => { cache, createNode, createNodeId, - getCache, reporter, }) @@ -104,4 +103,3 @@ const downloadContentfulAssets = async gatsbyFunctions => { assetDownloadWorkers ) } -exports.downloadContentfulAssets = downloadContentfulAssets diff --git a/packages/gatsby-source-contentful/src/download-with-retry.js b/packages/gatsby-source-contentful/src/download-with-retry.js deleted file mode 100644 index a8d575f231068..0000000000000 --- a/packages/gatsby-source-contentful/src/download-with-retry.js +++ /dev/null @@ -1,51 +0,0 @@ -const axios = require(`axios`) -const rax = require(`retry-axios`) -const { default: PQueue } = require(`p-queue`) - -/** - * Contentfuls APIs have a general rate limit of 79 uncached requests per second. - * A concurrency of 100 was recommended by Contentful backend and will ensure - * that we won't run into rate-limit errors. - */ -const queue = new PQueue({ - concurrency: 100, -}) - -let RetryAxios - -function getAxios(reporter) { - if (!RetryAxios) { - RetryAxios = axios.create() - - RetryAxios.defaults.raxConfig = { - instance: RetryAxios, - onRetryAttempt: err => { - const cfg = rax.getConfig(err) - reporter.verbose( - `Retry attempt #${cfg.currentRetryAttempt} for ${err.config.url}` - ) - }, - } - - rax.attach(RetryAxios) - } - return RetryAxios -} - -export default async function downloadWithRetry(requestConfig, reporter) { - if (!requestConfig.url) { - throw new Error(`requestConfig.url is missing`) - } - - const axiosInstance = getAxios(reporter) - - try { - const result = await queue.add(() => - axiosInstance.get(requestConfig.url, requestConfig) - ) - return result - } catch (err) { - err.message = `Unable to download asset from ${requestConfig.url}. ${err.message}` - throw err - } -} diff --git a/packages/gatsby-source-contentful/src/extend-node-type.js b/packages/gatsby-source-contentful/src/extend-node-type.js index 94273346fa83a..a94e806757721 100644 --- a/packages/gatsby-source-contentful/src/extend-node-type.js +++ b/packages/gatsby-source-contentful/src/extend-node-type.js @@ -1,31 +1,27 @@ // @ts-check -const fs = require(`fs`) -const path = require(`path`) -const crypto = require(`crypto`) -const { URLSearchParams } = require(`url`) - -const sortBy = require(`lodash/sortBy`) -const { - GraphQLObjectType, +import { stripIndent } from "common-tags" +import fs from "fs-extra" +import { fetchRemoteFile } from "gatsby-core-utils" +import { GraphQLBoolean, - GraphQLString, - GraphQLInt, GraphQLFloat, - GraphQLNonNull, + GraphQLInt, GraphQLJSON, GraphQLList, -} = require(`gatsby/graphql`) -const { stripIndent } = require(`common-tags`) - -const cacheImage = require(`./cache-image`) -const downloadWithRetry = require(`./download-with-retry`).default -const { - ImageFormatType, - ImageResizingBehavior, + GraphQLNonNull, + GraphQLObjectType, + GraphQLString, +} from "gatsby/graphql" +import sortBy from "lodash/sortBy" +import path from "path" +import { URLSearchParams } from "url" +import { ImageCropFocusType, + ImageFormatType, ImageLayoutType, ImagePlaceholderType, -} = require(`./schemes`) + ImageResizingBehavior, +} from "./schemes" // By default store the images in `.cache` but allow the user to override // and store the image cache away from the gatsby cache. After all, the gatsby @@ -35,21 +31,17 @@ const { // Supported Image Formats from https://www.contentful.com/developers/docs/references/images-api/#/reference/changing-formats/image-format const validImageFormats = new Set([`jpg`, `png`, `webp`, `gif`]) -if (process.env.GATSBY_REMOTE_CACHE) { - console.warn( - `Note: \`GATSBY_REMOTE_CACHE\` will be removed soon because it has been renamed to \`GATSBY_CONTENTFUL_EXPERIMENTAL_REMOTE_CACHE\`` - ) -} -if (process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_REMOTE_CACHE) { - console.warn( - `Please be aware that the \`GATSBY_CONTENTFUL_EXPERIMENTAL_REMOTE_CACHE\` env flag is not officially supported and could be removed at any time` - ) -} -const REMOTE_CACHE_FOLDER = - process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_REMOTE_CACHE ?? - process.env.GATSBY_REMOTE_CACHE ?? - path.join(process.cwd(), `.cache/remote_cache`) -const CACHE_IMG_FOLDER = path.join(REMOTE_CACHE_FOLDER, `images`) +const mimeTypeExtensions = new Map([ + [`image/jpeg`, `.jpg`], + [`image/jpg`, `.jpg`], + [`image/gif`, `.gif`], + [`image/png`, `.png`], + [`image/webp`, `.webp`], +]) + +exports.mimeTypeExtensions = mimeTypeExtensions + +const isImage = image => mimeTypeExtensions.has(image?.file?.contentType) // Promises that rejected should stay in this map. Otherwise remove promise and put their data in resolvedBase64Cache const inFlightBase64Cache = new Map() @@ -60,13 +52,8 @@ const resolvedBase64Cache = new Map() // @see https://www.contentful.com/developers/docs/references/images-api/#/reference/resizing-&-cropping/specify-width-&-height const CONTENTFUL_IMAGE_MAX_SIZE = 4000 -const isImage = image => - [`image/jpeg`, `image/jpg`, `image/png`, `image/webp`, `image/gif`].includes( - image?.file?.contentType - ) - // Note: this may return a Promise, body (sync), or null -const getBase64Image = (imageProps, reporter) => { +export const getBase64Image = (imageProps, cache) => { if (!imageProps) { return null } @@ -101,54 +88,24 @@ const getBase64Image = (imageProps, reporter) => { return inFlight } - // Note: sha1 is unsafe for crypto but okay for this particular case - const shasum = crypto.createHash(`sha1`) - shasum.update(requestUrl) - const urlSha = shasum.digest(`hex`) - - // TODO: Find the best place for this step. This is definitely not it. - fs.mkdirSync(CACHE_IMG_FOLDER, { recursive: true }) - - const cacheFile = path.join(CACHE_IMG_FOLDER, urlSha + `.base64`) - - if (fs.existsSync(cacheFile)) { - // TODO: against dogma, confirm whether readFileSync is indeed slower - const promise = fs.promises.readFile(cacheFile, `utf8`) - inFlightBase64Cache.set(requestUrl, promise) - return promise.then(body => { - inFlightBase64Cache.delete(requestUrl) - resolvedBase64Cache.set(requestUrl, body) - return body - }) - } - const loadImage = async () => { - const imageResponse = await downloadWithRetry( - { - url: requestUrl, - responseType: `arraybuffer`, - }, - reporter - ) + const { + file: { contentType }, + } = imageProps.image - const base64 = Buffer.from(imageResponse.data, `binary`).toString(`base64`) + const extension = mimeTypeExtensions.get(contentType) - const body = `data:image/${toFormat || originalFormat};base64,${base64}` + const absolutePath = await fetchRemoteFile({ + url: requestUrl, + cache, + ext: extension, + }) - try { - // TODO: against dogma, confirm whether writeFileSync is indeed slower - await fs.promises.writeFile(cacheFile, body) - return body - } catch (e) { - console.error( - `Contentful:getBase64Image: failed to write ${body.length} bytes remotely fetched from \`${requestUrl}\` to: \`${cacheFile}\`\nError: ${e}` - ) - throw e - } + const base64 = (await fs.readFile(absolutePath)).toString(`base64`) + return `data:image/${toFormat || originalFormat};base64,${base64}` } const promise = loadImage() - inFlightBase64Cache.set(requestUrl, promise) return promise.then(body => { @@ -157,7 +114,6 @@ const getBase64Image = (imageProps, reporter) => { return body }) } -exports.getBase64Image = getBase64Image const getBasicImageProps = (image, args) => { let aspectRatio @@ -177,7 +133,7 @@ const getBasicImageProps = (image, args) => { } } -const createUrl = (imgUrl, options = {}) => { +export const createUrl = (imgUrl, options = {}) => { // If radius is -1, we need to pass `max` to the API const cornerRadius = options.cornerRadius === -1 ? `max` : options.cornerRadius @@ -207,23 +163,23 @@ const createUrl = (imgUrl, options = {}) => { return `https:${imgUrl}?${searchParams.toString()}` } -exports.createUrl = createUrl -const generateImageSource = ( +export const generateImageSource = ( filename, width, height, toFormat, _fit, // We use resizingBehavior instead - { + imageTransformOptions +) => { + const { jpegProgressive, quality, cropFocus, backgroundColor, resizingBehavior, cornerRadius, - } -) => { + } = imageTransformOptions // Ensure we stay within Contentfuls Image API limits if (width > CONTENTFUL_IMAGE_MAX_SIZE) { height = Math.floor((height / width) * CONTENTFUL_IMAGE_MAX_SIZE) @@ -256,8 +212,6 @@ const generateImageSource = ( return { width, height, format: toFormat, src } } -exports.generateImageSource = generateImageSource - const fitMap = new Map([ [`pad`, `contain`], [`fill`, `cover`], @@ -266,7 +220,7 @@ const fitMap = new Map([ [`thumb`, `cover`], ]) -const resolveFixed = (image, options) => { +export const resolveFixed = (image, options) => { if (!isImage(image)) return null const { baseUrl, width, aspectRatio } = getBasicImageProps(image, options) @@ -372,9 +326,8 @@ const resolveFixed = (image, options) => { srcSet, } } -exports.resolveFixed = resolveFixed -const resolveFluid = (image, options) => { +export const resolveFluid = (image, options) => { if (!isImage(image)) return null const { baseUrl, width, aspectRatio } = getBasicImageProps(image, options) @@ -463,9 +416,8 @@ const resolveFluid = (image, options) => { sizes: options.sizes, } } -exports.resolveFluid = resolveFluid -const resolveResize = (image, options) => { +export const resolveResize = (image, options) => { if (!isImage(image)) return null const { baseUrl, aspectRatio } = getBasicImageProps(image, options) @@ -503,16 +455,14 @@ const resolveResize = (image, options) => { } } -exports.resolveResize = resolveResize - -const fixedNodeType = ({ name, getTracedSVG, reporter }) => { +const fixedNodeType = ({ name, getTracedSVG, cache }) => { return { type: new GraphQLObjectType({ name: name, fields: { base64: { type: GraphQLString, - resolve: imageProps => getBase64Image(imageProps, reporter), + resolve: imageProps => getBase64Image(imageProps, cache), }, tracedSVG: { type: GraphQLString, @@ -607,14 +557,14 @@ const fixedNodeType = ({ name, getTracedSVG, reporter }) => { } } -const fluidNodeType = ({ name, getTracedSVG, reporter }) => { +const fluidNodeType = ({ name, getTracedSVG, cache }) => { return { type: new GraphQLObjectType({ name: name, fields: { base64: { type: GraphQLString, - resolve: imageProps => getBase64Image(imageProps, reporter), + resolve: imageProps => getBase64Image(imageProps, cache), }, tracedSVG: { type: GraphQLString, @@ -711,25 +661,33 @@ const fluidNodeType = ({ name, getTracedSVG, reporter }) => { } } -exports.extendNodeType = ({ type, store, reporter }) => { +export async function setFieldsOnGraphQLNodeType({ type, cache }) { if (type.name !== `ContentfulAsset`) { return {} } const getTracedSVG = async args => { - const { traceSVG } = require(`gatsby-plugin-sharp`) + const { traceSVG } = await import(`gatsby-plugin-sharp`) const { image, options } = args const { - file: { contentType }, + file: { contentType, url: imgUrl, fileName }, } = image if (contentType.indexOf(`image/`) !== 0) { return null } - const absolutePath = await cacheImage(store, image, options, reporter) - const extension = path.extname(absolutePath) + const extension = mimeTypeExtensions.get(contentType) + const url = createUrl(imgUrl, options) + const name = path.basename(fileName, extension) + + const absolutePath = await fetchRemoteFile({ + url, + name, + cache, + ext: extension, + }) return traceSVG({ file: { @@ -743,11 +701,11 @@ exports.extendNodeType = ({ type, store, reporter }) => { }) } - const getDominantColor = async ({ image, options, reporter }) => { + const getDominantColor = async ({ image, options }) => { let pluginSharp try { - pluginSharp = require(`gatsby-plugin-sharp`) + pluginSharp = await import(`gatsby-plugin-sharp`) } catch (e) { console.error( `[gatsby-source-contentful] Please install gatsby-plugin-sharp`, @@ -757,7 +715,29 @@ exports.extendNodeType = ({ type, store, reporter }) => { } try { - const absolutePath = await cacheImage(store, image, options, reporter) + const { + file: { contentType, url: imgUrl, fileName }, + } = image + + if (contentType.indexOf(`image/`) !== 0) { + return null + } + + // 256px should be enough to properly detect the dominant color + if (!options.width) { + options.width = 256 + } + + const extension = mimeTypeExtensions.get(contentType) + const url = createUrl(imgUrl, options) + const name = path.basename(fileName, extension) + + const absolutePath = await fetchRemoteFile({ + url, + name, + cache, + ext: extension, + }) if (!(`getDominantColor` in pluginSharp)) { console.error( @@ -779,7 +759,7 @@ exports.extendNodeType = ({ type, store, reporter }) => { const resolveGatsbyImageData = async (image, options) => { if (!isImage(image)) return null - const { generateImageData } = require(`gatsby-plugin-image`) + const { generateImageData } = await import(`gatsby-plugin-image`) const { baseUrl, contentType, width, height } = getBasicImageProps( image, @@ -805,7 +785,6 @@ exports.extendNodeType = ({ type, store, reporter }) => { imageProps.backgroundColor = await getDominantColor({ image, options, - reporter, }) } @@ -816,7 +795,7 @@ exports.extendNodeType = ({ type, store, reporter }) => { image, options, }, - reporter + cache ) } @@ -837,20 +816,20 @@ exports.extendNodeType = ({ type, store, reporter }) => { const fixedNode = fixedNodeType({ name: `ContentfulFixed`, getTracedSVG, - reporter, + cache, }) const fluidNode = fluidNodeType({ name: `ContentfulFluid`, getTracedSVG, - reporter, + cache, }) // gatsby-plugin-image - const getGatsbyImageData = () => { - const { - getGatsbyImageFieldConfig, - } = require(`gatsby-plugin-image/graphql-utils`) + const getGatsbyImageData = async () => { + const { getGatsbyImageFieldConfig } = await import( + `gatsby-plugin-image/graphql-utils` + ) const fieldConfig = getGatsbyImageFieldConfig(resolveGatsbyImageData, { jpegProgressive: { @@ -883,6 +862,7 @@ exports.extendNodeType = ({ type, store, reporter }) => { FULL_WIDTH: The image resizes to fit its container, even if that is larger than the source image. Pass a value to "sizes" if the container is not the full width of the screen. `, + defaultValue: `constrained`, }, placeholder: { type: ImagePlaceholderType, @@ -892,6 +872,7 @@ exports.extendNodeType = ({ type, store, reporter }) => { DOMINANT_COLOR: a solid color, calculated from the dominant color of the image. TRACED_SVG: a low-resolution traced SVG of the image. NONE: no placeholder. Set the argument "backgroundColor" to use a fixed background color.`, + defaultValue: `dominantColor`, }, formats: { type: GraphQLList(ImageFormatType), @@ -907,23 +888,22 @@ exports.extendNodeType = ({ type, store, reporter }) => { fieldConfig.type = GraphQLJSON - fieldConfig.args.placeholder.defaultValue = `dominantColor` - fieldConfig.args.layout.defaultValue = `constrained` - return fieldConfig } + const gatsbyImageData = await getGatsbyImageData() + return { fixed: fixedNode, fluid: fluidNode, - gatsbyImageData: getGatsbyImageData(), + gatsbyImageData, resize: { type: new GraphQLObjectType({ name: `ContentfulResize`, fields: { base64: { type: GraphQLString, - resolve: imageProps => getBase64Image(imageProps, reporter), + resolve: imageProps => getBase64Image(imageProps, cache), }, tracedSVG: { type: GraphQLString, diff --git a/packages/gatsby-source-contentful/src/fetch.js b/packages/gatsby-source-contentful/src/fetch.js index 136031150d68e..209153198fefa 100644 --- a/packages/gatsby-source-contentful/src/fetch.js +++ b/packages/gatsby-source-contentful/src/fetch.js @@ -1,8 +1,9 @@ -const contentful = require(`contentful`) -const _ = require(`lodash`) -const chalk = require(`chalk`) -const { formatPluginOptionsForCLI } = require(`./plugin-options`) -const { CODES } = require(`./report`) +// @ts-check +import chalk from "chalk" +import { createClient } from "contentful" +import _ from "lodash" +import { formatPluginOptionsForCLI } from "./plugin-options" +import { CODES } from "./report" /** * Generate a user friendly error message. @@ -72,15 +73,13 @@ const createContentfulErrorMessage = e => { return errorMessage } -module.exports = async function contentfulFetch({ - syncToken, +function createContentfulClientOptions({ pluginConfig, reporter, + syncProgress = { total: 0, tick: a => a }, }) { - // Fetch articles. - let syncProgress let syncItemCount = 0 - const pageLimit = pluginConfig.get(`pageLimit`) + const contentfulClientOptions = { space: pluginConfig.get(`spaceId`), accessToken: pluginConfig.get(`accessToken`), @@ -133,12 +132,95 @@ module.exports = async function contentfulFetch({ ...(pluginConfig.get(`contentfulClientConfig`) || {}), } - const client = contentful.createClient(contentfulClientOptions) + return contentfulClientOptions +} + +function handleContentfulError({ + e, + reporter, + contentfulClientOptions, + pluginConfig, +}) { + let details + let errors + if (e.code === `ENOTFOUND`) { + details = `You seem to be offline` + } else if (e.code === `SELF_SIGNED_CERT_IN_CHAIN`) { + reporter.panic({ + id: CODES.SelfSignedCertificate, + context: { + sourceMessage: `We couldn't make a secure connection to your contentful space. Please check if you have any self-signed SSL certificates installed.`, + }, + }) + } else if (e.responseData) { + if ( + e.responseData.status === 404 && + contentfulClientOptions.environment && + contentfulClientOptions.environment !== `master` + ) { + // environments need to have access to master + details = `Unable to access your space. Check if ${chalk.yellow( + `environment` + )} is correct and your ${chalk.yellow( + `accessToken` + )} has access to the ${chalk.yellow( + contentfulClientOptions.environment + )} and the ${chalk.yellow(`master`)} environments.` + errors = { + accessToken: `Check if setting is correct`, + environment: `Check if setting is correct`, + } + } else if (e.responseData.status === 404) { + // host and space used to generate url + details = `Endpoint not found. Check if ${chalk.yellow( + `host` + )} and ${chalk.yellow(`spaceId`)} settings are correct` + errors = { + host: `Check if setting is correct`, + spaceId: `Check if setting is correct`, + } + } else if (e.responseData.status === 401) { + // authorization error + details = `Authorization error. Check if ${chalk.yellow( + `accessToken` + )} and ${chalk.yellow(`environment`)} are correct` + errors = { + accessToken: `Check if setting is correct`, + environment: `Check if setting is correct`, + } + } + } + + reporter.panic({ + context: { + sourceMessage: `Accessing your Contentful space failed: ${createContentfulErrorMessage( + e + )} + +Try setting GATSBY_CONTENTFUL_OFFLINE=true to see if we can serve from cache. +${details ? `\n${details}\n` : ``} +Used options: +${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, + }, + }) +} + +/** + * Fetches: + * * Locales with default locale + * * Entries and assets + * * Tags + */ +export async function fetchContent({ syncToken, pluginConfig, reporter }) { + // Fetch locales and check connectivity + const contentfulClientOptions = createContentfulClientOptions({ + pluginConfig, + reporter, + }) + const client = createClient(contentfulClientOptions) // The sync API puts the locale in all fields in this format { fieldName: // {'locale': value} } so we need to get the space and its default local. - // - // We'll extend this soon to support multiple locales. let space let locales let defaultLocale = `en-US` @@ -151,83 +233,35 @@ module.exports = async function contentfulFetch({ `Default locale is: ${defaultLocale}. There are ${locales.length} locales in total.` ) } catch (e) { - let details - let errors - if (e.code === `ENOTFOUND`) { - details = `You seem to be offline` - } else if (e.code === `SELF_SIGNED_CERT_IN_CHAIN`) { - reporter.panic({ - id: CODES.SelfSignedCertificate, - context: { - sourceMessage: `We couldn't make a secure connection to your contentful space. Please check if you have any self-signed SSL certificates installed.`, - }, - }) - } else if (e.responseData) { - if ( - e.responseData.status === 404 && - contentfulClientOptions.environment && - contentfulClientOptions.environment !== `master` - ) { - // environments need to have access to master - details = `Unable to access your space. Check if ${chalk.yellow( - `environment` - )} is correct and your ${chalk.yellow( - `accessToken` - )} has access to the ${chalk.yellow( - contentfulClientOptions.environment - )} and the ${chalk.yellow(`master`)} environments.` - errors = { - accessToken: `Check if setting is correct`, - environment: `Check if setting is correct`, - } - } else if (e.responseData.status === 404) { - // host and space used to generate url - details = `Endpoint not found. Check if ${chalk.yellow( - `host` - )} and ${chalk.yellow(`spaceId`)} settings are correct` - errors = { - host: `Check if setting is correct`, - spaceId: `Check if setting is correct`, - } - } else if (e.responseData.status === 401) { - // authorization error - details = `Authorization error. Check if ${chalk.yellow( - `accessToken` - )} and ${chalk.yellow(`environment`)} are correct` - errors = { - accessToken: `Check if setting is correct`, - environment: `Check if setting is correct`, - } - } - } - - reporter.panic({ - context: { - sourceMessage: `Accessing your Contentful space failed: ${createContentfulErrorMessage( - e - )} - -Try setting GATSBY_CONTENTFUL_OFFLINE=true to see if we can serve from cache. -${details ? `\n${details}\n` : ``} -Used options: -${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, - }, + handleContentfulError({ + e, + reporter, + contentfulClientOptions, + pluginConfig, }) } + // Fetch entries and assets via Contentful CDA sync API + const pageLimit = pluginConfig.get(`pageLimit`) + reporter.verbose(`Contentful: Sync ${pageLimit} items per page.`) + const syncProgress = reporter.createProgress( + `Contentful: ${syncToken ? `Sync changed items` : `Sync all items`}`, + pageLimit, + 0 + ) + syncProgress.start() + const contentfulSyncClientOptions = createContentfulClientOptions({ + pluginConfig, + reporter, + syncProgress, + }) + const syncClient = createClient(contentfulSyncClientOptions) + let currentSyncData let currentPageLimit = pageLimit let lastCurrentPageLimit let syncSuccess = false try { - syncProgress = reporter.createProgress( - `Contentful: ${syncToken ? `Sync changed items` : `Sync all items`}`, - currentPageLimit, - 0 - ) - syncProgress.start() - reporter.verbose(`Contentful: Sync ${currentPageLimit} items per page.`) - while (!syncSuccess) { try { const basicSyncConfig = { @@ -237,7 +271,7 @@ ${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, const query = syncToken ? { nextSyncToken: syncToken, ...basicSyncConfig } : { initial: true, ...basicSyncConfig } - currentSyncData = await client.sync(query) + currentSyncData = await syncClient.sync(query) syncSuccess = true } catch (e) { // Back off page limit if responses content length exceeds Contentfuls limits. @@ -275,27 +309,20 @@ ${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, }, }) } finally { - syncProgress.done() - } + // Fix output when there was no new data in Contentful + if ( + currentSyncData?.entries.length + + currentSyncData?.assets.length + + currentSyncData?.deletedEntries.length + + currentSyncData?.deletedAssets.length === + 0 + ) { + syncProgress.tick() + syncProgress.total = 1 + } - // We need to fetch content types with the non-sync API as the sync API - // doesn't support this. - let contentTypes - try { - contentTypes = await pagedGet(client, `getContentTypes`, pageLimit) - } catch (e) { - reporter.panic({ - id: CODES.FetchContentTypes, - context: { - sourceMessage: `Error fetching content types: ${createContentfulErrorMessage( - e - )}`, - }, - }) + syncProgress.done() } - reporter.verbose(`Content types fetched ${contentTypes.items.length}`) - - const contentTypeItems = contentTypes.items // We need to fetch tags with the non-sync API as the sync API doesn't support this. let tagItems = [] @@ -318,7 +345,6 @@ ${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, const result = { currentSyncData, - contentTypeItems, tagItems, defaultLocale, locales, @@ -328,6 +354,50 @@ ${formatPluginOptionsForCLI(pluginConfig.getOriginalPluginOptions(), errors)}`, return result } +/** + * Fetches: + * * Content types + */ +export async function fetchContentTypes({ pluginConfig, reporter }) { + const contentfulClientOptions = createContentfulClientOptions({ + pluginConfig, + reporter, + }) + const client = createClient(contentfulClientOptions) + const pageLimit = pluginConfig.get(`pageLimit`) + const sourceId = `${pluginConfig.get(`spaceId`)}-${pluginConfig.get( + `environment` + )}` + let contentTypes = null + + try { + reporter.verbose(`Fetching content types (${sourceId})`) + + // Fetch content types from CDA API + try { + contentTypes = await pagedGet(client, `getContentTypes`, pageLimit) + } catch (e) { + reporter.panic({ + id: CODES.FetchContentTypes, + context: { + sourceMessage: `Error fetching content types: ${createContentfulErrorMessage( + e + )}`, + }, + }) + } + reporter.verbose( + `Content types fetched ${contentTypes.items.length} (${sourceId})` + ) + + contentTypes = contentTypes.items + } catch (e) { + handleContentfulError(e) + } + + return contentTypes +} + /** * Gets all the existing entities based on pagination parameters. * The first call will have no aggregated response. Subsequent calls will diff --git a/packages/gatsby-source-contentful/src/gatsby-node.js b/packages/gatsby-source-contentful/src/gatsby-node.js index 5f83bc7996a96..05f430ff6e7d5 100644 --- a/packages/gatsby-source-contentful/src/gatsby-node.js +++ b/packages/gatsby-source-contentful/src/gatsby-node.js @@ -1,31 +1,16 @@ -const path = require(`path`) -const isOnline = require(`is-online`) -const _ = require(`lodash`) -const fs = require(`fs-extra`) -const { createClient } = require(`contentful`) -const v8 = require(`v8`) -const fetch = require(`@vercel/fetch-retry`)(require(`node-fetch`)) -const { CODES } = require(`./report`) +// @ts-check +import _ from "lodash" +import origFetch from "node-fetch" +import fetchRetry from "@vercel/fetch-retry" -const normalize = require(`./normalize`) -const fetchData = require(`./fetch`) -const { createPluginConfig, maskText } = require(`./plugin-options`) -const { downloadContentfulAssets } = require(`./download-contentful-assets`) +import { maskText } from "./plugin-options" -const conflictFieldPrefix = `contentful` +export { createSchemaCustomization } from "./create-schema-customization" +export { sourceNodes } from "./source-nodes" +export { onPreBootstrap } from "./on-pre-bootstrap" +export { setFieldsOnGraphQLNodeType } from "./extend-node-type" -// restrictedNodeFields from here https://www.gatsbyjs.org/docs/node-interface/ -const restrictedNodeFields = [ - `children`, - `contentful_id`, - `fields`, - `id`, - `internal`, - `parent`, -] - -exports.setFieldsOnGraphQLNodeType = - require(`./extend-node-type`).extendNodeType +const fetch = fetchRetry(origFetch) const validateContentfulAccess = async pluginOptions => { if (process.env.NODE_ENV === `test`) return undefined @@ -57,7 +42,7 @@ const validateContentfulAccess = async pluginOptions => { return undefined } -const pluginOptionsSchema = ({ Joi }) => +export const pluginOptionsSchema = ({ Joi }) => Joi.object() .keys({ accessToken: Joi.string() @@ -96,11 +81,6 @@ For example, to filter locales on only germany \`localeFilter: locale => locale. List of locales and their codes can be found in Contentful app -> Settings -> Locales` ) .default(() => () => true), - forceFullSync: Joi.boolean() - .description( - `Prevents the use of sync tokens when accessing the Contentful API.` - ) - .default(false), pageLimit: Joi.number() .integer() .description( @@ -125,6 +105,11 @@ List of locales and their codes can be found in Contentful app -> Settings -> Lo .description( `Axios proxy configuration. See the [axios request config documentation](https://github.com/mzabriskie/axios#request-config) for further information about the supported values.` ), + enableTags: Joi.boolean() + .description( + `Enable the new tags feature. This will disallow the content type name "tags" till the next major version of this plugin.` + ) + .default(false), useNameForId: Joi.boolean() .description( `Use the content's \`name\` when generating the GraphQL schema e.g. a Content Type called \`[Component] Navigation bar\` will be named \`contentfulComponentNavigationBar\`. @@ -147,599 +132,3 @@ List of locales and their codes can be found in Contentful app -> Settings -> Lo plugins: Joi.array(), }) .external(validateContentfulAccess) - -exports.pluginOptionsSchema = pluginOptionsSchema - -/*** - * Localization algorithm - * - * 1. Make list of all resolvable IDs worrying just about the default ids not - * localized ids - * 2. Make mapping between ids, again not worrying about localization. - * 3. When creating entries and assets, make the most localized version - * possible for each localized node i.e. get the localized field if it exists - * or the fallback field or the default field. - */ - -exports.sourceNodes = async ( - { - actions, - getNode, - getNodes, - getNodesByType, - createNodeId, - store, - cache, - getCache, - reporter, - schema, - parentSpan, - }, - pluginOptions -) => { - const { createNode, deleteNode, touchNode, createTypes } = actions - - let currentSyncData - let contentTypeItems - let tagItems - let defaultLocale - let locales - let space - if (process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE) { - reporter.info( - `GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE: Storing/loading remote data through \`` + - process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE + - `\` so Remote changes CAN NOT be detected!` - ) - } - const forceCache = await fs.exists( - process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE - ) - - const pluginConfig = createPluginConfig(pluginOptions) - const sourceId = `${pluginConfig.get(`spaceId`)}-${pluginConfig.get( - `environment` - )}` - - const CACHE_SYNC_TOKEN = `contentful-sync-token-${sourceId}` - const CACHE_SYNC_DATA = `contentful-sync-data-${sourceId}` - - /* - * Subsequent calls of Contentfuls sync API return only changed data. - * - * In some cases, especially when using rich-text fields, there can be data - * missing from referenced entries. This breaks the reference matching. - * - * To workround this, we cache the initial sync data and merge it - * with all data from subsequent syncs. Afterwards the references get - * resolved via the Contentful JS SDK. - */ - const syncToken = await cache.get(CACHE_SYNC_TOKEN) - let previousSyncData = { - assets: [], - entries: [], - } - const cachedData = await cache.get(CACHE_SYNC_DATA) - - if (cachedData) { - previousSyncData = cachedData - } - - const fetchActivity = reporter.activityTimer( - `Contentful: Fetch data (${sourceId})`, - { - parentSpan, - } - ) - - if (forceCache) { - // If the cache has data, use it. Otherwise do a remote fetch anyways and prime the cache now. - // If present, do NOT contact contentful, skip the round trips entirely - reporter.info( - `GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE was set. Skipping remote fetch, using data stored in \`${process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE}\`` - ) - ;({ - currentSyncData, - contentTypeItems, - tagItems, - defaultLocale, - locales, - space, - } = v8.deserialize( - fs.readFileSync(process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE) - )) - } else { - const online = await isOnline() - - // If the user knows they are offline, serve them cached result - // For prod builds though always fail if we can't get the latest data - if ( - !online && - process.env.GATSBY_CONTENTFUL_OFFLINE === `true` && - process.env.NODE_ENV !== `production` - ) { - getNodes().forEach(node => { - if (node.internal.owner !== `gatsby-source-contentful`) { - return - } - touchNode(node) - if (node.localFile___NODE) { - // Prevent GraphQL type inference from crashing on this property - touchNode(getNode(node.localFile___NODE)) - } - }) - - reporter.info(`Using Contentful Offline cache ⚠️`) - reporter.info( - `Cache may be invalidated if you edit package.json, gatsby-node.js or gatsby-config.js files` - ) - - return - } - if (process.env.GATSBY_CONTENTFUL_OFFLINE) { - reporter.info( - `Note: \`GATSBY_CONTENTFUL_OFFLINE\` was set but it either was not \`true\`, we _are_ online, or we are in production mode, so the flag is ignored.` - ) - } - - fetchActivity.start() - ;({ - currentSyncData, - contentTypeItems, - tagItems, - defaultLocale, - locales, - space, - } = await fetchData({ - syncToken, - reporter, - pluginConfig, - parentSpan, - })) - - if (process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE) { - reporter.info( - `GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE was set. Writing v8 serialized glob of remote data to: ` + - process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE - ) - fs.writeFileSync( - process.env.GATSBY_CONTENTFUL_EXPERIMENTAL_FORCE_CACHE, - v8.serialize({ - currentSyncData, - contentTypeItems, - defaultLocale, - locales, - space, - }) - ) - } - } - - // Check for restricted content type names - const useNameForId = pluginConfig.get(`useNameForId`) - const restrictedContentTypes = [`entity`, `reference`, `asset`] - - if (pluginConfig.get(`enableTags`)) { - restrictedContentTypes.push(`tags`) - } - - contentTypeItems.forEach(contentTypeItem => { - // Establish identifier for content type - // Use `name` if specified, otherwise, use internal id (usually a natural-language constant, - // but sometimes a base62 uuid generated by Contentful, hence the option) - let contentTypeItemId - if (useNameForId) { - contentTypeItemId = contentTypeItem.name.toLowerCase() - } else { - contentTypeItemId = contentTypeItem.sys.id.toLowerCase() - } - - if (restrictedContentTypes.includes(contentTypeItemId)) { - reporter.panic({ - id: CODES.FetchContentTypes, - context: { - sourceMessage: `Restricted ContentType name found. The name "${contentTypeItemId}" is not allowed.`, - }, - }) - } - }) - - const allLocales = locales - locales = locales.filter(pluginConfig.get(`localeFilter`)) - reporter.verbose( - `Default locale: ${defaultLocale}. All locales: ${allLocales - .map(({ code }) => code) - .join(`, `)}` - ) - if (allLocales.length !== locales.length) { - reporter.verbose( - `After plugin.options.localeFilter: ${locales - .map(({ code }) => code) - .join(`, `)}` - ) - } - if (locales.length === 0) { - reporter.panic({ - id: CODES.LocalesMissing, - context: { - sourceMessage: `Please check if your localeFilter is configured properly. Locales '${allLocales - .map(item => item.code) - .join(`,`)}' were found but were filtered down to none.`, - }, - }) - } - - if (pluginConfig.get(`enableTags`)) { - createTypes( - schema.buildObjectType({ - name: `ContentfulTag`, - fields: { - name: { type: `String!` }, - contentful_id: { type: `String!` }, - id: { type: `ID!` }, - }, - interfaces: [`Node`], - extensions: { dontInfer: {} }, - }) - ) - } - - createTypes(` - interface ContentfulEntry implements Node { - contentful_id: String! - id: ID! - node_locale: String! - } -`) - - createTypes(` - interface ContentfulReference { - contentful_id: String! - id: ID! - } -`) - - createTypes( - schema.buildObjectType({ - name: `ContentfulAsset`, - fields: { - contentful_id: { type: `String!` }, - id: { type: `ID!` }, - }, - interfaces: [`ContentfulReference`, `Node`], - }) - ) - - const gqlTypes = contentTypeItems.map(contentTypeItem => - schema.buildObjectType({ - name: _.upperFirst( - _.camelCase( - `Contentful ${ - pluginConfig.get(`useNameForId`) - ? contentTypeItem.name - : contentTypeItem.sys.id - }` - ) - ), - fields: { - contentful_id: { type: `String!` }, - id: { type: `ID!` }, - node_locale: { type: `String!` }, - }, - interfaces: [`ContentfulReference`, `ContentfulEntry`, `Node`], - }) - ) - - createTypes(gqlTypes) - - fetchActivity.end() - - const processingActivity = reporter.activityTimer( - `Contentful: Process data (${sourceId})`, - { - parentSpan, - } - ) - processingActivity.start() - - // Create a map of up to date entries and assets - function mergeSyncData(previous, current, deleted) { - const entryMap = new Map() - previous.forEach(e => !deleted.has(e.sys.id) && entryMap.set(e.sys.id, e)) - current.forEach(e => !deleted.has(e.sys.id) && entryMap.set(e.sys.id, e)) - return [...entryMap.values()] - } - - const deletedSet = new Set(currentSyncData.deletedEntries.map(e => e.sys.id)) - - const mergedSyncData = { - entries: mergeSyncData( - previousSyncData.entries, - currentSyncData.entries, - deletedSet - ), - assets: mergeSyncData( - previousSyncData.assets, - currentSyncData.assets, - deletedSet - ), - } - - // Store a raw and unresolved copy of the data for caching - const mergedSyncDataRaw = _.cloneDeep(mergedSyncData) - - // Use the JS-SDK to resolve the entries and assets - const res = createClient({ - space: `none`, - accessToken: `fake-access-token`, - }).parseEntries({ - items: mergedSyncData.entries, - includes: { - assets: mergedSyncData.assets, - entries: mergedSyncData.entries, - }, - }) - - mergedSyncData.entries = res.items - - // Inject raw API output to rich text fields - const richTextFieldMap = new Map() - contentTypeItems.forEach(contentType => { - richTextFieldMap.set( - contentType.sys.id, - contentType.fields - .filter(field => field.type === `RichText`) - .map(field => field.id) - ) - }) - - const rawEntries = new Map() - mergedSyncDataRaw.entries.forEach(rawEntry => - rawEntries.set(rawEntry.sys.id, rawEntry) - ) - - mergedSyncData.entries.forEach(entry => { - const contentTypeId = entry.sys.contentType.sys.id - const richTextFieldIds = richTextFieldMap.get(contentTypeId) - if (richTextFieldIds) { - richTextFieldIds.forEach(richTextFieldId => { - if (!entry.fields[richTextFieldId]) { - return - } - entry.fields[richTextFieldId] = rawEntries.get(entry.sys.id).fields[ - richTextFieldId - ] - }) - } - }) - - const entryList = normalize.buildEntryList({ - mergedSyncData, - contentTypeItems, - }) - - // Remove deleted entries & assets. - // TODO figure out if entries referencing now deleted entries/assets - // are "updated" so will get the now deleted reference removed. - - function deleteContentfulNode(node) { - const normalizedType = node.sys.type.startsWith(`Deleted`) - ? node.sys.type.substring(`Deleted`.length) - : node.sys.type - - const localizedNodes = locales - .map(locale => { - const nodeId = createNodeId( - normalize.makeId({ - spaceId: space.sys.id, - id: node.sys.id, - type: normalizedType, - currentLocale: locale.code, - defaultLocale, - }) - ) - return getNode(nodeId) - }) - .filter(node => node) - - localizedNodes.forEach(node => { - // touchNode first, to populate typeOwners & avoid erroring - touchNode(node) - deleteNode(node) - }) - } - - currentSyncData.deletedEntries.forEach(deleteContentfulNode) - currentSyncData.deletedAssets.forEach(deleteContentfulNode) - - const existingNodes = getNodes().filter( - n => - n.internal.owner === `gatsby-source-contentful` && - (n?.sys?.type === `Asset` || n?.sys?.type === `Entry`) - ) - existingNodes.forEach(n => touchNode(n)) - - const assets = mergedSyncData.assets - - reporter.info(`Updated entries ${currentSyncData.entries.length}`) - reporter.info(`Deleted entries ${currentSyncData.deletedEntries.length}`) - reporter.info(`Updated assets ${currentSyncData.assets.length}`) - reporter.info(`Deleted assets ${currentSyncData.deletedAssets.length}`) - - // Update syncToken - const nextSyncToken = currentSyncData.nextSyncToken - - await Promise.all([ - cache.set(CACHE_SYNC_DATA, mergedSyncDataRaw), - cache.set(CACHE_SYNC_TOKEN, nextSyncToken), - ]) - - reporter.verbose(`Building Contentful reference map`) - - // Create map of resolvable ids so we can check links against them while creating - // links. - const resolvable = normalize.buildResolvableSet({ - existingNodes, - entryList, - assets, - defaultLocale, - locales, - space, - }) - - // Build foreign reference map before starting to insert any nodes - const foreignReferenceMap = normalize.buildForeignReferenceMap({ - contentTypeItems, - entryList, - resolvable, - defaultLocale, - locales, - space, - useNameForId: pluginConfig.get(`useNameForId`), - }) - - reporter.verbose(`Resolving Contentful references`) - - const newOrUpdatedEntries = new Set() - entryList.forEach(entries => { - entries.forEach(entry => { - newOrUpdatedEntries.add(`${entry.sys.id}___${entry.sys.type}`) - }) - }) - - // Update existing entry nodes that weren't updated but that need reverse - // links added. - existingNodes - .filter(n => newOrUpdatedEntries.has(`${n.id}___${n.sys.type}`)) - .forEach(n => { - if (foreignReferenceMap[`${n.id}___${n.sys.type}`]) { - foreignReferenceMap[`${n.id}___${n.sys.type}`].forEach( - foreignReference => { - // Add reverse links - if (n[foreignReference.name]) { - n[foreignReference.name].push(foreignReference.id) - // It might already be there so we'll uniquify after pushing. - n[foreignReference.name] = _.uniq(n[foreignReference.name]) - } else { - // If is one foreign reference, there can always be many. - // Best to be safe and put it in an array to start with. - n[foreignReference.name] = [foreignReference.id] - } - } - ) - } - }) - - processingActivity.end() - - const creationActivity = reporter.activityTimer( - `Contentful: Create nodes (${sourceId})`, - { - parentSpan, - } - ) - creationActivity.start() - - for (let i = 0; i < contentTypeItems.length; i++) { - const contentTypeItem = contentTypeItems[i] - - if (entryList[i].length) { - reporter.info( - `Creating ${entryList[i].length} Contentful ${ - pluginConfig.get(`useNameForId`) - ? contentTypeItem.name - : contentTypeItem.sys.id - } nodes` - ) - } - - // A contentType can hold lots of entries which create nodes - // We wait until all nodes are created and processed until we handle the next one - // TODO add batching in gatsby-core - await Promise.all( - normalize.createNodesForContentType({ - contentTypeItem, - restrictedNodeFields, - conflictFieldPrefix, - entries: entryList[i], - createNode, - createNodeId, - getNode, - resolvable, - foreignReferenceMap, - defaultLocale, - locales, - space, - useNameForId: pluginConfig.get(`useNameForId`), - pluginConfig, - }) - ) - } - - if (assets.length) { - reporter.info(`Creating ${assets.length} Contentful Asset nodes`) - } - - for (let i = 0; i < assets.length; i++) { - // We wait for each asset to be process until handling the next one. - await Promise.all( - normalize.createAssetNodes({ - assetItem: assets[i], - createNode, - createNodeId, - defaultLocale, - locales, - space, - }) - ) - } - - // Create tags entities - if (tagItems.length) { - reporter.info(`Creating ${tagItems.length} Contentful Tag nodes`) - - for (const tag of tagItems) { - await createNode({ - id: createNodeId(`ContentfulTag__${space.sys.id}__${tag.sys.id}`), - name: tag.name, - contentful_id: tag.sys.id, - internal: { - type: `ContentfulTag`, - contentDigest: tag.sys.updatedAt, - }, - }) - } - } - - creationActivity.end() - - if (pluginConfig.get(`downloadLocal`)) { - reporter.info(`Download Contentful asset files`) - - await downloadContentfulAssets({ - actions, - createNodeId, - store, - cache, - getCache, - getNode, - getNodesByType, - reporter, - assetDownloadWorkers: pluginConfig.get(`assetDownloadWorkers`), - }) - } - - return -} - -// Check if there are any ContentfulAsset nodes and if gatsby-image is installed. If so, -// add fragments for ContentfulAsset and gatsby-image. The fragment will cause an error -// if there's not ContentfulAsset nodes and without gatsby-image, the fragment is useless. -exports.onPreExtractQueries = async ({ store }) => { - const program = store.getState().program - - const CACHE_DIR = path.resolve( - `${program.directory}/.cache/contentful/assets/` - ) - await fs.ensureDir(CACHE_DIR) -} diff --git a/packages/gatsby-source-contentful/src/normalize.js b/packages/gatsby-source-contentful/src/normalize.js index 82a31c9afadd7..b77593dcf3551 100644 --- a/packages/gatsby-source-contentful/src/normalize.js +++ b/packages/gatsby-source-contentful/src/normalize.js @@ -1,10 +1,11 @@ -const _ = require(`lodash`) -const stringify = require(`json-stringify-safe`) +// @ts-check +import stringify from "json-stringify-safe" +import _ from "lodash" const typePrefix = `Contentful` const makeTypeName = type => _.upperFirst(_.camelCase(`${typePrefix} ${type}`)) -const getLocalizedField = ({ field, locale, localesFallback }) => { +export const getLocalizedField = ({ field, locale, localesFallback }) => { if (!_.isUndefined(field[locale.code])) { return field[locale.code] } else if ( @@ -20,7 +21,7 @@ const getLocalizedField = ({ field, locale, localesFallback }) => { return null } } -const buildFallbackChain = locales => { +export const buildFallbackChain = locales => { const localesFallback = {} _.each( locales, @@ -33,10 +34,7 @@ const makeGetLocalizedField = field => getLocalizedField({ field, locale, localesFallback }) -exports.getLocalizedField = getLocalizedField -exports.buildFallbackChain = buildFallbackChain - -const makeId = ({ spaceId, id, currentLocale, defaultLocale, type }) => { +export const makeId = ({ spaceId, id, currentLocale, defaultLocale, type }) => { const normalizedType = type.startsWith(`Deleted`) ? type.substring(`Deleted`.length) : type @@ -45,14 +43,12 @@ const makeId = ({ spaceId, id, currentLocale, defaultLocale, type }) => { : `${spaceId}___${id}___${normalizedType}___${currentLocale}` } -exports.makeId = makeId - const makeMakeId = ({ currentLocale, defaultLocale, createNodeId }) => (spaceId, id, type) => createNodeId(makeId({ spaceId, id, currentLocale, defaultLocale, type })) -exports.buildEntryList = ({ contentTypeItems, mergedSyncData }) => { +export const buildEntryList = ({ contentTypeItems, mergedSyncData }) => { // Create buckets for each type sys.id that we care about (we will always want an array for each, even if its empty) const map = new Map( contentTypeItems.map(contentType => [contentType.sys.id, []]) @@ -68,12 +64,10 @@ exports.buildEntryList = ({ contentTypeItems, mergedSyncData }) => { return contentTypeItems.map(contentType => map.get(contentType.sys.id)) } -exports.buildResolvableSet = ({ +export const buildResolvableSet = ({ entryList, existingNodes = [], assets = [], - locales, - defaultLocale, }) => { const resolvable = new Set() existingNodes.forEach(node => { @@ -95,12 +89,11 @@ exports.buildResolvableSet = ({ return resolvable } -exports.buildForeignReferenceMap = ({ +export const buildForeignReferenceMap = ({ contentTypeItems, entryList, resolvable, defaultLocale, - locales, space, useNameForId, }) => { @@ -227,11 +220,89 @@ function prepareJSONNode(id, node, key, content) { return JSONNode } -exports.createNodesForContentType = ({ +let numberOfContentSyncDebugLogs = 0 +const maxContentSyncDebugLogTimes = 50 + +/** + * This fn creates node manifests which are used for Gatsby Cloud Previews via the Content Sync API/feature. + * Content Sync routes a user from Contentful to a page created from the entry data they're interested in previewing. + */ +function contentfulCreateNodeManifest({ + pluginConfig, + syncToken, + entryItem, + entryNode, + space, + unstable_createNodeManifest, +}) { + const isPreview = pluginConfig.get(`host`) === `preview.contentful.com` + + const createNodeManifestIsSupported = + typeof unstable_createNodeManifest === `function` + + const cacheExists = !!syncToken + + const shouldCreateNodeManifest = + isPreview && + createNodeManifestIsSupported && + // and this is a delta update + (cacheExists || + // or this entry/node was updated in the last 2 days. + // we don't want older nodes because we only want to create + // node manifests for recently updated/created content. + (entryItem.sys.updatedAt && + Date.now() - new Date(entryItem.sys.updatedAt).getTime() <= + // milliseconds + 1000 * + // seconds + 60 * + // minutes + 60 * + // hours + (Number( + process.env.CONTENT_SYNC_CONTENTFUL_HOURS_SINCE_ENTRY_UPDATE + ) || 48))) + + const manifestId = `${space.sys.id}-${entryItem.sys.id}-${entryItem.sys.updatedAt}` + + if ( + process.env.CONTENTFUL_DEBUG_NODE_MANIFEST === `true` && + numberOfContentSyncDebugLogs <= maxContentSyncDebugLogTimes + ) { + numberOfContentSyncDebugLogs++ + + console.info( + JSON.stringify({ + cacheExists, + isPreview, + createNodeManifestIsSupported, + shouldCreateNodeManifest, + manifestId, + entryItemSysUpdatedAt: entryItem.sys.updatedAt, + }) + ) + } + + if (shouldCreateNodeManifest) { + console.info(`Contentful: Creating node manifest with id ${manifestId}`) + + unstable_createNodeManifest({ + manifestId, + node: entryNode, + }) + } else if (isPreview && !createNodeManifestIsSupported) { + console.warn( + `Contentful: Your version of Gatsby core doesn't support Content Sync (via the unstable_createNodeManifest action). Please upgrade to the latest version to use Content Sync in your site.` + ) + } +} + +export const createNodesForContentType = ({ contentTypeItem, restrictedNodeFields, conflictFieldPrefix, entries, + unstable_createNodeManifest, createNode, createNodeId, getNode, @@ -241,6 +312,7 @@ exports.createNodesForContentType = ({ locales, space, useNameForId, + syncToken, pluginConfig, }) => { // Establish identifier for content type @@ -426,6 +498,15 @@ exports.createNodesForContentType = ({ }, } + contentfulCreateNodeManifest({ + pluginConfig, + syncToken, + entryItem, + entryNode, + space, + unstable_createNodeManifest, + }) + // Revision applies to entries, assets, and content types if (entryItem.sys.revision) { entryNode.sys.revision = entryItem.sys.revision @@ -467,8 +548,7 @@ exports.createNodesForContentType = ({ textNodeId, entryNode, entryItemFieldKey, - entryItemFields[entryItemFieldKey], - createNodeId + entryItemFields[entryItemFieldKey] ) childrenNodes.push(textNode) @@ -486,6 +566,7 @@ exports.createNodesForContentType = ({ // Locate all Contentful Links within the rich text data const traverse = obj => { + // eslint-disable-next-line guard-for-in for (const k in obj) { const v = obj[k] if (v && v.sys && v.sys.type === `Link`) { @@ -535,8 +616,7 @@ exports.createNodesForContentType = ({ jsonNodeId, entryNode, entryItemFieldKey, - entryItemFields[entryItemFieldKey], - createNodeId + entryItemFields[entryItemFieldKey] ) childrenNodes.push(jsonNode) } @@ -566,9 +646,7 @@ exports.createNodesForContentType = ({ jsonNodeId, entryNode, entryItemFieldKey, - obj, - createNodeId, - i + obj ) childrenNodes.push(jsonNode) } @@ -633,7 +711,7 @@ exports.createNodesForContentType = ({ return createNodePromises } -exports.createAssetNodes = ({ +export const createAssetNodes = ({ assetItem, createNode, createNodeId, diff --git a/packages/gatsby-source-contentful/src/on-pre-bootstrap.js b/packages/gatsby-source-contentful/src/on-pre-bootstrap.js new file mode 100644 index 0000000000000..796bd4fbdaa44 --- /dev/null +++ b/packages/gatsby-source-contentful/src/on-pre-bootstrap.js @@ -0,0 +1,14 @@ +// @ts-check +import fs from "fs-extra" +import path from "path" + +export async function onPreBootstrap({ store }) { + // Ensure cache dir exists for downloadLocal + const program = store.getState().program + + const CACHE_DIR = path.resolve( + `${program.directory}/.cache/contentful/assets/` + ) + + await fs.ensureDir(CACHE_DIR) +} diff --git a/packages/gatsby-source-contentful/src/plugin-options.js b/packages/gatsby-source-contentful/src/plugin-options.js index 5fe9d96fa3453..397995090cd83 100644 --- a/packages/gatsby-source-contentful/src/plugin-options.js +++ b/packages/gatsby-source-contentful/src/plugin-options.js @@ -1,6 +1,6 @@ -const chalk = require(`chalk`) - -const _ = require(`lodash`) +// @ts-check +import chalk from "chalk" +import _ from "lodash" const DEFAULT_PAGE_LIMIT = 1000 @@ -9,7 +9,6 @@ const defaultOptions = { environment: `master`, downloadLocal: false, localeFilter: () => true, - forceFullSync: false, pageLimit: DEFAULT_PAGE_LIMIT, useNameForId: true, enableTags: false, diff --git a/packages/gatsby-source-contentful/src/report.js b/packages/gatsby-source-contentful/src/report.js index d597e6b7ac86f..d4511e9d2d360 100644 --- a/packages/gatsby-source-contentful/src/report.js +++ b/packages/gatsby-source-contentful/src/report.js @@ -1,6 +1,7 @@ +// @ts-check + export const CODES = { /* Fetch errors */ - LocalesMissing: `111001`, SelfSignedCertificate: `111002`, SyncError: `111003`, diff --git a/packages/gatsby-source-contentful/src/rich-text.js b/packages/gatsby-source-contentful/src/rich-text.js index 2ed4f1a27bc2d..bed7d4ca7b6fd 100644 --- a/packages/gatsby-source-contentful/src/rich-text.js +++ b/packages/gatsby-source-contentful/src/rich-text.js @@ -1,7 +1,8 @@ +// @ts-check import { documentToReactComponents } from "@contentful/rich-text-react-renderer" import resolveResponse from "contentful-resolve-response" -function renderRichText({ raw, references }, options = {}) { +export function renderRichText({ raw, references }, options = {}) { const richText = JSON.parse(raw) // If no references are given, there is no need to resolve them @@ -43,5 +44,3 @@ function renderRichText({ raw, references }, options = {}) { return documentToReactComponents(resolved[0].richText, options) } - -exports.renderRichText = renderRichText diff --git a/packages/gatsby-source-contentful/src/schemes.js b/packages/gatsby-source-contentful/src/schemes.js index 8ab0866f364bc..53e0402adfcc3 100644 --- a/packages/gatsby-source-contentful/src/schemes.js +++ b/packages/gatsby-source-contentful/src/schemes.js @@ -1,6 +1,7 @@ -const { GraphQLEnumType } = require(`gatsby/graphql`) +// @ts-check +import { GraphQLEnumType } from "gatsby/graphql" -const ImageFormatType = new GraphQLEnumType({ +export const ImageFormatType = new GraphQLEnumType({ name: `ContentfulImageFormat`, values: { NO_CHANGE: { value: `` }, @@ -11,7 +12,7 @@ const ImageFormatType = new GraphQLEnumType({ }, }) -const ImageLayoutType = new GraphQLEnumType({ +export const ImageLayoutType = new GraphQLEnumType({ name: `ContentfulImageLayout`, values: { FIXED: { value: `fixed` }, @@ -20,7 +21,7 @@ const ImageLayoutType = new GraphQLEnumType({ }, }) -const ImagePlaceholderType = new GraphQLEnumType({ +export const ImagePlaceholderType = new GraphQLEnumType({ name: `ContentfulImagePlaceholder`, values: { DOMINANT_COLOR: { value: `dominantColor` }, @@ -30,7 +31,7 @@ const ImagePlaceholderType = new GraphQLEnumType({ }, }) -const ImageResizingBehavior = new GraphQLEnumType({ +export const ImageResizingBehavior = new GraphQLEnumType({ name: `ImageResizingBehavior`, values: { NO_CHANGE: { @@ -60,7 +61,7 @@ const ImageResizingBehavior = new GraphQLEnumType({ }, }) -const ImageCropFocusType = new GraphQLEnumType({ +export const ImageCropFocusType = new GraphQLEnumType({ name: `ContentfulImageCropFocus`, values: { TOP: { value: `top` }, @@ -76,11 +77,3 @@ const ImageCropFocusType = new GraphQLEnumType({ CENTER: { value: `center` }, }, }) - -module.exports = { - ImageLayoutType, - ImagePlaceholderType, - ImageFormatType, - ImageResizingBehavior, - ImageCropFocusType, -} diff --git a/packages/gatsby-source-contentful/src/source-nodes.js b/packages/gatsby-source-contentful/src/source-nodes.js new file mode 100644 index 0000000000000..7cb6e7f79b1b8 --- /dev/null +++ b/packages/gatsby-source-contentful/src/source-nodes.js @@ -0,0 +1,491 @@ +// @ts-check +import { createClient } from "contentful" +import isOnline from "is-online" +import _ from "lodash" + +import { downloadContentfulAssets } from "./download-contentful-assets" +import { fetchContent } from "./fetch" +import { + buildEntryList, + buildForeignReferenceMap, + buildResolvableSet, + createAssetNodes, + createNodesForContentType, + makeId, +} from "./normalize" +import { createPluginConfig } from "./plugin-options" +import { CODES } from "./report" + +const conflictFieldPrefix = `contentful` + +// restrictedNodeFields from here https://www.gatsbyjs.org/docs/node-interface/ +const restrictedNodeFields = [ + `children`, + `contentful_id`, + `fields`, + `id`, + `internal`, + `parent`, +] + +/*** + * Localization algorithm + * + * 1. Make list of all resolvable IDs worrying just about the default ids not + * localized ids + * 2. Make mapping between ids, again not worrying about localization. + * 3. When creating entries and assets, make the most localized version + * possible for each localized node i.e. get the localized field if it exists + * or the fallback field or the default field. + */ + +export async function sourceNodes( + { + actions, + getNode, + getNodes, + getNodesByType, + createNodeId, + store, + cache, + getCache, + reporter, + parentSpan, + }, + pluginOptions +) { + const { createNode, touchNode, deleteNode, unstable_createNodeManifest } = + actions + const online = await isOnline() + + if ( + !online && + process.env.GATSBY_CONTENTFUL_OFFLINE === `true` && + process.env.NODE_ENV !== `production` + ) { + getNodes().forEach(node => { + if (node.internal.owner !== `gatsby-source-contentful`) { + return + } + touchNode(node) + if (node.localFile___NODE) { + // Prevent GraphQL type inference from crashing on this property + touchNode(getNode(node.localFile___NODE)) + } + }) + + return + } + + const pluginConfig = createPluginConfig(pluginOptions) + const sourceId = `${pluginConfig.get(`spaceId`)}-${pluginConfig.get( + `environment` + )}` + + const fetchActivity = reporter.activityTimer( + `Contentful: Fetch data (${sourceId})`, + { + parentSpan, + } + ) + + // If the user knows they are offline, serve them cached result + // For prod builds though always fail if we can't get the latest data + if ( + !online && + process.env.GATSBY_CONTENTFUL_OFFLINE === `true` && + process.env.NODE_ENV !== `production` + ) { + reporter.info(`Using Contentful Offline cache ⚠️`) + reporter.info( + `Cache may be invalidated if you edit package.json, gatsby-node.js or gatsby-config.js files` + ) + + return + } + if (process.env.GATSBY_CONTENTFUL_OFFLINE) { + reporter.info( + `Note: \`GATSBY_CONTENTFUL_OFFLINE\` was set but it either was not \`true\`, we _are_ online, or we are in production mode, so the flag is ignored.` + ) + } + + fetchActivity.start() + + const CACHE_SYNC_TOKEN = `contentful-sync-token-${sourceId}` + const CACHE_SYNC_DATA = `contentful-sync-data-${sourceId}` + const CACHE_CONTENT_TYPES = `contentful-content-types-${sourceId}` + + /* + * Subsequent calls of Contentfuls sync API return only changed data. + * + * In some cases, especially when using rich-text fields, there can be data + * missing from referenced entries. This breaks the reference matching. + * + * To workround this, we cache the initial sync data and merge it + * with all data from subsequent syncs. Afterwards the references get + * resolved via the Contentful JS SDK. + */ + const syncToken = + store.getState().status.plugins?.[`gatsby-source-contentful`]?.[ + CACHE_SYNC_TOKEN + ] + + // Actual fetch of data from Contentful + const { + currentSyncData, + tagItems, + defaultLocale, + locales: allLocales, + space, + } = await fetchContent({ syncToken, pluginConfig, reporter }) + + const contentTypeItems = await cache.get(CACHE_CONTENT_TYPES) + + const locales = allLocales.filter(pluginConfig.get(`localeFilter`)) + reporter.verbose( + `Default locale: ${defaultLocale}. All locales: ${allLocales + .map(({ code }) => code) + .join(`, `)}` + ) + if (allLocales.length !== locales.length) { + reporter.verbose( + `After plugin.options.localeFilter: ${locales + .map(({ code }) => code) + .join(`, `)}` + ) + } + if (locales.length === 0) { + reporter.panic({ + id: CODES.LocalesMissing, + context: { + sourceMessage: `Please check if your localeFilter is configured properly. Locales '${allLocales + .map(item => item.code) + .join(`,`)}' were found but were filtered down to none.`, + }, + }) + } + + // Create a map of up to date entries and assets + function mergeSyncData(previous, current, deletedEntities) { + const deleted = new Set(deletedEntities.map(e => e.sys.id)) + const entryMap = new Map() + previous.forEach(e => !deleted.has(e.sys.id) && entryMap.set(e.sys.id, e)) + current.forEach(e => !deleted.has(e.sys.id) && entryMap.set(e.sys.id, e)) + return [...entryMap.values()] + } + + let previousSyncData = { + assets: [], + entries: [], + } + const cachedData = await cache.get(CACHE_SYNC_DATA) + + if (cachedData) { + previousSyncData = cachedData + } + + const mergedSyncData = { + entries: mergeSyncData( + previousSyncData.entries, + currentSyncData.entries, + currentSyncData.deletedEntries + ), + assets: mergeSyncData( + previousSyncData.assets, + currentSyncData.assets, + currentSyncData.deletedAssets + ), + } + + // @todo based on the sys metadata we should be able to differentiate new and updated entities + reporter.info( + `Contentful: ${currentSyncData.entries.length} new/updated entries` + ) + reporter.info( + `Contentful: ${currentSyncData.deletedEntries.length} deleted entries` + ) + reporter.info(`Contentful: ${previousSyncData.entries.length} cached entries`) + reporter.info( + `Contentful: ${currentSyncData.assets.length} new/updated assets` + ) + reporter.info(`Contentful: ${previousSyncData.assets.length} cached assets`) + reporter.info( + `Contentful: ${currentSyncData.deletedAssets.length} deleted assets` + ) + + // Update syncToken + const nextSyncToken = currentSyncData.nextSyncToken + + await cache.set(CACHE_SYNC_DATA, mergedSyncData) + actions.setPluginStatus({ + [CACHE_SYNC_TOKEN]: nextSyncToken, + }) + + fetchActivity.end() + + // Process data fetch results and turn them into GraphQL entities + const processingActivity = reporter.activityTimer( + `Contentful: Process data (${sourceId})`, + { + parentSpan, + } + ) + processingActivity.start() + + // Store a raw and unresolved copy of the data for caching + const mergedSyncDataRaw = _.cloneDeep(mergedSyncData) + + // Use the JS-SDK to resolve the entries and assets + const res = await createClient({ + space: `none`, + accessToken: `fake-access-token`, + }).parseEntries({ + items: mergedSyncData.entries, + includes: { + assets: mergedSyncData.assets, + entries: mergedSyncData.entries, + }, + }) + + mergedSyncData.entries = res.items + + // Inject raw API output to rich text fields + const richTextFieldMap = new Map() + contentTypeItems.forEach(contentType => { + richTextFieldMap.set( + contentType.sys.id, + contentType.fields + .filter(field => field.type === `RichText`) + .map(field => field.id) + ) + }) + + const rawEntries = new Map() + mergedSyncDataRaw.entries.forEach(rawEntry => + rawEntries.set(rawEntry.sys.id, rawEntry) + ) + + mergedSyncData.entries.forEach(entry => { + const contentTypeId = entry.sys.contentType.sys.id + const richTextFieldIds = richTextFieldMap.get(contentTypeId) + if (richTextFieldIds) { + richTextFieldIds.forEach(richTextFieldId => { + if (!entry.fields[richTextFieldId]) { + return + } + entry.fields[richTextFieldId] = rawEntries.get(entry.sys.id).fields[ + richTextFieldId + ] + }) + } + }) + + const { assets } = mergedSyncData + + const entryList = buildEntryList({ + mergedSyncData, + contentTypeItems, + }) + + const existingNodes = getNodes().filter( + n => + n.internal.owner === `gatsby-source-contentful` && + n.internal.type !== `ContentfulTag` + ) + existingNodes.forEach(n => touchNode(n)) + + reporter.verbose(`Building Contentful reference map`) + + // Create map of resolvable ids so we can check links against them while creating + // links. + const resolvable = buildResolvableSet({ + existingNodes, + entryList, + assets, + }) + + // Build foreign reference map before starting to insert any nodes + const foreignReferenceMap = buildForeignReferenceMap({ + contentTypeItems, + entryList, + resolvable, + defaultLocale, + space, + useNameForId: pluginConfig.get(`useNameForId`), + }) + + reporter.verbose(`Resolving Contentful references`) + + const newOrUpdatedEntries = new Set() + entryList.forEach(entries => { + entries.forEach(entry => { + newOrUpdatedEntries.add(`${entry.sys.id}___${entry.sys.type}`) + }) + }) + + // Update existing entry nodes that weren't updated but that need reverse + // links added. + existingNodes + .filter(n => newOrUpdatedEntries.has(`${n.id}___${n.sys.type}`)) + .forEach(n => { + if (foreignReferenceMap[`${n.id}___${n.sys.type}`]) { + foreignReferenceMap[`${n.id}___${n.sys.type}`].forEach( + foreignReference => { + // Add reverse links + if (n[foreignReference.name]) { + n[foreignReference.name].push(foreignReference.id) + // It might already be there so we'll uniquify after pushing. + n[foreignReference.name] = _.uniq(n[foreignReference.name]) + } else { + // If is one foreign reference, there can always be many. + // Best to be safe and put it in an array to start with. + n[foreignReference.name] = [foreignReference.id] + } + } + ) + } + }) + + function deleteContentfulNode(node) { + const normalizedType = node.sys.type.startsWith(`Deleted`) + ? node.sys.type.substring(`Deleted`.length) + : node.sys.type + + const localizedNodes = locales + .map(locale => { + const nodeId = createNodeId( + makeId({ + spaceId: space.sys.id, + id: node.sys.id, + type: normalizedType, + currentLocale: locale.code, + defaultLocale, + }) + ) + return getNode(nodeId) + }) + .filter(node => node) + + localizedNodes.forEach(node => { + // touchNode first, to populate typeOwners & avoid erroring + touchNode(node) + deleteNode(node) + }) + } + + const { deletedEntries, deletedAssets } = currentSyncData + + if (deletedEntries.length || deletedAssets.length) { + const deletionActivity = reporter.activityTimer( + `Contentful: Deleting ${deletedEntries.length} nodes and ${deletedAssets.length} assets (${sourceId})`, + { + parentSpan, + } + ) + deletionActivity.start() + deletedEntries.forEach(deleteContentfulNode) + deletedAssets.forEach(deleteContentfulNode) + deletionActivity.end() + } + + const creationActivity = reporter.activityTimer( + `Contentful: Create nodes (${sourceId})`, + { + parentSpan, + } + ) + creationActivity.start() + + for (let i = 0; i < contentTypeItems.length; i++) { + const contentTypeItem = contentTypeItems[i] + + if (entryList[i].length) { + reporter.info( + `Creating ${entryList[i].length} Contentful ${ + pluginConfig.get(`useNameForId`) + ? contentTypeItem.name + : contentTypeItem.sys.id + } nodes` + ) + } + + // A contentType can hold lots of entries which create nodes + // We wait until all nodes are created and processed until we handle the next one + // TODO add batching in gatsby-core + await Promise.all( + createNodesForContentType({ + contentTypeItem, + restrictedNodeFields, + conflictFieldPrefix, + entries: entryList[i], + createNode, + createNodeId, + getNode, + resolvable, + foreignReferenceMap, + defaultLocale, + locales, + space, + useNameForId: pluginConfig.get(`useNameForId`), + pluginConfig, + syncToken, + unstable_createNodeManifest, + }) + ) + } + + if (assets.length) { + reporter.info(`Creating ${assets.length} Contentful asset nodes`) + } + + for (let i = 0; i < assets.length; i++) { + // We wait for each asset to be process until handling the next one. + await Promise.all( + createAssetNodes({ + assetItem: assets[i], + createNode, + createNodeId, + defaultLocale, + locales, + space, + }) + ) + } + + // Create tags entities + if (tagItems.length) { + reporter.info(`Creating ${tagItems.length} Contentful Tag nodes`) + + for (const tag of tagItems) { + await createNode({ + id: createNodeId(`ContentfulTag__${space.sys.id}__${tag.sys.id}`), + name: tag.name, + contentful_id: tag.sys.id, + internal: { + type: `ContentfulTag`, + contentDigest: tag.sys.updatedAt, + }, + }) + } + } + + creationActivity.end() + + // @todo add own activity! + + if (pluginConfig.get(`downloadLocal`)) { + reporter.info(`Download Contentful asset files`) + + await downloadContentfulAssets({ + actions, + createNodeId, + store, + cache, + getCache, + getNode, + getNodesByType, + reporter, + assetDownloadWorkers: pluginConfig.get(`assetDownloadWorkers`), + }) + } +} diff --git a/packages/gatsby-source-drupal/CHANGELOG.md b/packages/gatsby-source-drupal/CHANGELOG.md index d4c976cbc5fb6..1040359b7cb01 100644 --- a/packages/gatsby-source-drupal/CHANGELOG.md +++ b/packages/gatsby-source-drupal/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [4.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-drupal@4.14.1/packages/gatsby-source-drupal) (2021-10-06) + +#### Features + +- port hot-fixes for Drupal/Gatsby customer to package fixes [#33419](https://github.com/gatsbyjs/gatsby/issues/33419) fixes [#33435](https://github.com/gatsbyjs/gatsby/issues/33435) ([d0a152f](https://github.com/gatsbyjs/gatsby/commit/d0a152ffc43b1a1eb58221f8f13baa3e9464aa69)) + +#### Bug Fixes + +- Add tests for meta.count support & fix bug with i18n fix [#33423](https://github.com/gatsbyjs/gatsby/issues/33423) fix [#33440](https://github.com/gatsbyjs/gatsby/issues/33440) ([aae86b5](https://github.com/gatsbyjs/gatsby/commit/aae86b5a44754b714823691b6f74053bde822b80)) + ## [4.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-drupal@4.14.0/packages/gatsby-source-drupal) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-source-drupal/package.json b/packages/gatsby-source-drupal/package.json index 4bef9d653309c..d87d5178c410a 100644 --- a/packages/gatsby-source-drupal/package.json +++ b/packages/gatsby-source-drupal/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-drupal", "description": "Gatsby source plugin for building websites using the Drupal CMS as a data source", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,18 +13,18 @@ "bluebird": "^3.7.2", "body-parser": "^1.19.0", "fastq": "^1.11.1", - "gatsby-source-filesystem": "^4.0.0-zz-next.1", + "gatsby-source-filesystem": "^4.0.0-zz-next.3", "got": "^11.8.2", "http2-wrapper": "^2.0.5", "lodash": "^4.17.21", - "opentracing": "^0.14.4", + "opentracing": "^0.14.5", "tiny-async-pool": "^1.2.0", "url-join": "^4.0.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "engines": { diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/1593545806.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/1593545806.json index b72c91cc26e0e..5ec0de662b78f 100644 --- a/packages/gatsby-source-drupal/src/__tests__/fixtures/1593545806.json +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/1593545806.json @@ -16,6 +16,57 @@ "id": "does-not-exist", "type": "file--file" }, + { + "data": { + "type": "paragraph--image_gallery_reusable", + "id": "paragraph-image-1", + "links": { + "self": { + "href": "https://sc-cms-dev.psu.edu/jsonapi/paragraph/image_gallery_reusable/6cf00353-86f9-4a9d-b85a-35f3b00d6937" + } + }, + "relationships": { + "field_gallery": { + "data": { + "type": "node--article", + "id": "article-1" + } + } + } + } + }, + { + "jsonapi": { + "version": "1.0", + "meta": { + "links": { + "self": { + "href": "http://jsonapi.org/format/1.0/" + } + } + } + }, + "data": { + "type": "node--article", + "id": "article-9", + "attributes": { + "id": 24, + "uuid": "article-9", + "title": "Article #9 - new", + "body": "Aliquam non varius libero, sit amet consequat ex. Aenean porta turpis quis vulputate blandit. Suspendisse in porta erat. Sed sit amet scelerisque turpis, at rutrum mauris. Sed tempor eleifend lobortis. Proin maximus, massa sed dignissim sollicitudin, quam risus mattis justo, sit amet aliquam odio ligula quis urna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut mollis leo nisi, at interdum urna fermentum ut. Fusce id suscipit neque, eu fermentum lacus. Donec egestas laoreet felis ac luctus. Vestibulum molestie mattis ante, a vulputate nunc ullamcorper at. Ut hendrerit ipsum eget gravida ultricies." + }, + "relationships": { + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-2" + } + ] + } + } + } + }, { "jsonapi": { "version": "1.0", diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count-i18n.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count-i18n.json new file mode 100644 index 0000000000000..1aacc81039fb9 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count-i18n.json @@ -0,0 +1,40 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-1", + "attributes": { + "id": 21, + "uuid": "article-1", + "title": "Article #1", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan nisl nulla, a commodo neque luctus viverra. Praesent sed elit nisl. In sagittis, velit lacinia varius cursus, lectus urna aliquet tortor, in convallis lacus justo ut enim. Nullam tempus diam non mattis pulvinar. Fusce viverra vitae ex eget efficitur. Nunc sed ligula magna. Fusce ligula diam, lobortis et neque vel, finibus laoreet augue. Duis tristique lacinia odio, tincidunt lacinia nunc cursus a. Vivamus nec mauris sed lectus commodo bibendum vel a felis.", + "langcode": "i18n-test" + }, + "relationships": { + "field_main_image": { + "data": null + }, + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-1" + }, + { + "type": "taxonomy_term--tags", + "id": "tag-2" + } + ] + } + } + } + ], + "links": { + "next": { + "href": "http://fixture/jsonapi-meta.count-i18n/node/articlemeta.count-i18n?page[limit]=3&page[offset]=1" + } + }, + "meta": { + "count": 4 + } +} diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count.json new file mode 100644 index 0000000000000..6bb864eab23e5 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/article-meta.count.json @@ -0,0 +1,39 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-1", + "attributes": { + "id": 21, + "uuid": "article-1", + "title": "Article #1", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan nisl nulla, a commodo neque luctus viverra. Praesent sed elit nisl. In sagittis, velit lacinia varius cursus, lectus urna aliquet tortor, in convallis lacus justo ut enim. Nullam tempus diam non mattis pulvinar. Fusce viverra vitae ex eget efficitur. Nunc sed ligula magna. Fusce ligula diam, lobortis et neque vel, finibus laoreet augue. Duis tristique lacinia odio, tincidunt lacinia nunc cursus a. Vivamus nec mauris sed lectus commodo bibendum vel a felis." + }, + "relationships": { + "field_main_image": { + "data": null + }, + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-1" + }, + { + "type": "taxonomy_term--tags", + "id": "tag-2" + } + ] + } + } + } + ], + "links": { + "next": { + "href": "http://fixture/jsonapi/node/articlemeta.count?page[limit]=3&page[offset]=1" + } + }, + "meta": { + "count": 7 + } +} diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json new file mode 100644 index 0000000000000..cfc4043c8d93e --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json @@ -0,0 +1,32 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-2", + "attributes": { + "id": 22, + "uuid": "article-2", + "title": "Article #2", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan nisl nulla, a commodo neque luctus viverra. Praesent sed elit nisl. In sagittis, velit lacinia varius cursus, lectus urna aliquet tortor, in convallis lacus justo ut enim. Nullam tempus diam non mattis pulvinar. Fusce viverra vitae ex eget efficitur. Nunc sed ligula magna. Fusce ligula diam, lobortis et neque vel, finibus laoreet augue. Duis tristique lacinia odio, tincidunt lacinia nunc cursus a. Vivamus nec mauris sed lectus commodo bibendum vel a felis." + }, + "relationships": { + "field_main_image": { + "data": null + }, + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-1" + }, + { + "type": "taxon,omy_term--tags", + "id": "tag-2" + } + ] + } + } + } + ] +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=1&page%5Boffset%5D=2.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=1&page%5Boffset%5D=2.json new file mode 100644 index 0000000000000..194ee6fafa068 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=1&page%5Boffset%5D=2.json @@ -0,0 +1,52 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-3", + "attributes": { + "id": 23, + "uuid": "article-3", + "title": "Article #3", + "body": "Proin pulvinar hendrerit magna nec maximus. Donec rhoncus libero ac nisi porttitor pulvinar. Quisque semper ultricies nulla sit amet vestibulum. Ut vel libero erat. Ut ultrices eleifend scelerisque. Nam non massa sit amet magna molestie tempus vel non neque. Praesent ac est congue, euismod mi ut, tristique mi. Etiam dapibus feugiat lectus, vel condimentum nisl maximus et. Praesent et placerat magna. Sed nec risus non ipsum venenatis placerat. Vestibulum vitae felis eget nunc mattis congue. Morbi volutpat odio purus. Donec placerat massa sed neque molestie, sed finibus nibh scelerisque. In faucibus ante tortor, in efficitur lectus feugiat vitae. Aliquam sodales mollis consectetur." + }, + "relationships": { + "field_main_image": { + "data": { + "type": "file--file", + "id": "file-1" + } + }, + "field_secondary_image": { + "data": [ + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_secondary_multiple_image": { + "data": [ + { + "type": "file--file", + "id": "file-3" + }, + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_tertiary_image": { + "data": { + "type": "file--file", + "id": "file-4" + } + }, + "field_tags": { + "data": null + } + } + } + ] +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=3.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=3.json new file mode 100644 index 0000000000000..341426c9c08f2 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=3.json @@ -0,0 +1,52 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-2", + "attributes": { + "id": 22, + "uuid": "article-2", + "title": "Article #2", + "body": "Proin pulvinar hendrerit magna nec maximus. Donec rhoncus libero ac nisi porttitor pulvinar. Quisque semper ultricies nulla sit amet vestibulum. Ut vel libero erat. Ut ultrices eleifend scelerisque. Nam non massa sit amet magna molestie tempus vel non neque. Praesent ac est congue, euismod mi ut, tristique mi. Etiam dapibus feugiat lectus, vel condimentum nisl maximus et. Praesent et placerat magna. Sed nec risus non ipsum venenatis placerat. Vestibulum vitae felis eget nunc mattis congue. Morbi volutpat odio purus. Donec placerat massa sed neque molestie, sed finibus nibh scelerisque. In faucibus ante tortor, in efficitur lectus feugiat vitae. Aliquam sodales mollis consectetur." + }, + "relationships": { + "field_main_image": { + "data": { + "type": "file--file", + "id": "file-1" + } + }, + "field_secondary_image": { + "data": [ + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_secondary_multiple_image": { + "data": [ + { + "type": "file--file", + "id": "file-3" + }, + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_tertiary_image": { + "data": { + "type": "file--file", + "id": "file-4" + } + }, + "field_tags": { + "data": null + } + } + } + ] +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=6.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=6.json new file mode 100644 index 0000000000000..c25b5f6805fdf --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/articlemeta.count___page%5Blimit%5D=3&page%5Boffset%5D=6.json @@ -0,0 +1,60 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-4", + "attributes": { + "id": 24, + "uuid": "article-4", + "title": "Article #4", + "body": "Proin pulvinar hendrerit magna nec maximus. Donec rhoncus libero ac nisi porttitor pulvinar. Quisque semper ultricies nulla sit amet vestibulum. Ut vel libero erat. Ut ultrices eleifend scelerisque. Nam non massa sit amet magna molestie tempus vel non neque. Praesent ac est congue, euismod mi ut, tristique mi. Etiam dapibus feugiat lectus, vel condimentum nisl maximus et. Praesent et placerat magna. Sed nec risus non ipsum venenatis placerat. Vestibulum vitae felis eget nunc mattis congue. Morbi volutpat odio purus. Donec placerat massa sed neque molestie, sed finibus nibh scelerisque. In faucibus ante tortor, in efficitur lectus feugiat vitae. Aliquam sodales mollis consectetur." + }, + "relationships": { + "field_main_image": { + "data": { + "type": "file--file", + "id": "file-1" + } + }, + "field_secondary_image": { + "data": [ + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_secondary_multiple_image": { + "data": [ + { + "type": "file--file", + "id": "file-3" + }, + { + "type": "file--file", + "id": "file-4" + } + ] + }, + "field_tertiary_image": { + "data": { + "type": "file--file", + "id": "file-4" + } + }, + "field_tags": { + "data": null + } + } + } + ], + "links": { + "next": { + "href": "http://fixture/jsonapi/node/articlemeta.count?page[limit]=1&page[offset]=1" + } + }, + "meta": { + "count": 3 + } +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-article-meta.count-i18n.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-article-meta.count-i18n.json new file mode 100644 index 0000000000000..865026ffee1f7 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-article-meta.count-i18n.json @@ -0,0 +1,41 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-1-i18n", + "attributes": { + "id": 31, + "uuid": "article-1-i18n", + "title": "Article #1 i18n", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan nisl nulla, a commodo neque luctus viverra. Praesent sed elit nisl. In sagittis, velit lacinia varius cursus, lectus urna aliquet tortor, in convallis lacus justo ut enim. Nullam tempus diam non mattis pulvinar. Fusce viverra vitae ex eget efficitur. Nunc sed ligula magna. Fusce ligula diam, lobortis et neque vel, finibus laoreet augue. Duis tristique lacinia odio, tincidunt lacinia nunc cursus a. Vivamus nec mauris sed lectus commodo bibendum vel a felis.", + "langcode": "i18n-test" + }, + "relationships": { + "field_main_image": { + "data": null + }, + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-1" + }, + { + "type": "taxonomy_term--tags", + "id": "tag-2" + } + ] + } + } + } + ], + "links": { + "next": { + "href": "http://fixture/jsonapi-meta.count-i18n/node/i18n-test-articlemeta.count-i18n?page[limit]=3&page[offset]=1" + } + }, + "meta": { + "count": 4 + } +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-i18n-test-articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-i18n-test-articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json new file mode 100644 index 0000000000000..472eb81c227bc --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/i18n-test-i18n-test-articlemeta.count-i18n___page%5Blimit%5D=3&page%5Boffset%5D=3.json @@ -0,0 +1,32 @@ +{ + "data": [ + { + "type": "node--article", + "id": "article-2-18n", + "attributes": { + "id": 32, + "uuid": "article-2-i18n", + "title": "Article #2 i18n", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan nisl nulla, a commodo neque luctus viverra. Praesent sed elit nisl. In sagittis, velit lacinia varius cursus, lectus urna aliquet tortor, in convallis lacus justo ut enim. Nullam tempus diam non mattis pulvinar. Fusce viverra vitae ex eget efficitur. Nunc sed ligula magna. Fusce ligula diam, lobortis et neque vel, finibus laoreet augue. Duis tristique lacinia odio, tincidunt lacinia nunc cursus a. Vivamus nec mauris sed lectus commodo bibendum vel a felis." + }, + "relationships": { + "field_main_image": { + "data": null + }, + "field_tags": { + "data": [ + { + "type": "taxonomy_term--tags", + "id": "tag-1" + }, + { + "type": "taxon,omy_term--tags", + "id": "tag-2" + } + ] + } + } + } + ] +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/image-gallary.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/image-gallary.json new file mode 100644 index 0000000000000..eb976a30a9ba8 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/image-gallary.json @@ -0,0 +1,30 @@ +{ + "jsonapi": { + "version": "1.0", + "meta": { + "links": { + "self": { + "href": "http:\/\/jsonapi.org\/format\/1.0\/" + } + } + } + }, + "data": [ + { + "type": "paragraph--image_gallery_reusable", + "id": "paragraph-image-1", + "links": { + "self": { + "href": "https://sc-cms-dev.psu.edu/jsonapi/paragraph/image_gallery_reusable/6cf00353-86f9-4a9d-b85a-35f3b00d6937" + } + }, + "relationships": { + "field_gallery": { + "data": { + "type": "node--article", + "id": "article-2" + } + } + } + } + ]} diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count-i18n.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count-i18n.json new file mode 100644 index 0000000000000..310566bb76ce1 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count-i18n.json @@ -0,0 +1,14 @@ +{ + "data": [], + "links": { + "self": "http://fixture/jsonapi", + "node--article": { + "href": "http://fixture/jsonapi-meta.count-i18n/node/article-meta.count-i18n" + }, + "describedby": { + "href":"http://fixture/jsonapi/schema" + } + } +} + + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count.json new file mode 100644 index 0000000000000..8f52303cdb900 --- /dev/null +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi-meta.count.json @@ -0,0 +1,11 @@ +{ + "data": [], + "links": { + "self": "http://fixture/jsonapi", + "node--article": "http://fixture/jsonapi/node/article-meta.count", + "describedby": { + "href":"http://fixture/jsonapi/schema" + } + } +} + diff --git a/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi.json b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi.json index ef8d1188af198..0b87f74ee74d8 100644 --- a/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi.json +++ b/packages/gatsby-source-drupal/src/__tests__/fixtures/jsonapi.json @@ -5,6 +5,7 @@ "file--file": "http://fixture/jsonapi/file/file", "node--article": "http://fixture/jsonapi/node/article", "paragraph--text": "http://fixture/jsonapi/paragraph/text", + "paragraph--image": "http://fixture/jsonapi/paragraph/image-gallary", "taxonomy_term--tags": { "href": "http://fixture/jsonapi/taxonomy_term/tags" }, diff --git a/packages/gatsby-source-drupal/src/__tests__/index.js b/packages/gatsby-source-drupal/src/__tests__/index.js index cb7237def7fb0..a06e84cf1f3dc 100644 --- a/packages/gatsby-source-drupal/src/__tests__/index.js +++ b/packages/gatsby-source-drupal/src/__tests__/index.js @@ -1,8 +1,12 @@ jest.mock(`got`, () => jest.fn(path => { - const last = path.split(`/`).pop() + let last = `` + if (path.includes(`i18n-test`)) { + last = `i18n-test-` + } + last += path.split(`/`).pop() try { - return { body: require(`./fixtures/${last}.json`) } + return { body: require(`./fixtures/${last}.json`.replace(`?`, `___`)) } } catch (e) { console.log(`Error`, e) return null @@ -21,7 +25,7 @@ const downloadFileSpy = jest.spyOn(normalize, `downloadFile`) const { createRemoteFileNode } = require(`gatsby-source-filesystem`) -const { sourceNodes } = require(`../gatsby-node`) +const { sourceNodes, onPreBootstrap } = require(`../gatsby-node`) const { handleWebhookUpdate } = require(`../utils`) describe(`gatsby-source-drupal`, () => { @@ -48,6 +52,7 @@ describe(`gatsby-source-drupal`, () => { } const reporter = { info: jest.fn(), + warn: jest.fn(), verbose: jest.fn(), activityTimer: jest.fn(() => activity), log: jest.fn(), @@ -125,6 +130,10 @@ describe(`gatsby-source-drupal`, () => { expect( nodes[createNodeId(`und.article-3`)].relationships.field_main_image___NODE ).toEqual(createNodeId(`und.file-1`)) + + expect(nodes[createNodeId(`und.paragraph-image-1`)].relationships).toEqual({ + field_gallery___NODE: createNodeId(`und.article-2`), + }) }) it(`Handles 1:N relationship`, () => { @@ -425,6 +434,42 @@ describe(`gatsby-source-drupal`, () => { ) }) + describe(`supports JSON:API extras meta.count to parallelize fetches`, () => { + it(`for non-translated content`, async () => { + // Reset nodes and test includes relationships. + Object.keys(nodes).forEach(key => delete nodes[key]) + const apiBase = `jsonapi-meta.count` + await sourceNodes(args, { + baseUrl, + apiBase, + }) + expect(Object.keys(nodes).length).toEqual(3) + }) + + it(`for translated content`, async () => { + // Reset nodes and test includes relationships. + Object.keys(nodes).forEach(key => delete nodes[key]) + const apiBase = `jsonapi-meta.count-i18n` + const options = { + baseUrl, + apiBase, + languageConfig: { + defaultLanguage: `en_US`, + enabledLanguages: [`en_US`, `i18n-test`], + translatableEntities: [`node--article`], + nonTranslatableEntities: [], + }, + } + // Call onPreBootstrap to set options + await onPreBootstrap(args, options) + await sourceNodes(args, options) + expect(Object.keys(nodes).length).toEqual(4) + expect( + Object.values(nodes).filter(n => n.langcode === `i18n-test`).length + ).toEqual(2) + }) + }) + describe(`Fastbuilds sync`, () => { describe(`Before sync with expired timestamp`, () => { beforeAll(async () => { @@ -432,7 +477,9 @@ describe(`gatsby-source-drupal`, () => { Object.keys(nodes).forEach(key => delete nodes[key]) const fastBuilds = true - await sourceNodes(args, { baseUrl, fastBuilds }) + const options = { baseUrl, fastBuilds } + await onPreBootstrap(args, options) + await sourceNodes(args, options) }) it(`Attributes`, () => { @@ -493,6 +540,11 @@ describe(`gatsby-source-drupal`, () => { expect(nodes[createNodeId(`und.article-3`)].relationships).toEqual({ field_tags___NODE: [createNodeId(`und.tag-2`)], }) + expect( + nodes[createNodeId(`und.paragraph-image-1`)].relationships + ).toEqual({ + field_gallery___NODE: createNodeId(`und.article-1`), + }) expect( nodes[createNodeId(`und.article-2`)].relationships .field_secondary_image___NODE @@ -522,6 +574,10 @@ describe(`gatsby-source-drupal`, () => { expect( nodes[createNodeId(`und.tag-2`)].relationships[`node__article___NODE`] ).toContain(createNodeId(`und.article-3`)) + // Created a new node article-9 with reference to tag-2 + expect( + nodes[createNodeId(`und.tag-2`)].relationships[`node__article___NODE`] + ).toContain(createNodeId(`und.article-9`)) }) }) }) @@ -593,20 +649,17 @@ describe(`gatsby-source-drupal`, () => { it(`during refresh webhook handling`, async () => { expect.assertions(5) - try { - await sourceNodes( - { - ...args, - webhookBody: { - malformattedPayload: true, - }, + await sourceNodes( + { + ...args, + webhookBody: { + malformattedPayload: true, }, - { baseUrl } - ) - } catch (e) { - expect(e).toBeTruthy() - } + }, + { baseUrl } + ) + expect(reporter.warn).toHaveBeenCalledTimes(1) expect(reporter.activityTimer).toHaveBeenCalledTimes(1) expect(reporter.activityTimer).toHaveBeenNthCalledWith( 1, diff --git a/packages/gatsby-source-drupal/src/gatsby-node.js b/packages/gatsby-source-drupal/src/gatsby-node.js index 9db0caefe4da5..7ca4bdb25a0ac 100644 --- a/packages/gatsby-source-drupal/src/gatsby-node.js +++ b/packages/gatsby-source-drupal/src/gatsby-node.js @@ -67,12 +67,12 @@ async function worker([url, options]) { ...options, }) - httpSpan.setTag(SemanticAttributes.HTTP_STATUS_CODE, response.statusCode) + httpSpan.setTag(SemanticAttributes.HTTP_STATUS_CODE, response?.statusCode) httpSpan.setTag(SemanticAttributes.HTTP_METHOD, `GET`) - httpSpan.setTag(SemanticAttributes.NET_PEER_IP, response.ip) + httpSpan.setTag(SemanticAttributes.NET_PEER_IP, response?.ip) httpSpan.setTag( SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH, - response.rawBody?.length + response?.rawBody?.length ) httpSpan.finish() @@ -176,9 +176,7 @@ exports.sourceNodes = async ( reporter.warn( `The webhook body was malformed -${JSON.stringify(webhookBody, null, 4)} - - ` +${JSON.stringify(webhookBody, null, 4)}` ) changesActivity.end() @@ -245,127 +243,137 @@ ${JSON.stringify(webhookBody, null, 4)} fastBuildsSpan.setTag(`sourceNodes.fetch.type`, `delta`) const lastFetched = - store.getState().status.plugins?.[`gatsby-source-drupal`]?.lastFetched ?? - 0 + store.getState().status.plugins?.[`gatsby-source-drupal`]?.lastFetched reporter.verbose( `[gatsby-source-drupal]: value of lastFetched for fastbuilds "${lastFetched}"` ) - const drupalFetchIncrementalActivity = reporter.activityTimer( - `Fetch incremental changes from Drupal`, - { parentSpan: fastBuildsSpan } - ) let requireFullRebuild = false - drupalFetchIncrementalActivity.start() + // lastFetched isn't set so do a full rebuild. + if (!lastFetched) { + setPluginStatus({ lastFetched: new Date().getTime() }) + requireFullRebuild = true + } else { + const drupalFetchIncrementalActivity = reporter.activityTimer( + `Fetch incremental changes from Drupal`, + { parentSpan: fastBuildsSpan } + ) - try { - // Hit fastbuilds endpoint with the lastFetched date. - const res = await requestQueue.push([ - urlJoin(baseUrl, `gatsby-fastbuilds/sync/`, lastFetched.toString()), - { - username: basicAuth.username, - password: basicAuth.password, - headers, - searchParams: params, - responseType: `json`, - parentSpan: fastBuildsSpan, - }, - ]) - - // Fastbuilds returns a -1 if: - // - the timestamp has expired - // - if old fastbuild logs were purged - // - it's been a really long time since you synced so you just do a full fetch. - if (res.body.status === -1) { - // The incremental data is expired or this is the first fetch. - reporter.info(`Unable to pull incremental data changes from Drupal`) - setPluginStatus({ lastFetched: res.body.timestamp }) - requireFullRebuild = true - } else { - const touchNodesSpan = tracer.startSpan(`sourceNodes.touchNodes`, { - childOf: fastBuildsSpan, - }) - touchNodesSpan.setTag(`plugin`, `gatsby-source-drupal`) - - // Touch nodes so they are not garbage collected by Gatsby. - let touchCount = 0 - getNodes().forEach(node => { - if (node.internal.owner === `gatsby-source-drupal`) { - touchCount += 1 - touchNode(node) + drupalFetchIncrementalActivity.start() + + try { + // Hit fastbuilds endpoint with the lastFetched date. + const res = await requestQueue.push([ + urlJoin(baseUrl, `gatsby-fastbuilds/sync/`, lastFetched.toString()), + { + username: basicAuth.username, + password: basicAuth.password, + headers, + searchParams: params, + responseType: `json`, + parentSpan: fastBuildsSpan, + }, + ]) + + // Fastbuilds returns a -1 if: + // - the timestamp has expired + // - if old fastbuild logs were purged + // - it's been a really long time since you synced so you just do a full fetch. + if (res.body.status === -1) { + // The incremental data is expired or this is the first fetch. + reporter.info(`Unable to pull incremental data changes from Drupal`) + setPluginStatus({ lastFetched: res.body.timestamp }) + requireFullRebuild = true + } else { + // Touch nodes so they are not garbage collected by Gatsby. + if (initialSourcing) { + const touchNodesSpan = tracer.startSpan(`sourceNodes.touchNodes`, { + childOf: fastBuildsSpan, + }) + touchNodesSpan.setTag(`plugin`, `gatsby-source-drupal`) + let touchCount = 0 + getNodes().forEach(node => { + if (node.internal.owner === `gatsby-source-drupal`) { + touchCount += 1 + touchNode(node) + } + }) + touchNodesSpan.setTag(`sourceNodes.touchNodes.count`, touchCount) + touchNodesSpan.finish() } - }) - touchNodesSpan.setTag(`sourceNodes.touchNodes.count`, touchCount) - touchNodesSpan.finish() - const createNodesSpan = tracer.startSpan(`sourceNodes.createNodes`, { - childOf: parentSpan, - }) - createNodesSpan.setTag(`plugin`, `gatsby-source-drupal`) - createNodesSpan.setTag(`sourceNodes.fetch.type`, `delta`) - createNodesSpan.setTag( - `sourceNodes.createNodes.count`, - res.body.entities?.length - ) + const createNodesSpan = tracer.startSpan(`sourceNodes.createNodes`, { + childOf: parentSpan, + }) + createNodesSpan.setTag(`plugin`, `gatsby-source-drupal`) + createNodesSpan.setTag(`sourceNodes.fetch.type`, `delta`) + createNodesSpan.setTag( + `sourceNodes.createNodes.count`, + res.body.entities?.length + ) - // Process sync data from Drupal. - const nodesToSync = res.body.entities - for (const nodeSyncData of nodesToSync) { - if (nodeSyncData.action === `delete`) { - handleDeletedNode({ - actions, - getNode, - node: nodeSyncData, - createNodeId, - createContentDigest, - entityReferenceRevisions, - }) - } else { - // The data could be a single Drupal entity or an array of Drupal - // entities to update. - let nodesToUpdate = nodeSyncData.data - if (!Array.isArray(nodeSyncData.data)) { - nodesToUpdate = [nodeSyncData.data] - } + // Process sync data from Drupal. + const nodesToSync = res.body.entities + for (const nodeSyncData of nodesToSync) { + if (nodeSyncData.action === `delete`) { + handleDeletedNode({ + actions, + getNode, + node: nodeSyncData, + createNodeId, + createContentDigest, + entityReferenceRevisions, + }) + } else { + // The data could be a single Drupal entity or an array of Drupal + // entities to update. + let nodesToUpdate = nodeSyncData.data + if (!Array.isArray(nodeSyncData.data)) { + nodesToUpdate = [nodeSyncData.data] + } - for (const nodeToUpdate of nodesToUpdate) { - await handleWebhookUpdate( - { - nodeToUpdate, - actions, - cache, - createNodeId, - createContentDigest, - getCache, - getNode, - reporter, - store, - languageConfig, - }, - pluginOptions - ) + for (const nodeToUpdate of nodesToUpdate) { + await handleWebhookUpdate( + { + nodeToUpdate, + actions, + cache, + createNodeId, + createContentDigest, + getCache, + getNode, + reporter, + store, + languageConfig, + }, + pluginOptions + ) + } } } + + createNodesSpan.finish() + setPluginStatus({ lastFetched: res.body.timestamp }) } + } catch (e) { + gracefullyRethrow(drupalFetchIncrementalActivity, e) - createNodesSpan.finish() - setPluginStatus({ lastFetched: res.body.timestamp }) + drupalFetchIncrementalActivity.end() + fastBuildsSpan.finish() + return } - } catch (e) { - gracefullyRethrow(drupalFetchIncrementalActivity, e) drupalFetchIncrementalActivity.end() fastBuildsSpan.finish() - return - } - drupalFetchIncrementalActivity.end() - fastBuildsSpan.finish() + // We're now done with the initial (fastbuilds flavored) sourcing. + initialSourcing = false - if (!requireFullRebuild) { - return + if (!requireFullRebuild) { + return + } } } @@ -410,7 +418,7 @@ ${JSON.stringify(webhookBody, null, 4)} entityType => entityType === type ) - const getNext = async url => { + const getNext = async (url, currentLanguage) => { if (typeof url === `object`) { // url can be string or object containing href field url = url.href @@ -471,9 +479,13 @@ ${JSON.stringify(webhookBody, null, 4)} // the next URL. This lets us request resources in parallel vs. sequentially // which is much faster. if (d.body.meta?.count) { + const typeLangKey = type + currentLanguage // If we hadn't added urls yet - if (d.body.links.next?.href && !typeRequestsQueued.has(type)) { - typeRequestsQueued.add(type) + if ( + d.body.links.next?.href && + !typeRequestsQueued.has(typeLangKey) + ) { + typeRequestsQueued.add(typeLangKey) // Get count of API requests // We round down as we've already gotten the first page at this point. @@ -493,17 +505,17 @@ ${JSON.stringify(webhookBody, null, 4)} pageOffset += 1 // Construct URL with new pageOffset. newUrl.searchParams.set(`page[offset]`, pageOffset * pageSize) - return getNext(newUrl.toString()) + return getNext(newUrl.toString(), currentLanguage) }) ) } } else if (d.body.links?.next) { - await getNext(d.body.links.next) + await getNext(d.body.links.next, currentLanguage) } } if (isTranslatable === false) { - await getNext(url) + await getNext(url, ``) } else { for (let i = 0; i < languageConfig.enabledLanguages.length; i++) { let currentLanguage = languageConfig.enabledLanguages[i] @@ -525,7 +537,7 @@ ${JSON.stringify(webhookBody, null, 4)} urlPath ) - await getNext(joinedUrl) + await getNext(joinedUrl, currentLanguage) } } @@ -570,6 +582,7 @@ ${JSON.stringify(webhookBody, null, 4)} nodes.forEach(node => { handleReferences(node, { getNode: nodes.get.bind(nodes), + mutateNode: true, createNodeId, entityReferenceRevisions, }) diff --git a/packages/gatsby-source-drupal/src/utils.js b/packages/gatsby-source-drupal/src/utils.js index 1103a2ccff49e..eda40f3437987 100644 --- a/packages/gatsby-source-drupal/src/utils.js +++ b/packages/gatsby-source-drupal/src/utils.js @@ -9,16 +9,17 @@ const { const { getOptions } = require(`./plugin-options`) -const backRefsNamesLookup = new WeakMap() -const referencedNodesLookup = new WeakMap() +const backRefsNamesLookup = new Map() +const referencedNodesLookup = new Map() const handleReferences = ( node, - { getNode, createNodeId, entityReferenceRevisions = [] } + { getNode, mutateNode = false, createNodeId, entityReferenceRevisions = [] } ) => { const relationships = node.relationships const rootNodeLanguage = getOptions().languageConfig ? node.langcode : `und` + const backReferencedNodes = [] if (node.drupal_relationships) { const referencedNodes = [] _.each(node.drupal_relationships, (v, k) => { @@ -68,6 +69,7 @@ const handleReferences = ( relationships[nodeFieldName] = referencedNodeId referencedNodes.push(referencedNodeId) } + // If there's meta on the field and it's not an existing/internal one // create a new node's field with that meta. It can't exist on both // @see https://jsonapi.org/format/#document-resource-object-fields @@ -78,11 +80,16 @@ const handleReferences = ( }) delete node.drupal_relationships - referencedNodesLookup.set(node, referencedNodes) + referencedNodesLookup.set(node.id, referencedNodes) if (referencedNodes.length) { const nodeFieldName = `${node.internal.type}___NODE` referencedNodes.forEach(nodeID => { - const referencedNode = getNode(nodeID) + let referencedNode + if (mutateNode) { + referencedNode = getNode(nodeID) + } else { + referencedNode = _.cloneDeep(getNode(nodeID)) + } if (!referencedNode.relationships[nodeFieldName]) { referencedNode.relationships[nodeFieldName] = [] } @@ -91,20 +98,23 @@ const handleReferences = ( referencedNode.relationships[nodeFieldName].push(node.id) } - let backRefsNames = backRefsNamesLookup.get(referencedNode) + let backRefsNames = backRefsNamesLookup.get(referencedNode.id) if (!backRefsNames) { backRefsNames = [] - backRefsNamesLookup.set(referencedNode, backRefsNames) + backRefsNamesLookup.set(referencedNode.id, backRefsNames) } if (!backRefsNames.includes(nodeFieldName)) { backRefsNames.push(nodeFieldName) } + backReferencedNodes.push(referencedNode) }) } } node.relationships = relationships + + return backReferencedNodes } exports.handleReferences = handleReferences @@ -117,12 +127,12 @@ const handleDeletedNode = async ({ createContentDigest, entityReferenceRevisions, }) => { - const deletedNode = getNode( + let deletedNode = getNode( createNodeId( createNodeIdWithVersion( node.id, node.type, - getOptions().languageConfig ? node.attributes.langcode : `und`, + getOptions().languageConfig ? node.attributes?.langcode : `und`, node.attributes?.drupal_internal__revision_id, entityReferenceRevisions ) @@ -135,20 +145,25 @@ const handleDeletedNode = async ({ return deletedNode } + // Clone node so we're not mutating the original node. + deletedNode = _.cloneDeep(deletedNode) + // Remove the deleted node from backRefsNamesLookup and referencedNodesLookup - backRefsNamesLookup.delete(deletedNode) - referencedNodesLookup.delete(deletedNode) + backRefsNamesLookup.delete(deletedNode.id) + referencedNodesLookup.delete(deletedNode.id) // Remove relationships from other nodes and re-create them. Object.keys(deletedNode.relationships).forEach(key => { let ids = deletedNode.relationships[key] ids = [].concat(ids) ids.forEach(id => { - const node = getNode(id) + let node = getNode(id) // The referenced node might have already been deleted. if (node) { - let referencedNodes = referencedNodesLookup.get(node) + // Clone node so we're not mutating the original node. + node = _.cloneDeep(node) + let referencedNodes = referencedNodesLookup.get(node.id) if (referencedNodes?.includes(deletedNode.id)) { // Loop over relationships and cleanup references. Object.entries(node.relationships).forEach(([key, value]) => { @@ -174,7 +189,7 @@ const handleDeletedNode = async ({ referencedNodes = referencedNodes.filter( nId => nId !== deletedNode.id ) - referencedNodesLookup.set(node, referencedNodes) + referencedNodesLookup.set(node.id, referencedNodes) } // Recreate the referenced node with its now cleaned-up relationships. @@ -209,9 +224,9 @@ const handleWebhookUpdate = async ( }, pluginOptions = {} ) => { - if (!nodeToUpdate || !nodeToUpdate.attributes) { + if (!nodeToUpdate) { reporter.warn( - `The updated node was empty or is missing the required attributes field. The fact you're seeing this warning means there's probably a bug in how we're creating and processing updates from Drupal. + `The updated node was empty. The fact you're seeing this warning means there's probably a bug in how we're creating and processing updates from Drupal. ${JSON.stringify(nodeToUpdate, null, 4)} ` @@ -220,6 +235,13 @@ ${JSON.stringify(nodeToUpdate, null, 4)} return } + reporter.log( + `[drupal]: handling update to: + - entity href: ${nodeToUpdate.links?.self?.href} + - node id: ${nodeToUpdate.attributes?.drupal_internal__nid} +` + ) + const { createNode } = actions const newNode = nodeFromData( @@ -230,33 +252,46 @@ ${JSON.stringify(nodeToUpdate, null, 4)} const nodesToUpdate = [newNode] - handleReferences(newNode, { + const oldNodeReferencedNodes = referencedNodesLookup.get(newNode.id) + const backReferencedNodes = handleReferences(newNode, { getNode, + mutateNode: false, createNodeId, entityReferenceRevisions: pluginOptions.entityReferenceRevisions, }) - const oldNode = getNode(newNode.id) + nodesToUpdate.push(...backReferencedNodes) + + let oldNode = getNode(newNode.id) if (oldNode) { + // Clone node so we're not mutating the original node. + oldNode = _.cloneDeep(oldNode) // copy over back references from old node - const backRefsNames = backRefsNamesLookup.get(oldNode) + const backRefsNames = backRefsNamesLookup.get(oldNode.id) if (backRefsNames) { - backRefsNamesLookup.set(newNode, backRefsNames) + backRefsNamesLookup.set(newNode.id, backRefsNames) backRefsNames.forEach(backRefFieldName => { newNode.relationships[backRefFieldName] = oldNode.relationships[backRefFieldName] }) } - const oldNodeReferencedNodes = referencedNodesLookup.get(oldNode) - const newNodeReferencedNodes = referencedNodesLookup.get(newNode) + const newNodeReferencedNodes = referencedNodesLookup.get(newNode.id) // see what nodes are no longer referenced and remove backRefs from them - const removedReferencedNodes = _.difference( + let removedReferencedNodes = _.difference( oldNodeReferencedNodes, newNodeReferencedNodes ).map(id => getNode(id)) + removedReferencedNodes = removedReferencedNodes.map(node => { + if (node) { + return _.cloneDeep(node) + } else { + return node + } + }) + nodesToUpdate.push(...removedReferencedNodes) const nodeFieldName = `${newNode.internal.type}___NODE` @@ -271,23 +306,9 @@ ${JSON.stringify(nodeToUpdate, null, 4)} ) } }) - - // see what nodes are newly referenced, and make sure to call `createNode` on them - const addedReferencedNodes = _.difference( - newNodeReferencedNodes, - oldNodeReferencedNodes - ).map(id => getNode(id)) - - nodesToUpdate.push(...addedReferencedNodes) - } else { - // if we are inserting new node, we need to update all referenced nodes - const newNodes = referencedNodesLookup.get(newNode) - if (typeof newNodes !== `undefined`) { - newNodes.forEach(id => nodesToUpdate.push(getNode(id))) - } } - // download file + // Download file. const { skipFileDownloads } = pluginOptions if (isFileNode(newNode) && !skipFileDownloads) { await downloadFile( @@ -312,7 +333,7 @@ ${JSON.stringify(nodeToUpdate, null, 4)} } node.internal.contentDigest = createContentDigest(node) createNode(node) - reporter.log(`Updated node: ${node.id}`) + reporter.log(`Updated Gatsby node: ${node.id}`) } } diff --git a/packages/gatsby-source-faker/package.json b/packages/gatsby-source-faker/package.json index 35ea3a751fd30..61505fcc4ca64 100644 --- a/packages/gatsby-source-faker/package.json +++ b/packages/gatsby-source-faker/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-faker", "description": "A gatsby plugin to get fake data for testing", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Pavithra Kodmad", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-faker#readme", diff --git a/packages/gatsby-source-filesystem/package.json b/packages/gatsby-source-filesystem/package.json index 9650c45aaa6d1..e33e96e6b6b10 100644 --- a/packages/gatsby-source-filesystem/package.json +++ b/packages/gatsby-source-filesystem/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-filesystem", "description": "Gatsby source plugin for building websites from local data. Markdown, JSON, images, YAML, CSV, and dozens of other data types supported.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -12,7 +12,7 @@ "fastq": "^1.11.1", "file-type": "^16.5.3", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "got": "^9.6.0", "md5-file": "^5.0.0", "mime": "^2.5.2", @@ -24,7 +24,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-filesystem#readme", diff --git a/packages/gatsby-source-graphql/package.json b/packages/gatsby-source-graphql/package.json index 9f929282b2ab4..a4031f0da4aa0 100644 --- a/packages/gatsby-source-graphql/package.json +++ b/packages/gatsby-source-graphql/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-graphql", "description": "Gatsby plugin which adds a third-party GraphQL API to Gatsby GraphQL", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Mikhail Novikov ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,14 +14,14 @@ "apollo-link": "1.2.14", "apollo-link-http": "^1.5.17", "dataloader": "^2.0.0", + "gatsby-core-utils": "^3.0.0-zz-next.3", "invariant": "^2.2.4", - "node-fetch": "^2.6.1", - "uuid": "3.4.0" + "node-fetch": "^2.6.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-graphql#readme", diff --git a/packages/gatsby-source-graphql/src/__tests__/__snapshots__/gatsby-node.js.snap b/packages/gatsby-source-graphql/src/__tests__/__snapshots__/gatsby-node.js.snap deleted file mode 100644 index cae0f68a0bcc0..0000000000000 --- a/packages/gatsby-source-graphql/src/__tests__/__snapshots__/gatsby-node.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`validation throws on missing fieldName 1`] = `"gatsby-source-graphql requires option \`fieldName\` to be specified"`; - -exports[`validation throws on missing typename 1`] = `"gatsby-source-graphql requires option \`typeName\` to be specified"`; - -exports[`validation throws on missing url 1`] = `"gatsby-source-graphql requires either option \`url\` or \`createLink\` callback"`; diff --git a/packages/gatsby-source-graphql/src/__tests__/gatsby-node.js b/packages/gatsby-source-graphql/src/__tests__/gatsby-node.js index 094cf264a93f1..14069de5af5f8 100644 --- a/packages/gatsby-source-graphql/src/__tests__/gatsby-node.js +++ b/packages/gatsby-source-graphql/src/__tests__/gatsby-node.js @@ -11,6 +11,7 @@ jest.mock(`apollo-link-http`, () => { } }) const { createHttpLink } = require(`apollo-link-http`) +const { testPluginOptionsSchema } = require(`gatsby-plugin-utils`) jest.mock(`gatsby/graphql`, () => { const graphql = jest.requireActual(`gatsby/graphql`) return { @@ -19,7 +20,11 @@ jest.mock(`gatsby/graphql`, () => { printSchema: jest.fn(), } }) -const { sourceNodes } = require(`../gatsby-node`) +const { + createSchemaCustomization, + sourceNodes, + pluginOptionsSchema, +} = require(`../gatsby-node`) const { fetchWrapper } = require(`../fetch`) const getInternalGatsbyAPI = () => { @@ -41,22 +46,55 @@ const getInternalGatsbyAPI = () => { } describe(`validation`, () => { - ;[ - [ - `throws on missing typename`, - { fieldName: `github`, url: `https://github.com` }, - ], - [ - `throws on missing fieldName`, - { typeName: `Github`, url: `https://github.com` }, - ], - [`throws on missing url`, { typeName: `Github`, fieldName: `github` }], - ].forEach(([testName, pluginOptions]) => { - it(testName, () => { - expect( - sourceNodes(getInternalGatsbyAPI(), pluginOptions) - ).rejects.toThrowErrorMatchingSnapshot() + it(`should validate minimal, valid config`, async () => { + const { isValid } = await testPluginOptionsSchema(pluginOptionsSchema, { + url: `https://github.com`, + typeName: `GitHub`, + fieldName: `github`, }) + + expect(isValid).toEqual(true) + }) + + it(`should invalidate a config missing required vars`, async () => { + const { isValid, errors } = await testPluginOptionsSchema( + pluginOptionsSchema, + {} + ) + + expect(isValid).toEqual(false) + expect(errors).toMatchInlineSnapshot(` + Array [ + "\\"typeName\\" is required", + "\\"fieldName\\" is required", + "\\"value\\" must contain at least one of [url, createLink]", + ] + `) + }) + + it(`should validate a fully custom config`, async () => { + const { isValid, errors } = await testPluginOptionsSchema( + pluginOptionsSchema, + { + url: `https://github.com`, + typeName: `GitHub`, + fieldName: `github`, + headers: () => { + return { + Authorization: `Bearer abc`, + } + }, + fetch: () => {}, + fetchOptions: {}, + createLink: () => {}, + createSchema: () => {}, + batch: true, + transformSchema: () => {}, + } + ) + + expect(errors).toEqual([]) + expect(isValid).toEqual(true) }) }) @@ -78,7 +116,7 @@ describe(`createHttpLink`, () => { it(`use passed in fetch if provided`, async () => { const api = getInternalGatsbyAPI() const mockFetch = jest.fn() - await sourceNodes(api, { + await createSchemaCustomization(api, { typeName: `Github foo`, fieldName: `github`, url: `https://github.com`, @@ -91,7 +129,7 @@ describe(`createHttpLink`, () => { }) it(`use default fetch if not provided`, async () => { const api = getInternalGatsbyAPI() - await sourceNodes(api, { + await createSchemaCustomization(api, { typeName: `Github foo`, fieldName: `github`, url: `https://github.com`, diff --git a/packages/gatsby-source-graphql/src/gatsby-node.js b/packages/gatsby-source-graphql/src/gatsby-node.js index eea80e1a247f2..89532c9f2b1e5 100644 --- a/packages/gatsby-source-graphql/src/gatsby-node.js +++ b/packages/gatsby-source-graphql/src/gatsby-node.js @@ -1,4 +1,4 @@ -const uuidv4 = require(`uuid/v4`) +const { uuid } = require(`gatsby-core-utils`) const { buildSchema, printSchema } = require(`gatsby/graphql`) const { wrapSchema, @@ -7,7 +7,6 @@ const { } = require(`@graphql-tools/wrap`) const { linkToExecutor } = require(`@graphql-tools/links`) const { createHttpLink } = require(`apollo-link-http`) -const invariant = require(`invariant`) const { fetchWrapper } = require(`./fetch`) const { createDataloaderLink } = require(`./batching/dataloader-link`) @@ -16,11 +15,25 @@ const { StripNonQueryTransform, } = require(`./transforms`) -exports.sourceNodes = async ( - { actions, createNodeId, cache, createContentDigest }, +exports.pluginOptionsSchema = ({ Joi }) => + Joi.object({ + url: Joi.string(), + typeName: Joi.string().required(), + fieldName: Joi.string().required(), + headers: Joi.alternatives().try(Joi.object(), Joi.function()), + fetch: Joi.function(), + fetchOptions: Joi.object(), + createLink: Joi.function(), + createSchema: Joi.function(), + batch: Joi.boolean(), + transformSchema: Joi.function(), + }).or(`url`, `createLink`) + +exports.createSchemaCustomization = async ( + { actions, createNodeId, cache }, options ) => { - const { addThirdPartySchema, createNode } = actions + const { addThirdPartySchema } = actions const { url, typeName, @@ -30,24 +43,10 @@ exports.sourceNodes = async ( fetchOptions = {}, createLink, createSchema, - refetchInterval, batch = false, transformSchema, } = options - invariant( - typeName && typeName.length > 0, - `gatsby-source-graphql requires option \`typeName\` to be specified` - ) - invariant( - fieldName && fieldName.length > 0, - `gatsby-source-graphql requires option \`fieldName\` to be specified` - ) - invariant( - (url && url.length > 0) || createLink, - `gatsby-source-graphql requires either option \`url\` or \`createLink\` callback` - ) - let link if (createLink) { link = await createLink(options) @@ -79,14 +78,8 @@ exports.sourceNodes = async ( await cache.set(cacheKey, sdl) } - const nodeId = createNodeId(`gatsby-source-graphql-${typeName}`) - const node = createSchemaNode({ - id: nodeId, - typeName, - fieldName, - createContentDigest, - }) - createNode(node) + // This node is created in `sourceNodes`. + const nodeId = createSchemaNodeId({ typeName, createNodeId }) const resolver = (parent, args, context) => { context.nodeModel.createPageDependency({ @@ -121,6 +114,23 @@ exports.sourceNodes = async ( }) addThirdPartySchema({ schema }) +} + +exports.sourceNodes = async ( + { actions, createNodeId, createContentDigest }, + options +) => { + const { createNode } = actions + const { typeName, fieldName, refetchInterval } = options + + const nodeId = createSchemaNodeId({ typeName, createNodeId }) + const node = createSchemaNode({ + id: nodeId, + typeName, + fieldName, + createContentDigest, + }) + createNode(node) if (process.env.NODE_ENV !== `production`) { if (refetchInterval) { @@ -141,8 +151,12 @@ exports.sourceNodes = async ( } } +function createSchemaNodeId({ typeName, createNodeId }) { + return createNodeId(`gatsby-source-graphql-${typeName}`) +} + function createSchemaNode({ id, typeName, fieldName, createContentDigest }) { - const nodeContent = uuidv4() + const nodeContent = uuid.v4() const nodeContentDigest = createContentDigest(nodeContent) return { id, diff --git a/packages/gatsby-source-hacker-news/package.json b/packages/gatsby-source-hacker-news/package.json index 370782d35fa4d..006c05c0c7ca0 100644 --- a/packages/gatsby-source-hacker-news/package.json +++ b/packages/gatsby-source-hacker-news/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-hacker-news", "description": "Gatsby source plugin for building websites using Hacker News as a data source", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-hacker-news#readme", diff --git a/packages/gatsby-source-lever/package.json b/packages/gatsby-source-lever/package.json index a109c66e6e760..4d4a0daf07244 100644 --- a/packages/gatsby-source-lever/package.json +++ b/packages/gatsby-source-lever/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-lever", "description": "Gatsby source plugin for building websites using the Lever.co Recruitment Software as a data source.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Sebastien Fichot ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -20,7 +20,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-lever#readme", diff --git a/packages/gatsby-source-medium/package.json b/packages/gatsby-source-medium/package.json index f31651914889b..29f4e22397a2e 100644 --- a/packages/gatsby-source-medium/package.json +++ b/packages/gatsby-source-medium/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-medium", "description": "Gatsby source plugin for building websites using Medium as a data source", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Robert Vogt ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-medium#readme", diff --git a/packages/gatsby-source-mongodb/package.json b/packages/gatsby-source-mongodb/package.json index 86f41a41c812f..49fe5df4c1b4a 100644 --- a/packages/gatsby-source-mongodb/package.json +++ b/packages/gatsby-source-mongodb/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-mongodb", "description": "Source plugin for pulling data into Gatsby from MongoDB collections", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "authors": [ "jhermans85@hotmail.com", "hi@elmar.codes" @@ -19,7 +19,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-mongodb#readme", diff --git a/packages/gatsby-source-npm-package-search/package.json b/packages/gatsby-source-npm-package-search/package.json index 129f68fb784d6..566cdd9b1fed9 100644 --- a/packages/gatsby-source-npm-package-search/package.json +++ b/packages/gatsby-source-npm-package-search/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-source-npm-package-search", "description": "Search NPM packages and pull NPM & GitHub metadata from Algolia's NPM index", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "james.a.stack@gmail.com", "repository": { "type": "git", @@ -17,7 +17,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "keywords": [ diff --git a/packages/gatsby-source-shopify/CHANGELOG.md b/packages/gatsby-source-shopify/CHANGELOG.md index 83d9ea30c8e7e..3664c5d6e227b 100644 --- a/packages/gatsby-source-shopify/CHANGELOG.md +++ b/packages/gatsby-source-shopify/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [5.6.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-shopify@5.6.1/packages/gatsby-source-shopify) (2021-10-06) + +#### Features + +- support multiple sources using gatsby-plugin-image [#32544](https://github.com/gatsbyjs/gatsby/issues/32544) [#33436](https://github.com/gatsbyjs/gatsby/issues/33436) ([11231fc](https://github.com/gatsbyjs/gatsby/commit/11231fcaa1093bf5250a2cb621f2bba90e84ee85)) + ## [5.6.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-shopify@5.6.0/packages/gatsby-source-shopify) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-source-shopify/README.md b/packages/gatsby-source-shopify/README.md index ee37f840cf799..1e7780229f872 100644 --- a/packages/gatsby-source-shopify/README.md +++ b/packages/gatsby-source-shopify/README.md @@ -76,8 +76,8 @@ module.exports = { { resolve: "gatsby-source-shopify", options: { - password: process.env.SHOPIFY_ADMIN_PASSWORD, - storeUrl: process.env.SHOPIFY_STORE_URL, + password: process.env.SHOPIFY_SHOP_PASSWORD, + storeUrl: process.env.GATSBY_SHOPIFY_STORE_URL, }, }, "gatsby-plugin-image", @@ -248,8 +248,8 @@ module.exports = { { resolve: "gatsby-source-shopify", options: { - password: process.env.SHOPIFY_ADMIN_PASSWORD, - storeUrl: process.env.SHOPIFY_STORE_URL, + password: process.env.SHOPIFY_SHOP_PASSWORD, + storeUrl: process.env.GATSBY_SHOPIFY_STORE_URL, downloadImages: true, }, }, diff --git a/packages/gatsby-source-shopify/package.json b/packages/gatsby-source-shopify/package.json index 9a6cf11fede1b..2937ad40f6644 100644 --- a/packages/gatsby-source-shopify/package.json +++ b/packages/gatsby-source-shopify/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-source-shopify", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.4", "description": "Gatsby source plugin for building websites using Shopify as a data source.", "scripts": { "watch": "tsc-watch --outDir .", @@ -20,25 +20,25 @@ "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-shopify#readme", "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", - "gatsby-source-filesystem": "^4.0.0-zz-next.1", - "node-fetch": "^2.6.1", - "sharp": "^0.29.0", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", + "gatsby-source-filesystem": "^4.0.0-zz-next.3", + "node-fetch": "^2.6.5", + "sharp": "^0.29.1", "shift-left": "^0.1.5" }, "devDependencies": { "@types/jest": "^26.0.24", "@types/node": "^14.17.14", "@types/node-fetch": "^2.5.12", - "@types/sharp": "^0.28.5", + "@types/sharp": "^0.29.2", "cross-env": "^7.0.3", - "gatsby-plugin-image": "^2.0.0-zz-next.1", + "gatsby-plugin-image": "^2.0.0-zz-next.3", "msw": "^0.35.0", "prettier": "^2.3.2", "prettier-check": "^2.0.0", "tsc-watch": "^4.5.0", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "peerDependencies": { "gatsby-plugin-image": "^1.1.0" diff --git a/packages/gatsby-source-shopify/src/gatsby-node.ts b/packages/gatsby-source-shopify/src/gatsby-node.ts index b0348f152133f..8777baa75c50f 100644 --- a/packages/gatsby-source-shopify/src/gatsby-node.ts +++ b/packages/gatsby-source-shopify/src/gatsby-node.ts @@ -7,10 +7,7 @@ import { SourceNodesArgs, } from "gatsby" import { makeResolveGatsbyImageData } from "./resolve-gatsby-image-data" -import { - getGatsbyImageResolver, - IGatsbyGraphQLResolverArgumentConfig, -} from "gatsby-plugin-image/graphql-utils" +import { getGatsbyImageFieldConfig } from "gatsby-plugin-image/graphql-utils" import { makeSourceFromOperation } from "./make-source-from-operation" export { createSchemaCustomization } from "./create-schema-customization" import { createNodeId } from "./node-builder" @@ -240,13 +237,6 @@ export function createResolvers( }: ShopifyPluginOptions ): void { if (!downloadImages) { - const args = { - placeholder: { - description: `Low resolution version of the image`, - type: `String`, - defaultValue: null, - } as IGatsbyGraphQLResolverArgumentConfig, - } const imageNodeTypes = [ `ShopifyProductImage`, `ShopifyProductVariantImage`, @@ -262,9 +252,8 @@ export function createResolvers( return { ...r, [`${typePrefix}${nodeType}`]: { - gatsbyImageData: getGatsbyImageResolver( - makeResolveGatsbyImageData(cache), - args + gatsbyImageData: getGatsbyImageFieldConfig( + makeResolveGatsbyImageData(cache) ), }, } diff --git a/packages/gatsby-source-shopify/src/make-source-from-operation.ts b/packages/gatsby-source-shopify/src/make-source-from-operation.ts index fa2e8e313add6..613a4c01b3f8f 100644 --- a/packages/gatsby-source-shopify/src/make-source-from-operation.ts +++ b/packages/gatsby-source-shopify/src/make-source-from-operation.ts @@ -173,7 +173,7 @@ export function makeSourceFromOperation( context: { sourceMessage: `Could not source from bulk operation`, }, - error: e, + error: e as Error, }) } } diff --git a/packages/gatsby-source-shopify/src/resolve-gatsby-image-data.ts b/packages/gatsby-source-shopify/src/resolve-gatsby-image-data.ts index 188b6ccb5cd10..3ff2307e253dd 100644 --- a/packages/gatsby-source-shopify/src/resolve-gatsby-image-data.ts +++ b/packages/gatsby-source-shopify/src/resolve-gatsby-image-data.ts @@ -7,11 +7,10 @@ import { IImage, ImageFormat, } from "gatsby-plugin-image" +import { IGatsbyImageFieldArgs } from "gatsby-plugin-image/graphql-utils" import { readFileSync } from "fs" import { IShopifyImage, urlBuilder } from "./get-shopify-image" -type ImageLayout = "constrained" | "fixed" | "fullWidth" - type IImageWithPlaceholder = IImage & { placeholder: string } @@ -48,7 +47,7 @@ export function makeResolveGatsbyImageData(cache: any) { formats = [`auto`], layout = `constrained`, ...options - }: { formats: Array; layout: ImageLayout } + }: IGatsbyImageFieldArgs ): Promise { const remainingOptions = options as Record let [basename] = image.originalSrc.split(`?`) diff --git a/packages/gatsby-source-wikipedia/package.json b/packages/gatsby-source-wikipedia/package.json index 88ef98a7d7b77..c1e795f197ed7 100644 --- a/packages/gatsby-source-wikipedia/package.json +++ b/packages/gatsby-source-wikipedia/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-source-wikipedia", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "description": "Gatsby source plugin for pulling articles from Wikipedia", "main": "index.js", "scripts": { @@ -37,7 +37,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "engines": { diff --git a/packages/gatsby-source-wordpress/.babelrc.js b/packages/gatsby-source-wordpress/.babelrc.js index 2a3c88f784c5d..cb04edcde0638 100644 --- a/packages/gatsby-source-wordpress/.babelrc.js +++ b/packages/gatsby-source-wordpress/.babelrc.js @@ -39,4 +39,10 @@ module.exports = { }, ], ], + "overrides": [ + { + "test": ["**/src/gatsby-browser.ts"], + "presets": [["babel-preset-gatsby-package", { "browser": true, "esm": true }]] + } + ] } diff --git a/packages/gatsby-source-wordpress/CHANGELOG.md b/packages/gatsby-source-wordpress/CHANGELOG.md index af44aa0e52533..74fb3adc42830 100644 --- a/packages/gatsby-source-wordpress/CHANGELOG.md +++ b/packages/gatsby-source-wordpress/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [5.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-wordpress@5.14.1/packages/gatsby-source-wordpress) (2021-10-06) + +#### Chores + +- Fix tests for WordPress, Contentful & update CircleCI Fix [#33256](https://github.com/gatsbyjs/gatsby/issues/33256) Fix [#33439](https://github.com/gatsbyjs/gatsby/issues/33439) ([1759c1c](https://github.com/gatsbyjs/gatsby/commit/1759c1c4f588d357572c0280ffd02b304d2408e0)) + ## [5.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-wordpress@5.14.0/packages/gatsby-source-wordpress) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-source-wordpress/docs/features/media-item-processing.md b/packages/gatsby-source-wordpress/docs/features/media-item-processing.md index 3d66a3255a26b..ef4efa3f2ac70 100644 --- a/packages/gatsby-source-wordpress/docs/features/media-item-processing.md +++ b/packages/gatsby-source-wordpress/docs/features/media-item-processing.md @@ -11,9 +11,9 @@ Media items in html are automatically sourced and image tags are swapped with `g This can be turned off with the `html.useGatsbyImage` boolean plugin option. See [plugin options](../plugin-options.md#html.usegatsbyimage-boolean) for more information. -Image tag URL's in html that return 404's are logged to the terminal output with a link to which post or page the broken image is attached. +Image tag URL's in html that return 404's or 401's are logged to the terminal output with a link to which post or page the broken image is attached. This allows you to easily discover and fix broken images that were deleted from the media library. -By default 404's will fail the build to prevent deploying a broken site. You can disable this with the [`allow404Images`](../plugin-options.md#productionallow404images-boolean) option. +By default 404's and 401's will fail the build to prevent deploying a broken site. You can disable this with the [`allow404Images`](../plugin-options.md#productionallow404images-boolean) or [`allow401Images`](../plugin-options.md#productionallow401images-boolean) option. ### Requirements for images in html to be converted to Gatsby images diff --git a/packages/gatsby-source-wordpress/docs/migrating-from-other-wp-source-plugins.md b/packages/gatsby-source-wordpress/docs/migrating-from-other-wp-source-plugins.md index bf7b6c0573e33..5e1114dc13fb9 100644 --- a/packages/gatsby-source-wordpress/docs/migrating-from-other-wp-source-plugins.md +++ b/packages/gatsby-source-wordpress/docs/migrating-from-other-wp-source-plugins.md @@ -62,9 +62,9 @@ So your query would change to look like this: Any inline fragments will need to be updated since type names have changed. Use Gatsby's [Graphiql](https://www.gatsbyjs.org/docs/running-queries-with-graphiql/) at `http://localhost:8000/___graphiql` with `gatsby develop` running to determine how your inline fragment typenames should be modified. -### `gatsby-source-graphql` and `gatsby-image` +### `gatsby-source-graphql` and `gatsby-plugin-image` -If you're using any plugins or additional schema customization code to enable the use of `gatsby-image`, you can delete that code and uninstall those plugins. `gatsby-source-wordpress@v4` handles that for you out of the box! +If you're using any plugins or additional schema customization code to enable the use of `gatsby-plugin-image`, you can delete that code and uninstall those plugins. `gatsby-source-wordpress@v4` handles that for you out of the box! ### `gatsby-source-graphql` and WPGraphQL input arguments diff --git a/packages/gatsby-source-wordpress/docs/plugin-options.md b/packages/gatsby-source-wordpress/docs/plugin-options.md index 5fa2114dc2244..64c7a08c17958 100644 --- a/packages/gatsby-source-wordpress/docs/plugin-options.md +++ b/packages/gatsby-source-wordpress/docs/plugin-options.md @@ -21,6 +21,7 @@ - [production](#production) - [production.hardCacheMediaFiles](#productionhardcachemediafiles) - [production.allow404Images](#productionallow404images) + - [production.allow401Images](#productionallow401images) - [develop](#develop) - [develop.nodeUpdateInterval](#developnodeupdateinterval) - [develop.hardCacheMediaFiles](#develophardcachemediafiles) @@ -43,6 +44,7 @@ - [searchAndReplace[].replace](#searchandreplacereplace) - [html](#html) - [html.useGatsbyImage](#htmlusegatsbyimage) + - [html.gatsbyImageOptions](#htmlgatsbyimageoptions) - [html.imageMaxWidth](#htmlimagemaxwidth) - [html.fallbackImageMaxWidth](#htmlfallbackimagemaxwidth) - [html.imageQuality](#htmlimagequality) @@ -447,6 +449,26 @@ This option allows images url's that return a 404 to not fail production builds. ``` +### production.allow401Images + +This option allows images url's that return a 401 to not fail production builds. 401s are sometimes returned in place of 404's for protected content to hide whether the content exists. + +**Field type**: `Boolean` + +**Default value**: `false` + +```js +{ + resolve: `gatsby-source-wordpress`, + options: { + production: { + allow401Images: true, + }, + }, +} + +``` + ## develop Options related to the gatsby develop process. @@ -882,6 +904,27 @@ Causes the source plugin to find/replace images in html with Gatsby images. ``` +### html.gatsbyImageOptions + +Set custom options for your Gatsby Images. + +**Field type**: `Object` + +```js +{ + resolve: `gatsby-source-wordpress`, + options: { + html: { + gatsbyImageOptions: { + [your - option - key]: "your-option-value", + [your - option - key - 2]: "your-option-value-2", + }, + }, + }, +} + +``` + ### html.imageMaxWidth Adds a limit to the max width an image can be. If the image size selected in WP is smaller or the image file width is smaller than this those values will be used instead. diff --git a/packages/gatsby-source-wordpress/gatsby-browser.js b/packages/gatsby-source-wordpress/gatsby-browser.js index 2508e6c2e9b12..42102e628819e 100644 --- a/packages/gatsby-source-wordpress/gatsby-browser.js +++ b/packages/gatsby-source-wordpress/gatsby-browser.js @@ -1 +1 @@ -import "./style.css" +export * from './dist/gatsby-browser' diff --git a/packages/gatsby-source-wordpress/gatsby-config.js b/packages/gatsby-source-wordpress/gatsby-config.js index 6013a95346476..ce0997abc5821 100644 --- a/packages/gatsby-source-wordpress/gatsby-config.js +++ b/packages/gatsby-source-wordpress/gatsby-config.js @@ -1,3 +1,7 @@ module.exports = { - plugins: [`gatsby-plugin-catch-links`], + plugins: [ + `gatsby-plugin-catch-links`, + `gatsby-plugin-image`, + `gatsby-plugin-sharp`, + ], } diff --git a/packages/gatsby-source-wordpress/package.json b/packages/gatsby-source-wordpress/package.json index 1dd75aaf98c23..54bb013c37ce3 100644 --- a/packages/gatsby-source-wordpress/package.json +++ b/packages/gatsby-source-wordpress/package.json @@ -2,7 +2,7 @@ "name": "gatsby-source-wordpress", "description": "Source data from WordPress in an efficient and scalable way.", "author": "Tyler Barnes ", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.6", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" }, @@ -28,19 +28,18 @@ "file-type": "^15.0.1", "filesize": "^6.4.0", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-image": "^3.11.0", - "gatsby-plugin-catch-links": "^4.0.0-zz-next.1", - "gatsby-source-filesystem": "^4.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-plugin-catch-links": "^4.0.0-zz-next.2", + "gatsby-source-filesystem": "^4.0.0-zz-next.3", "glob": "^7.1.7", "got": "^11.8.2", - "graphql-query-compress": "^1.2.4", "lodash": "^4.17.21", "node-fetch": "^2.6.1", "p-queue": "^6.6.2", "read-chunk": "^3.2.0", "replaceall": "^0.1.6", "semver": "^7.3.5", + "sharp": "^0.29.1", "valid-url": "^1.0.9" }, "devDependencies": { @@ -53,9 +52,10 @@ "@types/semver": "^7.3.8", "babel-plugin-import-globals": "^2.0.0", "babel-plugin-module-resolver": "4.1.0", - "babel-preset-gatsby": "^2.0.0-zz-next.1", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby": "^2.0.0-zz-next.4", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", + "gatsby-plugin-image": "^2.0.0-zz-next.3", "identity-obj-proxy": "^3.0.0", "react-test-renderer": "^16.14.0", "rimraf": "^3.0.2", @@ -72,9 +72,10 @@ ], "license": "MIT", "peerDependencies": { - "gatsby": "^4.0.0-next", - "gatsby-plugin-sharp": "^4.0.0-next", - "gatsby-transformer-sharp": "^4.0.0-next" + "gatsby": "^4.0.0-zz-next.1", + "gatsby-plugin-image": "^2.0.0-zz-next.1", + "gatsby-plugin-sharp": "^4.0.0-zz-next.1", + "gatsby-transformer-sharp": "^4.0.0-zz-next.1" }, "repository": { "type": "git", @@ -84,7 +85,7 @@ "scripts": { "prepare": "npm run build", "build": "rimraf dist && babel src --out-dir dist --ignore **/__tests__ --extensions \".ts,.js\" --source-maps && npm run generate-plugin-options-docs", - "watch": "npm run build && babel -w src --out-dir dist --ignore **/__tests__ --verbose --extensions \".ts,.js\" --source-maps", + "watch": "npm run build && babel -w src --out-dir dist --ignore **/__tests__ --extensions \".ts,.js\" --source-maps", "generate-plugin-options-docs": "node ./generate-plugin-options-docs.js" }, "engines": { diff --git a/packages/gatsby-source-wordpress/src/constants.ts b/packages/gatsby-source-wordpress/src/constants.ts index 86aec27777c6e..bfe053005fd94 100644 --- a/packages/gatsby-source-wordpress/src/constants.ts +++ b/packages/gatsby-source-wordpress/src/constants.ts @@ -1,7 +1,3 @@ export const CREATED_NODE_IDS = `WPGQL-created-node-ids` export const LAST_COMPLETED_SOURCE_TIME = `WPGQL-last-completed-source-time` export const MD5_CACHE_KEY = `introspection-node-query-md5` -export const INITIALIZE_PLUGIN_LIFECYCLE_NAME_MAP = { - unstable: `unstable_onPluginInit`, - stable: `onPluginInit`, -} diff --git a/packages/gatsby-source-wordpress/src/gatsby-browser.ts b/packages/gatsby-source-wordpress/src/gatsby-browser.ts new file mode 100644 index 0000000000000..8a6d5527a0dd6 --- /dev/null +++ b/packages/gatsby-source-wordpress/src/gatsby-browser.ts @@ -0,0 +1,72 @@ +import type { GatsbyImageProps } from "gatsby-plugin-image" +import * as React from "react" +import * as ReactDOM from "react-dom" + +let hydrateRef +let isFirstHydration = true +export function onRouteUpdate(): void { + if (isFirstHydration) { + isFirstHydration = false + return + } + + if (`requestIdleCallback` in window) { + if (hydrateRef) { + // @ts-ignore cancelIdleCallback is on window object + cancelIdleCallback(hydrateRef) + } + + // @ts-ignore requestIdleCallback is on window object + hydrateRef = requestIdleCallback(hydrateImages) + } else { + if (hydrateRef) { + clearTimeout(hydrateRef) + } + hydrateRef = setTimeout(hydrateImages) + } +} + +function hydrateImages(): void { + const doc = document + const inlineWPimages: Array = Array.from( + doc.querySelectorAll(`[data-wp-inline-image]`) + ) + + import( + /* webpackChunkName: "gatsby-plugin-image" */ `gatsby-plugin-image` + ).then(mod => { + inlineWPimages.forEach(image => { + if ( + image.dataset && + image.dataset.wpInlineImage && + image.parentNode.parentNode + ) { + const hydrationData = doc.querySelector( + `script[data-wp-inline-image-hydration="${image.dataset.wpInlineImage}"]` + ) + + if (hydrationData) { + const imageProps: GatsbyImageProps = JSON.parse( + hydrationData.innerHTML + ) + + // @ts-ignore - createRoot is on ReactDOM + if (ReactDOM.createRoot) { + // @ts-ignore - createRoot is on ReactDOM + const root = ReactDOM.createRoot(image.parentNode.parentNode) + // @ts-ignore - not same as below, not sure why it's complaining + root.render(React.createElement(mod.default, imageProps), { + hydrate: true, + }) + } else { + ReactDOM.hydrate( + // @ts-ignore - no idea why it complains + React.createElement(mod.GatsbyImage, imageProps), + image.parentNode.parentNode + ) + } + } + } + }) + }) +} diff --git a/packages/gatsby-source-wordpress/src/gatsby-node.ts b/packages/gatsby-source-wordpress/src/gatsby-node.ts index ca2ea94500509..f795fa8ad2837 100644 --- a/packages/gatsby-source-wordpress/src/gatsby-node.ts +++ b/packages/gatsby-source-wordpress/src/gatsby-node.ts @@ -1,25 +1,9 @@ import { runApisInSteps } from "./utils/run-steps" import * as steps from "./steps" -import { INITIALIZE_PLUGIN_LIFECYCLE_NAME_MAP } from "./constants" - -let coreSupportsOnPluginInit: `unstable` | `stable` | undefined - -try { - const { isGatsbyNodeLifecycleSupported } = require(`gatsby-plugin-utils`) - if (isGatsbyNodeLifecycleSupported(`onPluginInit`)) { - coreSupportsOnPluginInit = `stable` - } else if (isGatsbyNodeLifecycleSupported(`unstable_onPluginInit`)) { - coreSupportsOnPluginInit = `unstable` - } -} catch (e) { - console.error(`Could not check if Gatsby supports onPluginInit lifecycle`) -} - -const initializePluginLifeCycleName: string = - INITIALIZE_PLUGIN_LIFECYCLE_NAME_MAP[coreSupportsOnPluginInit] || `onPreInit` module.exports = runApisInSteps({ - [initializePluginLifeCycleName]: [ + // eslint-disable-next-line @typescript-eslint/naming-convention + "onPluginInit|unstable_onPluginInit": [ steps.setGatsbyApiToState, steps.setErrorMap, steps.tempPreventMultipleInstances, diff --git a/packages/gatsby-source-wordpress/src/models/gatsby-api.ts b/packages/gatsby-source-wordpress/src/models/gatsby-api.ts index 8725822edab0c..1222e1c081fe9 100644 --- a/packages/gatsby-source-wordpress/src/models/gatsby-api.ts +++ b/packages/gatsby-source-wordpress/src/models/gatsby-api.ts @@ -79,6 +79,7 @@ export interface IPluginOptions { production?: { hardCacheMediaFiles?: boolean allow404Images?: boolean + allow401Images?: boolean } auth?: { htaccess: { @@ -98,6 +99,7 @@ export interface IPluginOptions { excludeFieldNames?: [] html?: { useGatsbyImage?: boolean + gatsbyImageOptions?: Record imageMaxWidth?: number fallbackImageMaxWidth?: number imageQuality?: number @@ -153,6 +155,7 @@ const defaultPluginOptions: IPluginOptions = { production: { hardCacheMediaFiles: false, allow404Images: false, + allow401Images: false, }, auth: { htaccess: { @@ -185,6 +188,9 @@ const defaultPluginOptions: IPluginOptions = { // Transforms anchor links, video src's, and audio src's (that point to wp-content files) into local file static links // Also fetches those files if they don't already exist createStaticFiles: true, + // + // this adds image options to images in HTML fields when html.useGatsbyImage is also set + gatsbyImageOptions: {}, }, presets: [previewOptimizationPreset], type: { diff --git a/packages/gatsby-source-wordpress/src/steps/declare-plugin-options-schema.js b/packages/gatsby-source-wordpress/src/steps/declare-plugin-options-schema.js index a4f3030ae981b..528dd82576a7f 100644 --- a/packages/gatsby-source-wordpress/src/steps/declare-plugin-options-schema.js +++ b/packages/gatsby-source-wordpress/src/steps/declare-plugin-options-schema.js @@ -319,6 +319,18 @@ Default is false because sometimes non-critical errors are returned alongside va } `), }), + allow401Images: Joi.boolean() + .default(false) + .description( + `This option allows images url's that return a 401 to not fail production builds. 401s are sometimes returned in place of 404's for protected content to hide whether the content exists.` + ) + .meta({ + example: wrapOptions(` + production: { + allow401Images: true + } + `), + }), }), develop: Joi.object({ nodeUpdateInterval: Joi.number() @@ -589,6 +601,19 @@ When using this option, be sure to gitignore the wordpress-cache directory in th }, `), }), + gatsbyImageOptions: Joi.object() + .allow(null) + .description(`Set custom options for your Gatsby Images`) + .meta({ + example: wrapOptions(` + html: { + gatsbyImageOptions: { + [your-option-key]: "your-option-value", + [your-option-key-2]: "your-option-value-2", + }, + }, + `), + }), imageMaxWidth: Joi.number() .integer() .allow(null) diff --git a/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/build-queries-from-introspection/build-query-on-field-name.js b/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/build-queries-from-introspection/build-query-on-field-name.js index 2772ff469f16c..73f159594c673 100644 --- a/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/build-queries-from-introspection/build-query-on-field-name.js +++ b/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/build-queries-from-introspection/build-query-on-field-name.js @@ -1,4 +1,3 @@ -import compress from "graphql-query-compress" import store from "~/store" import { findTypeName } from "~/steps/create-schema-customization/helpers" @@ -64,13 +63,12 @@ export const buildNodesQueryOnFieldName = ({ queryVariables = ``, fieldVariables = ``, }) => - compress( - buildQuery({ - queryName: `NODE_LIST_QUERY`, - variables: `$first: Int!, $after: String, ${queryVariables}`, - fieldName, - fieldVariables: `first: $first, after: $after, ${fieldVariables}`, - builtSelectionSet: ` + buildQuery({ + queryName: `NODE_LIST_QUERY`, + variables: `$first: Int!, $after: String, ${queryVariables}`, + fieldName, + fieldVariables: `first: $first, after: $after, ${fieldVariables}`, + builtSelectionSet: ` nodes { ${builtSelectionSet} } @@ -79,9 +77,8 @@ export const buildNodesQueryOnFieldName = ({ endCursor } `, - builtFragments, - }) - ) + builtFragments, + }) const buildVariables = variables => variables && typeof variables === `string` ? `(${variables})` : `` @@ -220,13 +217,11 @@ export const buildNodeQueryOnFieldName = ({ fieldInputArguments = `id: $id`, queryName = `SINGLE_CONTENT_QUERY`, }) => - compress( - buildQuery({ - queryName, - variables, - fieldName, - fieldVariables: fieldInputArguments, - builtFragments, - builtSelectionSet, - }) - ) + buildQuery({ + queryName, + variables, + fieldName, + fieldVariables: fieldInputArguments, + builtFragments, + builtSelectionSet, + }) diff --git a/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/index.js b/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/index.js index 857379f2afb3d..b5296c4fe4066 100644 --- a/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/index.js +++ b/packages/gatsby-source-wordpress/src/steps/ingest-remote-schema/index.js @@ -10,6 +10,11 @@ import { cacheFetchedTypes } from "./cache-fetched-types" import { writeQueriesToDisk } from "./write-queries-to-disk" const ingestRemoteSchema = async (helpers, pluginOptions) => { + // don't ingest schema while in worker - use cache instead + if (process.env.GATSBY_WORKER_POOL_WORKER) { + return + } + if (process.env.NODE_ENV === `development`) { // running this code block in production is problematic for PQR // since this fn will run once for each worker and we need the result in each @@ -50,10 +55,10 @@ const ingestRemoteSchema = async (helpers, pluginOptions) => { pluginOptions ) } catch (e) { - helpers.reporter.panic(e) + activity.panic(e) + } finally { + activity.end() } - - activity.end() } export { ingestRemoteSchema } diff --git a/packages/gatsby-source-wordpress/src/steps/process-and-validate-plugin-options.ts b/packages/gatsby-source-wordpress/src/steps/process-and-validate-plugin-options.ts index 157c7977ebc18..275ba84c594e0 100644 --- a/packages/gatsby-source-wordpress/src/steps/process-and-validate-plugin-options.ts +++ b/packages/gatsby-source-wordpress/src/steps/process-and-validate-plugin-options.ts @@ -4,6 +4,8 @@ import isInteger from "lodash/isInteger" import { IPluginOptions } from "~/models/gatsby-api" import { GatsbyNodeApiHelpers } from "~/utils/gatsby-types" import { usingGatsbyV4OrGreater } from "~/utils/gatsby-version" +import { cloneDeep } from "lodash" + interface IProcessorOptions { userPluginOptions: IPluginOptions helpers: GatsbyNodeApiHelpers @@ -136,9 +138,7 @@ export const processAndValidatePluginOptions = ( helpers: GatsbyNodeApiHelpers, pluginOptions: IPluginOptions ): IPluginOptions => { - let userPluginOptions = { - ...pluginOptions, - } + let userPluginOptions = cloneDeep(pluginOptions) optionsProcessors.forEach(({ test, processor, name }) => { if (!name) { diff --git a/packages/gatsby-source-wordpress/src/steps/set-gatsby-api-to-state.ts b/packages/gatsby-source-wordpress/src/steps/set-gatsby-api-to-state.ts index 85fbc5d1f7f77..050e610b322b7 100644 --- a/packages/gatsby-source-wordpress/src/steps/set-gatsby-api-to-state.ts +++ b/packages/gatsby-source-wordpress/src/steps/set-gatsby-api-to-state.ts @@ -3,6 +3,7 @@ import { processAndValidatePluginOptions } from "./process-and-validate-plugin-o import { formatLogMessage } from "../utils/format-log-message" import { IPluginOptions } from "~/models/gatsby-api" import { GatsbyNodeApiHelpers } from "~/utils/gatsby-types" +import { usingGatsbyV4OrGreater } from "~/utils/gatsby-version" let hasDisplayedPreviewPresetMessage = false @@ -38,7 +39,11 @@ const setGatsbyApiToState = ( if (previewOptimizationPreset) { helpers.reporter.info( formatLogMessage( - `\nSince the "Preview Optimization" plugin option preset is enabled\nwe aren't fetching more than ${previewOptimizationPreset.options.type.__all.limit} nodes of each type.\nAdditionally, Gatsby image and static file links in HTML fields are disabled.\nIf you want to change this, please check the Preview docs for this plugin.\nhttps://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-wordpress/docs/features/preview.md` + `\nSince the "Preview Optimization" plugin option preset is enabled\n${ + !usingGatsbyV4OrGreater + ? `we aren't fetching more than ${previewOptimizationPreset.options.type.__all.limit} nodes of each type.\nAdditionally, ` + : `` + }Gatsby image and static file links in HTML fields are disabled.\nIf you want to change this, please check the Preview docs for this plugin.\nhttps://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-wordpress/docs/features/preview.md` ) ) } diff --git a/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/create-local-file-node.js b/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/create-local-file-node.js index 82ed178119cdc..0b5d80997a27e 100644 --- a/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/create-local-file-node.js +++ b/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/create-local-file-node.js @@ -66,10 +66,16 @@ export const errorPanicker = ({ const { pluginOptions } = store.getState().gatsbyApi const allow404ImagesInProduction = pluginOptions.production.allow404Images + const allow401ImagesInProduction = pluginOptions.production.allow401Images + const errorCodeIs404 = errorString.includes(`Response code 404`) + const errorCodeIs401 = errorString.includes(`Response code 401`) + const errorCode = errorCodeIs404 ? `404` : errorCodeIs401 ? `401` : null if ( - (allow404ImagesInProduction || process.env.NODE_ENV !== `production`) && - errorString.includes(`Response code 404`) + (allow404ImagesInProduction || + allow401ImagesInProduction || + process.env.NODE_ENV !== `production`) && + (errorCodeIs404 || errorCodeIs401) ) { fetchState.shouldBail = true @@ -77,7 +83,7 @@ export const errorPanicker = ({ reporter.warn( formatLogMessage( `Error ${sharedError}${ - !allow404ImagesInProduction + !allow404ImagesInProduction || !allow401ImagesInProduction ? `\n\nThis error will fail production builds.` : `` }` @@ -90,16 +96,17 @@ export const errorPanicker = ({ if (errorString.includes(`Response code 4`)) { reporter.log(``) + reporter.info( formatLogMessage( `Unrecoverable error ${sharedError}\n\nFailing the build to prevent deploying a broken site.${ - errorString.includes(`Response code 404`) - ? `\n\nIf you don't want 404's to fail your production builds, you can set the following option: + errorCode + ? `\n\nIf you don't want ${errorCode}'s to fail your production builds, you can set the following option: { options: { production: { - allow404Images: true + allow${errorCode}Images: true } } }` diff --git a/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/process-node.js b/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/process-node.js index 7db818368c3f3..6da5fcdd28023 100644 --- a/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/process-node.js +++ b/packages/gatsby-source-wordpress/src/steps/source-nodes/create-nodes/process-node.js @@ -1,7 +1,7 @@ /* eslint-disable no-useless-escape */ import { isWebUri } from "valid-url" -import { fluid } from "gatsby-plugin-sharp" -import Img from "gatsby-image" +import { generateImageData } from "gatsby-plugin-sharp" +import { GatsbyImage } from "gatsby-plugin-image" import React from "react" import ReactDOMServer from "react-dom/server" import stringify from "fast-json-stable-stringify" @@ -602,36 +602,21 @@ const replaceNodeHtmlImages = async ({ const gatsbyTransformerSharpSupportsThisFileType = supportedExtensions[fileNode?.extension] - let fluidResult = null + let sharpImageData = null if (gatsbyTransformerSharpSupportsThisFileType) { try { - fluidResult = await fluid({ + sharpImageData = await generateImageData({ file: fileNode, args: { - maxWidth, + width: maxWidth, quality, - pathPrefix, + ...pluginOptions?.html?.gatsbyImageOptions, }, + pathPrefix, reporter, cache, }) - - if (pluginOptions?.html?.generateWebpImages) { - const webpResult = await fluid({ - file: fileNode, - args: { - maxWidth, - quality, - pathPrefix, - toFormat: `WEBP`, - }, - reporter, - cache, - }) - - fluidResult.srcSetWebp = webpResult.srcSet - } } catch (e) { reporter.error(e) reporter.warn( @@ -647,13 +632,14 @@ const replaceNodeHtmlImages = async ({ match, cheerioImg, fileNode, - imageResize: fluidResult, + imageResize: sharpImageData, maxWidth, } }) ) // find/replace mutate nodeString to replace matched images with rendered gatsby images + let replaceIndex = 0 for (const matchResize of htmlMatchesWithImageResizes) { if (!matchResize) { continue @@ -662,58 +648,61 @@ const replaceNodeHtmlImages = async ({ const { match, imageResize, cheerioImg, maxWidth } = matchResize // @todo retain img tag classes and attributes from cheerioImg - const imgOptions = { - style: { - // these styles make it so that the image wont be stretched - // beyond it's max width, but it also wont exceed the width - // of it's parent element - maxWidth: `100%`, - width: `${imageResize?.presentationWidth || maxWidth}px`, - }, - placeholderStyle: { - opacity: 0, - }, - className: `${ - cheerioImg?.attribs?.class || `` - } inline-gatsby-image-wrapper`, - loading: `eager`, - alt: cheerioImg?.attribs?.alt, - fadeIn: true, - imgStyle: { - opacity: 1, - }, - } let ReactGatsbyImage - + // used to create hydration data for images + let gatsbyImageHydrationData = null if (imageResize) { - imgOptions.fluid = imageResize - ReactGatsbyImage = React.createElement(Img, imgOptions, null) + gatsbyImageHydrationData = { + image: imageResize, + alt: cheerioImg?.attribs?.alt, + className: `${ + cheerioImg?.attribs?.class || `` + } inline-gatsby-image-wrapper`, + "data-wp-inline-image": String(++replaceIndex), + } + ReactGatsbyImage = React.createElement( + GatsbyImage, + gatsbyImageHydrationData, + null + ) } else { const { fileNode } = matchResize - const relativeUrl = await copyFileToStaticAndReturnUrlPath( fileNode, helpers ) - imgOptions.src = relativeUrl - - delete imgOptions.imgStyle - delete imgOptions.fadeIn - delete imgOptions.placeholderStyle + const imgOptions = { + style: { + // these styles make it so that the image wont be stretched + // beyond it's max width, but it also wont exceed the width + // of it's parent element + maxWidth: `100%`, + width: `${maxWidth}px`, + }, + className: `${ + cheerioImg?.attribs?.class || `` + } inline-gatsby-image-wrapper`, + loading: `eager`, + alt: cheerioImg?.attribs?.alt, + src: relativeUrl, + } ReactGatsbyImage = React.createElement(`img`, imgOptions, null) } - const gatsbyImageStringJSON = JSON.stringify( - ReactDOMServer.renderToString(ReactGatsbyImage) - .replace(/
    ${JSON.stringify( + gatsbyImageHydrationData + )}` + } // need to remove the JSON stringify quotes around our image since we're // threading this JSON string back into a larger JSON object string + const gatsbyImageStringJSON = JSON.stringify(gatsbyImageStringRaw) const gatsbyImageString = gatsbyImageStringJSON.substring( 1, gatsbyImageStringJSON.length - 1 diff --git a/packages/gatsby-source-wordpress/src/utils/run-steps.ts b/packages/gatsby-source-wordpress/src/utils/run-steps.ts index 26814fad144a0..84ac24f280536 100644 --- a/packages/gatsby-source-wordpress/src/utils/run-steps.ts +++ b/packages/gatsby-source-wordpress/src/utils/run-steps.ts @@ -72,6 +72,42 @@ const runSteps = async ( } } +/** + * Takes in a pipe delimited string of Gatsby Node API names and returns the first supported API name as a string + * + * Example input: "onPluginInit|unstable_onPluginInit" + * Example output: "unstable_onPluginInit" + */ +const findApiName = (initialApiNameString: string): string => { + if (!initialApiNameString.includes(`|`)) { + return initialApiNameString + } + + const potentialApiNames = initialApiNameString.split(`|`) + + try { + const { isGatsbyNodeLifecycleSupported } = require(`gatsby-plugin-utils`) + + for (const apiName of potentialApiNames) { + if (isGatsbyNodeLifecycleSupported(apiName)) { + return apiName + } + } + } catch (e) { + console.error( + `Could not check if Gatsby supports node API's [${potentialApiNames.join( + `, ` + )}]. Trying to use the first available API name (${potentialApiNames[0]})` + ) + + return potentialApiNames[0] + } + + throw new Error( + `Couldn't find any supported Gatsby Node API's in ${initialApiNameString}` + ) +} + const runApiSteps = (steps: Array, apiName: string) => async ( @@ -85,12 +121,14 @@ const runApisInSteps = (nodeApis: { }): { [apiName: string]: Promise | void } => Object.entries(nodeApis).reduce( (gatsbyNodeExportObject, [apiName, apiSteps]) => { + const normalizedApiName = findApiName(apiName) + return { ...gatsbyNodeExportObject, - [apiName]: + [normalizedApiName]: typeof apiSteps === `function` ? apiSteps - : runApiSteps(apiSteps, apiName), + : runApiSteps(apiSteps, normalizedApiName), } }, {} diff --git a/packages/gatsby-source-wordpress/style.css b/packages/gatsby-source-wordpress/style.css deleted file mode 100644 index c96b2b814dae0..0000000000000 --- a/packages/gatsby-source-wordpress/style.css +++ /dev/null @@ -1,4 +0,0 @@ -.inline-gatsby-image-wrapper, -.inline-gatsby-image-wrapper span { - display: inline-block; -} diff --git a/packages/gatsby-source-wordpress/tsconfig.json b/packages/gatsby-source-wordpress/tsconfig.json index 4f71aed7d8842..db20ac0d1dfe4 100644 --- a/packages/gatsby-source-wordpress/tsconfig.json +++ b/packages/gatsby-source-wordpress/tsconfig.json @@ -5,8 +5,9 @@ "~/*": ["*"] }, "lib": ["ESNext", "DOM"], - "target": "ES6", + "target": "ESNext", "moduleResolution": "node", + "module": "ESNext", "allowSyntheticDefaultImports": true, "skipLibCheck": true }, diff --git a/packages/gatsby-telemetry/package.json b/packages/gatsby-telemetry/package.json index 5dd8e4a76eb0f..70de73a5fcc5b 100644 --- a/packages/gatsby-telemetry/package.json +++ b/packages/gatsby-telemetry/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-telemetry", "description": "Gatsby Telemetry", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.3", "author": "Jarmo Isotalo ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,24 +15,23 @@ "boxen": "^4.2.0", "configstore": "^5.0.1", "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", - "node-fetch": "^2.6.1", - "uuid": "3.4.0" + "node-fetch": "^2.6.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", "babel-jest": "^24.9.0", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "jest": "^24.9.0", "jest-cli": "^24.9.0", "jest-junit": "^6.4.0", "rimraf": "^3.0.2", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "files": [ "lib/", diff --git a/packages/gatsby-telemetry/src/__tests__/telemetry.ts b/packages/gatsby-telemetry/src/__tests__/telemetry.ts index 968b8b8cab964..6bf57b5c5ba5c 100644 --- a/packages/gatsby-telemetry/src/__tests__/telemetry.ts +++ b/packages/gatsby-telemetry/src/__tests__/telemetry.ts @@ -1,10 +1,13 @@ -jest.mock(`../event-storage`) import { EventStorage } from "../event-storage" import { AnalyticsTracker } from "../telemetry" import * as fs from "fs-extra" import * as os from "os" import * as path from "path" -import uuidv4 from "uuid/v4" +import { uuid } from "gatsby-core-utils" + +const uuidv4 = uuid.v4 + +jest.mock(`../event-storage`) let telemetry beforeEach(() => { diff --git a/packages/gatsby-telemetry/src/in-memory-store.ts b/packages/gatsby-telemetry/src/in-memory-store.ts index ec4ead3fc611c..c69841021310e 100644 --- a/packages/gatsby-telemetry/src/in-memory-store.ts +++ b/packages/gatsby-telemetry/src/in-memory-store.ts @@ -1,4 +1,4 @@ -import uuidv4 from "uuid/v4" +import { uuid } from "gatsby-core-utils" import os from "os" import { join } from "path" @@ -13,7 +13,7 @@ export class InMemoryConfigStore { createBaseConfig(): Record { return { "telemetry.enabled": true, - "telemetry.machineId": `not-a-machine-id-${uuidv4()}`, + "telemetry.machineId": `not-a-machine-id-${uuid.v4()}`, } } diff --git a/packages/gatsby-telemetry/src/telemetry.ts b/packages/gatsby-telemetry/src/telemetry.ts index 7b875aabe90bd..0ccbc85fc0885 100644 --- a/packages/gatsby-telemetry/src/telemetry.ts +++ b/packages/gatsby-telemetry/src/telemetry.ts @@ -1,4 +1,3 @@ -import uuidv4 from "uuid/v4" import * as fs from "fs-extra" import os from "os" import { @@ -6,6 +5,7 @@ import { getCIName, createContentDigest, getTermProgram, + uuid, } from "gatsby-core-utils" import { getRepositoryId as _getRepositoryId, @@ -20,7 +20,7 @@ import { getDependencies } from "./get-dependencies" import isDocker from "is-docker" import lodash from "lodash" -const typedUUIDv4 = uuidv4 as () => string +const typedUUIDv4 = uuid.v4 as () => string const finalEventRegex = /(END|STOP)$/ const dbEngine = `redux` @@ -181,7 +181,7 @@ export class AnalyticsTracker { if (inherited) { p.gatsbyTelemetrySessionId = inherited } else { - p.gatsbyTelemetrySessionId = uuidv4() + p.gatsbyTelemetrySessionId = uuid.v4() process.env.INTERNAL_GATSBY_TELEMETRY_SESSION_ID = p.gatsbyTelemetrySessionId } diff --git a/packages/gatsby-transformer-asciidoc/package.json b/packages/gatsby-transformer-asciidoc/package.json index 5ced40035d3c0..0ab4cadee8a60 100644 --- a/packages/gatsby-transformer-asciidoc/package.json +++ b/packages/gatsby-transformer-asciidoc/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-asciidoc", "description": "Gatsby transformer plugin for Asciidocs using the Asciidoctor.js library", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.2", "author": "Daniel Oliver ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "lodash": "^4.17.21" }, diff --git a/packages/gatsby-transformer-csv/package.json b/packages/gatsby-transformer-csv/package.json index 8b668465252ed..9776409804872 100644 --- a/packages/gatsby-transformer-csv/package.json +++ b/packages/gatsby-transformer-csv/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-csv", "description": "Gatsby transformer plugin for CSV files", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Sonal Saldanha ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "json2csv": "^5.0.6" }, diff --git a/packages/gatsby-transformer-documentationjs/package.json b/packages/gatsby-transformer-documentationjs/package.json index 3d92b400d2111..a543016bea271 100644 --- a/packages/gatsby-transformer-documentationjs/package.json +++ b/packages/gatsby-transformer-documentationjs/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-documentationjs", "description": "Gatsby transformer plugin which uses Documentation.js to extract JavaScript documentation", - "version": "6.0.0-zz-next.1", + "version": "6.0.0-zz-next.2", "author": "Kyle Mathews", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-documentationjs#readme", diff --git a/packages/gatsby-transformer-excel/package.json b/packages/gatsby-transformer-excel/package.json index a4346d56d79f5..367782efc3329 100644 --- a/packages/gatsby-transformer-excel/package.json +++ b/packages/gatsby-transformer-excel/package.json @@ -1,19 +1,19 @@ { "name": "gatsby-transformer-excel", "description": "Gatsby transformer plugin for Excel spreadsheets", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "SheetJS ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { "@babel/runtime": "^7.15.4", - "xlsx": "^0.17.0" + "xlsx": "^0.17.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-excel#readme", diff --git a/packages/gatsby-transformer-hjson/package.json b/packages/gatsby-transformer-hjson/package.json index e491e5b839352..1a81e83f77943 100644 --- a/packages/gatsby-transformer-hjson/package.json +++ b/packages/gatsby-transformer-hjson/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-hjson", "description": "Gatsby transformer plugin for HJSON files", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Remi Barraquand ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-hjson#readme", diff --git a/packages/gatsby-transformer-javascript-frontmatter/package.json b/packages/gatsby-transformer-javascript-frontmatter/package.json index 0c47e38c86d92..5bfbe6fb5ef5a 100644 --- a/packages/gatsby-transformer-javascript-frontmatter/package.json +++ b/packages/gatsby-transformer-javascript-frontmatter/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-javascript-frontmatter", "description": "Gatsby transformer plugin for JavaScript to extract exports.frontmatter statically.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Jacob Bolda ", "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-javascript-frontmatter#readme", "dependencies": { @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "keywords": [ diff --git a/packages/gatsby-transformer-javascript-static-exports/package.json b/packages/gatsby-transformer-javascript-static-exports/package.json index 60aa331548f25..8e29b1fb8cc3f 100644 --- a/packages/gatsby-transformer-javascript-static-exports/package.json +++ b/packages/gatsby-transformer-javascript-static-exports/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-javascript-static-exports", "description": "Gatsby transformer plugin for JavaScript to extract exports.data statically.", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Jacob Bolda ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-javascript-static-exports#readme", diff --git a/packages/gatsby-transformer-json/README.md b/packages/gatsby-transformer-json/README.md index a08ad6f346485..212c1f49469f3 100644 --- a/packages/gatsby-transformer-json/README.md +++ b/packages/gatsby-transformer-json/README.md @@ -7,7 +7,7 @@ arrays of objects and single objects. `npm install gatsby-transformer-json` -If you want to transform json files, you also need to have `gatsby-source-filesystem` installed and configured so it +If you want to transform JSON files, you also need to have `gatsby-source-filesystem` installed and configured so it points to your files. ## How to use @@ -255,3 +255,7 @@ If you can rewrite your data with objects, you should be good to go: ``` Else, if your data doesn't have a consistent schema, like [TopoJSON files](https://en.wikipedia.org/wiki/GeoJSON#TopoJSON), or you can't rewrite it, consider placing the JSON file inside the [`static` folder](/docs/static-folder/#when-to-use-the-static-folder) and use the dynamic import syntax (`import('/static/myjson.json')`) within the `componentDidMount` lifecycle or the `useEffect` hook. + +### `id` and `jsonId` key + +If your data contains an `id` key the transformer will automatically convert this key to `jsonId` as `id` is a reserved internal keyword for Gatsby. diff --git a/packages/gatsby-transformer-json/package.json b/packages/gatsby-transformer-json/package.json index 8f4d0c99d5650..2d370d3b79242 100644 --- a/packages/gatsby-transformer-json/package.json +++ b/packages/gatsby-transformer-json/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-json", "description": "Gatsby transformer plugin for JSON files", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-json#readme", diff --git a/packages/gatsby-transformer-json/src/__tests__/__snapshots__/gatsby-node.js.snap b/packages/gatsby-transformer-json/src/__tests__/__snapshots__/gatsby-node.js.snap index 1a73e5909bc94..50f42e8ac1ce7 100644 --- a/packages/gatsby-transformer-json/src/__tests__/__snapshots__/gatsby-node.js.snap +++ b/packages/gatsby-transformer-json/src/__tests__/__snapshots__/gatsby-node.js.snap @@ -1,56 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Process JSON nodes correctly coerces an id field to always be a String 1`] = ` -Array [ - Array [ - Object { - "blue": true, - "children": Array [], - "funny": "yup", - "id": "12345", - "internal": Object { - "contentDigest": "contentDigest", - "type": "FooJson", - }, - "parent": "whatever", - }, - ], -] -`; - -exports[`Process JSON nodes correctly coerces an id field to always be a String 2`] = ` -Array [ - Array [ - Object { - "child": Object { - "blue": true, - "children": Array [], - "funny": "yup", - "id": "12345", - "internal": Object { - "contentDigest": "contentDigest", - "type": "FooJson", - }, - "parent": "whatever", - }, - "parent": Object { - "children": Array [], - "content": "{\\"id\\":12345,\\"blue\\":true,\\"funny\\":\\"yup\\"}", - "dir": "/foo/", - "id": "whatever", - "internal": Object { - "contentDigest": "whatever", - "mediaType": "application/json", - "type": "File", - }, - "name": "nodeName", - "parent": null, - }, - }, - ], -] -`; - exports[`Process JSON nodes correctly correctly creates a node from JSON which is a single object 1`] = ` Array [ Array [ @@ -58,11 +7,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "FooJson", }, + "jsonId": "foo", "parent": "whatever", }, ], @@ -77,11 +27,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "FooJson", }, + "jsonId": "foo", "parent": "whatever", }, "parent": Object { @@ -109,11 +60,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NotFileJson", }, + "jsonId": "foo", "parent": "whatever", }, ], @@ -128,11 +80,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NotFileJson", }, + "jsonId": "foo", "parent": "whatever", }, "parent": Object { @@ -158,11 +111,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NodeNameJson", }, + "jsonId": "foo", "parent": "whatever", }, ], @@ -190,11 +144,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NodeNameJson", }, + "jsonId": "foo", "parent": "whatever", }, "parent": Object { @@ -250,11 +205,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NotFileJson", }, + "jsonId": "foo", "parent": "whatever", }, ], @@ -282,11 +238,12 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "foo", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "NotFileJson", }, + "jsonId": "foo", "parent": "whatever", }, "parent": Object { @@ -330,3 +287,56 @@ Array [ ], ] `; + +exports[`Process JSON nodes correctly creates a jsonId key if id was given 1`] = ` +Array [ + Array [ + Object { + "blue": true, + "children": Array [], + "funny": "yup", + "id": "uuid-from-gatsby", + "internal": Object { + "contentDigest": "contentDigest", + "type": "FooJson", + }, + "jsonId": "123", + "parent": "whatever", + }, + ], +] +`; + +exports[`Process JSON nodes correctly creates a jsonId key if id was given 2`] = ` +Array [ + Array [ + Object { + "child": Object { + "blue": true, + "children": Array [], + "funny": "yup", + "id": "uuid-from-gatsby", + "internal": Object { + "contentDigest": "contentDigest", + "type": "FooJson", + }, + "jsonId": "123", + "parent": "whatever", + }, + "parent": Object { + "children": Array [], + "content": "{\\"id\\":\\"123\\",\\"blue\\":true,\\"funny\\":\\"yup\\"}", + "dir": "/foo/", + "id": "whatever", + "internal": Object { + "contentDigest": "whatever", + "mediaType": "application/json", + "type": "File", + }, + "name": "nodeName", + "parent": null, + }, + }, + ], +] +`; diff --git a/packages/gatsby-transformer-json/src/__tests__/gatsby-node.js b/packages/gatsby-transformer-json/src/__tests__/gatsby-node.js index 00d3b555fe5ca..9f9c9558c590b 100644 --- a/packages/gatsby-transformer-json/src/__tests__/gatsby-node.js +++ b/packages/gatsby-transformer-json/src/__tests__/gatsby-node.js @@ -93,8 +93,8 @@ describe(`Process JSON nodes correctly`, () => { }) }) - it(`coerces an id field to always be a String`, async () => { - const data = { id: 12345, blue: true, funny: `yup` } + it(`creates a jsonId key if id was given`, async () => { + const data = { id: `123`, blue: true, funny: `yup` } const node = { ...baseFileNode, content: JSON.stringify(data), diff --git a/packages/gatsby-transformer-json/src/gatsby-node.js b/packages/gatsby-transformer-json/src/gatsby-node.js index b69fc66a03170..69f00962744c9 100644 --- a/packages/gatsby-transformer-json/src/gatsby-node.js +++ b/packages/gatsby-transformer-json/src/gatsby-node.js @@ -39,6 +39,9 @@ async function onCreateNode( type, }, } + if (obj.id) { + jsonNode[`jsonId`] = obj.id + } createNode(jsonNode) createParentChildLink({ parent: node, child: jsonNode }) } @@ -60,16 +63,14 @@ async function onCreateNode( parsedContent.forEach((obj, i) => { transformObject( obj, - obj.id ? String(obj.id) : createNodeId(`${node.id} [${i}] >>> JSON`), + createNodeId(`${node.id} [${i}] >>> JSON`), getType({ node, object: obj, isArray: true }) ) }) } else if (_.isPlainObject(parsedContent)) { transformObject( parsedContent, - parsedContent.id - ? String(parsedContent.id) - : createNodeId(`${node.id} >>> JSON`), + createNodeId(`${node.id} >>> JSON`), getType({ node, object: parsedContent, isArray: false }) ) } diff --git a/packages/gatsby-transformer-pdf/package.json b/packages/gatsby-transformer-pdf/package.json index c9883f90829e2..bb7bcb54fb351 100644 --- a/packages/gatsby-transformer-pdf/package.json +++ b/packages/gatsby-transformer-pdf/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-pdf", "description": "Gatsby transformer plugin for pdf files", - "version": "3.0.0-zz-next.1", + "version": "3.0.0-zz-next.2", "author": "Alex Munoz ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-pdf#readme", diff --git a/packages/gatsby-transformer-react-docgen/package.json b/packages/gatsby-transformer-react-docgen/package.json index 2c57326e6f27c..5e8f5352a6c74 100644 --- a/packages/gatsby-transformer-react-docgen/package.json +++ b/packages/gatsby-transformer-react-docgen/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-react-docgen", "description": "Expose React component metadata and prop information as GraphQL types", - "version": "7.0.0-zz-next.1", + "version": "7.0.0-zz-next.2", "author": "Jason Quense ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -17,7 +17,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "lodash": "^4.17.21" }, diff --git a/packages/gatsby-transformer-remark/README.md b/packages/gatsby-transformer-remark/README.md index ce8158e15db1b..6c012fe738ebe 100644 --- a/packages/gatsby-transformer-remark/README.md +++ b/packages/gatsby-transformer-remark/README.md @@ -1,6 +1,6 @@ # gatsby-transformer-remark -Parses Markdown files using [Remark](http://remark.js.org/). +Parses Markdown files using [remark](http://remark.js.org/). ## Install @@ -32,7 +32,7 @@ plugins: - `options.gfm` A full explanation of how to use markdown in Gatsby can be found here: -[Creating a Blog with Gatsby](https://www.gatsbyjs.org/blog/2017-07-19-creating-a-blog-with-gatsby/) +[Adding Markdown Pages](https://www.gatsbyjs.com/docs/how-to/routing/adding-markdown-pages/) There are many Gatsby Remark plugins which you can install to customize how Markdown is processed. Many of them are demoed at https://using-remark.gatsbyjs.org/. See also the [source code for using-remark](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-remark). @@ -40,13 +40,12 @@ There are many Gatsby Remark plugins which you can install to customize how Mark It recognizes files with the following extensions as Markdown: -- md -- markdown +- `md` +- `markdown` Each Markdown file is parsed into a node of type `MarkdownRemark`. -All frontmatter fields are converted into GraphQL fields. TODO link to docs on -auto-inferring types/fields. +All frontmatter fields are converted into GraphQL fields through [inference](https://www.gatsbyjs.com/docs/glossary/#inference). This plugin adds additional fields to the `MarkdownRemark` GraphQL type including `html`, `excerpt`, `headings`, etc. Other Gatsby plugins can also add @@ -93,9 +92,9 @@ Using the following GraphQL query you'll be able to get the table of contents } ``` -### Configuring the tableOfContents +### Configuring the `tableOfContents` -By default, `absolute` is set to false, generating a relative path. If you'd like to generate an absolute path, pass `absolute: true`. In that case, be sure to pass the `pathToSlugField` parameter, often `fields.slug`, to create absolute URLs. **Note** that providing a non-existent field will cause the result to be null. To alter the default values for tableOfContents generation, include values for `heading` (string) and/or `maxDepth` (number 1 to 6) in GraphQL query. If a value for `heading` is given, the first heading that matches will be omitted and the toc is generated from the next heading of the same depth onwards. Value for `maxDepth` sets the maximum depth of the toc (i.e. if a maxDepth of 3 is set, only h1 to h3 headings will appear in the toc). +By default, `absolute` is set to `false`, generating a relative path. If you'd like to generate an absolute path, pass `absolute: true`. In that case, be sure to pass the `pathToSlugField` parameter, often `fields.slug`, to create absolute URLs. **Note** that providing a non-existent field will cause the result to be `null`. To alter the default values for `tableOfContents` generation, include values for `heading` (string) and/or `maxDepth` (number 1 to 6) in GraphQL query. If a value for `heading` is given, the first heading that matches will be omitted and the ToC is generated from the next heading of the same depth onwards. Value for `maxDepth` sets the maximum depth of the toc (i.e. if a maxDepth of 3 is set, only h1 to h3 headings will appear in the toc). ```graphql { @@ -119,7 +118,7 @@ By default, `absolute` is set to false, generating a relative path. If you'd lik } ``` -To pass default options to the plugin generating the tableOfContents, configure it in gatsby-config.js as shown below. The options shown below are the defaults used by the plugin. +To pass default options to the plugin generating the `tableOfContents`, configure it in `gatsby-config.js` as shown below. The options shown below are the defaults used by the plugin. ```javascript // In your gatsby-config.js @@ -171,7 +170,7 @@ By default, Gatsby will return excerpts as plain text. This might be useful for } ``` -It's also possible to ask Gatsby to return excerpts formatted as HTML. You might use this if you have a blog post whose excerpt contains markdown content--e.g. header, link, etc.--and you want these links to render as HTML. +It's also possible to ask Gatsby to return excerpts formatted as HTML. You might use this if you have a blog post whose excerpt contains markdown content -- e.g. header, link, etc. -- and you want these links to render as HTML. ```graphql { @@ -199,9 +198,9 @@ You can also get excerpts in Markdown format. } ``` -## gray-matter options +## `gray-matter` options -`gatsby-transformer-remark` uses [gray-matter](https://github.com/jonschlinkert/gray-matter) to parse markdown frontmatter, so you can specify any of the options mentioned [here](https://github.com/jonschlinkert/gray-matter#options) in the `gatsby-config.js` file. +`gatsby-transformer-remark` uses [gray-matter](https://github.com/jonschlinkert/gray-matter) to parse Markdown frontmatter, so you can specify any of the options mentioned [here](https://github.com/jonschlinkert/gray-matter#options) in the `gatsby-config.js` file. ### Example: Excerpts diff --git a/packages/gatsby-transformer-remark/package.json b/packages/gatsby-transformer-remark/package.json index 4f184f026e85b..271ac9778b8cf 100644 --- a/packages/gatsby-transformer-remark/package.json +++ b/packages/gatsby-transformer-remark/package.json @@ -1,14 +1,14 @@ { "name": "gatsby-transformer-remark", "description": "Gatsby transformer plugin for Markdown using the Remark library and ecosystem", - "version": "5.0.0-zz-next.1", + "version": "5.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.0.0-zz-next.1", + "gatsby-core-utils": "^3.0.0-zz-next.3", "gray-matter": "^4.0.2", "hast-util-raw": "^6.0.2", "hast-util-to-html": "^7.1.2", @@ -33,9 +33,9 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", - "gatsby-plugin-utils": "^2.0.0-zz-next.1" + "gatsby-plugin-utils": "^2.0.0-zz-next.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-remark#readme", "keywords": [ diff --git a/packages/gatsby-transformer-remark/src/gatsby-node.js b/packages/gatsby-transformer-remark/src/gatsby-node.js index bfbb692b17838..7cd8b3c3d3451 100644 --- a/packages/gatsby-transformer-remark/src/gatsby-node.js +++ b/packages/gatsby-transformer-remark/src/gatsby-node.js @@ -9,10 +9,6 @@ exports.setFieldsOnGraphQLNodeType = require(`./extend-node-type`) exports.pluginOptionsSchema = function ({ Joi }) { return Joi.object({ - // Options `commonmark` and `pedantic` have no effect since gatsby-transformer-remark@4.0.0 - // TODO: remove in v5 - commonmark: Joi.any(), - pedantic: Joi.any(), footnotes: Joi.boolean().description( `Activates Footnotes mode (default: true)` ), diff --git a/packages/gatsby-transformer-screenshot/lambda/package.json b/packages/gatsby-transformer-screenshot/lambda/package.json index b2ec0bd7671b2..39bc7c6dc1d93 100644 --- a/packages/gatsby-transformer-screenshot/lambda/package.json +++ b/packages/gatsby-transformer-screenshot/lambda/package.json @@ -5,7 +5,7 @@ "puppeteer-core": "^3.3.0" }, "devDependencies": { - "aws-sdk": "^2.980.0" + "aws-sdk": "^2.999.0" }, "keywords": [], "engines": { diff --git a/packages/gatsby-transformer-screenshot/package.json b/packages/gatsby-transformer-screenshot/package.json index b077a82a37ef5..2192cf7ecf4ff 100644 --- a/packages/gatsby-transformer-screenshot/package.json +++ b/packages/gatsby-transformer-screenshot/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-screenshot", "description": "Gatsby transformer plugin that uses AWS Lambda to take screenshots of websites", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "David Beckley ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-screenshot#readme", diff --git a/packages/gatsby-transformer-sharp/package.json b/packages/gatsby-transformer-sharp/package.json index fdc4f7ac69b59..a2846ab07b777 100644 --- a/packages/gatsby-transformer-sharp/package.json +++ b/packages/gatsby-transformer-sharp/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-sharp", "description": "Gatsby transformer plugin for images using Sharp", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.3", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,13 +14,13 @@ "potrace": "^2.1.8", "probe-image-size": "^6.0.0", "semver": "^7.3.5", - "sharp": "^0.29.0" + "sharp": "^0.29.1" }, "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "@types/sharp": "^0.28.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "@types/sharp": "^0.29.2", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-sharp#readme", diff --git a/packages/gatsby-transformer-sqip/.babelrc b/packages/gatsby-transformer-sqip/.babelrc index 31043522b2321..ac0ad292bb087 100644 --- a/packages/gatsby-transformer-sqip/.babelrc +++ b/packages/gatsby-transformer-sqip/.babelrc @@ -1,3 +1,3 @@ { - "presets": [["babel-preset-gatsby-package", { "browser": true }]] + "presets": [["babel-preset-gatsby-package"]] } diff --git a/packages/gatsby-transformer-sqip/CHANGELOG.md b/packages/gatsby-transformer-sqip/CHANGELOG.md index 71c8ce2ebb305..fceeb8b2f32ac 100644 --- a/packages/gatsby-transformer-sqip/CHANGELOG.md +++ b/packages/gatsby-transformer-sqip/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [3.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby-transformer-sqip@3.14.1/packages/gatsby-transformer-sqip) (2021-10-06) + +**Note:** Version bump only for package gatsby-transformer-sqip + ## [3.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby-transformer-sqip@3.14.0/packages/gatsby-transformer-sqip) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby-transformer-sqip/package.json b/packages/gatsby-transformer-sqip/package.json index 0133a0318aecb..c3a66e7b7bde9 100644 --- a/packages/gatsby-transformer-sqip/package.json +++ b/packages/gatsby-transformer-sqip/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-sqip", "description": "Generates geometric primitive version of images", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.6", "author": "Benedikt Rötsch ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -9,7 +9,7 @@ "dependencies": { "@babel/runtime": "^7.15.4", "fs-extra": "^10.0.0", - "gatsby-plugin-sharp": "^4.0.0-zz-next.1", + "gatsby-plugin-sharp": "^4.0.0-zz-next.6", "md5-file": "^5.0.0", "mini-svg-data-uri": "^1.3.3", "p-queue": "^6.6.2", @@ -18,7 +18,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "debug": "^4.3.2" }, diff --git a/packages/gatsby-transformer-sqip/src/extend-node-type.js b/packages/gatsby-transformer-sqip/src/extend-node-type.js index 2c88f595d6b8b..a2ac87123e7d8 100644 --- a/packages/gatsby-transformer-sqip/src/extend-node-type.js +++ b/packages/gatsby-transformer-sqip/src/extend-node-type.js @@ -1,22 +1,22 @@ -const { resolve } = require(`path`) -const md5File = require(`md5-file`) - -const { - DuotoneGradientType, - ImageCropFocusType, -} = require(`gatsby-transformer-sharp/types`) -const { queueImageResizing } = require(`gatsby-plugin-sharp`) +const path = require(`path`) const Debug = require(`debug`) const fs = require(`fs-extra`) +const sharp = require(`sharp`) +const md5File = require(`md5-file`) + const { GraphQLObjectType, GraphQLString, GraphQLInt, GraphQLBoolean, } = require(`gatsby/graphql`) -const sharp = require(`sharp`) -const { ensureDir } = require(`fs-extra`) +const { queueImageResizing } = require(`gatsby-plugin-sharp`) +const { fetchRemoteFile } = require(`gatsby-core-utils`) +const { + DuotoneGradientType, + ImageCropFocusType, +} = require(`gatsby-transformer-sharp/types`) const generateSqip = require(`./generate-sqip`) @@ -42,13 +42,13 @@ module.exports = async args => { return {} } -async function sqipSharp({ cache, getNodeAndSavePathDependency, store }) { +async function sqipSharp({ type, cache, getNodeAndSavePathDependency, store }) { const program = store.getState().program - const cacheDir = resolve( + const cacheDir = path.resolve( `${program.directory}/node_modules/.cache/gatsby-transformer-sqip/` ) - await ensureDir(cacheDir) + await fs.ensureDir(cacheDir) return { sqip: { @@ -135,19 +135,17 @@ async function sqipSharp({ cache, getNodeAndSavePathDependency, store }) { } } -async function sqipContentful({ cache, store, reporter }) { +async function sqipContentful({ type, cache, store }) { const { schemes: { ImageResizingBehavior, ImageCropFocusType }, } = require(`gatsby-source-contentful`) - const cacheImage = require(`gatsby-source-contentful/cache-image`) - const program = store.getState().program - const cacheDir = resolve( + const cacheDir = path.resolve( `${program.directory}/node_modules/.cache/gatsby-transformer-sqip/` ) - await ensureDir(cacheDir) + await fs.ensureDir(cacheDir) return { sqip: { @@ -192,7 +190,12 @@ async function sqipContentful({ cache, store, reporter }) { }, async resolve(asset, fieldArgs) { const { - file: { contentType }, + createUrl, + mimeTypeExtensions, + } = require(`gatsby-source-contentful/extend-node-type`) + + const { + file: { contentType, url: imgUrl, fileName }, } = asset if (!contentType.includes(`image/`)) { @@ -223,7 +226,16 @@ async function sqipContentful({ cache, store, reporter }) { background, } - const absolutePath = await cacheImage(store, asset, options, reporter) + const extension = mimeTypeExtensions.get(contentType) + const url = createUrl(imgUrl, options) + const name = path.basename(fileName, extension) + + const absolutePath = await fetchRemoteFile({ + url, + name, + cache, + ext: extension, + }) const contentDigest = await md5File(absolutePath) diff --git a/packages/gatsby-transformer-toml/package.json b/packages/gatsby-transformer-toml/package.json index 032201d060b73..67072b7dad874 100644 --- a/packages/gatsby-transformer-toml/package.json +++ b/packages/gatsby-transformer-toml/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-toml", "description": "Gatsby transformer plugin for toml", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Ruben Harutyunyan ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -14,7 +14,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-toml#readme", diff --git a/packages/gatsby-transformer-xml/package.json b/packages/gatsby-transformer-xml/package.json index c324f2b7fc1c4..0792066b4fccd 100644 --- a/packages/gatsby-transformer-xml/package.json +++ b/packages/gatsby-transformer-xml/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-xml", "description": "Gatsby plugin for parsing XML files. It supports also attributes", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-xml#readme", diff --git a/packages/gatsby-transformer-yaml/README.md b/packages/gatsby-transformer-yaml/README.md index 6eca02e0b10ce..993a79ec44123 100644 --- a/packages/gatsby-transformer-yaml/README.md +++ b/packages/gatsby-transformer-yaml/README.md @@ -238,3 +238,9 @@ module.exports = { } } ``` + +## Troubleshooting + +### `id` and `yamlId` key + +If your data contains an `id` key the transformer will automatically convert this key to `yamlId` as `id` is a reserved internal keyword for Gatsby. diff --git a/packages/gatsby-transformer-yaml/package.json b/packages/gatsby-transformer-yaml/package.json index d8750a8f61f8e..d5f6f3118ed03 100644 --- a/packages/gatsby-transformer-yaml/package.json +++ b/packages/gatsby-transformer-yaml/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-yaml", "description": "Gatsby transformer plugin for yaml", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -15,7 +15,7 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/core": "^7.15.5", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-yaml#readme", diff --git a/packages/gatsby-transformer-yaml/src/__tests__/__snapshots__/gatsby-node.js.snap b/packages/gatsby-transformer-yaml/src/__tests__/__snapshots__/gatsby-node.js.snap index c5afb63dc4de7..0368a176b73b4 100644 --- a/packages/gatsby-transformer-yaml/src/__tests__/__snapshots__/gatsby-node.js.snap +++ b/packages/gatsby-transformer-yaml/src/__tests__/__snapshots__/gatsby-node.js.snap @@ -313,12 +313,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "FooBarYaml", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -332,12 +333,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "FooBarYaml", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], @@ -368,12 +370,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "fixed", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -387,12 +390,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "fixed", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], @@ -423,12 +427,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "yup", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -442,12 +447,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "yup", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], @@ -772,12 +778,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "OtherYaml", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -791,12 +798,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "OtherYaml", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], @@ -825,12 +833,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "fixed", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -844,12 +853,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "fixed", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], @@ -878,12 +888,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "yup", }, "parent": "whatever", + "yamlId": "some", }, ], ] @@ -897,12 +908,13 @@ Array [ "blue": true, "children": Array [], "funny": "yup", - "id": "some", + "id": "uuid-from-gatsby", "internal": Object { "contentDigest": "contentDigest", "type": "yup", }, "parent": "whatever", + "yamlId": "some", }, "parent": Object { "children": Array [], diff --git a/packages/gatsby-transformer-yaml/src/gatsby-node.js b/packages/gatsby-transformer-yaml/src/gatsby-node.js index 850d65277c5b1..2d9ca9064e9dc 100644 --- a/packages/gatsby-transformer-yaml/src/gatsby-node.js +++ b/packages/gatsby-transformer-yaml/src/gatsby-node.js @@ -39,6 +39,9 @@ async function onCreateNode( type, }, } + if (obj.id) { + yamlNode[`yamlId`] = obj.id + } createNode(yamlNode) createParentChildLink({ parent: node, child: yamlNode }) } @@ -52,14 +55,14 @@ async function onCreateNode( parsedContent.forEach((obj, i) => { transformObject( obj, - obj.id ? obj.id : createNodeId(`${node.id} [${i}] >>> YAML`), + createNodeId(`${node.id} [${i}] >>> YAML`), getType({ node, object: obj, isArray: true }) ) }) } else if (_.isPlainObject(parsedContent)) { transformObject( parsedContent, - parsedContent.id ? parsedContent.id : createNodeId(`${node.id} >>> YAML`), + createNodeId(`${node.id} >>> YAML`), getType({ node, object: parsedContent, isArray: false }) ) } diff --git a/packages/gatsby-worker/package.json b/packages/gatsby-worker/package.json index 14494724122b6..50694bcff7486 100644 --- a/packages/gatsby-worker/package.json +++ b/packages/gatsby-worker/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-worker", "description": "Utility to create worker pools", - "version": "1.0.0-zz-next.1", + "version": "1.0.0-zz-next.4", "author": "Michal Piechowiak", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,10 +13,10 @@ "devDependencies": { "@babel/cli": "^7.15.4", "@babel/register": "^7.15.3", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "cross-env": "^7.0.3", "rimraf": "^3.0.2", - "typescript": "^4.3.5" + "typescript": "^4.4.3" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-worker#readme", "keywords": [ diff --git a/packages/gatsby-worker/src/index.ts b/packages/gatsby-worker/src/index.ts index e650f741fba0a..1d43864b93a72 100644 --- a/packages/gatsby-worker/src/index.ts +++ b/packages/gatsby-worker/src/index.ts @@ -38,18 +38,17 @@ type WrapReturnInArray = MaybeFunction extends ( ? (...a: Parameters) => Array> : never -export type CreateWorkerPoolType = WorkerPool & - { - [FunctionName in keyof ExposedFunctions]: EnsureFunctionReturnsAPromise< - ExposedFunctions[FunctionName] +export type CreateWorkerPoolType = WorkerPool & { + [FunctionName in keyof ExposedFunctions]: EnsureFunctionReturnsAPromise< + ExposedFunctions[FunctionName] + > +} & { + all: { + [FunctionName in keyof ExposedFunctions]: WrapReturnInArray< + EnsureFunctionReturnsAPromise > - } & { - all: { - [FunctionName in keyof ExposedFunctions]: WrapReturnInArray< - EnsureFunctionReturnsAPromise - > - } } +} const childWrapperPath = require.resolve(`./child`) diff --git a/packages/gatsby/CHANGELOG.md b/packages/gatsby/CHANGELOG.md index 95a632165b1d8..60bea8f6c8e13 100644 --- a/packages/gatsby/CHANGELOG.md +++ b/packages/gatsby/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [3.14.2](https://github.com/gatsbyjs/gatsby/commits/gatsby@3.14.2/packages/gatsby) (2021-10-06) + +#### Features + +- Don't crash the build process when in preview mode [#33184](https://github.com/gatsbyjs/gatsby/issues/33184) [#33433](https://github.com/gatsbyjs/gatsby/issues/33433) ([1604efb](https://github.com/gatsbyjs/gatsby/commit/1604efbdde97c138b11626923875ae118f7b5e67)) + +#### Bug Fixes + +- postcss-svgo - remove plugin removeAttrs [#33266](https://github.com/gatsbyjs/gatsby/issues/33266) [#33434](https://github.com/gatsbyjs/gatsby/issues/33434) ([07f1990](https://github.com/gatsbyjs/gatsby/commit/07f1990f2d01b1c6b5def457d418294fafe3a5ea)) + +### [3.14.1](https://github.com/gatsbyjs/gatsby/commits/gatsby@3.14.1/packages/gatsby) (2021-09-30) + +#### Bug Fixes + +- unblock event loop when running queries [#33338](https://github.com/gatsbyjs/gatsby/issues/33338) [#33342](https://github.com/gatsbyjs/gatsby/issues/33342) ([6840b5f](https://github.com/gatsbyjs/gatsby/commit/6840b5f3fbabbc4dd4e23e897759c9f92a204abd)) + ## [3.14.0](https://github.com/gatsbyjs/gatsby/commits/gatsby@3.14.0/packages/gatsby) (2021-09-18) [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v3.14) diff --git a/packages/gatsby/cache-dir/__tests__/__snapshots__/dev-loader.js.snap b/packages/gatsby/cache-dir/__tests__/__snapshots__/dev-loader.js.snap index b8e48f1681c55..5ba039d7796d9 100644 --- a/packages/gatsby/cache-dir/__tests__/__snapshots__/dev-loader.js.snap +++ b/packages/gatsby/cache-dir/__tests__/__snapshots__/dev-loader.js.snap @@ -8,6 +8,7 @@ Object { }, "page": Object { "componentChunkName": "chunk", + "getServerDataError": undefined, "matchPath": undefined, "path": "/mypage/", "staticQueryHashes": Array [], diff --git a/packages/gatsby/cache-dir/__tests__/__snapshots__/loader.js.snap b/packages/gatsby/cache-dir/__tests__/__snapshots__/loader.js.snap index 362789b85695d..58192c541ddf4 100644 --- a/packages/gatsby/cache-dir/__tests__/__snapshots__/loader.js.snap +++ b/packages/gatsby/cache-dir/__tests__/__snapshots__/loader.js.snap @@ -8,6 +8,7 @@ Object { }, "page": Object { "componentChunkName": "chunk", + "getServerDataError": undefined, "matchPath": undefined, "path": "/mypage/", "staticQueryHashes": Array [], diff --git a/packages/gatsby/cache-dir/__tests__/dev-loader.js b/packages/gatsby/cache-dir/__tests__/dev-loader.js index 2bf9d101daa82..d58098a5d28f7 100644 --- a/packages/gatsby/cache-dir/__tests__/dev-loader.js +++ b/packages/gatsby/cache-dir/__tests__/dev-loader.js @@ -205,12 +205,16 @@ describe(`Dev loader`, () => { const expectation = { status: `error`, - pagePath: `/error-page`, + pagePath: `/500.html`, + internalServerError: true, + retries: 3, } + expect(await devLoader.loadPageDataJson(`/error-page/`)).toEqual({ status: `error`, pagePath: `/dev-404-page`, retries: 3, + internalServerError: true, }) expect(devLoader.pageDataDb.get(`/error-page`)).toEqual(expectation) expect(xhrCount).toBe(1) @@ -478,26 +482,32 @@ describe(`Dev loader`, () => { describe(`prefetch`, () => { const flushPromises = () => new Promise(resolve => setImmediate(resolve)) - it(`shouldn't prefetch when shouldPrefetch is false`, () => { - const devLoader = new DevLoader(asyncRequires, []) + it(`shouldn't prefetch when shouldPrefetch is false`, async () => { + jest.useFakeTimers() + const devLoader = new DevLoader(null, []) devLoader.shouldPrefetch = jest.fn(() => false) devLoader.doPrefetch = jest.fn() devLoader.apiRunner = jest.fn() + const prefetchPromise = devLoader.prefetch(`/mypath/`) + jest.runAllTimers() - expect(devLoader.prefetch(`/mypath/`)).toBe(false) + expect(await prefetchPromise).toBe(false) expect(devLoader.shouldPrefetch).toHaveBeenCalledWith(`/mypath/`) expect(devLoader.apiRunner).not.toHaveBeenCalled() expect(devLoader.doPrefetch).not.toHaveBeenCalled() }) - it(`should trigger custom prefetch logic when core is disabled`, () => { - const devLoader = new DevLoader(asyncRequires, []) + it(`should trigger custom prefetch logic when core is disabled`, async () => { + jest.useFakeTimers() + const devLoader = new DevLoader(null, []) devLoader.shouldPrefetch = jest.fn(() => true) devLoader.doPrefetch = jest.fn() devLoader.apiRunner = jest.fn() devLoader.prefetchDisabled = true - expect(devLoader.prefetch(`/mypath/`)).toBe(false) + const prefetchPromise = devLoader.prefetch(`/mypath/`) + jest.runAllTimers() + expect(await prefetchPromise).toBe(false) expect(devLoader.shouldPrefetch).toHaveBeenCalledWith(`/mypath/`) expect(devLoader.apiRunner).toHaveBeenCalledWith(`onPrefetchPathname`, { pathname: `/mypath/`, @@ -507,12 +517,14 @@ describe(`Dev loader`, () => { it(`should prefetch when not yet triggered`, async () => { jest.useFakeTimers() - const devLoader = new DevLoader(asyncRequires, []) + const devLoader = new DevLoader(null, []) devLoader.shouldPrefetch = jest.fn(() => true) devLoader.apiRunner = jest.fn() devLoader.doPrefetch = jest.fn(() => Promise.resolve({})) + const prefetchPromise = devLoader.prefetch(`/mypath/`) + jest.runAllTimers() - expect(devLoader.prefetch(`/mypath/`)).toBe(true) + expect(await prefetchPromise).toBe(true) // wait for doPrefetchPromise await flushPromises() @@ -528,30 +540,5 @@ describe(`Dev loader`, () => { } ) }) - - it(`should only run apis once`, async () => { - const devLoader = new DevLoader(asyncRequires, []) - devLoader.shouldPrefetch = jest.fn(() => true) - devLoader.apiRunner = jest.fn() - devLoader.doPrefetch = jest.fn(() => Promise.resolve({})) - - expect(devLoader.prefetch(`/mypath/`)).toBe(true) - expect(devLoader.prefetch(`/mypath/`)).toBe(true) - - // wait for doPrefetchPromise - await flushPromises() - - expect(devLoader.apiRunner).toHaveBeenCalledTimes(2) - expect(devLoader.apiRunner).toHaveBeenNthCalledWith( - 1, - `onPrefetchPathname`, - expect.anything() - ) - expect(devLoader.apiRunner).toHaveBeenNthCalledWith( - 2, - `onPostPrefetchPathname`, - expect.anything() - ) - }) }) }) diff --git a/packages/gatsby/cache-dir/__tests__/ensure-resources.tsx b/packages/gatsby/cache-dir/__tests__/ensure-resources.tsx index 8d5841c614fbd..472617ee2b983 100644 --- a/packages/gatsby/cache-dir/__tests__/ensure-resources.tsx +++ b/packages/gatsby/cache-dir/__tests__/ensure-resources.tsx @@ -22,6 +22,7 @@ describe(`EnsureResources`, () => { it(`loads pages synchronously`, () => { const location = { pathname: `/`, + search: ``, } const { container } = render( diff --git a/packages/gatsby/cache-dir/__tests__/loader.js b/packages/gatsby/cache-dir/__tests__/loader.js index c2857c2312fd0..11b40db88284a 100644 --- a/packages/gatsby/cache-dir/__tests__/loader.js +++ b/packages/gatsby/cache-dir/__tests__/loader.js @@ -187,14 +187,16 @@ describe(`Production loader`, () => { expect(xhrCount).toBe(2) }) - it(`should return an error when status is 500`, async () => { + it(`should return an error when status is 500 and 500.html is not available`, async () => { const prodLoader = new ProdLoader(null, []) mockPageData(`/error-page`, 500) const expectation = { status: `error`, - pagePath: `/error-page`, + pagePath: `/500.html`, + internalServerError: true, + retries: 3, } expect(await prodLoader.loadPageDataJson(`/error-page/`)).toEqual( expectation @@ -203,6 +205,34 @@ describe(`Production loader`, () => { expect(xhrCount).toBe(1) }) + it(`should return an error when status is 500 and 500.html is available`, async () => { + const prodLoader = new ProdLoader(null, []) + + mockPageData(`/error-page`, 500) + mockPageData( + `/500.html`, + 200, + { + path: `/500.html`, + }, + true + ) + + const expectation = { + status: `success`, + pagePath: `/500.html`, + internalServerError: true, + payload: { + path: `/500.html`, + }, + } + expect(await prodLoader.loadPageDataJson(`/error-page/`)).toEqual( + expectation + ) + expect(prodLoader.pageDataDb.get(`/error-page`)).toEqual(expectation) + expect(xhrCount).toBe(2) + }) + it(`should retry 3 times before returning an error`, async () => { const prodLoader = new ProdLoader(null, []) @@ -486,26 +516,32 @@ describe(`Production loader`, () => { describe(`prefetch`, () => { const flushPromises = () => new Promise(resolve => setImmediate(resolve)) - it(`shouldn't prefetch when shouldPrefetch is false`, () => { + it(`shouldn't prefetch when shouldPrefetch is false`, async () => { + jest.useFakeTimers() const prodLoader = new ProdLoader(null, []) prodLoader.shouldPrefetch = jest.fn(() => false) prodLoader.doPrefetch = jest.fn() prodLoader.apiRunner = jest.fn() + const prefetchPromise = prodLoader.prefetch(`/mypath/`) + jest.runAllTimers() - expect(prodLoader.prefetch(`/mypath/`)).toBe(false) + expect(await prefetchPromise).toBe(false) expect(prodLoader.shouldPrefetch).toHaveBeenCalledWith(`/mypath/`) expect(prodLoader.apiRunner).not.toHaveBeenCalled() expect(prodLoader.doPrefetch).not.toHaveBeenCalled() }) - it(`should trigger custom prefetch logic when core is disabled`, () => { + it(`should trigger custom prefetch logic when core is disabled`, async () => { + jest.useFakeTimers() const prodLoader = new ProdLoader(null, []) prodLoader.shouldPrefetch = jest.fn(() => true) prodLoader.doPrefetch = jest.fn() prodLoader.apiRunner = jest.fn() prodLoader.prefetchDisabled = true - expect(prodLoader.prefetch(`/mypath/`)).toBe(false) + const prefetchPromise = prodLoader.prefetch(`/mypath/`) + jest.runAllTimers() + expect(await prefetchPromise).toBe(false) expect(prodLoader.shouldPrefetch).toHaveBeenCalledWith(`/mypath/`) expect(prodLoader.apiRunner).toHaveBeenCalledWith(`onPrefetchPathname`, { pathname: `/mypath/`, @@ -519,8 +555,10 @@ describe(`Production loader`, () => { prodLoader.shouldPrefetch = jest.fn(() => true) prodLoader.apiRunner = jest.fn() prodLoader.doPrefetch = jest.fn(() => Promise.resolve({})) + const prefetchPromise = prodLoader.prefetch(`/mypath/`) + jest.runAllTimers() - expect(prodLoader.prefetch(`/mypath/`)).toBe(true) + expect(await prefetchPromise).toBe(true) // wait for doPrefetchPromise await flushPromises() @@ -538,13 +576,17 @@ describe(`Production loader`, () => { }) it(`should only run apis once`, async () => { + jest.useFakeTimers() const prodLoader = new ProdLoader(null, []) prodLoader.shouldPrefetch = jest.fn(() => true) prodLoader.apiRunner = jest.fn() prodLoader.doPrefetch = jest.fn(() => Promise.resolve({})) + const prefetchPromise = prodLoader.prefetch(`/mypath/`) + const prefetchPromise2 = prodLoader.prefetch(`/mypath/`) + jest.runAllTimers() - expect(prodLoader.prefetch(`/mypath/`)).toBe(true) - expect(prodLoader.prefetch(`/mypath/`)).toBe(true) + expect(await prefetchPromise).toBe(true) + expect(await prefetchPromise2).toBe(true) // wait for doPrefetchPromise await flushPromises() diff --git a/packages/gatsby/cache-dir/app.js b/packages/gatsby/cache-dir/app.js index dfd7cae909877..45f439e57bfd7 100644 --- a/packages/gatsby/cache-dir/app.js +++ b/packages/gatsby/cache-dir/app.js @@ -174,7 +174,7 @@ apiRunnerAsync(`onClientEntry`).then(() => { Promise.all([ loader.loadPage(`/dev-404-page/`), loader.loadPage(`/404.html`), - loader.loadPage(window.location.pathname), + loader.loadPage(window.location.pathname + window.location.search), ]).then(() => { navigationInit() diff --git a/packages/gatsby/cache-dir/dev-loader.js b/packages/gatsby/cache-dir/dev-loader.js index ac8ba1ff302c2..b6c16104a7eab 100644 --- a/packages/gatsby/cache-dir/dev-loader.js +++ b/packages/gatsby/cache-dir/dev-loader.js @@ -14,9 +14,15 @@ function mergePageEntry(cachedPage, newPageData) { ...cachedPage, payload: { ...cachedPage.payload, - json: newPageData.result, + json: { + // For SSR, cachedPage may contain "data" and "serverData" + // But newPageData may contain only "data" or only "serverData" depending on what was updated + ...cachedPage.payload.json, + ...newPageData.result, + }, page: { ...cachedPage.payload.page, + getServerDataError: newPageData.getServerDataError, staticQueryResults: newPageData.staticQueryResults, }, }, @@ -54,6 +60,8 @@ class DevLoader extends BaseLoader { this.handlePageQueryResultHotUpdate(msg) } else if (msg.type === `stalePageData`) { this.handleStalePageDataMessage(msg) + } else if (msg.type === `staleServerData`) { + this.handleStaleServerDataMessage(msg) } }) } else if (process.env.NODE_ENV !== `test`) { @@ -114,10 +122,8 @@ class DevLoader extends BaseLoader { } } - handlePageQueryResultHotUpdate(msg) { - const newPageData = msg.payload.result - - const pageDataDbCacheKey = normalizePagePath(msg.payload.id) + updatePageData = (pagePath, newPageData) => { + const pageDataDbCacheKey = normalizePagePath(pagePath) const cachedPageData = this.pageDataDb.get(pageDataDbCacheKey)?.payload if (!isEqual(newPageData, cachedPageData)) { @@ -161,42 +167,78 @@ class DevLoader extends BaseLoader { } }) } + return true + } + return false + } + + markAsStale = dirtyQueryId => { + if (dirtyQueryId === `/dev-404-page/` || dirtyQueryId === `/404.html`) { + // those pages are not on demand so skipping + return + } - ___emitter.emit(`pageQueryResult`, newPageData) + const normalizedId = normalizePagePath(dirtyQueryId) + + // We can't just delete items in caches, because then + // using history.back() would show dev-404 page + // due to our special handling of it in root.js (loader.isPageNotFound check) + // so instead we mark it as stale and instruct loader's async methods + // to refetch resources if they are marked as stale + + const cachedPageData = this.pageDataDb.get(normalizedId) + if (cachedPageData) { + // if we have page data in cache, mark it as stale + this.pageDataDb.set(normalizedId, { + ...cachedPageData, + stale: true, + }) + } + + const cachedPage = this.pageDb.get(normalizedId) + if (cachedPage) { + // if we have page data in cache, mark it as stale + this.pageDb.set(normalizedId, { + ...cachedPage, + payload: { ...cachedPage.payload, stale: true }, + }) } } - handleStalePageDataMessage(msg) { - msg.payload.stalePageDataPaths.forEach(dirtyQueryId => { - if (dirtyQueryId === `/dev-404-page/` || dirtyQueryId === `/404.html`) { - // those pages are not on demand so skipping - return - } + handlePageQueryResultHotUpdate(msg) { + const updated = this.updatePageData(msg.payload.id, msg.payload.result) + if (updated) { + ___emitter.emit(`pageQueryResult`, msg.payload.result) + } + } - const normalizedId = normalizePagePath(dirtyQueryId) + handleStalePageDataMessage(msg) { + for (const dirtyQueryId of msg.payload.stalePageDataPaths) { + this.markAsStale(dirtyQueryId) + } + } - // We can't just delete items in caches, because then - // using history.back() would show dev-404 page - // due to our special handling of it in root.js (loader.isPageNotFound check) - // so instead we mark it as stale and instruct loader's async methods - // to refetch resources if they are marked as stale + handleStaleServerDataMessage() { + const activePath = normalizePagePath(location.pathname) - const cachedPageData = this.pageDataDb.get(normalizedId) - if (cachedPageData) { - // if we have page data in cache, mark it as stale - this.pageDataDb.set(normalizedId, { - ...cachedPageData, - stale: true, - }) + // For now just invalidate every single page with serverData + for (const [key, value] of this.pageDataDb) { + if (value?.payload?.result?.serverData) { + this.markAsStale(key) + } + if (activePath === normalizePagePath(key)) { + this.reFetchServerData(activePath) } + } + } - const cachedPage = this.pageDb.get(normalizedId) - if (cachedPage) { - // if we have page data in cache, mark it as stale - this.pageDb.set(normalizedId, { - ...cachedPage, - payload: { ...cachedPage.payload, stale: true }, - }) + reFetchServerData(pagePath) { + this.fetchPageDataJson({ pagePath }).then(data => { + const updated = this.updatePageData(data.pagePath, data.payload) + // SSR could be slow, so we should only emit serverDataResult + // when still on the same page + if (updated && pagePath === normalizePagePath(location.pathname)) { + ___emitter.emit(`serverDataResult`, data.payload) } }) } diff --git a/packages/gatsby/cache-dir/ensure-resources.js b/packages/gatsby/cache-dir/ensure-resources.js index 80bbb8d8dcdf9..b1880c92b643b 100644 --- a/packages/gatsby/cache-dir/ensure-resources.js +++ b/packages/gatsby/cache-dir/ensure-resources.js @@ -10,15 +10,20 @@ class EnsureResources extends React.Component { location: { ...location }, pageResources: pageResources || - loader.loadPageSync(location.pathname, { withErrorDetails: true }), + loader.loadPageSync(location.pathname + location.search, { + withErrorDetails: true, + }), } } static getDerivedStateFromProps({ location }, prevState) { if (prevState.location.href !== location.href) { - const pageResources = loader.loadPageSync(location.pathname, { - withErrorDetails: true, - }) + const pageResources = loader.loadPageSync( + location.pathname + location.search, + { + withErrorDetails: true, + } + ) return { pageResources, @@ -48,7 +53,9 @@ class EnsureResources extends React.Component { shouldComponentUpdate(nextProps, nextState) { // Always return false if we're missing resources. if (!nextState.pageResources) { - this.loadResources(nextProps.location.pathname) + this.loadResources( + nextProps.location.pathname + nextProps.location.search + ) return false } @@ -56,7 +63,9 @@ class EnsureResources extends React.Component { process.env.BUILD_STAGE === `develop` && nextState.pageResources.stale ) { - this.loadResources(nextProps.location.pathname) + this.loadResources( + nextProps.location.pathname + nextProps.location.search + ) return false } diff --git a/packages/gatsby/cache-dir/fast-refresh-overlay/components/getserverdata-error.js b/packages/gatsby/cache-dir/fast-refresh-overlay/components/getserverdata-error.js new file mode 100644 index 0000000000000..69d4c1ac3cb47 --- /dev/null +++ b/packages/gatsby/cache-dir/fast-refresh-overlay/components/getserverdata-error.js @@ -0,0 +1,53 @@ +import * as React from "react" +import { Overlay, Header, HeaderOpenClose, Body, Footer } from "./overlay" +import { useFileCodeFrame } from "./hooks" +import { CodeFrame } from "./code-frame" +import { openInEditor } from "../utils" + +const filePathRegex = /webpack:\/[^/]+\/(.*)$/ + +export function GetServerDataError({ error }) { + const stacktrace = error.stack + const info = stacktrace.find(CallSite => CallSite.fileName) + const filePath = `./${filePathRegex.exec(info?.fileName)[1]}` + const lineNumber = info?.lineNumber + const columnNumber = info?.columnNumber + const name = + info?.functionName === `Module.getServerData` + ? `getServerData` + : info?.functionName + + const res = useFileCodeFrame({ filePath, lineNumber, columnNumber }) + + return ( + +
    +
    +

    Unhandled getServerData Error

    + {filePath} +
    + openInEditor(filePath, lineNumber)} + /> +
    + +

    Error Message

    +

    + {error?.context?.sourceMessage} +

    +

    Source

    + {filePath && ( +
    + Function {name} in {filePath}:{lineNumber} +
    + )} + +
    + This error occured in the getServerData function and can only be + dismissed by fixing the error or adding error handling. +
    + +
    + ) +} diff --git a/packages/gatsby/cache-dir/fast-refresh-overlay/components/hooks.js b/packages/gatsby/cache-dir/fast-refresh-overlay/components/hooks.js index b8b2a5b869891..07690fe196594 100644 --- a/packages/gatsby/cache-dir/fast-refresh-overlay/components/hooks.js +++ b/packages/gatsby/cache-dir/fast-refresh-overlay/components/hooks.js @@ -45,3 +45,35 @@ export function useStackFrame({ moduleId, lineNumber, columnNumber }) { return response } + +export function useFileCodeFrame({ filePath, lineNumber, columnNumber }) { + const url = + `/__file-code-frame?filePath=` + + window.encodeURIComponent(filePath) + + `&lineNumber=` + + window.encodeURIComponent(lineNumber) + + `&columnNumber=` + + window.encodeURIComponent(columnNumber) + + const [response, setResponse] = React.useState({ decoded: null }) + + React.useEffect(() => { + async function fetchData() { + try { + const res = await fetch(url) + const json = await res.json() + const decoded = prettifyStack(json.codeFrame) + setResponse({ + decoded, + }) + } catch (err) { + setResponse({ + decoded: prettifyStack(err.message), + }) + } + } + fetchData() + }, []) + + return response +} diff --git a/packages/gatsby/cache-dir/fast-refresh-overlay/index.js b/packages/gatsby/cache-dir/fast-refresh-overlay/index.js index 7fdca80e19b55..69c4ee0b699ee 100644 --- a/packages/gatsby/cache-dir/fast-refresh-overlay/index.js +++ b/packages/gatsby/cache-dir/fast-refresh-overlay/index.js @@ -6,6 +6,7 @@ import { BuildError } from "./components/build-error" import { RuntimeErrors } from "./components/runtime-errors" import { GraphqlErrors } from "./components/graphql-errors" import { DevSsrError } from "./components/dev-ssr-error" +import { GetServerDataError } from "./components/getserverdata-error" const reducer = (state, event) => { switch (event.action) { @@ -28,6 +29,12 @@ const reducer = (state, event) => { case `SHOW_RUNTIME_ERRORS`: { return { ...state, errors: state.errors.concat(event.payload) } } + case `SHOW_GETSERVERDATA_ERROR`: { + return { + ...state, + getServerDataError: event.payload, + } + } case `SHOW_GRAPHQL_ERRORS`: { return { ...state, @@ -43,6 +50,7 @@ const reducer = (state, event) => { buildError: null, errors: [], graphqlErrors: [], + getServerDataError: null, } } default: { @@ -55,6 +63,7 @@ const initialState = { errors: [], buildError: null, devSsrError: null, + getServerDataError: null, graphqlErrors: [], } @@ -83,21 +92,32 @@ function DevOverlay({ children }) { const dismiss = () => { dispatch({ action: `DISMISS` }) + // Setting gatsbyEvents = [] is necessary for the runtime errors to correctly clear + // However, using this for serverData errors doesn't work and results in the overlay not showing up + // again since the component isn't remounted and thus the .push method is not reinitalized window._gatsbyEvents = [] } const hasBuildError = state.buildError !== null const hasRuntimeErrors = Boolean(state.errors.length) + const hasGetServerDataError = Boolean(state.getServerDataError) const hasGraphqlErrors = Boolean(state.graphqlErrors.length) const hasDevSsrError = state.devSsrError !== null const hasErrors = - hasBuildError || hasRuntimeErrors || hasGraphqlErrors || hasDevSsrError + hasBuildError || + hasRuntimeErrors || + hasGraphqlErrors || + hasDevSsrError || + hasGetServerDataError // This component has a deliberate order (priority) const ErrorComponent = () => { if (hasBuildError) { return } + if (hasGetServerDataError) { + return + } if (hasRuntimeErrors) { return } diff --git a/packages/gatsby/cache-dir/find-path.js b/packages/gatsby/cache-dir/find-path.js index 969ce6a22765b..1b1d149d2051d 100644 --- a/packages/gatsby/cache-dir/find-path.js +++ b/packages/gatsby/cache-dir/find-path.js @@ -15,8 +15,6 @@ const trimPathname = rawPathname => { ) // Remove any hashfragment .split(`#`)[0] - // Remove search query - .split(`?`)[0] return trimmedPathname } diff --git a/packages/gatsby/cache-dir/loader.js b/packages/gatsby/cache-dir/loader.js index 3f08cabca0b56..11e7c55fb1425 100644 --- a/packages/gatsby/cache-dir/loader.js +++ b/packages/gatsby/cache-dir/loader.js @@ -24,13 +24,16 @@ const stripSurroundingSlashes = s => { return s } -const createPageDataUrl = path => { +const createPageDataUrl = rawPath => { + const [path, maybeSearch] = rawPath.split(`?`) const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path) - return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json` + return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${ + maybeSearch ? `?${maybeSearch}` : `` + }` } function doFetch(url, method = `GET`) { - return new Promise((resolve, reject) => { + return new Promise(resolve => { const req = new XMLHttpRequest() req.open(method, url, true) req.onreadystatechange = () => { @@ -64,6 +67,7 @@ const toPageResources = (pageData, component = null) => { webpackCompilationHash: pageData.webpackCompilationHash, matchPath: pageData.matchPath, staticQueryHashes: pageData.staticQueryHashes, + getServerDataError: pageData.getServerDataError, } return { @@ -94,6 +98,8 @@ export class BaseLoader { this.inFlightDb = new Map() this.staticQueryDb = {} this.pageDataDb = new Map() + this.isPrefetchQueueRunning = false + this.prefetchQueued = [] this.prefetchTriggered = new Set() this.prefetchCompleted = new Set() this.loadComponent = loadComponent @@ -141,6 +147,11 @@ export class BaseLoader { throw new Error(`not a valid pageData response`) } + const maybeSearch = pagePath.split(`?`)[1] + if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) { + jsonPayload.path += `?${maybeSearch}` + } + return Object.assign(loadObj, { status: PageResourceStatus.Success, payload: jsonPayload, @@ -152,8 +163,8 @@ export class BaseLoader { // Handle 404 if (status === 404 || status === 200) { - // If the request was for a 404 page and it doesn't exist, we're done - if (pagePath === `/404.html`) { + // If the request was for a 404/500 page and it doesn't exist, we're done + if (pagePath === `/404.html` || pagePath === `/500.html`) { return Object.assign(loadObj, { status: PageResourceStatus.Error, }) @@ -168,9 +179,12 @@ export class BaseLoader { // handle 500 response (Unrecoverable) if (status === 500) { - return Object.assign(loadObj, { - status: PageResourceStatus.Error, - }) + return this.fetchPageDataJson( + Object.assign(loadObj, { + pagePath: `/500.html`, + internalServerError: true, + }) + ) } // Handle everything else, including status === 0, and 503s. Should retry @@ -384,32 +398,90 @@ export class BaseLoader { prefetch(pagePath) { if (!this.shouldPrefetch(pagePath)) { - return false + return { + then: resolve => resolve(false), + abort: () => {}, + } + } + if (this.prefetchTriggered.has(pagePath)) { + return { + then: resolve => resolve(true), + abort: () => {}, + } } - // Tell plugins with custom prefetching logic that they should start - // prefetching this path. - if (!this.prefetchTriggered.has(pagePath)) { - this.apiRunner(`onPrefetchPathname`, { pathname: pagePath }) - this.prefetchTriggered.add(pagePath) + const defer = { + resolve: null, + reject: null, + promise: null, } + defer.promise = new Promise((resolve, reject) => { + defer.resolve = resolve + defer.reject = reject + }) + this.prefetchQueued.push([pagePath, defer]) + const abortC = new AbortController() + abortC.signal.addEventListener(`abort`, () => { + const index = this.prefetchQueued.findIndex(([p]) => p === pagePath) + // remove from the queue + if (index !== -1) { + this.prefetchQueued.splice(index, 1) + } + }) - // If a plugin has disabled core prefetching, stop now. - if (this.prefetchDisabled) { - return false + if (!this.isPrefetchQueueRunning) { + this.isPrefetchQueueRunning = true + setTimeout(() => { + this._processNextPrefetchBatch() + }, 3000) } - const realPath = findPath(pagePath) - // Todo make doPrefetch logic cacheable - // eslint-disable-next-line consistent-return - this.doPrefetch(realPath).then(() => { - if (!this.prefetchCompleted.has(pagePath)) { - this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath }) - this.prefetchCompleted.add(pagePath) + return { + then: (resolve, reject) => defer.promise.then(resolve, reject), + abort: abortC.abort.bind(abortC), + } + } + + _processNextPrefetchBatch() { + const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0)) + + idleCallback(() => { + const toPrefetch = this.prefetchQueued.splice(0, 4) + const prefetches = Promise.all( + toPrefetch.map(([pagePath, dPromise]) => { + // Tell plugins with custom prefetching logic that they should start + // prefetching this path. + if (!this.prefetchTriggered.has(pagePath)) { + this.apiRunner(`onPrefetchPathname`, { pathname: pagePath }) + this.prefetchTriggered.add(pagePath) + } + + // If a plugin has disabled core prefetching, stop now. + if (this.prefetchDisabled) { + return dPromise.resolve(false) + } + + return this.doPrefetch(findPath(pagePath)).then(() => { + if (!this.prefetchCompleted.has(pagePath)) { + this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath }) + this.prefetchCompleted.add(pagePath) + } + + dPromise.resolve(true) + }) + }) + ) + + if (this.prefetchQueued.length) { + prefetches.then(() => { + setTimeout(() => { + this._processNextPrefetchBatch() + }, 3000) + }) + } else { + this.isPrefetchQueueRunning = false } }) - - return true } doPrefetch(pagePath) { diff --git a/packages/gatsby/cache-dir/navigation.js b/packages/gatsby/cache-dir/navigation.js index 6a7b1ae3f09c8..9bf8fbbb43679 100644 --- a/packages/gatsby/cache-dir/navigation.js +++ b/packages/gatsby/cache-dir/navigation.js @@ -85,7 +85,7 @@ const navigate = (to, options = {}) => { }) }, 1000) - loader.loadPage(pathname).then(pageResources => { + loader.loadPage(pathname + search).then(pageResources => { // If no page resources, then refresh the page // Do this, rather than simply `window.location.reload()`, so that // pressing the back/forward buttons work - otherwise when pressing @@ -102,10 +102,6 @@ const navigate = (to, options = {}) => { // If the loaded page has a different compilation hash to the // window, then a rebuild has occurred on the server. Reload. if (process.env.NODE_ENV === `production` && pageResources) { - // window.___webpackCompilationHash gets set in production-app.js after navigationInit() is called - // So on a direct visit of a page with a browser redirect this check is truthy and thus the codepath is hit - // While the resource actually exists, but only too late - // TODO: This should probably be fixed by setting ___webpackCompilationHash before navigationInit() is called if ( pageResources.page.webpackCompilationHash !== window.___webpackCompilationHash @@ -172,9 +168,6 @@ function init() { window.___push = to => navigate(to, { replace: false }) window.___replace = to => navigate(to, { replace: true }) window.___navigate = (to, options) => navigate(to, options) - - // Check for initial page-load redirect - maybeRedirect(window.location.pathname) } class RouteAnnouncer extends React.Component { diff --git a/packages/gatsby/cache-dir/normalize-page-path.js b/packages/gatsby/cache-dir/normalize-page-path.js index e3aa70b2f45c5..51dd49a6b82b9 100644 --- a/packages/gatsby/cache-dir/normalize-page-path.js +++ b/packages/gatsby/cache-dir/normalize-page-path.js @@ -1,12 +1,17 @@ -export default path => { - if (path === undefined) { - return path +export default pathAndSearch => { + if (pathAndSearch === undefined) { + return pathAndSearch } + let [path, search = ``] = pathAndSearch.split(`?`) + if (search) { + search = `?` + search + } + if (path === `/`) { - return `/` + return `/` + search } if (path.charAt(path.length - 1) === `/`) { - return path.slice(0, -1) + return path.slice(0, -1) + search } - return path + return path + search } diff --git a/packages/gatsby/cache-dir/production-app.js b/packages/gatsby/cache-dir/production-app.js index 5633e5863a706..84f26fe54a594 100644 --- a/packages/gatsby/cache-dir/production-app.js +++ b/packages/gatsby/cache-dir/production-app.js @@ -104,11 +104,14 @@ apiRunnerAsync(`onClientEntry`).then(() => { > { const { pagePath, location: browserLoc } = window // Explicitly call navigate if the canonical path (window.pagePath) - // is different to the browser path (window.location.pathname). But - // only if NONE of the following conditions hold: + // is different to the browser path (window.location.pathname). SSR + // page paths might include search params, while SSG and DSG won't. + // If page path include search params we also compare query params. + // But only if NONE of the following conditions hold: // // - The url matches a client side route (page.matchPath) // - it's a 404 page // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/) if ( pagePath && - __BASE_PATH__ + pagePath !== browserLoc.pathname && + __BASE_PATH__ + pagePath !== + browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) && !( loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) || - pagePath === `/404.html` || - pagePath.match(/^\/404\/?$/) || + pagePath.match(/^\/(404|500)(\/?|.html)$/) || pagePath.match(/^\/offline-plugin-app-shell-fallback\/?$/) ) ) { - navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, { + navigate(__BASE_PATH__ + pagePath + browserLoc.hash, { replace: true, }) } - publicLoader.loadPage(browserLoc.pathname).then(page => { + publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => { if (!page || page.status === PageResourceStatus.Error) { const message = `page resources for ${browserLoc.pathname} not found. Not rendering React` diff --git a/packages/gatsby/cache-dir/query-result-store.js b/packages/gatsby/cache-dir/query-result-store.js index 9923efb1b137d..8f15e11da7d8b 100644 --- a/packages/gatsby/cache-dir/query-result-store.js +++ b/packages/gatsby/cache-dir/query-result-store.js @@ -46,12 +46,32 @@ export class PageQueryStore extends React.Component { componentDidMount() { socketRegisterPath(getPathFromProps(this.props)) ___emitter.on(`pageQueryResult`, this.handleMittEvent) + ___emitter.on(`serverDataResult`, this.handleMittEvent) ___emitter.on(`onPostLoadPageResources`, this.handleMittEvent) + + window._gatsbyEvents.push([ + `FAST_REFRESH`, + { + action: `SHOW_GETSERVERDATA_ERROR`, + payload: this.state?.page?.page?.getServerDataError, + }, + ]) + } + + componentDidUpdate() { + window._gatsbyEvents.push([ + `FAST_REFRESH`, + { + action: `SHOW_GETSERVERDATA_ERROR`, + payload: this.state?.page?.page?.getServerDataError, + }, + ]) } componentWillUnmount() { socketUnregisterPath(this.state.path) ___emitter.off(`pageQueryResult`, this.handleMittEvent) + ___emitter.off(`serverDataResult`, this.handleMittEvent) ___emitter.off(`onPostLoadPageResources`, this.handleMittEvent) } @@ -87,6 +107,10 @@ export class PageQueryStore extends React.Component { return
    } + if (this.state.page.page.getServerDataError) { + return
    + } + return } } diff --git a/packages/gatsby/cache-dir/root.js b/packages/gatsby/cache-dir/root.js index fc0b1625c3595..66c034d7641dd 100644 --- a/packages/gatsby/cache-dir/root.js +++ b/packages/gatsby/cache-dir/root.js @@ -32,7 +32,7 @@ class LocationHandler extends React.Component { render() { const { location } = this.props - if (!loader.isPageNotFound(location.pathname)) { + if (!loader.isPageNotFound(location.pathname + location.search)) { return ( {locationAndPageResources => ( @@ -48,8 +48,10 @@ class LocationHandler extends React.Component { > { onScroll(): void } -export const useStaticQuery: (query: any) => TData +class StaticQueryDocument { + /** Prevents structural type widening. */ + #kind: "StaticQueryDocument" + + /** Allows type-safe access to the static query hash for debugging purposes. */ + toString(): string +} + +/** + * A React Hooks version of StaticQuery. + * + * StaticQuery can do most of the things that page query can, including fragments. The main differences are: + * + * - page queries can accept variables (via `pageContext`) but can only be added to _page_ components + * - StaticQuery does not accept variables (hence the name "static"), but can be used in _any_ component, including pages + * + * @see https://www.gatsbyjs.com/docs/how-to/querying-data/use-static-query/ + */ +export const useStaticQuery: (query: StaticQueryDocument) => TData export const parsePath: (path: string) => WindowLocation @@ -142,7 +160,7 @@ export class PageRenderer extends React.Component {} type RenderCallback = (data: T) => React.ReactNode export interface StaticQueryProps { - query: any + query: StaticQueryDocument render?: RenderCallback children?: RenderCallback } @@ -168,7 +186,7 @@ export class StaticQuery extends React.Component< * * @see https://www.gatsbyjs.org/docs/page-query#how-does-the-graphql-tag-work */ -export const graphql: (query: TemplateStringsArray) => void +export const graphql: (query: TemplateStringsArray) => StaticQueryDocument /** * Gatsby configuration API. @@ -474,11 +492,8 @@ export interface GatsbyNode< * built schema from `info.schema`. * * Gatsby's data layer, including all internal query capabilities, is * exposed on [`context.nodeModel`](/docs/node-model/). The node store can be - * queried directly with `getAllNodes`, `getNodeById` and `getNodesByIds`, - * while more advanced queries can be composed with `runQuery`. Note that - * `runQuery` will call field resolvers before querying, so e.g. foreign-key - * fields will be expanded to full nodes. The other methods on `nodeModel` - * don't do this. + * queried directly with `findOne`, `getNodeById` and `getNodesByIds`, + * while more advanced queries can be composed with `findAll`. * * It is possible to add fields to the root `Query` type. * * When using the first resolver argument (`source` in the example below, * often also called `parent` or `root`), take care of the fact that field @@ -488,7 +503,7 @@ export interface GatsbyNode< * * For fuller examples, see [`using-type-definitions`](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-type-definitions). * - * @see https://www.gatsbyjs.org/docs/node-apis/#createResolvers + * @see https://www.gatsbyjs.com/docs/reference/config-files/gatsby-node/#createResolvers */ createResolvers?( args: CreateResolversArgs, @@ -980,7 +995,7 @@ export interface NodePluginArgs { * @example * const node = getNode(id) */ - getNode(this: void, id: string): Node + getNode(this: void, id: string): Node | undefined /** * Get array of nodes of given type. diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 380c9e3e6b17b..bcbd6d0687c67 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -1,7 +1,7 @@ { "name": "gatsby", "description": "Blazing fast modern site generator for React", - "version": "4.0.0-zz-next.1", + "version": "4.0.0-zz-next.8", "author": "Kyle Mathews ", "bin": { "gatsby": "./cli.js" @@ -20,26 +20,26 @@ "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", - "@nodelib/fs.walk": "^1.2.4", + "@nodelib/fs.walk": "^1.2.8", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", - "@types/http-proxy": "^1.17.4", - "@typescript-eslint/eslint-plugin": "^4.29.3", - "@typescript-eslint/parser": "^4.29.3", - "@vercel/webpack-asset-relocator-loader": "^1.6.0", + "@types/http-proxy": "^1.17.7", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", + "@vercel/webpack-asset-relocator-loader": "^1.7.0", "address": "1.1.2", - "anser": "^2.0.1", - "autoprefixer": "^10.2.4", + "anser": "^2.0.2", + "autoprefixer": "^10.3.7", "axios": "^0.21.1", "babel-loader": "^8.2.2", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.1", - "babel-preset-gatsby": "^2.0.0-zz-next.1", - "better-opn": "^2.0.0", + "babel-plugin-remove-graphql-queries": "^4.0.0-zz-next.3", + "babel-preset-gatsby": "^2.0.0-zz-next.4", + "better-opn": "^2.1.1", "bluebird": "^3.7.2", "body-parser": "^1.19.0", - "browserslist": "^4.12.2", + "browserslist": "^4.17.3", "cache-manager": "^2.11.1", "chalk": "^4.1.2", "chokidar": "^3.5.2", @@ -48,117 +48,116 @@ "cookie": "^0.4.1", "core-js": "^3.17.2", "cors": "^2.8.5", - "css-loader": "^5.0.1", + "css-loader": "^5.2.7", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", - "date-fns": "^2.14.0", + "date-fns": "^2.25.0", "debug": "^3.2.7", "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", - "devcert": "^1.1.3", - "dotenv": "^8.2.0", + "devcert": "^1.2.0", + "dotenv": "^8.6.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.9.2", + "eslint-plugin-flowtype": "^5.10.0", "eslint-plugin-graphql": "^4.0.0", "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.25.1", + "eslint-plugin-react": "^7.26.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", - "event-source-polyfill": "^1.0.15", + "event-source-polyfill": "^1.0.25", "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", "fastest-levenshtein": "^1.0.12", - "fastq": "^1.10.0", + "fastq": "^1.13.0", "file-loader": "^6.2.0", - "find-cache-dir": "^3.3.1", + "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", "fs-extra": "^10.0.0", - "gatsby-cli": "^4.0.0-zz-next.1", - "gatsby-core-utils": "^3.0.0-zz-next.1", - "gatsby-graphiql-explorer": "^2.0.0-zz-next.1", - "gatsby-legacy-polyfills": "^2.0.0-zz-next.1", - "gatsby-link": "^4.0.0-zz-next.1", - "gatsby-plugin-page-creator": "^4.0.0-zz-next.1", - "gatsby-plugin-typescript": "^4.0.0-zz-next.1", - "gatsby-plugin-utils": "^2.0.0-zz-next.1", - "gatsby-react-router-scroll": "^5.0.0-zz-next.1", - "gatsby-telemetry": "^3.0.0-zz-next.1", - "gatsby-worker": "^1.0.0-zz-next.1", - "glob": "^7.1.6", + "gatsby-cli": "^4.0.0-zz-next.5", + "gatsby-core-utils": "^3.0.0-zz-next.3", + "gatsby-graphiql-explorer": "^2.0.0-zz-next.2", + "gatsby-legacy-polyfills": "^2.0.0-zz-next.2", + "gatsby-link": "^4.0.0-zz-next.4", + "gatsby-plugin-page-creator": "^4.0.0-zz-next.3", + "gatsby-plugin-typescript": "^4.0.0-zz-next.3", + "gatsby-plugin-utils": "^2.0.0-zz-next.3", + "gatsby-react-router-scroll": "^5.0.0-zz-next.3", + "gatsby-telemetry": "^3.0.0-zz-next.3", + "gatsby-worker": "^1.0.0-zz-next.4", + "glob": "^7.2.0", "got": "^11.8.2", - "graphql": "^15.4.0", - "graphql-compose": "~7.25.0", - "graphql-playground-middleware-express": "^1.7.18", - "hasha": "^5.2.0", + "graphql": "^15.6.1", + "graphql-compose": "~7.25.1", + "graphql-playground-middleware-express": "^1.7.22", + "hasha": "^5.2.2", "http-proxy": "^1.18.1", "invariant": "^2.2.4", "is-relative": "^1.0.0", "is-relative-url": "^3.0.0", - "joi": "^17.2.1", + "joi": "^17.4.2", "json-loader": "^0.5.7", "latest-version": "5.1.0", "lmdb-store": "^1.6.8", "lodash": "^4.17.21", "md5-file": "^5.0.0", - "meant": "^1.0.1", + "meant": "^1.0.3", "memoizee": "^0.4.15", - "micromatch": "^4.0.2", - "mime": "^2.4.6", + "micromatch": "^4.0.4", + "mime": "^2.5.2", "mini-css-extract-plugin": "1.6.2", "mitt": "^1.2.0", - "moment": "^2.27.0", - "multer": "^1.4.2", - "node-fetch": "^2.6.2", + "moment": "^2.29.1", + "multer": "^1.4.3", + "node-fetch": "^2.6.5", "normalize-path": "^3.0.0", "null-loader": "^4.0.1", - "opentracing": "^0.14.4", + "opentracing": "^0.14.5", "p-defer": "^3.0.0", "parseurl": "^1.3.3", - "path-to-regexp": "0.1.7", "physical-cpu-count": "^2.0.0", "platform": "^1.3.6", - "postcss": "^8.3.5", + "postcss": "^8.3.9", "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^5.0.0", - "prompts": "^2.3.2", + "postcss-loader": "^5.3.0", + "prompts": "^2.4.2", "prop-types": "^15.7.2", - "query-string": "^6.13.1", + "query-string": "^6.14.1", "raw-loader": "^4.0.2", - "react-dev-utils": "^11.0.3", + "react-dev-utils": "^11.0.4", "react-refresh": "^0.9.0", - "redux": "^4.0.5", + "redux": "4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", "semver": "^7.3.5", "shallow-compare": "^1.2.2", - "signal-exit": "^3.0.3", - "slugify": "^1.4.4", - "socket.io": "3.1.1", - "socket.io-client": "3.1.1", + "signal-exit": "^3.0.5", + "slugify": "^1.6.1", + "socket.io": "3.1.2", + "socket.io-client": "3.1.3", "source-map": "^0.7.3", - "source-map-support": "^0.5.19", + "source-map-support": "^0.5.20", "st": "^2.0.0", "stack-trace": "^0.0.10", "string-similarity": "^1.2.2", "strip-ansi": "^5.2.0", "style-loader": "^2.0.0", - "terser-webpack-plugin": "^5.1.1", + "terser-webpack-plugin": "^5.2.4", "tmp": "^0.2.1", "true-case-path": "^2.2.1", "type-of": "^2.0.1", "url-loader": "^4.1.1", - "uuid": "3.4.0", - "v8-compile-cache": "^2.2.0", - "webpack": "^5.35.0", - "webpack-dev-middleware": "^4.1.0", - "webpack-merge": "^5.7.3", + "uuid": "^8.3.2", + "v8-compile-cache": "^2.3.0", + "webpack": "^5.58.1", + "webpack-dev-middleware": "^4.3.0", + "webpack-merge": "^5.8.0", "webpack-stats-plugin": "^1.0.3", "webpack-virtual-modules": "^0.3.2", - "xstate": "^4.11.0", + "xstate": "^4.25.0", "yaml-loader": "^0.6.0" }, "devDependencies": { @@ -175,7 +174,7 @@ "@types/string-similarity": "^4.0.0", "@types/tmp": "^0.2.0", "@types/webpack-virtual-modules": "^0.1.1", - "babel-preset-gatsby-package": "^2.0.0-zz-next.1", + "babel-preset-gatsby-package": "^2.0.0-zz-next.2", "copyfiles": "^2.3.0", "cross-env": "^7.0.3", "documentation": "^13.1.0", @@ -183,7 +182,7 @@ "react": "^16.12.0", "react-dom": "^16.12.0", "rimraf": "^3.0.2", - "typescript": "^4.3.5", + "typescript": "^4.4.3", "xhr-mock": "^2.5.1", "zipkin": "^0.22.0", "zipkin-javascript-opentracing": "^3.0.0", @@ -198,7 +197,6 @@ "cache-dir/", "cli.js", "dist/", - "gatsby-admin-public/", "graphql.js", "graphql.d.ts", "reporter.js", @@ -234,7 +232,7 @@ "url": "git+https://github.com/gatsbyjs/gatsby.git" }, "resolutions": { - "graphql": "^15.5.1", + "graphql": "^15.6.1", "@mdx-js/mdx": "^2.0.0-next.3", "@mdx-js/react": "^2.0.0-next.3", "@mdx-js/runtime": "^2.0.0-next.3", @@ -243,7 +241,7 @@ }, "scripts": { "build": "npm run build:types && npm run build:src && npm run build:internal-plugins && npm run build:rawfiles && npm run build:cjs", - "postbuild": "node scripts/output-api-file.js && yarn workspace gatsby-admin build", + "postbuild": "node scripts/output-api-file.js", "build:internal-plugins": "copyfiles -u 1 src/internal-plugins/**/package.json dist", "build:rawfiles": "copyfiles -u 1 src/internal-plugins/**/raw_* dist", "build:cjs": "babel cache-dir --out-dir cache-dir/commonjs --ignore \"**/__tests__\" --ignore \"**/__mocks__\" && copyfiles -u 1 cache-dir/**/*.json cache-dir/commonjs", diff --git a/packages/gatsby/src/bootstrap/__tests__/__snapshots__/remove-stale-jobs.ts.snap b/packages/gatsby/src/bootstrap/__tests__/__snapshots__/remove-stale-jobs.ts.snap index 602bce1a72ea5..aca1999b58d21 100644 --- a/packages/gatsby/src/bootstrap/__tests__/__snapshots__/remove-stale-jobs.ts.snap +++ b/packages/gatsby/src/bootstrap/__tests__/__snapshots__/remove-stale-jobs.ts.snap @@ -2,6 +2,21 @@ exports[`remove-stale-jobs should enqueue pending jobs 1`] = ` Array [ + Object { + "payload": Object { + "job": Object { + "contentDigest": "1234", + "inputPaths": Array [ + "/src/myfile.js", + ], + "plugin": Object { + "name": "test", + }, + }, + "requestId": "", + }, + "type": "SET_JOB_V2_CONTEXT", + }, Object { "payload": Object { "job": Object { diff --git a/packages/gatsby/src/bootstrap/__tests__/requires-writer.js b/packages/gatsby/src/bootstrap/__tests__/requires-writer.js index 945c8a53c818a..b85af8c2f6368 100644 --- a/packages/gatsby/src/bootstrap/__tests__/requires-writer.js +++ b/packages/gatsby/src/bootstrap/__tests__/requires-writer.js @@ -18,6 +18,12 @@ const generatePagesState = pages => { return state } +jest.mock(`../../utils/page-mode`, () => { + return { + getPageMode: jest.fn(page => page.mode), + } +}) + jest.mock(`fs-extra`, () => { return { writeFile: () => Promise.resolve(), diff --git a/packages/gatsby/src/bootstrap/index.ts b/packages/gatsby/src/bootstrap/index.ts index 64cebb88f677b..fe3768df909a1 100644 --- a/packages/gatsby/src/bootstrap/index.ts +++ b/packages/gatsby/src/bootstrap/index.ts @@ -11,7 +11,6 @@ import { extractQueries, writeOutRedirects, postBootstrap, - rebuildSchemaWithSitePage, } from "../services" import { Runner, createGraphQLRunner } from "./create-graphql-runner" import { globalTracer } from "opentracing" @@ -70,8 +69,6 @@ export async function bootstrap( await handleStalePageData(parentSpan) - await rebuildSchemaWithSitePage(context) - if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) { savePartialStateToDisk([`inferenceMetadata`]) diff --git a/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap b/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap index c28c6f35d04de..d5a11bbf53b57 100644 --- a/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap +++ b/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap @@ -48,7 +48,7 @@ Array [ Object { "browserAPIs": Array [], "id": "", - "name": "prod-404", + "name": "prod-404-500", "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], @@ -176,7 +176,7 @@ Array [ "onPluginInit", ], "pluginOptions": Object { - "path": "/packages/gatsby/src/internal-plugins/prod-404/src/pages", + "path": "/packages/gatsby/src/internal-plugins/prod-404-500/src/pages", "pathCheck": false, "plugins": Array [], }, @@ -355,7 +355,7 @@ Array [ Object { "browserAPIs": Array [], "id": "", - "name": "prod-404", + "name": "prod-404-500", "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], @@ -495,7 +495,7 @@ Array [ "onPluginInit", ], "pluginOptions": Object { - "path": "/packages/gatsby/src/internal-plugins/prod-404/src/pages", + "path": "/packages/gatsby/src/internal-plugins/prod-404-500/src/pages", "pathCheck": false, "plugins": Array [], }, @@ -695,7 +695,7 @@ Array [ Object { "browserAPIs": Array [], "id": "", - "name": "prod-404", + "name": "prod-404-500", "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], @@ -846,7 +846,7 @@ Array [ "onPluginInit", ], "pluginOptions": Object { - "path": "/packages/gatsby/src/internal-plugins/prod-404/src/pages", + "path": "/packages/gatsby/src/internal-plugins/prod-404-500/src/pages", "pathCheck": false, "plugins": Array [], }, diff --git a/packages/gatsby/src/bootstrap/load-plugins/index.ts b/packages/gatsby/src/bootstrap/load-plugins/index.ts index b3f9e1758a37c..50f064b7b023e 100644 --- a/packages/gatsby/src/bootstrap/load-plugins/index.ts +++ b/packages/gatsby/src/bootstrap/load-plugins/index.ts @@ -22,9 +22,9 @@ import { } from "./types" import { IPluginRefObject, PluginRef } from "gatsby-plugin-utils/dist/types" -const getAPI = ( - api: { [exportType in ExportType]: { [api: string]: boolean } } -): ICurrentAPIs => +const getAPI = (api: { + [exportType in ExportType]: { [api: string]: boolean } +}): ICurrentAPIs => _.keys(api).reduce>((merged, key) => { merged[key] = _.keys(api[key]) return merged diff --git a/packages/gatsby/src/bootstrap/load-plugins/load.ts b/packages/gatsby/src/bootstrap/load-plugins/load.ts index 215f9243ce15e..7ae7d3d152846 100644 --- a/packages/gatsby/src/bootstrap/load-plugins/load.ts +++ b/packages/gatsby/src/bootstrap/load-plugins/load.ts @@ -268,7 +268,7 @@ export function loadPlugins( `../../internal-plugins/dev-404-page`, `../../internal-plugins/load-babel-config`, `../../internal-plugins/internal-data-bridge`, - `../../internal-plugins/prod-404`, + `../../internal-plugins/prod-404-500`, `../../internal-plugins/webpack-theme-component-shadowing`, `../../internal-plugins/bundle-optimisations`, `../../internal-plugins/functions`, diff --git a/packages/gatsby/src/bootstrap/requires-writer.ts b/packages/gatsby/src/bootstrap/requires-writer.ts index 4b2cd8119105d..d31f84a490809 100644 --- a/packages/gatsby/src/bootstrap/requires-writer.ts +++ b/packages/gatsby/src/bootstrap/requires-writer.ts @@ -12,6 +12,7 @@ import { writeModule, getAbsolutePathForVirtualModule, } from "../utils/gatsby-webpack-virtual-modules" +import { getPageMode } from "../utils/page-mode" interface IGatsbyPageComponent { component: string @@ -109,7 +110,7 @@ const getMatchPaths = ( pages.forEach((page: IGatsbyPage, index: number): void => { if (_CFLAGS_.GATSBY_MAJOR === `4`) { - if (page.matchPath && page.mode === `SSG`) { + if (page.matchPath && getPageMode(page) === `SSG`) { matchPathPages.push(createMatchPathEntry(page, index)) } } else { diff --git a/packages/gatsby/src/commands/__tests__/build-utils.ts b/packages/gatsby/src/commands/__tests__/build-utils.ts index b5609acf8db58..42b825c22640b 100644 --- a/packages/gatsby/src/commands/__tests__/build-utils.ts +++ b/packages/gatsby/src/commands/__tests__/build-utils.ts @@ -9,6 +9,7 @@ const platformSpy = jest.spyOn(require(`os`), `platform`) interface IMinimalStateSliceForTest { html: IGatsbyState["html"] pages: IGatsbyState["pages"] + components: IGatsbyState["components"] } describe(`calcDirtyHtmlFiles`, () => { @@ -37,7 +38,16 @@ describe(`calcDirtyHtmlFiles`, () => { unsafeBuiltinWasUsedInSSR: false, trackedStaticQueryResults: new Map(), }, + components: new Map(), } + state.components.set(`/foo`, { + componentPath: `/foo`, + componentChunkName: `foo`, + pages: new Set(), + isInBootstrap: false, + query: ``, + serverData: false, + }) for (const pagePath in pages) { const page = pages[pagePath] @@ -57,6 +67,8 @@ describe(`calcDirtyHtmlFiles`, () => { pluginCreator___NODE: `foo`, updatedAt: 1, mode: `SSG`, + defer: false, + ownerNodeId: ``, }) } diff --git a/packages/gatsby/src/commands/build-html.ts b/packages/gatsby/src/commands/build-html.ts index b51488f0c0b3e..fa171d7d5be09 100644 --- a/packages/gatsby/src/commands/build-html.ts +++ b/packages/gatsby/src/commands/build-html.ts @@ -3,11 +3,12 @@ import fs from "fs-extra" import reporter from "gatsby-cli/lib/reporter" import { createErrorFromString } from "gatsby-cli/lib/reporter/errors" import { chunk, truncate } from "lodash" -import webpack, { Stats } from "webpack" +import { build, watch } from "../utils/webpack/bundle" import * as path from "path" import { emitter, store } from "../redux" import { IWebpackWatchingPauseResume } from "../utils/start-server" +import webpack from "webpack" import webpackConfig from "../utils/webpack.config" import { structureWebpackErrors } from "../utils/webpack-error-utils" import * as buildUtils from "./build-utils" @@ -17,12 +18,14 @@ import { Span } from "opentracing" import { IProgram, Stage } from "./types" import { ROUTES_DIRECTORY } from "../constants" import { PackageJson } from "../.." -import type { GatsbyWorkerPool } from "../utils/worker/pool" import { IPageDataWithQueryResult } from "../utils/page-data" import { processNodeManifests } from "../utils/node-manifest" +import type { GatsbyWorkerPool } from "../utils/worker/pool" type IActivity = any // TODO +const isPreview = process.env.GATSBY_IS_PREVIEW === `true` + export interface IBuildArgs extends IProgram { directory: string sitePackageJson: PackageJson @@ -37,8 +40,13 @@ export interface IBuildArgs extends IProgram { keepPageRenderer: boolean } -let devssrWebpackCompiler: webpack.Compiler -let devssrWebpackWatcher: IWebpackWatchingPauseResume +interface IBuildRendererResult { + rendererPath: string + stats: webpack.Stats + close: ReturnType["close"] +} + +let devssrWebpackCompiler: webpack.Watching | undefined let needToRecompileSSRBundle = true export const getDevSSRWebpack = (): { devssrWebpackWatcher: IWebpackWatchingPauseResume @@ -50,8 +58,8 @@ export const getDevSSRWebpack = (): { } return { - devssrWebpackWatcher, - devssrWebpackCompiler, + devssrWebpackWatcher: devssrWebpackCompiler as webpack.Watching, + devssrWebpackCompiler: (devssrWebpackCompiler as webpack.Watching).compiler, needToRecompileSSRBundle, } } @@ -61,60 +69,33 @@ let newHash = `` const runWebpack = ( compilerConfig, stage: Stage, - directory, - parentSpan?: Span -): Bluebird<{ - stats: Stats - waitForCompilerClose: Promise -}> => - new Bluebird((resolve, reject) => { - if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR || stage === `build-html`) { + directory: string +): Promise<{ + stats: webpack.Stats + close: ReturnType["close"] +}> => { + const isDevSSREnabledAndViable = + process.env.GATSBY_EXPERIMENTAL_DEV_SSR && stage === `develop-html` + + return new Promise((resolve, reject) => { + if (isDevSSREnabledAndViable) { const compiler = webpack(compilerConfig) - compiler.run((err, stats) => { - let activity - if (process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE) { - activity = reporter.activityTimer( - `Caching HTML renderer compilation`, - { parentSpan } - ) - activity.start() - } - - const waitForCompilerClose = new Promise((resolve, reject) => { - compiler.close(error => { - if (activity) { - activity.end() - } - if (error) { - return reject(error) - } - return resolve() - }) - }) - - if (err) { - return reject(err) - } else { - return resolve({ stats: stats as Stats, waitForCompilerClose }) - } - }) - } else if ( - process.env.GATSBY_EXPERIMENTAL_DEV_SSR && - stage === `develop-html` - ) { - devssrWebpackCompiler = webpack(compilerConfig) - devssrWebpackCompiler.hooks.invalid.tap(`ssr file invalidation`, () => { + // because of this line we can't use our watch helper + // These things should use emitter + compiler.hooks.invalid.tap(`ssr file invalidation`, () => { needToRecompileSSRBundle = true }) - devssrWebpackWatcher = devssrWebpackCompiler.watch( + + const watcher = compiler.watch( { ignored: /node_modules/, }, (err, stats) => { + // this runs multiple times needToRecompileSSRBundle = false emitter.emit(`DEV_SSR_COMPILATION_DONE`) - devssrWebpackWatcher.suspend() + watcher.suspend() if (err) { return reject(err) @@ -132,45 +113,44 @@ const runWebpack = ( oldHash = newHash return resolve({ - stats: stats as Stats, - waitForCompilerClose: Promise.resolve(), + stats: stats as webpack.Stats, + close: () => + new Promise((resolve, reject): void => + watcher.close(err => (err ? reject(err) : resolve())) + ), }) } } - ) as IWebpackWatchingPauseResume + ) + devssrWebpackCompiler = watcher + } else { + build(compilerConfig).then( + ({ stats, close }) => { + resolve({ stats, close }) + }, + err => reject(err) + ) } }) +} const doBuildRenderer = async ( - { directory }: IProgram, + directory: string, webpackConfig: webpack.Configuration, - stage: Stage, - parentSpan?: Span -): Promise<{ rendererPath: string; waitForCompilerClose }> => { - const { stats, waitForCompilerClose } = await runWebpack( - webpackConfig, - stage, - directory, - parentSpan - ) - if (stats.hasErrors()) { - reporter.panic(structureWebpackErrors(stage, stats.compilation.errors)) - } - - if ( - stage === `build-html` && - store.getState().html.ssrCompilationHash !== stats.hash - ) { - store.dispatch({ - type: `SET_SSR_WEBPACK_COMPILATION_HASH`, - payload: stats.hash as string, - }) + stage: Stage +): Promise => { + const { stats, close } = await runWebpack(webpackConfig, stage, directory) + if (stats?.hasErrors()) { + reporter.panicOnBuild( + structureWebpackErrors(stage, stats.compilation.errors) + ) } // render-page.js is hard coded in webpack.config return { rendererPath: `${directory}/${ROUTES_DIRECTORY}render-page.js`, - waitForCompilerClose, + stats, + close, } } @@ -178,13 +158,12 @@ export const buildRenderer = async ( program: IProgram, stage: Stage, parentSpan?: IActivity -): Promise<{ rendererPath: string; waitForCompilerClose }> => { - const { directory } = program - const config = await webpackConfig(program, directory, stage, null, { +): Promise => { + const config = await webpackConfig(program, program.directory, stage, null, { parentSpan, }) - return doBuildRenderer(program, config, stage, parentSpan) + return doBuildRenderer(program.directory, config, stage) } // TODO remove after v4 release and update cloud internals @@ -198,6 +177,7 @@ export const deleteRenderer = async (rendererPath: string): Promise => { } export interface IRenderHtmlResult { unsafeBuiltinsUsageByPagePath: Record> + previewErrors: Record } const renderHTMLQueue = async ( @@ -235,6 +215,50 @@ const renderHTMLQueue = async ( sessionId, }) + if (isPreview) { + const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult + const seenErrors = new Set() + const errorMessages = new Map() + await Promise.all( + Object.entries(htmlRenderMeta.previewErrors).map( + async ([pagePath, error]) => { + if (!seenErrors.has(error.stack)) { + errorMessages.set(error.stack, { + pagePaths: [pagePath], + }) + seenErrors.add(error.stack) + const prettyError = await createErrorFromString( + error.stack, + `${htmlComponentRendererPath}.map` + ) + + const errorMessageStr = `${prettyError.stack}${ + prettyError.codeFrame ? `\n\n${prettyError.codeFrame}\n` : `` + }` + + const errorMessage = errorMessages.get(error.stack) + errorMessage.errorMessage = errorMessageStr + errorMessages.set(error.stack, errorMessage) + } else { + const errorMessage = errorMessages.get(error.stack) + errorMessage.pagePaths.push(pagePath) + errorMessages.set(error.stack, errorMessage) + } + } + ) + ) + + for (const value of errorMessages.values()) { + const errorMessage = `The following page(s) saw this error when building their HTML:\n\n${value.pagePaths + .map(p => `- ${p}`) + .join(`\n`)}\n\n${value.errorMessage}` + reporter.error({ + id: `95314`, + context: { errorMessage }, + }) + } + } + if (stage === `build-html`) { const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult store.dispatch({ @@ -349,10 +373,23 @@ export const doBuildPages = async ( error.context.path }": ${JSON.stringify(truncatedPageData, null, 2)}` - reporter.error(pageDataMessage) + // This is our only error during preview so customize it a bit + add the + // pretty build error. + if (isPreview) { + reporter.error({ + id: `95314`, + context: { pageData: pageDataMessage }, + error: buildError, + }) + } else { + reporter.error(pageDataMessage) + } } - throw buildError + // Don't crash the builder when we're in preview-mode. + if (!isPreview) { + throw buildError + } } } diff --git a/packages/gatsby/src/commands/build-javascript.ts b/packages/gatsby/src/commands/build-javascript.ts index 4552a9bca4c35..24001f2eefd8b 100644 --- a/packages/gatsby/src/commands/build-javascript.ts +++ b/packages/gatsby/src/commands/build-javascript.ts @@ -1,20 +1,12 @@ import { Span } from "opentracing" -import webpack, { WebpackError } from "webpack" import webpackConfig from "../utils/webpack.config" -import { IProgram } from "./types" -import reporter from "gatsby-cli/lib/reporter" -import { - showExperimentNoticeAfterTimeout, - CancelExperimentNoticeCallbackOrUndefined, -} from "../utils/show-experiment-notice" +import { build } from "../utils/webpack/bundle" +import type { IProgram } from "./types" export const buildProductionBundle = async ( program: IProgram, parentSpan: Span -): Promise<{ - stats: webpack.Stats | Error | Array - waitForCompilerClose: Promise -}> => { +): Promise> => { const { directory } = program const compilerConfig = await webpackConfig( @@ -25,67 +17,5 @@ export const buildProductionBundle = async ( { parentSpan } ) - return new Promise((resolve, reject) => { - const compiler = webpack(compilerConfig) - - const THIRTY_SECONDS = 30 * 1000 - let cancelCacheNotice: CancelExperimentNoticeCallbackOrUndefined - if ( - process.env.gatsby_executing_command === `build` && - !process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE - ) { - cancelCacheNotice = showExperimentNoticeAfterTimeout( - `Persistent webpack caching`, - `https://github.com/gatsbyjs/gatsby/discussions/28331`, - `which enables webpack's persist caching and changes Gatsby's cache clearing behavior to not clear webpack's -cache unless you run "gatsby clean" or delete the .cache folder manually. -Here's how to try it: - -module.exports = { - flags: { PRESERVE_WEBPACK_CACHE: true }, - plugins: [...] -}`, - THIRTY_SECONDS - ) - } - - compiler.run((err, stats) => { - if (cancelCacheNotice) { - cancelCacheNotice() - } - - // stats can only be empty when an error occurs. Adding it to the if makes typescript happy. - if (err || !stats) { - return reject(err) - } - - if (stats.hasErrors()) { - return reject(stats.compilation.errors) - } - - let activity - if (process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE) { - activity = reporter.activityTimer( - `Caching JavaScript and CSS webpack compilation`, - { parentSpan } - ) - activity.start() - } - - const waitForCompilerClose = new Promise((resolve, reject) => { - compiler.close(error => { - if (activity) { - activity.end() - } - - if (error) { - return reject(error) - } - return resolve() - }) - }) - - return resolve({ stats, waitForCompilerClose }) - }) - }) + return build(compilerConfig) } diff --git a/packages/gatsby/src/commands/build-utils.ts b/packages/gatsby/src/commands/build-utils.ts index 72b3b087ad76d..ece72c8746c63 100644 --- a/packages/gatsby/src/commands/build-utils.ts +++ b/packages/gatsby/src/commands/build-utils.ts @@ -10,6 +10,7 @@ import { import { removePageData } from "../utils/page-data" import { store } from "../redux" import { IGatsbyState } from "../redux/types" +import { getPageMode } from "../utils/page-mode" const checkFolderIsEmpty = (path: string): boolean => fs.existsSync(path) && !fs.readdirSync(path).length @@ -160,7 +161,7 @@ export function calcDirtyHtmlFiles(state: IGatsbyState): { markActionForPage(path, `delete`) } else { if (_CFLAGS_.GATSBY_MAJOR === `4`) { - if (page.mode === `SSG`) { + if (getPageMode(page, state) === `SSG`) { if (htmlFile.dirty || state.html.unsafeBuiltinWasUsedInSSR) { markActionForPage(path, `regenerate`) } else { diff --git a/packages/gatsby/src/commands/build.ts b/packages/gatsby/src/commands/build.ts index ec95ff0931ffe..bb51593db2a10 100644 --- a/packages/gatsby/src/commands/build.ts +++ b/packages/gatsby/src/commands/build.ts @@ -3,7 +3,7 @@ import report from "gatsby-cli/lib/reporter" import signalExit from "signal-exit" import fs from "fs-extra" import telemetry from "gatsby-telemetry" -import { updateSiteMetadata, isTruthy } from "gatsby-core-utils" +import { updateSiteMetadata, isTruthy, uuid } from "gatsby-core-utils" import { buildRenderer, buildHTMLPagesAndDeleteStaleArtifacts, @@ -48,15 +48,20 @@ import { runQueriesInWorkersQueue, } from "../utils/worker/pool" import { createGraphqlEngineBundle } from "../schema/graphql-engine/bundle-webpack" -import { createPageSSRBundle } from "../utils/page-ssr-module/bundle-webpack" +import { + createPageSSRBundle, + writeQueryContext, +} from "../utils/page-ssr-module/bundle-webpack" import { shouldGenerateEngines } from "../utils/engines-helpers" -import uuidv4 from "uuid/v4" import reporter from "gatsby-cli/lib/reporter" +import type webpack from "webpack" +import { materializePageMode, getPageMode } from "../utils/page-mode" +import { validateEngines } from "../utils/validate-engines" module.exports = async function build(program: IBuildArgs): Promise { // global gatsby object to use without store global.__GATSBY = { - buildId: uuidv4(), + buildId: uuid.v4(), root: program!.directory, } @@ -102,11 +107,130 @@ module.exports = async function build(program: IBuildArgs): Promise { parentSpan: buildSpan, }) + // writes sync and async require files to disk + // used inside routing "html" + "javascript" + await writeOutRequires({ + store, + parentSpan: buildSpan, + }) + + let closeJavascriptBundleCompilation: (() => Promise) | undefined + let closeHTMLBundleCompilation: (() => Promise) | undefined + let webpackAssets: Array | null = null + let webpackCompilationHash: string | null = null + let webpackSSRCompilationHash: string | null = null + const engineBundlingPromises: Array> = [] + const buildActivityTimer = report.activityTimer( + `Building production JavaScript and CSS bundles`, + { parentSpan: buildSpan } + ) + buildActivityTimer.start() + + try { + const { stats, close } = await buildProductionBundle( + program, + buildActivityTimer.span + ) + closeJavascriptBundleCompilation = close + + if (stats.hasWarnings()) { + const rawMessages = stats.toJson({ all: false, warnings: true }) + reportWebpackWarnings(rawMessages.warnings, report) + } + + webpackAssets = stats.toJson({ + all: false, + assets: true, + cachedAssets: true, + }).assets as Array + webpackCompilationHash = stats.hash as string + } catch (err) { + buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err)) + } finally { + buildActivityTimer.end() + } if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) { - // bundle graphql-engine - engineBundlingPromises.push(createGraphqlEngineBundle()) + const state = store.getState() + const buildActivityTimer = report.activityTimer( + `Building Rendering Engines`, + { parentSpan: buildSpan } + ) + try { + buildActivityTimer.start() + // bundle graphql-engine + engineBundlingPromises.push( + createGraphqlEngineBundle(program.directory, report, program.verbose) + ) + + engineBundlingPromises.push( + createPageSSRBundle({ + rootDir: program.directory, + components: state.components, + staticQueriesByTemplate: state.staticQueriesByTemplate, + reporter: report, + isVerbose: program.verbose, + }) + ) + await Promise.all(engineBundlingPromises) + } catch (err) { + reporter.panic(err) + } finally { + buildActivityTimer.end() + } + } + + const buildSSRBundleActivityProgress = report.activityTimer( + `Building HTML renderer`, + { parentSpan: buildSpan } + ) + buildSSRBundleActivityProgress.start() + try { + const { close, stats } = await buildRenderer( + program, + Stage.BuildHTML, + buildSSRBundleActivityProgress.span + ) + + closeHTMLBundleCompilation = close + webpackSSRCompilationHash = stats.hash as string + + await close() + } catch (err) { + buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err)) + } finally { + buildSSRBundleActivityProgress.end() + } + + if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) { + const validateEnginesActivity = report.activityTimer( + `Validating Rendering Engines`, + { + parentSpan: buildSpan, + } + ) + validateEnginesActivity.start() + try { + await validateEngines(store.getState().program.directory) + } catch (error) { + validateEnginesActivity.panic({ id: `98001`, context: {}, error }) + } finally { + validateEnginesActivity.end() + } + } + + const cacheActivity = report.activityTimer(`Caching Webpack compilations`, { + parentSpan: buildSpan, + }) + try { + cacheActivity.start() + await Promise.all([ + closeJavascriptBundleCompilation?.(), + closeHTMLBundleCompilation?.(), + ]) + } finally { + cacheActivity.end() } const graphqlRunner = new GraphQLRunner(store, { @@ -119,18 +243,20 @@ module.exports = async function build(program: IBuildArgs): Promise { // Only run queries with mode SSG if (_CFLAGS_.GATSBY_MAJOR === `4`) { queryIds.pageQueryIds = queryIds.pageQueryIds.filter( - query => query.mode === `SSG` + query => getPageMode(query) === `SSG` ) } let waitForWorkerPoolRestart = Promise.resolve() if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) { - await runQueriesInWorkersQueue(workerPool, queryIds) + await runQueriesInWorkersQueue(workerPool, queryIds, { + parentSpan: buildSpan, + }) // Jobs still might be running even though query running finished await waitUntilAllJobsComplete() // Restart worker pool before merging state to lower memory pressure while merging state waitForWorkerPoolRestart = workerPool.restart() - await mergeWorkerState(workerPool) + await mergeWorkerState(workerPool, buildSpan) } else { await runStaticQueries({ queryIds, @@ -147,10 +273,24 @@ module.exports = async function build(program: IBuildArgs): Promise { }) } - await writeOutRequires({ - store, - parentSpan: buildSpan, - }) + // create scope so we don't leak state object + { + const state = store.getState() + await writeQueryContext({ + staticQueriesByTemplate: state.staticQueriesByTemplate, + components: state.components, + }) + } + + if (process.send) { + process.send({ + type: `LOG_ACTION`, + action: { + type: `ENGINES_READY`, + timestamp: new Date().toJSON(), + }, + }) + } await apiRunnerNode(`onPreBuild`, { graphql: gatsbyNodeGraphQLFunction, @@ -161,54 +301,37 @@ module.exports = async function build(program: IBuildArgs): Promise { // an equivalent static directory within public. copyStaticDirs() - const buildActivityTimer = report.activityTimer( - `Building production JavaScript and CSS bundles`, - { parentSpan: buildSpan } - ) - buildActivityTimer.start() - let stats - let waitForCompilerClose - try { - const result = await buildProductionBundle(program, buildActivityTimer.span) - stats = result.stats - waitForCompilerClose = result.waitForCompilerClose - - if (stats.hasWarnings()) { - const rawMessages = stats.toJson({ moduleTrace: false }) - reportWebpackWarnings(rawMessages.warnings, report) - } - } catch (err) { - buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err)) - } finally { - buildActivityTimer.end() - } - - if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) { - // client bundle is produced so static query maps should be ready - engineBundlingPromises.push(createPageSSRBundle()) - } + // create scope so we don't leak state object + { + const state = store.getState() + if ( + webpackCompilationHash !== state.webpackCompilationHash || + !appDataUtil.exists(publicDir) + ) { + store.dispatch({ + type: `SET_WEBPACK_COMPILATION_HASH`, + payload: webpackCompilationHash, + }) - const webpackCompilationHash = stats.hash - if ( - webpackCompilationHash !== store.getState().webpackCompilationHash || - !appDataUtil.exists(publicDir) - ) { - store.dispatch({ - type: `SET_WEBPACK_COMPILATION_HASH`, - payload: webpackCompilationHash, - }) + const rewriteActivityTimer = report.activityTimer( + `Rewriting compilation hashes`, + { + parentSpan: buildSpan, + } + ) + rewriteActivityTimer.start() - const rewriteActivityTimer = report.activityTimer( - `Rewriting compilation hashes`, - { - parentSpan: buildSpan, - } - ) - rewriteActivityTimer.start() + await appDataUtil.write(publicDir, webpackCompilationHash as string) - await appDataUtil.write(publicDir, webpackCompilationHash) + rewriteActivityTimer.end() + } - rewriteActivityTimer.end() + if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) { + store.dispatch({ + type: `SET_SSR_WEBPACK_COMPILATION_HASH`, + payload: webpackSSRCompilationHash, + }) + } } await flushPendingPageDataWrites(buildSpan) @@ -216,9 +339,8 @@ module.exports = async function build(program: IBuildArgs): Promise { if (telemetry.isTrackingEnabled()) { // transform asset size to kB (from bytes) to fit 64 bit to numbers - const bundleSizes = stats - .toJson({ assets: true }) - .assets.filter(asset => asset.name.endsWith(`.js`)) + const bundleSizes = (webpackAssets as Array) + .filter(asset => asset.name.endsWith(`.js`)) .map(asset => asset.size / 1000) const pageDataSizes = [...store.getState().pageDataStats.values()] @@ -238,39 +360,6 @@ module.exports = async function build(program: IBuildArgs): Promise { // we need to save it again to make sure our latest state has been saved await db.saveState() - const buildSSRBundleActivityProgress = report.activityTimer( - `Building HTML renderer`, - { parentSpan: buildSpan } - ) - buildSSRBundleActivityProgress.start() - let waitForCompilerCloseBuildHtml - try { - const result = await buildRenderer( - program, - Stage.BuildHTML, - buildSSRBundleActivityProgress.span - ) - waitForCompilerCloseBuildHtml = result.waitForCompilerClose - - if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) { - Promise.all(engineBundlingPromises).then(() => { - if (process.send) { - process.send({ - type: `LOG_ACTION`, - action: { - type: `ENGINES_READY`, - timestamp: new Date().toJSON(), - }, - }) - } - }) - } - } catch (err) { - buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err)) - } finally { - buildSSRBundleActivityProgress.end() - } - if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) { // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug: program.keepPageRenderer = true @@ -278,6 +367,9 @@ module.exports = async function build(program: IBuildArgs): Promise { await waitForWorkerPoolRestart + // Start saving page.mode in the main process (while HTML is generated in workers in parallel) + const waitMaterializePageMode = materializePageMode() + const { toRegenerate, toDelete } = await buildHTMLPagesAndDeleteStaleArtifacts({ program, @@ -285,6 +377,7 @@ module.exports = async function build(program: IBuildArgs): Promise { buildSpan, }) + await waitMaterializePageMode const waitWorkerPoolEnd = Promise.all(workerPool.end()) telemetry.addSiteMeasurement(`BUILD_END`, { @@ -315,8 +408,6 @@ module.exports = async function build(program: IBuildArgs): Promise { // Make sure we saved the latest state so we have all jobs cached await db.saveState() - await Promise.all([waitForCompilerClose, waitForCompilerCloseBuildHtml]) - const state = store.getState() reporter._renderPageTree({ components: state.components, @@ -373,8 +464,6 @@ module.exports = async function build(program: IBuildArgs): Promise { report.info(`.cache/deletedPages.txt created`) } - await Promise.all(engineBundlingPromises) - showExperimentNotices() if (await userGetsSevenDayFeedback()) { diff --git a/packages/gatsby/src/commands/develop.ts b/packages/gatsby/src/commands/develop.ts index 3c9954f1a402c..1f9f81d30a4ac 100644 --- a/packages/gatsby/src/commands/develop.ts +++ b/packages/gatsby/src/commands/develop.ts @@ -18,13 +18,13 @@ import { getService, updateSiteMetadata, UnlockFn, + uuid, } from "gatsby-core-utils" import reporter from "gatsby-cli/lib/reporter" import { getSslCert } from "../utils/get-ssl-cert" import { IProxyControls, startDevelopProxy } from "../utils/develop-proxy" import { IProgram, IDebugInfo } from "./types" import { flush as telemetryFlush } from "gatsby-telemetry" -import uuidv4 from "uuid/v4" // Adapted from https://stackoverflow.com/a/16060619 const requireUncached = (file: string): any => { @@ -200,7 +200,7 @@ const REGEX_IP = module.exports = async (program: IProgram): Promise => { global.__GATSBY = { - buildId: uuidv4(), + buildId: uuid.v4(), root: program.directory, } diff --git a/packages/gatsby/src/commands/serve.ts b/packages/gatsby/src/commands/serve.ts index b4e409bb8bff6..ebb94e0f607e9 100644 --- a/packages/gatsby/src/commands/serve.ts +++ b/packages/gatsby/src/commands/serve.ts @@ -8,7 +8,6 @@ import { match as reachMatch } from "@gatsbyjs/reach-router/lib/utils" import onExit from "signal-exit" import report from "gatsby-cli/lib/reporter" import multer from "multer" -import pathToRegexp from "path-to-regexp" import cookie from "cookie" import telemetry from "gatsby-telemetry" @@ -25,14 +24,6 @@ interface IMatchPath { matchPath: string } -interface IPathToRegexpKey { - name: string | number - prefix: string - suffix: string - pattern: string - modifier: string -} - interface IServeProgram extends IProgram { prefixPaths: boolean } @@ -169,25 +160,22 @@ module.exports = async (program: IServeProgram): Promise => { // Check if there's any matchPaths that match. // We loop until we find the first match. functions.some(f => { - let exp - const keys: Array = [] if (f.matchPath) { - exp = pathToRegexp(f.matchPath, keys) + const matchResult = reachMatch(f.matchPath, pathFragment) + if (matchResult) { + req.params = matchResult.params + if (req.params[`*`]) { + // Backwards compatability for v3 + // TODO remove in v5 + req.params[`0`] = req.params[`*`] + } + functionObj = f + + return true + } } - if (exp && exp.exec(pathFragment) !== null) { - functionObj = f - // @ts-ignore - TS bug? https://stackoverflow.com/questions/50234481/typescript-2-8-3-type-must-have-a-symbol-iterator-method-that-returns-an-iterato - const matches = [...pathFragment.match(exp)].slice(1) - const newParams = {} - matches.forEach( - (match, index) => (newParams[keys[index].name] = match) - ) - req.params = newParams - return true - } else { - return false - } + return false }) } @@ -254,20 +242,31 @@ module.exports = async (program: IServeProgram): Promise => { const page = graphqlEngine.findPageByPath(potentialPagePath) if (page && (page.mode === `DSG` || page.mode === `SSR`)) { - const data = await getData({ - pathName: req.path, - graphqlEngine, - req, - }) - const results = await renderPageData({ data }) - if (page.mode === `SSR` && data.serverDataHeaders) { - for (const [name, value] of Object.entries( - data.serverDataHeaders - )) { - res.setHeader(name, value) + try { + const data = await getData({ + pathName: req.path, + graphqlEngine, + req, + }) + const results = await renderPageData({ data }) + if (page.mode === `SSR` && data.serverDataHeaders) { + for (const [name, value] of Object.entries( + data.serverDataHeaders + )) { + res.setHeader(name, value) + } } + return void res.send(results) + } catch (e) { + report.error( + `Generating page-data for "${requestedPagePath}" / "${potentialPagePath}" failed.`, + e + ) + return res + .status(500) + .contentType(`text/plain`) + .send(`Internal server error.`) } - return void res.send(results) } return void next() @@ -278,25 +277,34 @@ module.exports = async (program: IServeProgram): Promise => { if (req.accepts(`html`)) { const potentialPagePath = req.path const page = graphqlEngine.findPageByPath(potentialPagePath) - if (page && (page.mode === `DSG` || page.mode === `SSR`)) { - const data = await getData({ - pathName: potentialPagePath, - graphqlEngine, - req, - }) - const results = await renderHTML({ data }) - if (page.mode === `SSR` && data.serverDataHeaders) { - for (const [name, value] of Object.entries( - data.serverDataHeaders - )) { - res.setHeader(name, value) + try { + const data = await getData({ + pathName: potentialPagePath, + graphqlEngine, + req, + }) + const results = await renderHTML({ data }) + if (page.mode === `SSR` && data.serverDataHeaders) { + for (const [name, value] of Object.entries( + data.serverDataHeaders + )) { + res.setHeader(name, value) + } } + return res.send(results) + } catch (e) { + report.error( + `Rendering html for "${potentialPagePath}" failed.`, + e + ) + return res.status(500).sendFile(`500.html`, { root }, err => { + if (err) { + res.contentType(`text/plain`).send(`Internal server error.`) + } + }) } - return res.send(results) } - - return res.status(404).sendFile(`404.html`, { root }) } return next() }) diff --git a/packages/gatsby/src/datastore/__tests__/nodes.js b/packages/gatsby/src/datastore/__tests__/nodes.js index 02a3ebb3c811c..518e44ef1f8d8 100644 --- a/packages/gatsby/src/datastore/__tests__/nodes.js +++ b/packages/gatsby/src/datastore/__tests__/nodes.js @@ -10,40 +10,6 @@ describe(`nodes db tests`, () => { store.dispatch({ type: `DELETE_CACHE` }) }) - it(`warns when using old touchNode signature `, () => { - store.dispatch( - actions.createNode( - { - id: `hi`, - children: [], - parent: `test`, - internal: { - contentDigest: `hasdfljds`, - type: `Test`, - }, - }, - { - name: `tests`, - } - ) - ) - expect(getNode(`hi`)).toMatchObject({ id: `hi` }) - store.dispatch( - actions.touchNode( - { nodeId: `hi` }, - { - name: `tests`, - } - ) - ) - expect(getNode(`hi`)).toBeDefined() - const deprecationNotice = - `Calling "touchNode" with an object containing the nodeId is deprecated. Please pass ` + - `the node directly to the function: touchNode(node) ` + - `"touchNode" was called by tests` - expect(report.warn).toHaveBeenCalledWith(deprecationNotice) - }) - it(`deletes previously transformed children nodes when the parent node is updated`, async () => { store.dispatch( actions.createNode( @@ -341,40 +307,6 @@ describe(`nodes db tests`, () => { expect(getNode(`hi`)).toBeUndefined() }) - it(`warns when using old deleteNode signature `, () => { - store.dispatch( - actions.createNode( - { - id: `hi`, - children: [], - parent: `test`, - internal: { - contentDigest: `hasdfljds`, - type: `Test`, - }, - }, - { - name: `tests`, - } - ) - ) - expect(getNode(`hi`)).toMatchObject({ id: `hi` }) - store.dispatch( - actions.deleteNode( - { node: getNode(`hi`) }, - { - name: `tests`, - } - ) - ) - expect(getNode(`hi`)).toBeUndefined() - const deprecationNotice = - `Calling "deleteNode" with {node} is deprecated. Please pass ` + - `the node directly to the function: deleteNode(node) ` + - `"deleteNode" was called by tests` - expect(report.warn).toHaveBeenCalledWith(deprecationNotice) - }) - it(`throws an error when trying to delete a node of a type owned from another plugin`, () => { expect(() => { store.dispatch( diff --git a/packages/gatsby/src/datastore/lmdb/lmdb-datastore.ts b/packages/gatsby/src/datastore/lmdb/lmdb-datastore.ts index 3a6f5e6f3d9ca..07b9d062ee0ca 100644 --- a/packages/gatsby/src/datastore/lmdb/lmdb-datastore.ts +++ b/packages/gatsby/src/datastore/lmdb/lmdb-datastore.ts @@ -194,7 +194,8 @@ function updateDataStore(action: ActionsUnion): void { case `CREATE_NODE`: case `ADD_FIELD_TO_NODE`: case `ADD_CHILD_NODE_TO_PARENT_NODE`: - case `DELETE_NODE`: { + case `DELETE_NODE`: + case `MATERIALIZE_PAGE_MODE`: { const dbs = getDatabases() lastOperationPromise = Promise.all([ updateNodes(dbs.nodes, action), diff --git a/packages/gatsby/src/datastore/lmdb/updates/nodes.ts b/packages/gatsby/src/datastore/lmdb/updates/nodes.ts index a6049b5f20c53..956e7caf08a95 100644 --- a/packages/gatsby/src/datastore/lmdb/updates/nodes.ts +++ b/packages/gatsby/src/datastore/lmdb/updates/nodes.ts @@ -19,6 +19,15 @@ export function updateNodes( } return false } + case `MATERIALIZE_PAGE_MODE`: { + const id = `SitePage ${action.payload.path}` + const node = nodesDb.get(id) + if (!node) { + throw new Error(`Could not find SitePage node by id: ${id}`) + } + node.mode = action.payload.pageMode + return nodesDb.put(id, node) + } } return false } diff --git a/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js b/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js index 4c57569206f1e..3add076ea0691 100644 --- a/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js +++ b/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js @@ -89,19 +89,12 @@ class Dev404Page extends React.Component { return null } - // Detect when the query returns the default function node that's added when functions - // are *not* enabled. That seems the simplest way to communicate whether - // functions are enabled or not to this page. - // TODO remove when functions are shipped. - const functionsEnabled = !( - this.props.data.allSiteFunction.nodes[0]?.functionRoute === `FAKE` - ) const { pathname } = this.props.location let newFilePath let newAPIPath if (pathname === `/`) { newFilePath = `src/pages/index.js` - } else if (functionsEnabled && pathname.slice(0, 4) === `/api`) { + } else if (pathname.slice(0, 4) === `/api`) { newAPIPath = `src${pathname}.js` } else if (pathname.slice(-1) === `/`) { newFilePath = `src/pages${pathname.slice(0, -1)}.js` @@ -115,9 +108,7 @@ class Dev404Page extends React.Component {

    Gatsby.js development 404 page

    - {`There's not a page ${ - functionsEnabled ? `or function ` : `` - }yet at `} + There's not a page or function yet at{` `} {pathname}

    {this.props.custom404 ? ( @@ -193,27 +184,20 @@ export default function API (req, res) {

    - If you were trying to reach another page - {functionsEnabled ? ` or function` : ``}, perhaps you can find it - below. + If you were trying to reach another page or function, perhaps you + can find it below.

    - {functionsEnabled && ( - <> -

    - Functions ({this.props.data.allSiteFunction.nodes.length}) -

    -
      - {this.props.data.allSiteFunction.nodes.map(node => { - const functionRoute = `/api/${node.functionRoute}` - return ( -
    • - {functionRoute} -
    • - ) - })} -
    - - )} +

    Functions ({this.props.data.allSiteFunction.nodes.length})

    +
      + {this.props.data.allSiteFunction.nodes.map(node => { + const functionRoute = `/api/${node.functionRoute}` + return ( +
    • + {functionRoute} +
    • + ) + })} +

    Pages ( {this.state.pagePaths.length != this.state.initPagePaths.length diff --git a/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts b/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts index 64712c3b03a49..eafbe7f3333e1 100644 --- a/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts +++ b/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts @@ -10,9 +10,7 @@ import { CreateDevServerArgs, ParentSpanPluginArgs } from "gatsby" import formatWebpackMessages from "react-dev-utils/formatWebpackMessages" import dotenv from "dotenv" import chokidar from "chokidar" -// We use an ancient version of path-to-regexp as it has breaking changes to express v4 -// see: https://github.com/pillarjs/path-to-regexp/tree/77df63869075cfa5feda1988642080162c584427#compatibility-with-express--4x -import pathToRegexp from "path-to-regexp" +import { match } from "@gatsbyjs/reach-router/lib/utils" import cookie from "cookie" import { reportWebpackWarnings } from "../../utils/webpack-error-utils" import { internalActions } from "../../redux/actions" @@ -29,14 +27,6 @@ interface IGlobPattern { globPattern: string } -interface IPathToRegexpKey { - name: string | number - prefix: string - suffix: string - pattern: string - modifier: string -} - // During development, we lazily compile functions only when they're requested. // Here we keep track of which functions have been requested so are "active" const activeDevelopmentFunctions = new Set() @@ -496,24 +486,22 @@ export async function onCreateDevServer({ // Check if there's any matchPaths that match. // We loop until we find the first match. functions.some(f => { - let exp - const keys: Array = [] if (f.matchPath) { - exp = pathToRegexp(f.matchPath, keys) + const matchResult = match(f.matchPath, pathFragment) + if (matchResult) { + req.params = matchResult.params + if (req.params[`*`]) { + // Backwards compatability for v3 + // TODO remove in v5 + req.params[`0`] = req.params[`*`] + } + functionObj = f + + return true + } } - if (exp && exp.exec(pathFragment) !== null) { - functionObj = f - const matches = [...pathFragment.match(exp)].slice(1) - const newParams = {} - matches.forEach( - (match, index) => (newParams[keys[index].name] = match) - ) - req.params = newParams - return true - } else { - return false - } + return false }) } diff --git a/packages/gatsby/src/internal-plugins/prod-404-500/gatsby-node.js b/packages/gatsby/src/internal-plugins/prod-404-500/gatsby-node.js new file mode 100644 index 0000000000000..5a4cfb0fa07eb --- /dev/null +++ b/packages/gatsby/src/internal-plugins/prod-404-500/gatsby-node.js @@ -0,0 +1,55 @@ +const { emitter, store } = require(`../../redux`) +const { actions } = require(`../../redux/actions`) + +const originalStatusPageByStatus = {} +const originalStatusPageByPath = {} + +emitter.on(`CREATE_PAGE`, action => { + // Copy /404/ to /404.html and /500/ to /500.html. Many static site hosts expect + // site 404 pages to be named this. In addition, with Rendering Engines there might + // be runtime errors which would fallback to "/500.html" page. + // https://www.gatsbyjs.org/docs/how-to/adding-common-features/add-404-page/ + const result = /^\/?(404|500)\/?$/.exec(action.payload.path) + if (result && result.length > 1) { + const status = result[1] + + const originalPage = originalStatusPageByStatus[status] + + if (!originalPage) { + const storedPage = { + path: action.payload.path, + component: action.payload.component, + context: action.payload.context, + status, + } + + originalStatusPageByStatus[status] = storedPage + originalStatusPageByPath[action.payload.path] = storedPage + + store.dispatch( + actions.createPage( + { + ...storedPage, + path: `/${status}.html`, + }, + action.plugin, + action + ) + ) + } + } +}) + +emitter.on(`DELETE_PAGE`, action => { + const storedPage = originalStatusPageByPath[action.payload.path] + if (storedPage) { + store.dispatch( + actions.deletePage({ + ...storedPage, + path: `/${storedPage.status}.html`, + }) + ) + originalStatusPageByPath[action.payload.path] = null + originalStatusPageByStatus[storedPage.status] = null + } +}) diff --git a/packages/gatsby/src/internal-plugins/prod-404/index.js b/packages/gatsby/src/internal-plugins/prod-404-500/index.js similarity index 100% rename from packages/gatsby/src/internal-plugins/prod-404/index.js rename to packages/gatsby/src/internal-plugins/prod-404-500/index.js diff --git a/packages/gatsby/src/internal-plugins/prod-404/package.json b/packages/gatsby/src/internal-plugins/prod-404-500/package.json similarity index 93% rename from packages/gatsby/src/internal-plugins/prod-404/package.json rename to packages/gatsby/src/internal-plugins/prod-404-500/package.json index e1d2cce3706f2..928f1585df7bd 100644 --- a/packages/gatsby/src/internal-plugins/prod-404/package.json +++ b/packages/gatsby/src/internal-plugins/prod-404-500/package.json @@ -1,5 +1,5 @@ { - "name": "prod-404", + "name": "prod-404-500", "version": "1.0.0", "description": "Internal plugin to detect various flavors of 404 pages and ensure there's a 404.html path created as well to ensure compatibility with static hosts", "main": "index.js", diff --git a/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js b/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js deleted file mode 100644 index a09d806431359..0000000000000 --- a/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js +++ /dev/null @@ -1,39 +0,0 @@ -const { emitter, store } = require(`../../redux`) -const { actions } = require(`../../redux/actions`) - -const PROD_404_PAGE_PATH = `/404.html` - -let page404 = null -emitter.on(`CREATE_PAGE`, action => { - // Copy /404/ to /404.html as many static site hosts expect - // site 404 pages to be named this. - // https://www.gatsbyjs.org/docs/how-to/adding-common-features/add-404-page/ - if (!page404 && /^\/?404\/?$/.test(action.payload.path)) { - page404 = { - path: action.payload.path, - component: action.payload.component, - context: action.payload.context, - } - store.dispatch( - actions.createPage( - { - ...page404, - path: PROD_404_PAGE_PATH, - }, - action.plugin - ) - ) - } -}) - -emitter.on(`DELETE_PAGE`, action => { - if (page404 && action.payload.path === page404.path) { - store.dispatch( - actions.deletePage({ - ...page404, - path: PROD_404_PAGE_PATH, - }) - ) - page404 = null - } -}) diff --git a/packages/gatsby/src/query/__tests__/data-tracking.js b/packages/gatsby/src/query/__tests__/data-tracking.js index ad5f58e8ab987..ccf6de2c16f8e 100644 --- a/packages/gatsby/src/query/__tests__/data-tracking.js +++ b/packages/gatsby/src/query/__tests__/data-tracking.js @@ -53,6 +53,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), panicOnBuild: console.log, activityTimer: () => { return { @@ -1125,7 +1126,7 @@ describe(`query caching between builds`, () => { }, createSchemaCustomization: ({ actions: { createTypes } }) => { createTypes(` - interface NodeInterface @nodeInterface { + interface NodeInterface implements Node { id: ID! test: String } @@ -1290,9 +1291,8 @@ describe(`query caching between builds`, () => { createSchemaCustomization: ({ actions: { createTypes }, schema }) => { // Define fields with custom resolvers first const resolveOne = type => (value, args, context) => - context.nodeModel.runQuery({ + context.nodeModel.findOne({ query: { testId: { eq: value.id } }, - firstOnly: true, type, }) @@ -1320,11 +1320,13 @@ describe(`query caching between builds`, () => { }, fooList: { type: [`Foo`], - resolve: (value, args, context) => - context.nodeModel.runQuery({ + resolve: async (value, args, context) => { + const { entries } = await context.nodeModel.findAll({ query: { testId: { eq: value.id } }, type: `Foo`, - }), + }) + return entries + }, }, barList: { type: [`Bar`], @@ -1359,7 +1361,8 @@ describe(`query caching between builds`, () => { }) } if (stage === `delete-foo`) { - nodeApiContext.actions.deleteNode({ node: { id: `foo-1` } }) + const node = { id: `foo-1` } + nodeApiContext.actions.deleteNode(node) } if (stage === `add-bar2`) { createBarNode({ @@ -1368,10 +1371,12 @@ describe(`query caching between builds`, () => { }) } if (stage === `delete-bar2`) { - nodeApiContext.actions.deleteNode({ node: { id: `bar-2` } }) + const node = { id: `bar-2` } + nodeApiContext.actions.deleteNode(node) } if (stage === `delete-bar1`) { - nodeApiContext.actions.deleteNode({ node: { id: `bar-1` } }) + const node = { id: `bar-1` } + nodeApiContext.actions.deleteNode(node) } }, createPages: ({ actions: { createPage } }, _pluginOptions) => { diff --git a/packages/gatsby/src/query/file-parser.js b/packages/gatsby/src/query/file-parser.js index 3e95876f02c33..a21a395cdeed4 100644 --- a/packages/gatsby/src/query/file-parser.js +++ b/packages/gatsby/src/query/file-parser.js @@ -7,6 +7,7 @@ const slugify = require(`slugify`) // Traverse is a es6 module... import traverse from "@babel/traverse" +import * as t from "@babel/types" const { getGraphQLTag, StringInterpolationNotAllowedError, @@ -185,158 +186,139 @@ type GraphQLDocumentInFile = { isStaticQuery: boolean, } +// Adapted from gatsby/src/utils/babel/babel-plugin-remove-api +function findApiExport(ast, api) { + let hasExport = false + const apiToFind = api ?? `` + + traverse(ast, { + ExportNamedDeclaration(path) { + const declaration = path.node.declaration + + if (t.isExportNamedDeclaration(path.node) && !hasExport) { + hasExport = path.node.specifiers.some( + specifier => + t.isExportSpecifier(specifier) && + t.isIdentifier(specifier.exported) && + specifier.exported.name === apiToFind + ) + } + + let apiToCheck + if (t.isFunctionDeclaration(declaration) && declaration.id) { + apiToCheck = declaration.id.name + } + + if ( + t.isVariableDeclaration(declaration) && + t.isIdentifier(declaration.declarations[0].id) + ) { + apiToCheck = declaration.declarations[0].id.name + } + + if (apiToCheck && apiToCheck === apiToFind) { + hasExport = true + } + }, + }) + + return hasExport +} + async function findGraphQLTags( file, - text, + ast, { parentSpan, addError } = {} ): Promise> { - return new Promise((resolve, reject) => { - parseToAst(file, text, { parentSpan, addError }) - .then(ast => { - const documents = [] - if (!ast) { - resolve(documents) - return - } + const documents = [] + if (!ast) { + return documents + } - /** - * A map of graphql documents to unique locations. - * - * A graphql document's unique location is made of: - * - * - the location of the graphql template literal that contains the document, and - * - the document's location within the graphql template literal - * - * This is used to prevent returning duplicated documents. - */ - const documentLocations = new WeakMap() - - const extractStaticQuery = ( - taggedTemplateExpressPath, - isHook = false - ) => { - const { - ast: gqlAst, - text, - hash, - isGlobal, - } = getGraphQLTag(taggedTemplateExpressPath) - if (!gqlAst) return - - if (isGlobal) { - panicOnGlobalTag(file) - return - } + /** + * A map of graphql documents to unique locations. + * + * A graphql document's unique location is made of: + * + * - the location of the graphql template literal that contains the document, and + * - the document's location within the graphql template literal + * + * This is used to prevent returning duplicated documents. + */ + const documentLocations = new WeakMap() + + const extractStaticQuery = (taggedTemplateExpressPath, isHook = false) => { + const { + ast: gqlAst, + text, + hash, + isGlobal, + } = getGraphQLTag(taggedTemplateExpressPath) + if (!gqlAst) return + + if (isGlobal) { + panicOnGlobalTag(file) + return + } - gqlAst.definitions.forEach(def => { - generateQueryName({ - def, - hash, - file, - }) - }) + gqlAst.definitions.forEach(def => { + generateQueryName({ + def, + hash, + file, + }) + }) - let templateLoc + let templateLoc - taggedTemplateExpressPath.traverse({ - TemplateElement(templateElementPath) { - templateLoc = templateElementPath.node.loc - }, - }) + taggedTemplateExpressPath.traverse({ + TemplateElement(templateElementPath) { + templateLoc = templateElementPath.node.loc + }, + }) - const docInFile = { - filePath: file, - doc: gqlAst, - text: text, - hash: hash, - isStaticQuery: true, - isHook, - templateLoc, - } + const docInFile = { + filePath: file, + doc: gqlAst, + text: text, + hash: hash, + isStaticQuery: true, + isHook, + templateLoc, + } - documentLocations.set( - docInFile, - `${taggedTemplateExpressPath.node.start}-${gqlAst.loc.start}` - ) + documentLocations.set( + docInFile, + `${taggedTemplateExpressPath.node.start}-${gqlAst.loc.start}` + ) - documents.push(docInFile) - } + documents.push(docInFile) + } - // Look for queries in elements. - traverse(ast, { - JSXElement(path) { - if (path.node.openingElement.name.name !== `StaticQuery`) { - return - } + // Look for queries in elements. + traverse(ast, { + JSXElement(path) { + if (path.node.openingElement.name.name !== `StaticQuery`) { + return + } - // astexplorer.com link I (@kyleamathews) used when prototyping this algorithm - // https://astexplorer.net/#/gist/ab5d71c0f08f287fbb840bf1dd8b85ff/2f188345d8e5a4152fe7c96f0d52dbcc6e9da466 - path.traverse({ - JSXAttribute(jsxPath) { - if (jsxPath.node.name.name !== `query`) { - return - } - jsxPath.traverse({ - // Assume the query is inline in the component and extract that. - TaggedTemplateExpression(templatePath) { - extractStaticQuery(templatePath) - }, - // Also see if it's a variable that's passed in as a prop - // and if it is, go find it. - Identifier(identifierPath) { - if (identifierPath.node.name !== `graphql`) { - const varName = identifierPath.node.name - let found = false - traverse(ast, { - VariableDeclarator(varPath) { - if ( - varPath.node.id.name === varName && - varPath.node.init.type === - `TaggedTemplateExpression` - ) { - varPath.traverse({ - TaggedTemplateExpression(templatePath) { - found = true - extractStaticQuery(templatePath) - }, - }) - } - }, - }) - if (!found) { - warnForUnknownQueryVariable( - varName, - file, - `` - ) - } - } - }, - }) - }, - }) + // astexplorer.com link I (@kyleamathews) used when prototyping this algorithm + // https://astexplorer.net/#/gist/ab5d71c0f08f287fbb840bf1dd8b85ff/2f188345d8e5a4152fe7c96f0d52dbcc6e9da466 + path.traverse({ + JSXAttribute(jsxPath) { + if (jsxPath.node.name.name !== `query`) { return - }, - }) - - // Look for queries in useStaticQuery hooks. - traverse(ast, { - CallExpression(hookPath) { - if (!isUseStaticQuery(hookPath)) return - - const firstArg = hookPath.get(`arguments`)[0] - + } + jsxPath.traverse({ // Assume the query is inline in the component and extract that. - if (firstArg.isTaggedTemplateExpression()) { - extractStaticQuery(firstArg, true) - // Also see if it's a variable that's passed in as a prop - // and if it is, go find it. - } else if (firstArg.isIdentifier()) { - if ( - firstArg.node.name !== `graphql` && - firstArg.node.name !== `useStaticQuery` - ) { - const varName = firstArg.node.name + TaggedTemplateExpression(templatePath) { + extractStaticQuery(templatePath) + }, + // Also see if it's a variable that's passed in as a prop + // and if it is, go find it. + Identifier(identifierPath) { + if (identifierPath.node.name !== `graphql`) { + const varName = identifierPath.node.name let found = false traverse(ast, { VariableDeclarator(varPath) { @@ -347,90 +329,133 @@ async function findGraphQLTags( varPath.traverse({ TaggedTemplateExpression(templatePath) { found = true - extractStaticQuery(templatePath, true) + extractStaticQuery(templatePath) }, }) } }, }) if (!found) { - warnForUnknownQueryVariable(varName, file, `useStaticQuery`) + warnForUnknownQueryVariable(varName, file, ``) } } - } - }, - }) - - function TaggedTemplateExpression(innerPath) { - const { ast: gqlAst, isGlobal, hash, text } = getGraphQLTag(innerPath) - if (!gqlAst) return - - if (isGlobal) { - panicOnGlobalTag(file) - return - } - - gqlAst.definitions.forEach(def => { - generateQueryName({ - def, - hash, - file, - }) + }, }) + }, + }) + return + }, + }) - let templateLoc - innerPath.traverse({ - TemplateElement(templateElementPath) { - templateLoc = templateElementPath.node.loc + // Look for queries in useStaticQuery hooks. + traverse(ast, { + CallExpression(hookPath) { + if (!isUseStaticQuery(hookPath)) return + + const firstArg = hookPath.get(`arguments`)[0] + + // Assume the query is inline in the component and extract that. + if (firstArg.isTaggedTemplateExpression()) { + extractStaticQuery(firstArg, true) + // Also see if it's a variable that's passed in as a prop + // and if it is, go find it. + } else if (firstArg.isIdentifier()) { + if ( + firstArg.node.name !== `graphql` && + firstArg.node.name !== `useStaticQuery` + ) { + const varName = firstArg.node.name + let found = false + traverse(ast, { + VariableDeclarator(varPath) { + if ( + varPath.node.id.name === varName && + varPath.node.init.type === `TaggedTemplateExpression` + ) { + varPath.traverse({ + TaggedTemplateExpression(templatePath) { + found = true + extractStaticQuery(templatePath, true) + }, + }) + } }, }) - - const docInFile = { - filePath: file, - doc: gqlAst, - text: text, - hash: hash, - isStaticQuery: false, - isHook: false, - templateLoc, + if (!found) { + warnForUnknownQueryVariable(varName, file, `useStaticQuery`) } + } + } + }, + }) - documentLocations.set( - docInFile, - `${innerPath.node.start}-${gqlAst.loc.start}` - ) + function TaggedTemplateExpression(innerPath) { + const { ast: gqlAst, isGlobal, hash, text } = getGraphQLTag(innerPath) + if (!gqlAst) return - documents.push(docInFile) - } + if (isGlobal) { + panicOnGlobalTag(file) + return + } - // When a component has a StaticQuery we scan all of its exports and follow those exported variables - // to determine if they lead to this static query (via tagged template literal) - traverse(ast, { - ExportNamedDeclaration(path, state) { - // Skipping the edge case of re-exporting (i.e. "export { bar } from 'Bar'") - // (it is handled elsewhere for queries, see usages of warnForUnknownQueryVariable) - if (path.node.source) { - return - } - path.traverse({ - TaggedTemplateExpression, - ExportSpecifier(path) { - const binding = followVariableDeclarations( - path.scope.getBinding(path.node.local.name) - ) - binding?.path?.traverse({ TaggedTemplateExpression }) - }, - }) - }, - }) + gqlAst.definitions.forEach(def => { + generateQueryName({ + def, + hash, + file, + }) + }) + + let templateLoc + innerPath.traverse({ + TemplateElement(templateElementPath) { + templateLoc = templateElementPath.node.loc + }, + }) - // Remove duplicate queries - const uniqueQueries = _.uniqBy(documents, q => documentLocations.get(q)) + const docInFile = { + filePath: file, + doc: gqlAst, + text: text, + hash: hash, + isStaticQuery: false, + isHook: false, + templateLoc, + } + + documentLocations.set( + docInFile, + `${innerPath.node.start}-${gqlAst.loc.start}` + ) - resolve(uniqueQueries) + documents.push(docInFile) + } + + // When a component has a StaticQuery we scan all of its exports and follow those exported variables + // to determine if they lead to this static query (via tagged template literal) + traverse(ast, { + ExportNamedDeclaration(path, state) { + // Skipping the edge case of re-exporting (i.e. "export { bar } from 'Bar'") + // (it is handled elsewhere for queries, see usages of warnForUnknownQueryVariable) + if (path.node.source) { + return + } + path.traverse({ + TaggedTemplateExpression, + ExportSpecifier(path) { + const binding = followVariableDeclarations( + path.scope.getBinding(path.node.local.name) + ) + binding?.path?.traverse({ TaggedTemplateExpression }) + }, }) - .catch(reject) + }, }) + + // Remove duplicate queries + const uniqueQueries = _.uniqBy(documents, q => documentLocations.get(q)) + + return uniqueQueries } const cache = {} @@ -464,8 +489,14 @@ export default class FileParser { // We do a quick check so we can exit early if this is a file we're not interested in. // We only process files that either include graphql, or static images - if (!text.includes(`graphql`) && !text.includes(`gatsby-plugin-image`)) + if ( + !text.includes(`graphql`) && + !text.includes(`gatsby-plugin-image`) && + !text.includes(`getServerData`) + ) { return null + } + const hash = crypto .createHash(`md5`) .update(file) @@ -473,12 +504,32 @@ export default class FileParser { .digest(`hex`) try { - const astDefinitions = - cache[hash] || - (cache[hash] = await findGraphQLTags(file, text, { + if (!cache[hash]) { + const ast = await parseToAst(file, text, { parentSpan: this.parentSpan, addError, - })) + }) + cache[hash] = { + astDefinitions: await findGraphQLTags(file, ast, { + parentSpan: this.parentSpan, + addError, + }), + serverData: findApiExport(ast, `getServerData`), + // TODO: config: findApiExport(ast, `config`), + } + } + const { astDefinitions, serverData } = cache[hash] + + // Note: we should dispatch this action even when getServerData is not found + // (maybe it was set before, so now we need to reset renderMode from SSR to the default one) + store.dispatch({ + type: `SET_COMPONENT_FEATURES`, + payload: { + componentPath: file, + serverData, + // TODO: config + }, + }) // If any AST definitions were extracted, report success. // This can mean there is none or there was a babel error when diff --git a/packages/gatsby/src/query/graphql-errors-codeframe.ts b/packages/gatsby/src/query/graphql-errors-codeframe.ts new file mode 100644 index 0000000000000..6052d0b277d8d --- /dev/null +++ b/packages/gatsby/src/query/graphql-errors-codeframe.ts @@ -0,0 +1,25 @@ +import { codeFrameColumns } from "@babel/code-frame" + +export function getCodeFrame( + query: string, + line?: number, + column?: number +): string { + if (!line) { + return query + } + + return codeFrameColumns( + query, + { + start: { + line, + column, + }, + }, + { + linesAbove: 10, + linesBelow: 10, + } + ) +} diff --git a/packages/gatsby/src/query/graphql-errors.js b/packages/gatsby/src/query/graphql-errors.js index eba679375d2d4..19a486e216d6c 100644 --- a/packages/gatsby/src/query/graphql-errors.js +++ b/packages/gatsby/src/query/graphql-errors.js @@ -7,6 +7,7 @@ const { distance: levenshtein } = require(`fastest-levenshtein`) import _ from "lodash" import report from "gatsby-cli/lib/reporter" const { locInGraphQlToLocInFile } = require(`./error-parser`) +import { getCodeFrame } from "./graphql-errors-codeframe" type RelayGraphQLError = Error & { validationErrors?: Object } @@ -94,22 +95,6 @@ function findLocation(extractedMessage, def) { return location } -export function getCodeFrame(query: string, line?: number, column?: number) { - return codeFrameColumns( - query, - { - start: { - line, - column, - }, - }, - { - linesAbove: 10, - linesBelow: 10, - } - ) -} - function getCodeFrameFromRelayError( def: any, extractedMessage: string, diff --git a/packages/gatsby/src/query/index.ts b/packages/gatsby/src/query/index.ts index 23de7f3914a7b..4434584f5e025 100644 --- a/packages/gatsby/src/query/index.ts +++ b/packages/gatsby/src/query/index.ts @@ -96,7 +96,7 @@ function createQueue({ function worker(queryId: QueryIDType, cb): void { const job = createJobFn(state, queryId) if (!job) { - cb(null, undefined) + setImmediate(() => cb(null, undefined)) return } queryRunner(graphqlRunner, job, activity?.span) @@ -104,7 +104,9 @@ function createQueue({ if (activity.tick) { activity.tick() } - cb(null, { job, result }) + // Note: we need setImmediate to ensure garbage collection has a chance + // to get started during query running + setImmediate(() => cb(null, { job, result })) }) .catch(error => { cb(error) diff --git a/packages/gatsby/src/query/query-runner.ts b/packages/gatsby/src/query/query-runner.ts index 351c6cd0cae0e..231841cb1f17d 100644 --- a/packages/gatsby/src/query/query-runner.ts +++ b/packages/gatsby/src/query/query-runner.ts @@ -8,7 +8,7 @@ import { ExecutionResult, GraphQLError } from "graphql" import path from "path" import { store } from "../redux" import { actions } from "../redux/actions" -import { getCodeFrame } from "./graphql-errors" +import { getCodeFrame } from "./graphql-errors-codeframe" import errorParser from "./error-parser" import { GraphQLRunner } from "./graphql-runner" diff --git a/packages/gatsby/src/redux/__tests__/__snapshots__/index.js.snap b/packages/gatsby/src/redux/__tests__/__snapshots__/index.js.snap index 586089419a3b0..37a6ae5ffe6f7 100644 --- a/packages/gatsby/src/redux/__tests__/__snapshots__/index.js.snap +++ b/packages/gatsby/src/redux/__tests__/__snapshots__/index.js.snap @@ -11,6 +11,7 @@ Object { "/my-sweet-new-page/", }, "query": "", + "serverData": false, }, }, "html": Object { @@ -29,6 +30,7 @@ Object { "jobsV2": Object { "complete": Map {}, "incomplete": Map {}, + "jobsByRequest": Map {}, }, "nodes": Map { "pageA" => Object { diff --git a/packages/gatsby/src/redux/__tests__/__snapshots__/jobsv2.js.snap b/packages/gatsby/src/redux/__tests__/__snapshots__/jobsv2.js.snap index c1f840a75c6bf..003d7e8c66643 100644 --- a/packages/gatsby/src/redux/__tests__/__snapshots__/jobsv2.js.snap +++ b/packages/gatsby/src/redux/__tests__/__snapshots__/jobsv2.js.snap @@ -21,6 +21,11 @@ Object { }, }, }, + "jobsByRequest": Map { + "" => Set { + "aa9932d515707737e953173cd9c77306", + }, + }, } `; diff --git a/packages/gatsby/src/redux/__tests__/__snapshots__/pages.ts.snap b/packages/gatsby/src/redux/__tests__/__snapshots__/pages.ts.snap index 4e7b2140fdc3e..5f3d00b4f6315 100644 --- a/packages/gatsby/src/redux/__tests__/__snapshots__/pages.ts.snap +++ b/packages/gatsby/src/redux/__tests__/__snapshots__/pages.ts.snap @@ -50,6 +50,7 @@ Map { "/hi/" => Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, @@ -63,6 +64,7 @@ Map { "/hi/pizza/" => Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/pizza/", "isCreatedByStatefulCreatePages": false, @@ -82,6 +84,7 @@ Object { "payload": Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, @@ -105,6 +108,7 @@ Map { "/hi/" => Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, @@ -124,6 +128,7 @@ Object { "payload": Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object { "id": 123, }, @@ -149,6 +154,7 @@ Map { "/hi/" => Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object { "id": 123, }, @@ -170,6 +176,7 @@ Object { "payload": Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, @@ -193,6 +200,7 @@ Map { "/hi/" => Object { "component": "/whatever/index.js", "componentChunkName": "component---whatever-index-js", + "componentPath": "/whatever/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, @@ -213,6 +221,7 @@ Map { "/hi/" => Object { "component": "/whatever2/index.js", "componentChunkName": "component---whatever-2-index-js", + "componentPath": "/whatever2/index.js", "context": Object {}, "internalComponentName": "Component/hi/", "isCreatedByStatefulCreatePages": false, diff --git a/packages/gatsby/src/redux/__tests__/jobsv2.js b/packages/gatsby/src/redux/__tests__/jobsv2.js index e216adff37391..444b0f856814f 100644 --- a/packages/gatsby/src/redux/__tests__/jobsv2.js +++ b/packages/gatsby/src/redux/__tests__/jobsv2.js @@ -1,9 +1,18 @@ -const jobsManager = require(`../../utils/jobs/manager`) +import { jobsV2Reducer as jobsReducer } from "../reducers/jobsv2" +import * as jobsManager from "../../utils/jobs/manager" + jest.spyOn(jobsManager, `enqueueJob`) jest.spyOn(jobsManager, `removeInProgressJob`) -jest.mock(`uuid/v4`, () => () => `1234`) -import { jobsV2Reducer as jobsReducer } from "../reducers/jobsv2" +jest.mock(`gatsby-core-utils`, () => { + return { + ...jest.requireActual(`gatsby-core-utils`), + isCI: () => true, + uuid: { + v4: jest.fn(() => `1234`), + }, + } +}) describe(`Job v2 actions/reducer`, () => { const plugin = { diff --git a/packages/gatsby/src/redux/__tests__/nodes.ts b/packages/gatsby/src/redux/__tests__/nodes.ts index 254be375a230a..a6e4b34f3e26f 100644 --- a/packages/gatsby/src/redux/__tests__/nodes.ts +++ b/packages/gatsby/src/redux/__tests__/nodes.ts @@ -1,4 +1,5 @@ import { actions } from "../actions" +import { store } from "../index" import { nodesReducer } from "../reducers/nodes" import { IGatsbyNode } from "../types" import { nodesTouchedReducer } from "../reducers/nodes-touched" @@ -18,6 +19,7 @@ const fromMapToObject = (map: Map): MapObject => { describe(`Create and update nodes`, (): void => { beforeEach((): void => { dispatch.mockClear() + store.dispatch({ type: `DELETE_CACHE` }) }) it(`allows creating nodes`, (): void => { diff --git a/packages/gatsby/src/redux/actions/internal.ts b/packages/gatsby/src/redux/actions/internal.ts index ab75a4cbc7d3d..80195264d0737 100644 --- a/packages/gatsby/src/redux/actions/internal.ts +++ b/packages/gatsby/src/redux/actions/internal.ts @@ -35,6 +35,7 @@ import { removeInProgressJob, getInProcessJobPromise, } from "../../utils/jobs/manager" +import { getEngineContext } from "../../utils/engine-context" /** * Create a dependency between a page and data. Probably for @@ -376,6 +377,22 @@ export const createJobV2FromInternalJob = currentState.jobsV2.complete.get(jobContentDigest)!.result ) } + const engineContext = getEngineContext() + + // Always set context, even if engineContext is undefined. + // We do this because the final list of jobs for a given engine request includes both: + // - jobs with the same requestId + // - jobs without requestId (technically with requestId === "") + // + // See https://nodejs.org/dist/latest-v16.x/docs/api/async_context.html#async_context_troubleshooting_context_loss + // on cases when async context could be lost. + dispatch({ + type: `SET_JOB_V2_CONTEXT`, + payload: { + job: internalJob, + requestId: engineContext?.requestId ?? ``, + }, + }) const inProgressJobPromise = getInProcessJobPromise(jobContentDigest) if (inProgressJobPromise) { diff --git a/packages/gatsby/src/redux/actions/public.js b/packages/gatsby/src/redux/actions/public.js index 9728eabb9f591..82d71f9e5ca8c 100644 --- a/packages/gatsby/src/redux/actions/public.js +++ b/packages/gatsby/src/redux/actions/public.js @@ -23,8 +23,11 @@ const { const apiRunnerNode = require(`../../utils/api-runner-node`) const { trackCli } = require(`gatsby-telemetry`) const { getNonGatsbyCodeFrame } = require(`../../utils/stack-trace-utils`) +const { getPageMode } = require(`../../utils/page-mode`) +const normalizePath = require(`../../utils/normalize-path`).default import { createJobV2FromInternalJob } from "./internal" import { maybeSendJobToMainProcess } from "../../utils/jobs/worker-messaging" +import { reportOnce } from "../../utils/report-once" import fs from "fs-extra" const isNotTestEnv = process.env.NODE_ENV !== `test` @@ -71,15 +74,6 @@ const findChildren = initialChildren => { return children } -const displayedWarnings = new Set() -const warnOnce = (message, key) => { - const messageId = key ?? message - if (!displayedWarnings.has(messageId)) { - displayedWarnings.add(messageId) - report.warn(message) - } -} - import type { Plugin } from "./types" type Job = { @@ -397,7 +391,8 @@ ${reservedFields.map(f => ` * "${f}"`).join(`\n`)} internalComponentName, path: page.path, matchPath: page.matchPath, - component: page.component, + component: normalizePath(page.component), + componentPath: normalizePath(page.component), componentChunkName: generateComponentChunkName(page.component), isCreatedByStatefulCreatePages: actionOptions?.traceId === `initial-createPagesStatefully`, @@ -411,23 +406,12 @@ ${reservedFields.map(f => ` * "${f}"`).join(`\n`)} } if (_CFLAGS_.GATSBY_MAJOR === `4`) { - let pageMode: PageMode = `SSG` if (page.defer) { - pageMode = `DSG` internalPage.defer = true } - - // TODO move to AST Check - const fileContent = fs.readFileSync(page.component).toString() - const isSSR = - fileContent.includes(`exports.getServerData`) || - fileContent.includes(`export const getServerData`) || - fileContent.includes(`export function getServerData`) || - fileContent.includes(`export async function getServerData`) - if (isSSR) { - pageMode = `SSR` - } - internalPage.mode = pageMode + // Note: mode is updated in the end of the build after we get access to all page components, + // see materializePageMode in utils/page-mode.ts + internalPage.mode = getPageMode(internalPage) } if (page.ownerNodeId) { @@ -532,26 +516,7 @@ const deleteNodeDeprecationWarningDisplayedMessages = new Set() * deleteNode(node) */ actions.deleteNode = (node: any, plugin?: Plugin) => { - let id - - // TODO(v4): Remove this deprecation warning and only allow deleteNode(node) - if (node && node.node) { - let msg = - `Calling "deleteNode" with {node} is deprecated. Please pass ` + - `the node directly to the function: deleteNode(node)` - - if (plugin && plugin.name) { - msg = msg + ` "deleteNode" was called by ${plugin.name}` - } - if (!deleteNodeDeprecationWarningDisplayedMessages.has(msg)) { - report.warn(msg) - deleteNodeDeprecationWarningDisplayedMessages.add(msg) - } - - id = node.node.id - } else { - id = node && node.id - } + const id = node && node.id // Always get node from the store, as the node we get as an arg // might already have been deleted. @@ -925,24 +890,6 @@ const touchNodeDeprecationWarningDisplayedMessages = new Set() * touchNode(node) */ actions.touchNode = (node: any, plugin?: Plugin) => { - // TODO(v4): Remove this deprecation warning and only allow touchNode(node) - if (node && node.nodeId) { - let msg = - `Calling "touchNode" with an object containing the nodeId is deprecated. Please pass ` + - `the node directly to the function: touchNode(node)` - - if (plugin && plugin.name) { - msg = msg + ` "touchNode" was called by ${plugin.name}` - } - - if (!touchNodeDeprecationWarningDisplayedMessages.has(msg)) { - report.warn(msg) - touchNodeDeprecationWarningDisplayedMessages.add(msg) - } - - node = getNode(node.nodeId) - } - if (node && !typeOwners[node.internal.type]) { typeOwners[node.internal.type] = node.internal.owner } @@ -1251,7 +1198,7 @@ actions.createJob = (job: Job, plugin?: ?Plugin = null) => { if (plugin?.name) { msg = msg + ` (called by ${plugin.name})` } - warnOnce(msg) + reportOnce(msg) return { type: `CREATE_JOB`, @@ -1305,7 +1252,7 @@ actions.setJob = (job: Job, plugin?: ?Plugin = null) => { if (plugin?.name) { msg = msg + ` (called by ${plugin.name})` } - warnOnce(msg) + reportOnce(msg) return { type: `SET_JOB`, @@ -1332,7 +1279,7 @@ actions.endJob = (job: Job, plugin?: ?Plugin = null) => { if (plugin?.name) { msg = msg + ` (called by ${plugin.name})` } - warnOnce(msg) + reportOnce(msg) return { type: `END_JOB`, diff --git a/packages/gatsby/src/redux/reducers/components.ts b/packages/gatsby/src/redux/reducers/components.ts index 15c2ee97193ad..01820d705e4c0 100644 --- a/packages/gatsby/src/redux/reducers/components.ts +++ b/packages/gatsby/src/redux/reducers/components.ts @@ -1,4 +1,4 @@ -import normalize from "./normalize-path" +import normalize from "../../utils/normalize-path" import { IGatsbyState, ActionsUnion } from "../types" let programStatus = `BOOTSTRAPPING` @@ -16,7 +16,6 @@ export const componentsReducer = ( programStatus = action.payload return state case `CREATE_PAGE`: { - action.payload.componentPath = normalize(action.payload.component) // Create XState service. let component = state.get(action.payload.componentPath) if (!component) { @@ -26,6 +25,7 @@ export const componentsReducer = ( query: ``, pages: new Set(), isInBootstrap: true, + serverData: false, } } component.pages.add(action.payload.path) @@ -45,6 +45,15 @@ export const componentsReducer = ( state.delete(action.payload.componentPath) return state } + case `SET_COMPONENT_FEATURES`: { + const path = normalize(action.payload.componentPath) + const component = state.get(path) + if (component) { + component.serverData = action.payload.serverData + // TODO: component.config = action.payload.config + } + return state + } case `DELETE_PAGE`: { const component = state.get(normalize(action.payload.component))! component.pages.delete(action.payload.path) diff --git a/packages/gatsby/src/redux/reducers/jobsv2.ts b/packages/gatsby/src/redux/reducers/jobsv2.ts index 28db0827c03de..e63365f657ada 100644 --- a/packages/gatsby/src/redux/reducers/jobsv2.ts +++ b/packages/gatsby/src/redux/reducers/jobsv2.ts @@ -6,12 +6,15 @@ import { IGatsbyIncompleteJobV2, IGatsbyCompleteJobV2, IDeleteCacheAction, + ISetJobV2Context, + IClearJobV2Context, } from "../types" const initialState = (): IGatsbyState["jobsV2"] => { return { incomplete: new Map(), complete: new Map(), + jobsByRequest: new Map(), } } @@ -21,6 +24,8 @@ export const jobsV2Reducer = ( | ICreateJobV2Action | IRemoveStaleJobV2Action | IEndJobV2Action + | ISetJobV2Context + | IClearJobV2Context | IDeleteCacheAction ): IGatsbyState["jobsV2"] => { switch (action.type) { @@ -69,6 +74,33 @@ export const jobsV2Reducer = ( return state } + + case `SET_JOB_V2_CONTEXT`: { + const { requestId, job } = action.payload + + // A workaround for a stale cache bug: + // in some edge case redux cache is not cleared (even after gatsby-config and package.json changes). + // TODO: figure out the root cause and remove this workaround (see also CLEAR_JOB_V2_CONTEXT) + if (!state.jobsByRequest) { + state.jobsByRequest = new Map() + } + let jobs = state.jobsByRequest.get(requestId) + if (!jobs) { + jobs = new Set() + state.jobsByRequest.set(requestId, jobs) + } + jobs.add(job.contentDigest) + + return state + } + + case `CLEAR_JOB_V2_CONTEXT`: { + const { requestId } = action.payload + if (!state.jobsByRequest) { + state.jobsByRequest = new Map() + } + state.jobsByRequest.delete(requestId) + } } return state diff --git a/packages/gatsby/src/redux/reducers/pages.ts b/packages/gatsby/src/redux/reducers/pages.ts index 9d8688e68ddd7..cca442ac6fff4 100644 --- a/packages/gatsby/src/redux/reducers/pages.ts +++ b/packages/gatsby/src/redux/reducers/pages.ts @@ -1,23 +1,25 @@ -import normalize from "./normalize-path" import { IGatsbyState, IGatsbyPage, IDeleteCacheAction, ICreatePageAction, IDeletePageAction, + IMaterializePageMode, } from "../types" export const pagesReducer = ( state: IGatsbyState["pages"] = new Map(), - action: IDeleteCacheAction | ICreatePageAction | IDeletePageAction + action: + | IDeleteCacheAction + | ICreatePageAction + | IDeletePageAction + | IMaterializePageMode ): IGatsbyState["pages"] => { switch (action.type) { case `DELETE_CACHE`: return new Map() case `CREATE_PAGE`: { - action.payload.component = normalize(action.payload.component) - // throws an error if the page is not created by a plugin if (!action.plugin?.name) { console.log(``) @@ -41,6 +43,15 @@ export const pagesReducer = ( return state } + case `MATERIALIZE_PAGE_MODE`: { + const page = state.get(action.payload.path) + if (!page) { + throw new Error(`Could not find page by path: ${action.payload.path}`) + } + page.mode = action.payload.pageMode + return state + } + default: return state } diff --git a/packages/gatsby/src/redux/types.ts b/packages/gatsby/src/redux/types.ts index 3b477e7627fd1..d0f56999baa77 100644 --- a/packages/gatsby/src/redux/types.ts +++ b/packages/gatsby/src/redux/types.ts @@ -42,6 +42,15 @@ export interface IGatsbyPage { pluginCreatorId: Identifier componentPath: SystemPath ownerNodeId: Identifier + defer?: boolean + /** + * INTERNAL. Do not use `page.mode`, it can be removed at any time + * `page.mode` is currently reliable only in engines and `onPostBuild` hook + * (in develop it is dynamic and can change at any time) + * TODO: remove, see comments in utils/page-mode:materializePageMode + * + * @internal + */ mode: PageMode } @@ -129,6 +138,8 @@ export interface IGatsbyPageComponent { query: string pages: Set isInBootstrap: boolean + serverData: boolean + // TODO: config: boolean } export interface IDefinitionMeta { @@ -285,6 +296,7 @@ export interface IGatsbyState { jobsV2: { incomplete: Map complete: Map + jobsByRequest: Map> } webpack: any // TODO This should be the output from ./utils/webpack.config.js webpackCompilationHash: string @@ -410,6 +422,19 @@ export type ActionsUnion = | ISSRUsedUnsafeBuiltin | ISetSiteConfig | IMergeWorkerQueryState + | ISetComponentFeatures + | IMaterializePageMode + | ISetJobV2Context + | IClearJobV2Context + +export interface ISetComponentFeatures { + type: `SET_COMPONENT_FEATURES` + payload: { + componentPath: string + serverData: boolean + // TODO: config: boolean + } +} export interface IApiFinishedAction { type: `API_FINISHED` @@ -923,3 +948,26 @@ export interface IMergeWorkerQueryState { queryStateChunk: IGatsbyState["queries"] } } + +export interface IMaterializePageMode { + type: `MATERIALIZE_PAGE_MODE` + payload: { + path: string + pageMode: PageMode + } +} + +export interface ISetJobV2Context { + type: `SET_JOB_V2_CONTEXT` + payload: { + job: IGatsbyIncompleteJobV2["job"] + requestId: string + } +} + +export interface IClearJobV2Context { + type: `CLEAR_JOB_V2_CONTEXT` + payload: { + requestId: string + } +} diff --git a/packages/gatsby/src/schema/__tests__/__snapshots__/build-schema.js.snap b/packages/gatsby/src/schema/__tests__/__snapshots__/build-schema.js.snap index a5156d40e70cf..551fc1c293fb2 100644 --- a/packages/gatsby/src/schema/__tests__/__snapshots__/build-schema.js.snap +++ b/packages/gatsby/src/schema/__tests__/__snapshots__/build-schema.js.snap @@ -421,12 +421,19 @@ type SitePage implements Node { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin id: ID! parent: Node children: [Node!]! internal: Internal! } +\\"\\"\\" +The \`JSON\` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +\\"\\"\\" +scalar JSON @specifiedBy(url: \\"http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf\\") + type SitePlugin implements Node { resolve: String name: String @@ -435,6 +442,8 @@ type SitePlugin implements Node { browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String + pluginOptions: JSON + packageJson: JSON id: ID! parent: Node children: [Node!]! @@ -474,9 +483,9 @@ type Query { allSite(filter: SiteFilterInput, sort: SiteSortInput, skip: Int, limit: Int): SiteConnection! siteFunction(functionRoute: StringQueryOperatorInput, pluginName: StringQueryOperatorInput, originalAbsoluteFilePath: StringQueryOperatorInput, originalRelativeFilePath: StringQueryOperatorInput, relativeCompiledFilePath: StringQueryOperatorInput, absoluteCompiledFilePath: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SiteFunction allSiteFunction(filter: SiteFunctionFilterInput, sort: SiteFunctionSortInput, skip: Int, limit: Int): SiteFunctionConnection! - sitePage(path: StringQueryOperatorInput, component: StringQueryOperatorInput, internalComponentName: StringQueryOperatorInput, componentChunkName: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePage + sitePage(path: StringQueryOperatorInput, component: StringQueryOperatorInput, internalComponentName: StringQueryOperatorInput, componentChunkName: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, pageContext: JSONQueryOperatorInput, pluginCreator: SitePluginFilterInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePage allSitePage(filter: SitePageFilterInput, sort: SitePageSortInput, skip: Int, limit: Int): SitePageConnection! - sitePlugin(resolve: StringQueryOperatorInput, name: StringQueryOperatorInput, version: StringQueryOperatorInput, nodeAPIs: StringQueryOperatorInput, browserAPIs: StringQueryOperatorInput, ssrAPIs: StringQueryOperatorInput, pluginFilepath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePlugin + sitePlugin(resolve: StringQueryOperatorInput, name: StringQueryOperatorInput, version: StringQueryOperatorInput, nodeAPIs: StringQueryOperatorInput, browserAPIs: StringQueryOperatorInput, ssrAPIs: StringQueryOperatorInput, pluginFilepath: StringQueryOperatorInput, pluginOptions: JSONQueryOperatorInput, packageJson: JSONQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePlugin allSitePlugin(filter: SitePluginFilterInput, sort: SitePluginSortInput, skip: Int, limit: Int): SitePluginConnection! siteBuildMetadata(buildTime: DateQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SiteBuildMetadata allSiteBuildMetadata(filter: SiteBuildMetadataFilterInput, sort: SiteBuildMetadataSortInput, skip: Int, limit: Int): SiteBuildMetadataConnection! @@ -1248,6 +1257,31 @@ input SiteFunctionSortInput { order: [SortOrderEnum] = [ASC] } +input JSONQueryOperatorInput { + eq: JSON + ne: JSON + in: [JSON] + nin: [JSON] + regex: JSON + glob: JSON +} + +input SitePluginFilterInput { + resolve: StringQueryOperatorInput + name: StringQueryOperatorInput + version: StringQueryOperatorInput + nodeAPIs: StringQueryOperatorInput + browserAPIs: StringQueryOperatorInput + ssrAPIs: StringQueryOperatorInput + pluginFilepath: StringQueryOperatorInput + pluginOptions: JSONQueryOperatorInput + packageJson: JSONQueryOperatorInput + id: StringQueryOperatorInput + parent: NodeFilterInput + children: NodeFilterListInput + internal: InternalFilterInput +} + type SitePageConnection { totalCount: Int! edges: [SitePageEdge!]! @@ -1272,6 +1306,54 @@ enum SitePageFieldsEnum { internalComponentName componentChunkName matchPath + pageContext + pluginCreator___resolve + pluginCreator___name + pluginCreator___version + pluginCreator___nodeAPIs + pluginCreator___browserAPIs + pluginCreator___ssrAPIs + pluginCreator___pluginFilepath + pluginCreator___pluginOptions + pluginCreator___packageJson + pluginCreator___id + pluginCreator___parent___id + pluginCreator___parent___parent___id + pluginCreator___parent___parent___children + pluginCreator___parent___children + pluginCreator___parent___children___id + pluginCreator___parent___children___children + pluginCreator___parent___internal___content + pluginCreator___parent___internal___contentDigest + pluginCreator___parent___internal___description + pluginCreator___parent___internal___fieldOwners + pluginCreator___parent___internal___ignoreType + pluginCreator___parent___internal___mediaType + pluginCreator___parent___internal___owner + pluginCreator___parent___internal___type + pluginCreator___children + pluginCreator___children___id + pluginCreator___children___parent___id + pluginCreator___children___parent___children + pluginCreator___children___children + pluginCreator___children___children___id + pluginCreator___children___children___children + pluginCreator___children___internal___content + pluginCreator___children___internal___contentDigest + pluginCreator___children___internal___description + pluginCreator___children___internal___fieldOwners + pluginCreator___children___internal___ignoreType + pluginCreator___children___internal___mediaType + pluginCreator___children___internal___owner + pluginCreator___children___internal___type + pluginCreator___internal___content + pluginCreator___internal___contentDigest + pluginCreator___internal___description + pluginCreator___internal___fieldOwners + pluginCreator___internal___ignoreType + pluginCreator___internal___mediaType + pluginCreator___internal___owner + pluginCreator___internal___type id parent___id parent___parent___id @@ -1380,6 +1462,8 @@ input SitePageFilterInput { internalComponentName: StringQueryOperatorInput componentChunkName: StringQueryOperatorInput matchPath: StringQueryOperatorInput + pageContext: JSONQueryOperatorInput + pluginCreator: SitePluginFilterInput id: StringQueryOperatorInput parent: NodeFilterInput children: NodeFilterListInput @@ -1417,6 +1501,8 @@ enum SitePluginFieldsEnum { browserAPIs ssrAPIs pluginFilepath + pluginOptions + packageJson id parent___id parent___parent___id @@ -1519,20 +1605,6 @@ type SitePluginGroupConnection { fieldValue: String } -input SitePluginFilterInput { - resolve: StringQueryOperatorInput - name: StringQueryOperatorInput - version: StringQueryOperatorInput - nodeAPIs: StringQueryOperatorInput - browserAPIs: StringQueryOperatorInput - ssrAPIs: StringQueryOperatorInput - pluginFilepath: StringQueryOperatorInput - id: StringQueryOperatorInput - parent: NodeFilterInput - children: NodeFilterListInput - internal: InternalFilterInput -} - input SitePluginSortInput { fields: [SitePluginFieldsEnum] order: [SortOrderEnum] = [ASC] diff --git a/packages/gatsby/src/schema/__tests__/__snapshots__/print.js.snap b/packages/gatsby/src/schema/__tests__/__snapshots__/print.js.snap index 34653615950ac..e58124aad3108 100644 --- a/packages/gatsby/src/schema/__tests__/__snapshots__/print.js.snap +++ b/packages/gatsby/src/schema/__tests__/__snapshots__/print.js.snap @@ -106,6 +106,8 @@ type SitePage implements Node @dontInfer { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin @link(by: \\"id\\", from: \\"pluginCreatorId\\") } type SitePlugin implements Node @dontInfer { @@ -116,6 +118,8 @@ type SitePlugin implements Node @dontInfer { browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String + pluginOptions: JSON + packageJson: JSON } type SiteBuildMetadata implements Node @dontInfer { @@ -139,7 +143,7 @@ type InlineTest implements Node & ITest @childOf(types: [\\"OneMoreTest\\"]) @do second(bar: Baz): Date @dateformat(formatString: \\"MM/DD/YYYY\\") } -interface ITest @nodeInterface { +interface ITest implements Node { id: ID! date: Date @dateformat(formatString: \\"YYYY\\") } @@ -165,7 +169,7 @@ type InlineTest implements Node & ITest @childOf(types: [\\"OneMoreTest\\"]) @do second(bar: Baz): Date @dateformat(formatString: \\"MM/DD/YYYY\\") } -interface ITest @nodeInterface { +interface ITest implements Node { id: ID! date: Date @dateformat(formatString: \\"YYYY\\") } @@ -284,6 +288,8 @@ type SitePage implements Node @dontInfer { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin @link(by: \\"id\\", from: \\"pluginCreatorId\\") } type SitePlugin implements Node @dontInfer { @@ -294,6 +300,8 @@ type SitePlugin implements Node @dontInfer { browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String + pluginOptions: JSON + packageJson: JSON } type SiteBuildMetadata implements Node @dontInfer { @@ -306,7 +314,7 @@ type AnotherTest implements Node & ITest @dontInfer { hello(planet: String = \\"world\\", language: [Language!]!): String! } -interface ITest @nodeInterface { +interface ITest implements Node { id: ID! date: Date @dateformat(formatString: \\"YYYY\\") } @@ -361,7 +369,7 @@ type AnotherTest implements Node & ITest @dontInfer { hello(planet: String = \\"world\\", language: [Language!]!): String! } -interface ITest @nodeInterface { +interface ITest implements Node { id: ID! date: Date @dateformat(formatString: \\"YYYY\\") } @@ -473,6 +481,8 @@ type SitePage implements Node @dontInfer { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin @link(by: \\"id\\", from: \\"pluginCreatorId\\") } type SitePlugin implements Node @dontInfer { @@ -483,6 +493,8 @@ type SitePlugin implements Node @dontInfer { browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String + pluginOptions: JSON + packageJson: JSON } type SiteBuildMetadata implements Node @dontInfer { @@ -495,7 +507,7 @@ type AnotherTest implements Node & ITest @dontInfer { hello(planet: String = \\"world\\", language: [Language!]!): String! } -interface ITest @nodeInterface { +interface ITest implements Node { id: ID! date: Date @dateformat(formatString: \\"YYYY\\") } diff --git a/packages/gatsby/src/schema/__tests__/__snapshots__/rebuild-schema.js.snap b/packages/gatsby/src/schema/__tests__/__snapshots__/rebuild-schema.js.snap index 8a91fcdabfc3b..4eaabad246f4a 100644 --- a/packages/gatsby/src/schema/__tests__/__snapshots__/rebuild-schema.js.snap +++ b/packages/gatsby/src/schema/__tests__/__snapshots__/rebuild-schema.js.snap @@ -421,12 +421,19 @@ type SitePage implements Node { internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin id: ID! parent: Node children: [Node!]! internal: Internal! } +\\"\\"\\" +The \`JSON\` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +\\"\\"\\" +scalar JSON @specifiedBy(url: \\"http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf\\") + type SitePlugin implements Node { resolve: String name: String @@ -435,6 +442,8 @@ type SitePlugin implements Node { browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String + pluginOptions: JSON + packageJson: JSON id: ID! parent: Node children: [Node!]! @@ -474,9 +483,9 @@ type Query { allSite(filter: SiteFilterInput, sort: SiteSortInput, skip: Int, limit: Int): SiteConnection! siteFunction(functionRoute: StringQueryOperatorInput, pluginName: StringQueryOperatorInput, originalAbsoluteFilePath: StringQueryOperatorInput, originalRelativeFilePath: StringQueryOperatorInput, relativeCompiledFilePath: StringQueryOperatorInput, absoluteCompiledFilePath: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SiteFunction allSiteFunction(filter: SiteFunctionFilterInput, sort: SiteFunctionSortInput, skip: Int, limit: Int): SiteFunctionConnection! - sitePage(path: StringQueryOperatorInput, component: StringQueryOperatorInput, internalComponentName: StringQueryOperatorInput, componentChunkName: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePage + sitePage(path: StringQueryOperatorInput, component: StringQueryOperatorInput, internalComponentName: StringQueryOperatorInput, componentChunkName: StringQueryOperatorInput, matchPath: StringQueryOperatorInput, pageContext: JSONQueryOperatorInput, pluginCreator: SitePluginFilterInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePage allSitePage(filter: SitePageFilterInput, sort: SitePageSortInput, skip: Int, limit: Int): SitePageConnection! - sitePlugin(resolve: StringQueryOperatorInput, name: StringQueryOperatorInput, version: StringQueryOperatorInput, nodeAPIs: StringQueryOperatorInput, browserAPIs: StringQueryOperatorInput, ssrAPIs: StringQueryOperatorInput, pluginFilepath: StringQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePlugin + sitePlugin(resolve: StringQueryOperatorInput, name: StringQueryOperatorInput, version: StringQueryOperatorInput, nodeAPIs: StringQueryOperatorInput, browserAPIs: StringQueryOperatorInput, ssrAPIs: StringQueryOperatorInput, pluginFilepath: StringQueryOperatorInput, pluginOptions: JSONQueryOperatorInput, packageJson: JSONQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SitePlugin allSitePlugin(filter: SitePluginFilterInput, sort: SitePluginSortInput, skip: Int, limit: Int): SitePluginConnection! siteBuildMetadata(buildTime: DateQueryOperatorInput, id: StringQueryOperatorInput, parent: NodeFilterInput, children: NodeFilterListInput, internal: InternalFilterInput): SiteBuildMetadata allSiteBuildMetadata(filter: SiteBuildMetadataFilterInput, sort: SiteBuildMetadataSortInput, skip: Int, limit: Int): SiteBuildMetadataConnection! @@ -1248,6 +1257,31 @@ input SiteFunctionSortInput { order: [SortOrderEnum] = [ASC] } +input JSONQueryOperatorInput { + eq: JSON + ne: JSON + in: [JSON] + nin: [JSON] + regex: JSON + glob: JSON +} + +input SitePluginFilterInput { + resolve: StringQueryOperatorInput + name: StringQueryOperatorInput + version: StringQueryOperatorInput + nodeAPIs: StringQueryOperatorInput + browserAPIs: StringQueryOperatorInput + ssrAPIs: StringQueryOperatorInput + pluginFilepath: StringQueryOperatorInput + pluginOptions: JSONQueryOperatorInput + packageJson: JSONQueryOperatorInput + id: StringQueryOperatorInput + parent: NodeFilterInput + children: NodeFilterListInput + internal: InternalFilterInput +} + type SitePageConnection { totalCount: Int! edges: [SitePageEdge!]! @@ -1272,6 +1306,54 @@ enum SitePageFieldsEnum { internalComponentName componentChunkName matchPath + pageContext + pluginCreator___resolve + pluginCreator___name + pluginCreator___version + pluginCreator___nodeAPIs + pluginCreator___browserAPIs + pluginCreator___ssrAPIs + pluginCreator___pluginFilepath + pluginCreator___pluginOptions + pluginCreator___packageJson + pluginCreator___id + pluginCreator___parent___id + pluginCreator___parent___parent___id + pluginCreator___parent___parent___children + pluginCreator___parent___children + pluginCreator___parent___children___id + pluginCreator___parent___children___children + pluginCreator___parent___internal___content + pluginCreator___parent___internal___contentDigest + pluginCreator___parent___internal___description + pluginCreator___parent___internal___fieldOwners + pluginCreator___parent___internal___ignoreType + pluginCreator___parent___internal___mediaType + pluginCreator___parent___internal___owner + pluginCreator___parent___internal___type + pluginCreator___children + pluginCreator___children___id + pluginCreator___children___parent___id + pluginCreator___children___parent___children + pluginCreator___children___children + pluginCreator___children___children___id + pluginCreator___children___children___children + pluginCreator___children___internal___content + pluginCreator___children___internal___contentDigest + pluginCreator___children___internal___description + pluginCreator___children___internal___fieldOwners + pluginCreator___children___internal___ignoreType + pluginCreator___children___internal___mediaType + pluginCreator___children___internal___owner + pluginCreator___children___internal___type + pluginCreator___internal___content + pluginCreator___internal___contentDigest + pluginCreator___internal___description + pluginCreator___internal___fieldOwners + pluginCreator___internal___ignoreType + pluginCreator___internal___mediaType + pluginCreator___internal___owner + pluginCreator___internal___type id parent___id parent___parent___id @@ -1380,6 +1462,8 @@ input SitePageFilterInput { internalComponentName: StringQueryOperatorInput componentChunkName: StringQueryOperatorInput matchPath: StringQueryOperatorInput + pageContext: JSONQueryOperatorInput + pluginCreator: SitePluginFilterInput id: StringQueryOperatorInput parent: NodeFilterInput children: NodeFilterListInput @@ -1417,6 +1501,8 @@ enum SitePluginFieldsEnum { browserAPIs ssrAPIs pluginFilepath + pluginOptions + packageJson id parent___id parent___parent___id @@ -1519,20 +1605,6 @@ type SitePluginGroupConnection { fieldValue: String } -input SitePluginFilterInput { - resolve: StringQueryOperatorInput - name: StringQueryOperatorInput - version: StringQueryOperatorInput - nodeAPIs: StringQueryOperatorInput - browserAPIs: StringQueryOperatorInput - ssrAPIs: StringQueryOperatorInput - pluginFilepath: StringQueryOperatorInput - id: StringQueryOperatorInput - parent: NodeFilterInput - children: NodeFilterListInput - internal: InternalFilterInput -} - input SitePluginSortInput { fields: [SitePluginFieldsEnum] order: [SortOrderEnum] = [ASC] diff --git a/packages/gatsby/src/schema/__tests__/build-schema.js b/packages/gatsby/src/schema/__tests__/build-schema.js index 0633d95214978..757a5d7a5e74f 100644 --- a/packages/gatsby/src/schema/__tests__/build-schema.js +++ b/packages/gatsby/src/schema/__tests__/build-schema.js @@ -1116,6 +1116,8 @@ describe(`Build schema`, () => { `internalComponentName`, `componentChunkName`, `matchPath`, + `pageContext`, + `pluginCreator`, `bar`, `id`, `parent`, @@ -1154,6 +1156,8 @@ describe(`Build schema`, () => { `internalComponentName`, `componentChunkName`, `matchPath`, + `pageContext`, + `pluginCreator`, `bar`, `id`, `parent`, diff --git a/packages/gatsby/src/schema/__tests__/fixtures/kitchen-sink.json b/packages/gatsby/src/schema/__tests__/fixtures/kitchen-sink.json index 183535aaf2f1c..4a2e7532d4038 100644 --- a/packages/gatsby/src/schema/__tests__/fixtures/kitchen-sink.json +++ b/packages/gatsby/src/schema/__tests__/fixtures/kitchen-sink.json @@ -115,9 +115,9 @@ } }, { - "resolve": "/examples/gatsbygram/node_modules/gatsby/dist/internal-plugins/prod-404", + "resolve": "/examples/gatsbygram/node_modules/gatsby/dist/internal-plugins/prod-404-500", "id": "f795702c-a3b8-5a88-88ee-5d06019d44fa", - "name": "prod-404", + "name": "prod-404-500", "version": "1.0.0", "pluginOptions": { "plugins": [] @@ -125,9 +125,9 @@ "nodeAPIs": ["onCreatePage"], "browserAPIs": [], "ssrAPIs": [], - "pluginFilepath": "/examples/gatsbygram/node_modules/gatsby/dist/internal-plugins/prod-404", + "pluginFilepath": "/examples/gatsbygram/node_modules/gatsby/dist/internal-plugins/prod-404-500", "packageJson": { - "name": "prod-404", + "name": "prod-404-500", "description": "Internal plugin to detect various flavors of 404 pages and ensure there's a 404.html path created as well to ensure compatibility with static hosts", "version": "1.0.0", "main": "index.js", diff --git a/packages/gatsby/src/schema/__tests__/kitchen-sink.js b/packages/gatsby/src/schema/__tests__/kitchen-sink.js index 41662dfeb75df..d8629ed370b2c 100644 --- a/packages/gatsby/src/schema/__tests__/kitchen-sink.js +++ b/packages/gatsby/src/schema/__tests__/kitchen-sink.js @@ -88,7 +88,7 @@ describe(`Kitchen sink schema test`, () => { store.dispatch({ type: `CREATE_TYPES`, payload: ` - interface Post @nodeInterface { + interface Post implements Node { id: ID! code: String } @@ -342,9 +342,11 @@ const mockCreateResolvers = ({ createResolvers }) => { likedEnough: { type: `[PostsJson]`, async resolve(parent, args, context) { - const result = await context.nodeModel.runQuery({ + const { entries } = await context.nodeModel.findAll({ type: `PostsJson`, query: { + limit: 2, + skip: 0, filter: { likes: { ne: null, @@ -356,9 +358,8 @@ const mockCreateResolvers = ({ createResolvers }) => { order: [`DESC`], }, }, - firstOnly: false, }) - return result.slice(0, 2) + return entries }, }, }, diff --git a/packages/gatsby/src/schema/__tests__/node-model.js b/packages/gatsby/src/schema/__tests__/node-model.js index b823600af3713..27846ba8462db 100644 --- a/packages/gatsby/src/schema/__tests__/node-model.js +++ b/packages/gatsby/src/schema/__tests__/node-model.js @@ -330,11 +330,9 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = true nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const result = await nodeModel.findOne({ query, - firstOnly, type, }) expect(result.id).toBe(`post1`) @@ -345,14 +343,14 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const { entries, totalCount } = await nodeModel.findAll({ query, - firstOnly, type, }) - expect(result.length).toBe(2) + const result = Array.from(entries) + const count = await totalCount() + expect(count).toBe(2) expect(result[0].id).toBe(`post1`) expect(result[1].id).toBe(`post3`) }) @@ -362,12 +360,10 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query, - firstOnly, type, }, { path: `/` } @@ -384,11 +380,9 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.withContext({ path: `/` }).runQuery({ + await nodeModel.withContext({ path: `/` }).findAll({ query, - firstOnly, type, }) expect(createPageDependency).toHaveBeenCalledTimes(1) @@ -403,12 +397,10 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query, - firstOnly, type, }, { path: `/`, connectionType: `Post` } @@ -425,12 +417,10 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query, - firstOnly, type, }, { path: `/`, connectionType: null } @@ -451,12 +441,10 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query, - firstOnly, type, }, { path: `/`, track: false } @@ -469,12 +457,10 @@ describe(`NodeModel`, () => { const query = { filter: { frontmatter: { published: { eq: false } } }, } - const firstOnly = false nodeModel.replaceFiltersCache() - await nodeModel.withContext({ path: `/` }).runQuery( + await nodeModel.withContext({ path: `/` }).findAll( { query, - firstOnly, type, }, { track: false } @@ -485,11 +471,9 @@ describe(`NodeModel`, () => { it(`doesn't allow querying union types`, () => { const type = `AllFiles` const query = {} - const firstOnly = true nodeModel.replaceFiltersCache() - const result = nodeModel.runQuery({ + const result = nodeModel.findOne({ query, - firstOnly, type, }) return expect(result).rejects.toThrowError( @@ -500,11 +484,9 @@ describe(`NodeModel`, () => { it(`handles interface types`, async () => { const type = `TeamMember` const query = { name: { ne: null } } - const firstOnly = true nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const result = await nodeModel.findOne({ query, - firstOnly, type, }) expect(result.name).toBe(`Person1`) @@ -517,14 +499,14 @@ describe(`NodeModel`, () => { children: { elemMatch: { internal: { type: { eq: `Post` } } } }, }, } - const firstOnly = false nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const { entries, totalCount } = await nodeModel.findAll({ query, - firstOnly, type, }) - expect(result.length).toBe(2) + const result = Array.from(entries) + const count = await totalCount() + expect(count).toBe(2) expect(result[0].id).toBe(`file1`) expect(result[1].id).toBe(`file3`) }) @@ -536,11 +518,9 @@ describe(`NodeModel`, () => { nestedObject: { elemMatch: { nestedValue: { eq: `2` } } }, }, } - const firstOnly = true nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const result = await nodeModel.findOne({ query, - firstOnly, type, }) expect(result).toBeDefined() @@ -561,15 +541,15 @@ describe(`NodeModel`, () => { }, }, } - const firstOnly = false nodeModel.replaceTypeKeyValueCache() - const result = await nodeModel.runQuery({ + const { entries, totalCount } = await nodeModel.findAll({ query, - firstOnly, type, }) + const result = Array.from(entries) + const count = await totalCount() expect(result).toBeDefined() - expect(result.length).toEqual(2) + expect(count).toEqual(2) expect(result[0].id).toEqual(`post2`) expect(result[1].id).toEqual(`post3`) }) @@ -873,10 +853,9 @@ describe(`NodeModel`, () => { it(`should not resolve prepared nodes more than once`, async () => { nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { betterTitle: { eq: `foo` } } }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -884,10 +863,9 @@ describe(`NodeModel`, () => { expect(resolveBetterTitleMock.mock.calls.length).toBe(2) expect(resolveOtherTitleMock.mock.calls.length).toBe(0) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { betterTitle: { eq: `foo` } } }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -895,12 +873,11 @@ describe(`NodeModel`, () => { expect(resolveBetterTitleMock.mock.calls.length).toBe(2) expect(resolveOtherTitleMock.mock.calls.length).toBe(0) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { betterTitle: { eq: `foo` }, otherTitle: { eq: `Bar` } }, }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -908,12 +885,11 @@ describe(`NodeModel`, () => { expect(resolveBetterTitleMock.mock.calls.length).toBe(2) expect(resolveOtherTitleMock.mock.calls.length).toBe(2) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { betterTitle: { eq: `foo` }, otherTitle: { eq: `Bar` } }, }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -921,12 +897,11 @@ describe(`NodeModel`, () => { expect(resolveBetterTitleMock.mock.calls.length).toBe(2) expect(resolveOtherTitleMock.mock.calls.length).toBe(2) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findOne( { query: { filter: { betterTitle: { eq: `foo` }, otherTitle: { eq: `Bar` } }, }, - firstOnly: true, type: `Test`, }, { path: `/` } @@ -937,10 +912,9 @@ describe(`NodeModel`, () => { it(`should not resolve prepared nodes more than once (with mixed interfaces and node types)`, async () => { nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { slug: { eq: `id1` } } }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -948,10 +922,9 @@ describe(`NodeModel`, () => { expect(resolveSlugMock.mock.calls.length).toBe(2) expect(resolveBetterTitleMock.mock.calls.length).toBe(0) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { slug: { eq: `id1` } } }, - firstOnly: false, type: `TestInterface`, }, { path: `/` } @@ -959,12 +932,11 @@ describe(`NodeModel`, () => { expect(resolveSlugMock.mock.calls.length).toBe(2) expect(resolveBetterTitleMock.mock.calls.length).toBe(0) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { slug: { eq: `id1` }, betterTitle: { eq: `foo` } }, }, - firstOnly: false, type: `Test`, }, { path: `/` } @@ -972,12 +944,11 @@ describe(`NodeModel`, () => { expect(resolveSlugMock.mock.calls.length).toBe(2) expect(resolveBetterTitleMock.mock.calls.length).toBe(2) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findAll( { query: { filter: { slug: { eq: `id1` } }, }, - firstOnly: false, type: `TestInterface`, }, { path: `/` } @@ -985,12 +956,11 @@ describe(`NodeModel`, () => { expect(resolveSlugMock.mock.calls.length).toBe(2) expect(resolveBetterTitleMock.mock.calls.length).toBe(2) nodeModel.replaceFiltersCache() - await nodeModel.runQuery( + await nodeModel.findOne( { query: { filter: { slug: { eq: `id1` }, betterTitle: { eq: `foo` } }, }, - firstOnly: true, type: `Test`, }, { path: `/` } @@ -1001,17 +971,18 @@ describe(`NodeModel`, () => { it(`can filter by resolved fields`, async () => { nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery( + const { entries, totalCount } = await nodeModel.findAll( { query: { filter: { hidden: { eq: false } }, }, - firstOnly: false, type: `Test`, }, { path: `/` } ) - expect(result.length).toBe(2) + const result = Array.from(entries) + const count = await totalCount() + expect(count).toBe(2) expect(result[0].id).toBe(`id1`) expect(result[1].id).toBe(`id2`) }) @@ -1019,40 +990,44 @@ describe(`NodeModel`, () => { it(`merges query caches when filtering by nested field`, async () => { // See https://github.com/gatsbyjs/gatsby/issues/26056 nodeModel.replaceFiltersCache() - const result1 = await nodeModel.runQuery( - { - query: { - filter: { nested: { foo: { eq: `foo1` } } }, + const { entries: entries1, totalCount: totalCount1 } = + await nodeModel.findAll( + { + query: { + filter: { nested: { foo: { eq: `foo1` } } }, + }, + type: `Test`, }, - firstOnly: false, - type: `Test`, - }, - { path: `/` } - ) - const result2 = await nodeModel.runQuery( - { - query: { - filter: { nested: { bar: { eq: `bar2` } } }, + { path: `/` } + ) + const { entries: entries2, totalCount: totalCount2 } = + await nodeModel.findAll( + { + query: { + filter: { nested: { bar: { eq: `bar2` } } }, + }, + type: `Test`, }, - firstOnly: false, - type: `Test`, - }, - { path: `/` } - ) + { path: `/` } + ) + const result1 = Array.from(entries1) + const result2 = Array.from(entries2) + const count1 = await totalCount1() + const count2 = await totalCount2() expect(result1).toBeTruthy() - expect(result1.length).toBe(1) + expect(count1).toBe(1) expect(result1[0].id).toBe(`id1`) expect(result2).toBeTruthy() - expect(result2.length).toBe(1) + expect(count2).toBe(1) expect(result2[0].id).toBe(`id2`) }) it(`always uses a custom resolvers for query fields`, async () => { // See https://github.com/gatsbyjs/gatsby/issues/27368 nodeModel.replaceFiltersCache() - const result1 = await nodeModel.runQuery( + const { entries: entries1 } = await nodeModel.findAll( { query: { sort: { @@ -1060,12 +1035,11 @@ describe(`NodeModel`, () => { order: [`desc`], }, }, - firstOnly: false, type: `Test4`, }, { path: `/` } ) - const result2 = await nodeModel.runQuery( + const { entries: entries2 } = await nodeModel.findAll( { query: { filter: { Meta: { Category: { eq: `Gatsby` } } }, @@ -1074,16 +1048,18 @@ describe(`NodeModel`, () => { order: [`desc`], }, }, - firstOnly: false, type: `Test4`, }, { path: `/` } ) - expect(Array.isArray(result1)).toBeTruthy() + const result1 = Array.from(entries1) + const result2 = Array.from(entries2) + + expect(result1).toBeTruthy() expect(result1.map(node => node.id)).toEqual([`id4`, `id5`]) - expect(Array.isArray(result2)).toBeTruthy() + expect(result2).toBeTruthy() expect(result2.map(node => node.id)).toEqual([`id4`, `id5`]) }) @@ -1092,19 +1068,18 @@ describe(`NodeModel`, () => { nodeModel.replaceFiltersCache() // This is required to setup a state after which the error reveals itself - const result1 = await nodeModel.runQuery( + const result1 = await nodeModel.findOne( { query: { filter: { id: { regex: `/non-existing/` } }, }, - firstOnly: true, type: `Test5`, }, { path: `/` } ) // Filter by the same regex with sorting - const result2 = await nodeModel.runQuery( + const { entries } = await nodeModel.findAll( { query: { filter: { id: { regex: `/id/` } }, @@ -1113,11 +1088,11 @@ describe(`NodeModel`, () => { order: [`desc`], }, }, - firstOnly: false, type: `Test5`, }, { path: `/` } ) + const result2 = Array.from(entries) expect(result1).toEqual(null) @@ -1127,29 +1102,29 @@ describe(`NodeModel`, () => { it(`handles nulish values within array of interface type`, async () => { nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery( + const { entries, totalCount } = await nodeModel.findAll( { query: { filter: { arrayWithNulls: { elemMatch: { foo: { eq: `id1` } } } }, }, - firstOnly: false, type: `Test`, }, { path: `/` } ) + const result = Array.from(entries) + const count = await totalCount() expect(result).toBeTruthy() - expect(result.length).toEqual(1) + expect(count).toEqual(1) expect(result[0].id).toEqual(`id1`) }) it(`handles fields with custom resolvers on interfaces having multiple implementations`, async () => { nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery( + const result = await nodeModel.findOne( { query: { filter: { slug: { eq: `id3` } }, }, - firstOnly: true, type: `TestInterface`, }, { path: `/` } @@ -1285,13 +1260,14 @@ describe(`NodeModel`, () => { describe(`Tracks nodes returned by queries`, () => { it(`Tracks objects when running query without filter`, async () => { nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const { entries, totalCount } = await nodeModel.findAll({ query: {}, type: schema.getType(`Test`), - firstOnly: false, }) + const result = Array.from(entries) + const count = await totalCount() - expect(result.length).toEqual(2) + expect(count).toEqual(2) expect(nodeModel.findRootNodeAncestor(result[0].inlineObject)).toEqual( result[0] ) @@ -1302,7 +1278,7 @@ describe(`NodeModel`, () => { it(`Tracks objects when running query with filter`, async () => { nodeModel.replaceFiltersCache() - const result = await nodeModel.runQuery({ + const { entries, totalCount } = await nodeModel.findAll({ query: { filter: { inlineObject: { @@ -1313,10 +1289,11 @@ describe(`NodeModel`, () => { }, }, type: schema.getType(`Test`), - firstOnly: false, }) + const result = Array.from(entries) + const count = await totalCount() - expect(result.length).toEqual(1) + expect(count).toEqual(1) expect(nodeModel.findRootNodeAncestor(result[0].inlineObject)).toEqual( result[0] ) diff --git a/packages/gatsby/src/schema/__tests__/print.js b/packages/gatsby/src/schema/__tests__/print.js index 09c8b1bfe60d3..762835fa88a6e 100644 --- a/packages/gatsby/src/schema/__tests__/print.js +++ b/packages/gatsby/src/schema/__tests__/print.js @@ -89,7 +89,7 @@ describe(`Print type definitions`, () => { type OneMoreTest implements Node @infer { bar: Boolean } - interface ITest @nodeInterface { + interface ITest implements Node { id: ID! date: Date @dateformat(formatString: "YYYY") } diff --git a/packages/gatsby/src/schema/__tests__/queries.js b/packages/gatsby/src/schema/__tests__/queries.js index 49ac06eb11bb6..5769f52172312 100644 --- a/packages/gatsby/src/schema/__tests__/queries.js +++ b/packages/gatsby/src/schema/__tests__/queries.js @@ -15,6 +15,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), @@ -56,12 +57,11 @@ describe(`Query schema`, () => { [`frontmatter.authorNames`]: { type: `[String!]!`, async resolve(source, args, context, info) { - const authors = await context.nodeModel.runQuery({ + const { entries } = await context.nodeModel.findAll({ type: `Author`, query: { filter: { email: { in: source.authors } } }, - firstOnly: false, }) - return authors.map(author => author.name) + return entries.map(author => author.name) }, }, [`frontmatter.anotherField`]: { @@ -102,17 +102,8 @@ describe(`Query schema`, () => { }, Author: { posts: { - resolve(source, args, context, info) { - // NOTE: One of the differences between using `runQuery` and - // `getAllNodes` is that the latter will always get the nodes - // which will be queried directly from the store, while `runQuery` - // will first try to call field resolvers, e.g. to expand - // foreign-key fields to full nodes. Here for example we can - // query `authors.email`. - // Another thing to note is that we don't have to use the - // `$elemMatch` operator when querying arrays of objects - // (although we could). - return context.nodeModel.runQuery({ + async resolve(source, args, context, info) { + const { entries } = await context.nodeModel.findAll({ type: `Markdown`, query: { filter: { @@ -124,8 +115,8 @@ describe(`Query schema`, () => { }, }, }, - firstOnly: false, }) + return entries }, }, }, diff --git a/packages/gatsby/src/schema/__tests__/rebuild-schema.js b/packages/gatsby/src/schema/__tests__/rebuild-schema.js index b0847ec3afb9f..00ae3b22850b0 100644 --- a/packages/gatsby/src/schema/__tests__/rebuild-schema.js +++ b/packages/gatsby/src/schema/__tests__/rebuild-schema.js @@ -10,7 +10,7 @@ const { } = require(`graphql`) const { store } = require(`../../redux`) const { actions } = require(`../../redux/actions`) -const { build, rebuild, rebuildWithSitePage } = require(`..`) +const { build, rebuild } = require(`..`) import { buildObjectType } from "../types/type-builders" jest.mock(`../../utils/api-runner-node`) @@ -20,6 +20,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { log: jest.fn(), info: jest.fn(), warn: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), @@ -60,7 +61,6 @@ const addNodeField = ({ node, name, value }) => { const rebuildTestSchema = async () => { await rebuild({}) - await rebuildWithSitePage({}) return store.getState().schema } @@ -1178,7 +1178,6 @@ describe(`Compatibility with addThirdPartySchema`, () => { }) createNodes().forEach(addNode) await build({}) - await rebuildWithSitePage({}) const schema = store.getState().schema assertValidSchema(schema) }) diff --git a/packages/gatsby/src/schema/__tests__/rebuild-sitepage-type.js b/packages/gatsby/src/schema/__tests__/rebuild-sitepage-type.js deleted file mode 100644 index 9d235e97e526d..0000000000000 --- a/packages/gatsby/src/schema/__tests__/rebuild-sitepage-type.js +++ /dev/null @@ -1,215 +0,0 @@ -const { store } = require(`../../redux`) -const { graphql } = require(`../../../graphql`) -const { build, rebuildWithSitePage } = require(`..`) - -jest.mock(`gatsby-cli/lib/reporter`, () => { - return { - log: jest.fn(), - info: jest.fn(), - warn: jest.fn(), - error: jest.fn(), - activityTimer: () => { - return { - start: jest.fn(), - setStatus: jest.fn(), - end: jest.fn(), - } - }, - phantomActivity: () => { - return { - start: jest.fn(), - end: jest.fn(), - } - }, - } -}) - -const firstPage = () => { - return { - id: `page1`, - parent: null, - children: [], - internal: { type: `SitePage`, contentDigest: `0`, counter: 0 }, - keep: `Page`, - fields: { - oldKey: `value`, - }, - } -} - -const secondPage = () => { - return { - id: `page2`, - parent: null, - children: [], - internal: { type: `SitePage`, contentDigest: `0`, counter: 1 }, - fields: { - key: `value`, - }, - context: { - key: `value`, - }, - } -} - -const nodes = () => [firstPage()] - -describe(`build and update schema for SitePage`, () => { - let schema - - beforeEach(async () => { - store.dispatch({ type: `DELETE_CACHE` }) - nodes().forEach(node => - store.dispatch({ type: `CREATE_NODE`, payload: node }) - ) - - await build({}) - schema = store.getState().schema - }) - - it(`updates SitePage on rebuild`, async () => { - let fields - let inputFields - - const initialFields = [ - `path`, - `component`, - `internalComponentName`, - `componentChunkName`, - `matchPath`, - `keep`, - `fields`, - `id`, - `parent`, - `children`, - `internal`, - ] - - fields = Object.keys(schema.getType(`SitePage`).getFields()) - expect(fields.length).toBe(11) - expect(fields).toEqual(initialFields) - - inputFields = Object.keys(schema.getType(`SitePageFilterInput`).getFields()) - expect(fields.length).toBe(11) - expect(inputFields).toEqual(initialFields) - - // Rebuild Schema - store.dispatch({ type: `CREATE_NODE`, payload: secondPage() }) - await rebuildWithSitePage({}) - schema = store.getState().schema - - fields = Object.keys(schema.getType(`SitePage`).getFields()) - expect(fields.length).toBe(12) - expect(fields.sort()).toEqual(initialFields.concat(`context`).sort()) - - inputFields = Object.keys(schema.getType(`SitePageFilterInput`).getFields()) - expect(fields.length).toBe(12) - expect(inputFields.sort()).toEqual(initialFields.concat(`context`).sort()) - - const fieldsEnum = schema - .getType(`SitePageFieldsEnum`) - .getValue(`context___key`) - expect(fieldsEnum).toBeDefined() - - const sortFieldsEnum = schema.getType(`SitePageSortInput`).getFields() - .fields.type.ofType - expect(sortFieldsEnum.getValue(`context___key`)).toBeDefined() - }) - - const testNestedFields = async () => { - let fields - let inputFields - - fields = Object.keys(schema.getType(`SitePageFields`).getFields()) - expect(fields.length).toBe(1) - expect(fields).toEqual([`oldKey`]) - inputFields = Object.keys( - schema.getType(`SitePageFieldsFilterInput`).getFields() - ) - expect(inputFields.length).toBe(1) - expect(inputFields).toEqual([`oldKey`]) - - // Rebuild Schema - store.dispatch({ type: `CREATE_NODE`, payload: secondPage() }) - await rebuildWithSitePage({}) - schema = store.getState().schema - - fields = Object.keys(schema.getType(`SitePageFields`).getFields()) - expect(fields.length).toBe(2) - expect(fields).toEqual([`oldKey`, `key`]) - - inputFields = Object.keys( - schema.getType(`SitePageFieldsFilterInput`).getFields() - ) - expect(inputFields.length).toBe(2) - expect(inputFields).toEqual([`oldKey`, `key`]) - - const fieldsEnum = schema - .getType(`SitePageFieldsEnum`) - .getValues() - .map(value => value.name) - expect(fieldsEnum.includes(`fields___oldKey`)).toBeTruthy() - expect(fieldsEnum.includes(`fields___key`)).toBeTruthy() - } - - it(`updates nested types on rebuild`, testNestedFields) - - it(`updates nested types on rebuild (with query executed before rebuilding)`, async () => { - // Set a stage for the same test as above but with graphql query executed before updating schema - // See https://github.com/gatsbyjs/gatsby/issues/30107 - const result = await graphql( - schema, - ` - { - __typename - } - `, - null, - {} - ) - expect(result).toEqual({ data: { __typename: `Query` } }) - await testNestedFields() - }) - - it(`updates nested input types on rebuild`, async () => { - // sanity-check - const inputFields = Object.keys( - schema.getType(`SitePageFieldsFilterInput`).getFields() - ) - expect(inputFields.length).toBe(1) - expect(inputFields).toEqual([`oldKey`]) - - // Rebuild - const page = firstPage() - page.fields = {} - store.dispatch({ type: `CREATE_NODE`, payload: page }) - await rebuildWithSitePage({}) - schema = store.getState().schema - - expect(schema.getType(`SitePageFieldsFilterInput`)).toBeUndefined() - }) - - it(`respects @dontInfer on SitePage`, async () => { - const typeDefs = ` - type SitePage implements Node @dontInfer { - keep: String! - fields: SitePageFields - } - type SitePageFields { - temp: String! - } - ` - store.dispatch({ type: `CREATE_TYPES`, payload: typeDefs }) - - // rebuildWithSitePage ignores new type definitions, - // so need to build again first - await build({}) - - store.dispatch({ type: `CREATE_NODE`, payload: secondPage() }) - - await rebuildWithSitePage({}) - schema = store.getState().schema - expect(schema.getType(`SitePage`).getFields().context).not.toBeDefined() - expect(schema.getType(`SitePageFields`).getFields().key).not.toBeDefined() - }) -}) diff --git a/packages/gatsby/src/schema/extensions/__tests__/child-relations.js b/packages/gatsby/src/schema/extensions/__tests__/child-relations.js index b2f7e5ff31ae0..0d9b7cab11c88 100644 --- a/packages/gatsby/src/schema/extensions/__tests__/child-relations.js +++ b/packages/gatsby/src/schema/extensions/__tests__/child-relations.js @@ -594,7 +594,7 @@ describe(`Define parent-child relationships with field extensions`, () => { type Relative implements Node @dontInfer @mimeTypes(types: ["multipart/related"]) { id: ID! } - interface NextGeneration @nodeInterface @childOf(mimeTypes: ["application/listenup", "multipart/related"]) { + interface NextGeneration implements Node @childOf(mimeTypes: ["application/listenup", "multipart/related"]) { id: ID! name: String } @@ -675,10 +675,10 @@ describe(`Define parent-child relationships with field extensions`, () => { expect(results).toEqual(expected) }) - it(`adds children fields to interfaces with @nodeInterface`, async () => { + it(`adds children fields to interfaces with Node interface`, async () => { dispatch( createTypes(` - interface Ancestors @nodeInterface { + interface Ancestors implements Node { id: ID! } type Parent implements Node & Ancestors { @@ -747,10 +747,10 @@ describe(`Define parent-child relationships with field extensions`, () => { expect(results).toEqual(expected) }) - it(`adds children fields to interfaces with @nodeInterface (mime-type relation)`, async () => { + it(`adds children fields to interfaces with Node interface (mime-type relation)`, async () => { dispatch( createTypes(` - interface Ancestors @nodeInterface @mimeTypes(types: ["application/listenup"]) { + interface Ancestors implements Node @mimeTypes(types: ["application/listenup"]) { id: ID! } type Parent implements Node & Ancestors @mimeTypes(types: ["application/listenup"]) { @@ -813,7 +813,7 @@ describe(`Define parent-child relationships with field extensions`, () => { expect(results).toEqual(expected) }) - it(`does not add children fields to interfaces without @nodeInterface`, async () => { + it(`does not add children fields to interfaces without Node interface`, async () => { dispatch( createTypes(` interface Ancestors { @@ -835,7 +835,7 @@ describe(`Define parent-child relationships with field extensions`, () => { ) }) - it(`does not add children fields from interfaces without @nodeInterface`, async () => { + it(`does not add children fields from interfaces without Node interface`, async () => { dispatch( createTypes(` type Parent implements Node { @@ -852,8 +852,7 @@ describe(`Define parent-child relationships with field extensions`, () => { ) await buildSchema() expect(report.error).toBeCalledWith( - `The \`childOf\` extension can only be used on interface types that have ` + - `the \`@nodeInterface\` extension.\n` + + `The \`childOf\` extension can only be used on types that implement the \`Node\` interface.\n` + `Check the type definition of \`NextGeneration\`.` ) }) diff --git a/packages/gatsby/src/schema/extensions/__tests__/interfaces.js b/packages/gatsby/src/schema/extensions/__tests__/interfaces.js index 5c9fdbc149cc1..b79e5eba7b04e 100644 --- a/packages/gatsby/src/schema/extensions/__tests__/interfaces.js +++ b/packages/gatsby/src/schema/extensions/__tests__/interfaces.js @@ -37,584 +37,6 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { } }) -// TODO: remove @nodeInterface in Gatsby v4 -describe(`Queryable Node interfaces with @nodeInterface`, () => { - beforeEach(() => { - dispatch({ type: `DELETE_CACHE` }) - const nodes = [ - { - id: `test1`, - internal: { type: `Test`, contentDigest: `0` }, - foo: `foo`, - bar: `bar`, - date: new Date(`2019-01-01`), - }, - { - id: `anothertest1`, - internal: { type: `AnotherTest`, contentDigest: `0` }, - foo: `foooo`, - baz: `baz`, - date: new Date(`2018-01-01`), - }, - { - id: `tbtest1`, - internal: { type: `TBTest`, contentDigest: `0` }, - foo: `foo`, - bar: `bar`, - date: new Date(`2019-01-01`), - }, - { - id: `anotherbttest1`, - internal: { type: `AnotherTBTest`, contentDigest: `0` }, - foo: `foooo`, - baz: `baz`, - date: new Date(`2018-01-01`), - }, - ] - nodes.forEach(node => - actions.createNode(node, { name: `test` })(store.dispatch) - ) - dispatch( - createTypes(` - interface TestInterface @nodeInterface { - id: ID! - foo: String - date: Date @dateformat - } - type Test implements Node & TestInterface { - foo: String - bar: String - date: Date @dateformat - } - type AnotherTest implements Node & TestInterface { - foo: String - baz: String - date: Date @dateformat - } - `) - ) - }) - - it(`displays a deprecation warning for interfaces with @nodeInterface directive`, async () => { - dispatch( - createTypes([ - buildInterfaceType({ - name: `TestInterface2`, - extensions: { - nodeInterface: true, - }, - fields: { - id: `ID!`, - }, - }), - ]) - ) - await buildSchema() - expect(report.warn).toBeCalledTimes(2) - expect(report.warn).toBeCalledWith( - `Deprecation warning: \`@nodeInterface\` extension is deprecated and will be removed in Gatsby v4. ` + - `Use interface inheritance instead.\n` + - `To upgrade replace the old format:\n` + - ` interface \`TestInterface\` @nodeInterface\n` + - `with the new one (in \`createTypes\` action of schema customization API):\n` + - ` interface \`TestInterface\` implements Node\n` + - `Read more about schema customization here:\n` + - `https://www.gatsbyjs.com/docs/reference/graphql-data-layer/schema-customization/` - ) - expect(report.warn).toBeCalledWith( - `Deprecation warning: \`@nodeInterface\` extension is deprecated and will be removed in Gatsby v4. ` + - `Use interface inheritance instead.\n` + - `To upgrade replace the old format:\n` + - ` interface \`TestInterface2\` @nodeInterface\n` + - `with the new one (in \`createTypes\` action of schema customization API):\n` + - ` interface \`TestInterface2\` implements Node\n` + - `Read more about schema customization here:\n` + - `https://www.gatsbyjs.com/docs/reference/graphql-data-layer/schema-customization/` - ) - }) - - it(`adds root query fields for interface with @nodeInterface extension`, async () => { - const { schema } = await buildSchema() - const rootQueryFields = schema.getType(`Query`).getFields() - expect(rootQueryFields.testInterface).toBeDefined() - expect(rootQueryFields.allTestInterface).toBeDefined() - expect(rootQueryFields.testInterface.resolve).toBeDefined() - expect(rootQueryFields.allTestInterface.resolve).toBeDefined() - }) - - it(`does not add root query fields for interface without @nodeInterface extension`, async () => { - dispatch( - createTypes(` - interface WrongInterface { - id: ID! - foo: String - } - type Wrong implements Node & WrongInterface { - foo: String - } - type WrongAgain implements Node & WrongInterface { - foo: String - } - `) - ) - const { schema } = await buildSchema() - const rootQueryFields = schema.getType(`Query`).getFields() - expect(rootQueryFields.wrongInterface).toBeUndefined() - expect(rootQueryFields.allWrongInterface).toBeUndefined() - }) - - it(`shows error when not all types implementing the queryable interface als implement the Node interface`, async () => { - dispatch( - createTypes(` - interface WrongInterface @nodeInterface { - id: ID! - foo: String - } - type Wrong implements WrongInterface { - foo: String - } - type WrongAgain implements WrongInterface { - foo: String - } - `) - ) - await buildSchema() - expect(report.panic).toBeCalledWith( - `Types implementing queryable interfaces must also implement the \`Node\` interface. ` + - `Check the type definition of \`Wrong\`, \`WrongAgain\`.` - ) - }) - - it(`adds root query fields for interface with @nodeInterface extension (type builder)`, async () => { - dispatch( - createTypes([ - buildInterfaceType({ - name: `TypeBuilderInterface`, - extensions: { - nodeInterface: true, - }, - fields: { - id: `ID!`, - foo: `String`, - date: { - type: `Date`, - extensions: { - dateformat: {}, - }, - }, - }, - }), - buildObjectType({ - name: `TBTest`, - interfaces: [`Node`, `TypeBuilderInterface`], - fields: { - foo: `String`, - date: { - type: `Date`, - extensions: { - dateformat: {}, - }, - }, - }, - }), - buildObjectType({ - name: `AnotherTBTest`, - interfaces: [`Node`, `TypeBuilderInterface`], - fields: { - foo: `String`, - date: { - type: `Date`, - extensions: { - dateformat: {}, - }, - }, - }, - }), - ]) - ) - const query = ` - { - allTypeBuilderInterface( - filter: { foo: { eq: "foooo" } } - ) { - nodes { - foo - date(formatString: "YYYY") - } - } - typeBuilderInterface(foo: { eq: "foooo" }) { - foo - date(formatString: "MM/DD/YYYY") - } - } - ` - const results = await runQuery(query) - const expected = { - allTypeBuilderInterface: { - nodes: [ - { - foo: `foooo`, - date: `2018`, - }, - ], - }, - typeBuilderInterface: { - foo: `foooo`, - date: `01/01/2018`, - }, - } - expect(results).toEqual(expected) - }) - - it(`returns correct results for query`, async () => { - const query = ` - { - allTestInterface { - nodes { - foo - ...on AnotherTest { - baz - } - ...on Node { - id - } - } - } - testInterface { - foo - ...on Test { - bar - } - ...on Node { - id - } - } - } - ` - const results = await runQuery(query) - const expected = { - allTestInterface: { - nodes: [ - { - foo: `foo`, - id: `test1`, - }, - { - foo: `foooo`, - baz: `baz`, - id: `anothertest1`, - }, - ], - }, - testInterface: { - foo: `foo`, - bar: `bar`, - id: `test1`, - }, - } - expect(results).toEqual(expected) - }) - - it(`returns correct results for query with args`, async () => { - const query = ` - { - allTestInterface( - filter: { foo: { eq: "foooo" } } - ) { - nodes { - foo - } - } - testInterface(foo: { eq: "foooo" }) { - foo - } - } - ` - const results = await runQuery(query) - const expected = { - allTestInterface: { - nodes: [ - { - foo: `foooo`, - }, - ], - }, - testInterface: { - foo: `foooo`, - }, - } - expect(results).toEqual(expected) - }) - - it(`adds input args from extensions to fields`, async () => { - const query = ` - { - allTestInterface { - nodes { - date(formatString: "YYYY") - } - } - testInterface { - date(formatString: "MM/DD/YYYY") - } - } - ` - const results = await runQuery(query) - const expected = { - allTestInterface: { - nodes: [ - { - date: `2019`, - }, - { - date: `2018`, - }, - ], - }, - testInterface: { - date: `01/01/2019`, - }, - } - expect(results).toEqual(expected) - }) - - it(`shows error when interface with @nodeInterface extension does not have id field`, async () => { - dispatch( - createTypes(` - interface NotWrongInterface @nodeInterface { - id: ID! - foo: String - } - interface WrongInterface @nodeInterface { - foo: String - } - `) - ) - await build({}) - expect(report.panic).toBeCalledTimes(1) - expect(report.panic).toBeCalledWith( - `Interfaces with the \`nodeInterface\` extension must have a field ` + - `\`id\` of type \`ID!\`. Check the type definition of \`WrongInterface\`.` - ) - }) - - it(`works with special case id: { eq: $id } queries`, async () => { - const query = ` - { - testInterface(id: { eq: "test1" }) { - id - } - test(id: { eq: "test1" }) { - id - } - } - ` - const results = await runQuery(query) - const expected = { - testInterface: { - id: `test1`, - }, - test: { - id: `test1`, - }, - } - expect(results).toEqual(expected) - }) - - it(`uses concrete type resolvers when filtering on interface fields`, async () => { - const nodes = [ - { - id: `author1`, - internal: { type: `AuthorYaml`, counter: 0 }, - name: `Author 1`, - birthday: new Date(Date.UTC(1978, 8, 26)), - }, - { - id: `author2`, - internal: { type: `AuthorJson`, counter: 1 }, - name: `Author 2`, - birthday: new Date(Date.UTC(1978, 8, 26)), - }, - { - id: `post1`, - internal: { type: `ThisPost`, counter: 2 }, - author: `author1`, - }, - { - id: `post2`, - internal: { type: `ThatPost`, counter: 3 }, - author: `author2`, - }, - ] - nodes.forEach(node => - dispatch({ type: `CREATE_NODE`, payload: { ...node } }) - ) - dispatch( - createFieldExtension({ - name: `echo`, - args: { - value: `String!`, - }, - extend(options) { - return { - resolve() { - return options.value - }, - } - }, - }) - ) - dispatch( - createTypes(` - interface Post @nodeInterface { - id: ID! - author: Author @link - } - type ThisPost implements Node & Post { - author: Author @link - } - type ThatPost implements Node & Post { - author: Author @link - } - interface Author @nodeInterface { - id: ID! - name: String - echo: String @echo(value: "Interface") - } - type AuthorJson implements Node & Author { - name: String - echo: String @echo(value: "Concrete Type") - } - type AuthorYaml implements Node & Author { - name: String - echo: String @echo(value: "Another Concrete Type") - } - `) - ) - const query = ` - { - allPost( - filter: { - author: { - echo: { - in: ["Concrete Type", "Another Concrete Type"] - } - } - } - ) { - nodes { - author { - name - echo - } - } - } - } - ` - const results = await runQuery(query) - const expected = { - allPost: { - nodes: [ - { - author: { - name: `Author 1`, - echo: `Another Concrete Type`, - }, - }, - { - author: { - name: `Author 2`, - echo: `Concrete Type`, - }, - }, - ], - }, - } - expect(results).toEqual(expected) - }) - - it(`materializes and searches by concrete type`, async () => { - dispatch({ type: `DELETE_CACHE` }) - - const nodes = [ - { - id: `0`, - title: `Foo Bar`, - slugInternal: `foo-bar`, - internal: { - type: `FooConcrete`, - contentDigest: `0`, - counter: 0, - }, - }, - ] - - nodes.forEach(node => - dispatch({ type: `CREATE_NODE`, payload: { ...node } }) - ) - - dispatch( - createTypes(` - interface FooInterface @nodeInterface { - id: ID! - title: String - slug: String - } - - type FooConcrete implements Node & FooInterface { - id: ID! - title: String - slug: String @proxy(from: "slugInternal") - } - `) - ) - - expect( - await runQuery(` - { - allFooConcrete(filter: {slug: { eq: "foo-bar"}}) { - nodes { - id - } - } - } - `) - ).toMatchInlineSnapshot(` - Object { - "allFooConcrete": Object { - "nodes": Array [ - Object { - "id": "0", - }, - ], - }, - } - `) - - expect( - await runQuery(` - { - allFooInterface(filter: {slug: { eq: "foo-bar"}}) { - nodes { - id - } - } - } - `) - ).toMatchInlineSnapshot(` - Object { - "allFooInterface": Object { - "nodes": Array [ - Object { - "id": "0", - }, - ], - }, - } - `) - }) -}) - describe(`Queryable Node interfaces with interface inheritance`, () => { beforeEach(() => { dispatch({ type: `DELETE_CACHE` }) @@ -672,7 +94,7 @@ describe(`Queryable Node interfaces with interface inheritance`, () => { ) }) - it(`adds root query fields for interface with @nodeInterface extension`, async () => { + it(`adds root query fields for interface with Node interface`, async () => { const { schema } = await buildSchema() const rootQueryFields = schema.getType(`Query`).getFields() expect(rootQueryFields.testInterface).toBeDefined() @@ -1013,7 +435,7 @@ describe(`Queryable Node interfaces with interface inheritance`, () => { type ThatPost implements Node & Post { author: Author @link } - interface Author @nodeInterface { + interface Author implements Node { id: ID! name: String echo: String @echo(value: "Interface") diff --git a/packages/gatsby/src/schema/graphql-engine/bundle-webpack.ts b/packages/gatsby/src/schema/graphql-engine/bundle-webpack.ts index 46e9c6075d1e7..638133399c002 100644 --- a/packages/gatsby/src/schema/graphql-engine/bundle-webpack.ts +++ b/packages/gatsby/src/schema/graphql-engine/bundle-webpack.ts @@ -5,19 +5,28 @@ import * as fs from "fs-extra" import webpack from "webpack" import { printQueryEnginePlugins } from "./print-plugins" import mod from "module" +import { WebpackLoggingPlugin } from "../../utils/webpack/plugins/webpack-logging" +import reporter from "gatsby-cli/lib/reporter" + +type Reporter = typeof reporter const extensions = [`.mjs`, `.js`, `.json`, `.node`, `.ts`, `.tsx`] const outputDir = path.join(process.cwd(), `.cache`, `query-engine`) -export async function createGraphqlEngineBundle(): Promise { +export async function createGraphqlEngineBundle( + rootDir: string, + reporter: Reporter, + isVerbose?: boolean +): Promise { const schemaSnapshotString = await fs.readFile( - process.cwd() + `/.cache/schema.gql`, + path.join(rootDir, `.cache`, `schema.gql`), `utf-8` ) await printQueryEnginePlugins() const compiler = webpack({ + name: `Query Engine`, // mode: `production`, mode: `none`, entry: path.join(__dirname, `entry.js`), @@ -89,7 +98,9 @@ export async function createGraphqlEngineBundle(): Promise { "process.env.GATSBY_SKIP_WRITING_SCHEMA_TO_FILE": `true`, SCHEMA_SNAPSHOT: JSON.stringify(schemaSnapshotString), }), - ], + process.env.GATSBY_WEBPACK_LOGGING?.includes(`query-engine`) && + new WebpackLoggingPlugin(rootDir, reporter, isVerbose), + ].filter(Boolean) as Array, }) return new Promise((resolve, reject) => { diff --git a/packages/gatsby/src/schema/graphql-engine/entry.ts b/packages/gatsby/src/schema/graphql-engine/entry.ts index 093ac819e26c7..5d142070b2900 100644 --- a/packages/gatsby/src/schema/graphql-engine/entry.ts +++ b/packages/gatsby/src/schema/graphql-engine/entry.ts @@ -1,4 +1,9 @@ +// "engines-fs-provider" must be first import, as it sets up global +// fs and this need to happen before anything else tries to import fs import "../../utils/engines-fs-provider" + +import { ExecutionResult, Source } from "graphql" +import { uuid } from "gatsby-core-utils" import { build } from "../index" import { setupLmdbStore } from "../../datastore/lmdb/lmdb-datastore" import { store } from "../../redux" @@ -8,12 +13,13 @@ import { createGraphQLRunner, Runner, } from "../../bootstrap/create-graphql-runner" -import { waitUntilAllJobsComplete } from "../../utils/wait-until-jobs-complete" +import { waitJobsByRequest } from "../../utils/wait-until-jobs-complete" import { setGatsbyPluginCache } from "../../utils/require-gatsby-plugin" import apiRunnerNode from "../../utils/api-runner-node" import type { IGatsbyPage, IGatsbyState } from "../../redux/types" import { findPageByPath } from "../../utils/find-page-by-path" +import { runWithEngineContext } from "../../utils/engine-context" import { getDataStore } from "../../datastore" import { gatsbyNodes, @@ -66,7 +72,7 @@ export class GraphQLEngine { // Build runs // Note: skipping inference metadata because we rely on schema snapshot - await build({ fullMetadataBuild: false, freeze: true }) + await build({ fullMetadataBuild: false }) return createGraphQLRunner(store, reporter) } @@ -78,14 +84,35 @@ export class GraphQLEngine { return this.runnerPromise } - public async runQuery(...args: Parameters): ReturnType { - const graphqlRunner = await this.getRunner() - const result = await graphqlRunner(...args) - // Def not ideal - this is just waiting for all jobs and not jobs for current - // query, but we don't track jobs per query right now - // TODO: start tracking jobs per query to be able to await just those - await waitUntilAllJobsComplete() - return result + public async ready(): Promise { + // We don't want to expose internal runner freely. We do expose `runQuery` function already. + // The way internal runner works can change, so we should not make it a public API. + // Here we just want to expose way to await it being ready + await this.getRunner() + } + + public async runQuery( + query: string | Source, + context: Record + ): Promise { + const engineContext = { + requestId: uuid.v4(), + } + const doRunQuery = async (): Promise => { + const graphqlRunner = await this.getRunner() + const result = await graphqlRunner(query, context) + await waitJobsByRequest(engineContext.requestId) + return result + } + try { + return await runWithEngineContext(engineContext, doRunQuery) + } finally { + // Reset job-to-request mapping + store.dispatch({ + type: `CLEAR_JOB_V2_CONTEXT`, + payload: engineContext, + }) + } } public findPageByPath(pathName: string): IGatsbyPage | undefined { diff --git a/packages/gatsby/src/schema/graphql-engine/print-plugins.ts b/packages/gatsby/src/schema/graphql-engine/print-plugins.ts index c332dc51b9198..0505be9616b25 100644 --- a/packages/gatsby/src/schema/graphql-engine/print-plugins.ts +++ b/packages/gatsby/src/schema/graphql-engine/print-plugins.ts @@ -13,7 +13,7 @@ const schemaCustomizationAPIs = new Set([ `createResolvers`, ]) -const excludePlugins = new Set([`internal-data-bridge`, `default-site-plugin`]) +const excludePlugins = new Set([`internal-data-bridge`]) const includePlugins = new Set([`gatsby-plugin-sharp`]) // Emit file that imports required node APIs diff --git a/packages/gatsby/src/schema/index.js b/packages/gatsby/src/schema/index.js index fabedb9cab763..80b18c68e2f7a 100644 --- a/packages/gatsby/src/schema/index.js +++ b/packages/gatsby/src/schema/index.js @@ -4,7 +4,7 @@ const tracer = require(`opentracing`).globalTracer() const { store } = require(`../redux`) const { getDataStore, getTypes } = require(`../datastore`) const { createSchemaComposer } = require(`./schema-composer`) -const { buildSchema, rebuildSchemaWithSitePage } = require(`./schema`) +const { buildSchema } = require(`./schema`) const { builtInFieldExtensions } = require(`./extensions`) const { builtInTypeDefinitions } = require(`./types/built-in-types`) const { TypeConflictReporter } = require(`./infer/type-conflict-reporter`) @@ -79,23 +79,15 @@ const buildInferenceMetadata = ({ types }) => processNextType() }) -const build = async ({ - parentSpan, - fullMetadataBuild = true, - freeze = false, -}) => { +const build = async ({ parentSpan, fullMetadataBuild = true }) => { const spanArgs = parentSpan ? { childOf: parentSpan } : {} const span = tracer.startSpan(`build schema`, spanArgs) await getDataStore().ready() if (fullMetadataBuild) { // Build metadata for type inference and start updating it incrementally - // except for SitePage type: we rebuild it in rebuildWithSitePage anyway - // so it makes little sense to update it incrementally - // (and those updates may have significant performance overhead) await buildInferenceMetadata({ types: getTypes() }) store.dispatch({ type: `START_INCREMENTAL_INFERENCE` }) - store.dispatch({ type: `DISABLE_TYPE_INFERENCE`, payload: [`SitePage`] }) } const { @@ -127,7 +119,6 @@ const build = async ({ enginePrintConfig, typeConflictReporter, inferenceMetadata, - freeze, parentSpan, }) @@ -148,54 +139,7 @@ const build = async ({ const rebuild = async ({ parentSpan }) => await build({ parentSpan, fullMetadataBuild: false }) -const rebuildWithSitePage = async ({ parentSpan }) => { - const spanArgs = parentSpan ? { childOf: parentSpan } : {} - const span = tracer.startSpan( - `rebuild schema with SitePage context`, - spanArgs - ) - await getDataStore().ready() - await buildInferenceMetadata({ types: [`SitePage`] }) - - // Disabling incremental inference for SitePage after the initial build - // as it has a significant performance cost for zero benefits. - // The only benefit is that schema rebuilds when SitePage.context structure changes. - // (one can just restart `develop` in this case) - store.dispatch({ type: `DISABLE_TYPE_INFERENCE`, payload: [`SitePage`] }) - - const { - schemaCustomization: { composer: schemaComposer }, - config: { mapping: typeMapping }, - inferenceMetadata, - } = store.getState() - - const typeConflictReporter = new TypeConflictReporter() - - const schema = await rebuildSchemaWithSitePage({ - schemaComposer, - fieldExtensions: getAllFieldExtensions(), - typeMapping, - typeConflictReporter, - inferenceMetadata, - parentSpan, - }) - - typeConflictReporter.printConflicts() - - store.dispatch({ - type: `SET_SCHEMA_COMPOSER`, - payload: schemaComposer, - }) - store.dispatch({ - type: `SET_SCHEMA`, - payload: schema, - }) - - span.finish() -} - module.exports = { build, rebuild, - rebuildWithSitePage, } diff --git a/packages/gatsby/src/schema/infer/__tests__/infer-input.js b/packages/gatsby/src/schema/infer/__tests__/infer-input.js index 767a97ee459d4..87fc381bacd37 100644 --- a/packages/gatsby/src/schema/infer/__tests__/infer-input.js +++ b/packages/gatsby/src/schema/infer/__tests__/infer-input.js @@ -14,6 +14,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), diff --git a/packages/gatsby/src/schema/infer/__tests__/infer.js b/packages/gatsby/src/schema/infer/__tests__/infer.js index 5c25ee74abff8..d1f1bf659f3d6 100644 --- a/packages/gatsby/src/schema/infer/__tests__/infer.js +++ b/packages/gatsby/src/schema/infer/__tests__/infer.js @@ -18,6 +18,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), @@ -117,7 +118,7 @@ const addNodes = nodes => { const deleteNodes = nodes => { nodes.forEach(node => { - store.dispatch(actions.deleteNode({ node }, { name: `test` })) + store.dispatch(actions.deleteNode(node, { name: `test` })) }) } diff --git a/packages/gatsby/src/schema/infer/__tests__/merge-types.js b/packages/gatsby/src/schema/infer/__tests__/merge-types.js index 69b7fd98e5679..fbe9a39761201 100644 --- a/packages/gatsby/src/schema/infer/__tests__/merge-types.js +++ b/packages/gatsby/src/schema/infer/__tests__/merge-types.js @@ -10,6 +10,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), diff --git a/packages/gatsby/src/schema/infer/add-inferred-fields.js b/packages/gatsby/src/schema/infer/add-inferred-fields.js index f75cce2164520..d39e32c58e934 100644 --- a/packages/gatsby/src/schema/infer/add-inferred-fields.js +++ b/packages/gatsby/src/schema/infer/add-inferred-fields.js @@ -7,6 +7,7 @@ const report = require(`gatsby-cli/lib/reporter`) import { isFile } from "./is-file" import { isDate } from "../types/date" import { addDerivedType } from "../types/derived-types" +import { reportOnce } from "../../utils/report-once" import { is32BitInteger } from "../../utils/is-32-bit-integer" const { getDataStore } = require(`../../datastore`) @@ -32,6 +33,15 @@ const addInferredFields = ({ typeMapping, config, }) + + if (deprecatedNodeKeys.size > 0) { + reportOnce( + `The ___NODE convention is deprecated. Please use the @link directive instead.\nType: ${typeComposer.getTypeName()}, Keys: ${Array.from( + deprecatedNodeKeys + ).join(`, `)}\nMigration: https://gatsby.dev/node-convention-deprecation`, + `verbose` + ) + } } module.exports = { @@ -98,6 +108,8 @@ const addInferredFieldsImpl = ({ return typeComposer } +const deprecatedNodeKeys = new Set() + const getFieldConfig = ({ schemaComposer, typeComposer, @@ -125,12 +137,17 @@ const getFieldConfig = ({ // i.e. does the config contain sanitized field names? fieldConfig = getFieldConfigFromMapping({ typeMapping, selector }) } else if (unsanitizedKey.includes(`___NODE`)) { + // TODO(v5): Remove ability to use foreign keys like this (e.g. author___NODE___contact___email) + // and recommend using schema customization instead + fieldConfig = getFieldConfigFromFieldNameConvention({ schemaComposer, value: exampleValue, key: unsanitizedKey, }) arrays = arrays + (value.multiple ? 1 : 0) + + deprecatedNodeKeys.add(unsanitizedKey) } else { fieldConfig = getSimpleFieldConfig({ schemaComposer, @@ -214,8 +231,6 @@ const getFieldConfigFromFieldNameConvention = ({ const linkedTypesSet = new Set() if (foreignKey) { - // TODO: deprecate foreign keys like this (e.g. author___NODE___contact___email) - // and recommend using schema customization instead const linkedValues = new Set(value.linkedNodes) getDataStore() .iterateNodes() diff --git a/packages/gatsby/src/schema/node-model.js b/packages/gatsby/src/schema/node-model.js index 6417ea401777d..0be271fcac15f 100644 --- a/packages/gatsby/src/schema/node-model.js +++ b/packages/gatsby/src/schema/node-model.js @@ -20,7 +20,8 @@ import { getNodesByType, getTypes, } from "../datastore" -import { isIterable } from "../datastore/common/iterable" +import { GatsbyIterable, isIterable } from "../datastore/common/iterable" +import { reportOnce } from "../utils/report-once" type TypeOrTypeName = string | GraphQLOutputType @@ -186,13 +187,17 @@ class LocalNodeModel { * Get all nodes in the store, or all nodes of a specified type. Note that * this adds connectionType tracking by default if type is passed. * + * @deprecated Since version 4.0 - Use nodeModel.findAll() instead * @param {Object} args * @param {(string|GraphQLOutputType)} [args.type] Optional type of the nodes * @param {PageDependencies} [pageDependencies] * @returns {Node[]} */ getAllNodes(args, pageDependencies = {}) { - // TODO: deprecate this method in favor of runQuery + // TODO(v5): Remove API + reportOnce( + `nodeModel.getAllNodes() is deprecated. Use nodeModel.findAll() with an empty query instead.` + ) const { type = `Node` } = args || {} let result @@ -222,6 +227,7 @@ class LocalNodeModel { /** * Get nodes of a type matching the specified query. * + * @deprecated Since version 4.0 - Use nodeModel.findAll() or nodeModel.findOne() instead * @param {Object} args * @param {Object} args.query Query arguments (`filter` and `sort`) * @param {(string|GraphQLOutputType)} args.type Type @@ -230,10 +236,10 @@ class LocalNodeModel { * @returns {Promise} */ async runQuery(args, pageDependencies = {}) { - // TODO: show deprecation warning in v4 - // reporter.warn( - // `nodeModel.runQuery() is deprecated. Use nodeModel.findAll() or nodeModel.findOne() instead` - // ) + // TODO(v5): Remove API + reportOnce( + `nodeModel.runQuery() is deprecated. Use nodeModel.findAll() or nodeModel.findOne() instead.` + ) if (args.firstOnly) { return this.findOne(args, pageDependencies) } @@ -243,7 +249,7 @@ class LocalNodeModel { } async _query(args) { - const { query, type, stats, tracer } = args || {} + const { query = {}, type, stats, tracer } = args || {} // We don't support querying union types (yet?), because the combined types // need not have any fields in common. @@ -322,8 +328,17 @@ class LocalNodeModel { } } + /** + * Get all nodes in the store, or all nodes of a specified type (optionally with limit/skip). + * Returns slice of result as iterable. + * + * @param {*} args + * @param {Object} args.query Query arguments (e.g. `limit` and `skip`) + * @param {(string|GraphQLOutputType)} args.type Type + * @param {PageDependencies} [pageDependencies] + * @return {Object} Object containing `{ entries: GatsbyIterable, totalCount: () => Promise }` + */ async findAll(args, pageDependencies = {}) { - // TODO: add this as a public API in v4 (together with deprecating runQuery) const { gqlType, ...result } = await this._query(args, pageDependencies) // Tracking connections by default: @@ -334,19 +349,23 @@ class LocalNodeModel { return result } + /** + * Get one node in the store. Only returns the first result. + * + * @param {*} args + * @param {Object} args.query Query arguments (e.g. `filter`). Doesn't support `sort`, `limit`, `skip`. + * @param {(string|GraphQLOutputType)} args.type Type + * @param {PageDependencies} [pageDependencies] + * @returns {Promise} + */ async findOne(args, pageDependencies = {}) { - // TODO: add this as a public API in v4 (together with deprecating runQuery) - const { query } = args + const { query = {} } = args if (query.sort?.fields?.length > 0) { // If we support sorting and return the first node based on sorting // we'll have to always track connection not an individual node - reporter.warn( - `nodeModel.findOne() does not support sorting. Use nodeModel.findAll({ query: { limit: 1 } }) instead` + throw new Error( + `nodeModel.findOne() does not support sorting. Use nodeModel.findAll({ query: { limit: 1 } }) instead.` ) - // TODO: throw in v4 - // throw new Error( - // `nodeModel.findOne() does not support sorting. Use nodeModel.findAll({ query: { limit: 1 } }) instead` - // ) } const { gqlType, entries } = await this._query({ ...args, @@ -765,7 +784,7 @@ async function resolveRecursive( ) } else if ( isCompositeType(gqlFieldType) && - _.isArray(innerValue) && + (_.isArray(innerValue) || innerValue instanceof GatsbyIterable) && gqlNonNullType instanceof GraphQLList ) { innerValue = await Promise.all( diff --git a/packages/gatsby/src/schema/resolvers.ts b/packages/gatsby/src/schema/resolvers.ts index ab2cc4519f1f5..89b0c1c6f62cc 100644 --- a/packages/gatsby/src/schema/resolvers.ts +++ b/packages/gatsby/src/schema/resolvers.ts @@ -40,10 +40,9 @@ export function findOne( if (context.stats) { context.stats.totalRunQuery++ } - return context.nodeModel.runQuery( + return context.nodeModel.findOne( { query: { filter: args }, - firstOnly: true, type: info.schema.getType(typeName), stats: context.stats, tracer: context.tracer, @@ -404,25 +403,33 @@ export function link( } } - const resultOrPromise = context.nodeModel.runQuery( - { - query: runQueryArgs, - firstOnly, - type, - stats: context.stats, - tracer: context.tracer, - }, - { path: context.path } - ) - - // Note: for this function, at scale, conditional .then is more efficient than generic await - if (typeof resultOrPromise?.then === `function`) { - return resultOrPromise.then(result => - linkResolverQueryResult(fieldValue, result, returnType) - ) + if (firstOnly) { + return context.nodeModel + .findOne( + { + query: runQueryArgs, + type, + stats: context.stats, + tracer: context.tracer, + }, + { path: context.path } + ) + .then(result => linkResolverQueryResult(fieldValue, result, returnType)) } - return linkResolverQueryResult(fieldValue, resultOrPromise, returnType) + return context.nodeModel + .findAll( + { + query: runQueryArgs, + type, + stats: context.stats, + tracer: context.tracer, + }, + { path: context.path } + ) + .then(({ entries }) => + linkResolverQueryResult(fieldValue, Array.from(entries), returnType) + ) } function linkResolverQueryResult( @@ -493,7 +500,7 @@ export function fileByPath( } function queryNodeByPath(relPath: string): Promise { - return context.nodeModel.runQuery({ + return context.nodeModel.findOne({ query: { filter: { absolutePath: { @@ -501,7 +508,6 @@ export function fileByPath( }, }, }, - firstOnly: true, type: `File`, }) } diff --git a/packages/gatsby/src/schema/schema.js b/packages/gatsby/src/schema/schema.js index dcdef53137742..fe68e210ddc7e 100644 --- a/packages/gatsby/src/schema/schema.js +++ b/packages/gatsby/src/schema/schema.js @@ -24,7 +24,7 @@ const apiRunner = require(`../utils/api-runner-node`) const report = require(`gatsby-cli/lib/reporter`) const { addNodeInterfaceFields } = require(`./types/node-interface`) const { overridableBuiltInTypeNames } = require(`./types/built-in-types`) -const { addInferredType, addInferredTypes } = require(`./infer`) +const { addInferredTypes } = require(`./infer`) const { findOne, findManyPaginated, @@ -45,10 +45,6 @@ const { parseTypeDef, reportParsingError, } = require(`./types/type-defs`) -import { - clearDerivedTypes, - deleteFieldsOfDerivedTypes, -} from "./types/derived-types" const { printTypeDefinitions } = require(`./print`) const buildSchema = async ({ @@ -61,7 +57,6 @@ const buildSchema = async ({ enginePrintConfig, typeConflictReporter, inferenceMetadata, - freeze = false, parentSpan, }) => { // FIXME: consider removing .ready here - it is needed for various tests to pass (although probably harmless) @@ -80,59 +75,14 @@ const buildSchema = async ({ }) // const { printSchema } = require(`graphql`) const schema = schemaComposer.buildSchema() - - if (freeze) { - freezeTypeComposers(schemaComposer) - } - - // console.log(printSchema(schema)) - return schema -} - -const rebuildSchemaWithSitePage = async ({ - schemaComposer, - typeMapping, - fieldExtensions, - typeConflictReporter, - inferenceMetadata, - parentSpan, -}) => { - const typeComposer = schemaComposer.getOTC(`SitePage`) - - // Clear derived types and fields - // they will be re-created in processTypeComposer later - deleteFieldsOfDerivedTypes({ typeComposer }) - clearDerivedTypes({ schemaComposer, typeComposer }) - - const shouldInfer = - !typeComposer.hasExtension(`infer`) || - typeComposer.getExtension(`infer`) !== false - if (shouldInfer) { - addInferredType({ - schemaComposer, - typeComposer, - typeConflictReporter, - typeMapping, - inferenceMetadata, - parentSpan, - }) - } - await processTypeComposer({ - schemaComposer, - typeComposer, - fieldExtensions, - parentSpan, - }) - const schema = schemaComposer.buildSchema() - freezeTypeComposers(schemaComposer) + // console.log(printSchema(schema)) return schema } module.exports = { buildSchema, - rebuildSchemaWithSitePage, } // Workaround for https://github.com/graphql-compose/graphql-compose/issues/319 @@ -507,21 +457,6 @@ const addExtensions = ({ typeComposer instanceof InterfaceTypeComposer && isNodeInterface(typeComposer) ) { - // TODO: remove nodeInterface in Gatsby v4 - if (typeComposer.hasExtension(`nodeInterface`)) { - report.warn( - `Deprecation warning: ` + - `\`@nodeInterface\` extension is deprecated and will be removed in Gatsby v4. ` + - `Use interface inheritance instead.\n` + - `To upgrade replace the old format:\n` + - ` interface \`${typeComposer.getTypeName()}\` @nodeInterface\n` + - `with the new one (in \`createTypes\` action of schema customization API):\n` + - ` interface \`${typeComposer.getTypeName()}\` implements Node\n` + - `Read more about schema customization here:\n` + - `https://www.gatsbyjs.com/docs/reference/graphql-data-layer/schema-customization/` - ) - } - const hasCorrectIdField = typeComposer.hasField(`id`) && typeComposer.getFieldType(`id`).toString() === `ID!` @@ -1077,8 +1012,7 @@ const addConvenienceChildrenFields = ({ schemaComposer }) => { } if (type instanceof InterfaceTypeComposer && !isNodeInterface(type)) { report.error( - `The \`childOf\` extension can only be used on interface types that ` + - `have the \`@nodeInterface\` extension.\n` + + `The \`childOf\` extension can only be used on types that implement the \`Node\` interface.\n` + `Check the type definition of \`${type.getTypeName()}\`.` ) return @@ -1378,9 +1312,7 @@ const validate = (type, value) => { } } -// TODO: remove nodeInterface in Gatsby v4 const isNodeInterface = interfaceTypeComposer => - interfaceTypeComposer.hasExtension(`nodeInterface`) || interfaceTypeComposer.hasInterface(`Node`) const checkQueryableInterfaces = ({ schemaComposer }) => { diff --git a/packages/gatsby/src/schema/types/__tests__/filter-input.js b/packages/gatsby/src/schema/types/__tests__/filter-input.js index 74eec2bf4316b..002e7b98a23d4 100644 --- a/packages/gatsby/src/schema/types/__tests__/filter-input.js +++ b/packages/gatsby/src/schema/types/__tests__/filter-input.js @@ -8,6 +8,7 @@ jest.mock(`gatsby-cli/lib/reporter`, () => { info: jest.fn(), warn: jest.fn(), error: jest.fn(), + verbose: jest.fn(), activityTimer: () => { return { start: jest.fn(), diff --git a/packages/gatsby/src/schema/types/built-in-types.ts b/packages/gatsby/src/schema/types/built-in-types.ts index 484a11fa03f95..aa91754ca5556 100644 --- a/packages/gatsby/src/schema/types/built-in-types.ts +++ b/packages/gatsby/src/schema/types/built-in-types.ts @@ -1,6 +1,6 @@ import { parse, DocumentNode } from "graphql" -// TODO v4: mark all built-in types with @dontInfer and add missing fields (maybe as `JSON` type) +// TODO v5: mark File type as @dontInfer (requires @childOf directive to all children types like ImageSharp) const fileType = ` type File implements Node @infer { @@ -39,7 +39,7 @@ const fileType = ` ` const siteFunctionType = ` - type SiteFunction implements Node @infer { + type SiteFunction implements Node @dontInfer { functionRoute: String! pluginName: String! originalAbsoluteFilePath: String! @@ -51,7 +51,7 @@ const siteFunctionType = ` ` const directoryType = ` - type Directory implements Node @infer { + type Directory implements Node @dontInfer { sourceInstanceName: String! absolutePath: String! relativePath: String! @@ -101,17 +101,19 @@ const siteSiteMetadataType = ` ` const sitePageType = ` - type SitePage implements Node @infer { + type SitePage implements Node @dontInfer { path: String! component: String! internalComponentName: String! componentChunkName: String! matchPath: String + pageContext: JSON + pluginCreator: SitePlugin @link(from: "pluginCreatorId") } ` const sitePluginType = ` - type SitePlugin implements Node @infer { + type SitePlugin implements Node @dontInfer { resolve: String name: String version: String @@ -119,14 +121,13 @@ const sitePluginType = ` browserAPIs: [String] ssrAPIs: [String] pluginFilepath: String - # TODO v4: - # pluginOptions: JSON - # packageJson: JSON + pluginOptions: JSON + packageJson: JSON } ` const siteBuildMetadataType = ` - type SiteBuildMetadata implements Node @infer { + type SiteBuildMetadata implements Node @dontInfer { buildTime: Date @dateformat } ` diff --git a/packages/gatsby/src/schema/types/filter.ts b/packages/gatsby/src/schema/types/filter.ts index d63e0c5b6c323..9d2c6481a90e3 100644 --- a/packages/gatsby/src/schema/types/filter.ts +++ b/packages/gatsby/src/schema/types/filter.ts @@ -254,8 +254,6 @@ export const getFilterInput = ({ ) const inputTypeComposer = typeComposer.getInputTypeComposer() - // TODO: In Gatsby v2, the NodeInput.id field is of type String, not ID. - // Remove this workaround for v3. if ( inputTypeComposer?.hasField(`id`) && getNamedType(inputTypeComposer.getFieldType(`id`)).name === `ID` diff --git a/packages/gatsby/src/schema/types/node-interface.ts b/packages/gatsby/src/schema/types/node-interface.ts index 4759fb598a58a..907656d497eb3 100644 --- a/packages/gatsby/src/schema/types/node-interface.ts +++ b/packages/gatsby/src/schema/types/node-interface.ts @@ -64,8 +64,7 @@ const getOrCreateNodeInterface = ( }, internal: internalTC.getTypeNonNull(), }) - // TODO: In Gatsby v2, the NodeInput.id field is of type String, not ID. - // Remove this workaround for v3. + const nodeInputTC = tc.getInputTypeComposer() nodeInputTC.extendField(`id`, { type: `String` }) }) diff --git a/packages/gatsby/src/services/index.ts b/packages/gatsby/src/services/index.ts index a7581f220ccb9..7fe50baf03938 100644 --- a/packages/gatsby/src/services/index.ts +++ b/packages/gatsby/src/services/index.ts @@ -1,5 +1,4 @@ export { startWebpackServer } from "./start-webpack-server" -export { rebuildSchemaWithSitePage } from "./rebuild-schema-with-site-pages" export { extractQueries } from "./extract-queries" export { writeOutRedirects } from "./write-out-redirects" export { postBootstrap } from "./post-bootstrap" diff --git a/packages/gatsby/src/services/initialize.ts b/packages/gatsby/src/services/initialize.ts index 431e6a85e0118..3e246ce566431 100644 --- a/packages/gatsby/src/services/initialize.ts +++ b/packages/gatsby/src/services/initialize.ts @@ -159,7 +159,7 @@ export async function initialize({ // enable loading indicator process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR = `true` } - detectLmdbStore() + const lmdbStoreIsUsed = detectLmdbStore() if (config && config.polyfill) { reporter.warn( @@ -209,20 +209,29 @@ export async function initialize({ await apiRunnerNode(`onPreInit`, { parentSpan: activity.span }) activity.end() + const lmdbCacheDirectoryName = `caches-lmdb` + const cacheDirectory = `${program.directory}/.cache` const publicDirectory = `${program.directory}/public` const workerCacheDirectory = `${program.directory}/.cache/worker` + const lmdbCacheDirectory = `${program.directory}/.cache/${lmdbCacheDirectoryName}` const cacheJsonDirExists = fs.existsSync(`${cacheDirectory}/json`) const publicDirExists = fs.existsSync(publicDirectory) const workerCacheDirExists = fs.existsSync(workerCacheDirectory) + const lmdbCacheDirExists = fs.existsSync(lmdbCacheDirectory) + + // check the cache file that is used by the current configuration + const cacheDirExists = lmdbStoreIsUsed + ? lmdbCacheDirExists + : cacheJsonDirExists // For builds in case public dir exists, but cache doesn't, we need to clean up potentially stale // artifacts from previous builds (due to cache not being available, we can't rely on tracking of artifacts) if ( process.env.NODE_ENV === `production` && publicDirExists && - !cacheJsonDirExists + !cacheDirExists ) { activity = reporter.activityTimer( `delete html and css files from previous builds`, @@ -297,9 +306,8 @@ export async function initialize({ } // .cache directory exists in develop at this point - // so checking for .cache/json as a heuristic (could be any expected file) - const cacheIsCorrupt = cacheJsonDirExists && !publicDirExists - + // so checking for .cache/json or .cache/caches-lmdb as a heuristic (could be any expected file) + const cacheIsCorrupt = cacheDirExists && !publicDirExists if (cacheIsCorrupt) { reporter.info(reporter.stripIndent` We've detected that the Gatsby cache is incomplete (the .cache directory exists @@ -448,7 +456,11 @@ export async function initialize({ try { await fs.copy(srcDir, siteDir) await fs.copy(tryRequire, `${siteDir}/test-require-error.js`) - await fs.ensureDirSync(`${cacheDirectory}/json`) + if (lmdbStoreIsUsed) { + await fs.ensureDirSync(`${cacheDirectory}/${lmdbCacheDirectoryName}`) + } else { + await fs.ensureDirSync(`${cacheDirectory}/json`) + } // Ensure .cache/fragments exists and is empty. We want fragments to be // added on every run in response to data as fragments can only be added if diff --git a/packages/gatsby/src/services/rebuild-schema-with-site-pages.ts b/packages/gatsby/src/services/rebuild-schema-with-site-pages.ts deleted file mode 100644 index 6ac23b057725b..0000000000000 --- a/packages/gatsby/src/services/rebuild-schema-with-site-pages.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { rebuildWithSitePage } from "../schema" -import reporter from "gatsby-cli/lib/reporter" -import { IQueryRunningContext } from "../state-machines/query-running/types" - -export async function rebuildSchemaWithSitePage({ - parentSpan, -}: Partial): Promise { - const activity = reporter.activityTimer(`update schema`, { - parentSpan, - }) - activity.start() - await rebuildWithSitePage({ parentSpan }) - activity.end() -} diff --git a/packages/gatsby/src/services/recompile.ts b/packages/gatsby/src/services/recompile.ts index 9a54f6e91976a..fa5e96304c1e5 100644 --- a/packages/gatsby/src/services/recompile.ts +++ b/packages/gatsby/src/services/recompile.ts @@ -1,20 +1,28 @@ /* eslint-disable no-unused-expressions */ import { IBuildContext } from "./types" +import * as fs from "fs-extra" import { Stats } from "webpack" import reporter from "gatsby-cli/lib/reporter" import { emitter } from "../redux" +import { buildRenderer } from "../commands/build-html" +import { Stage } from "../commands/types" +import { clearRequireCacheRecursively } from "../utils/clear-require-cache" -export async function recompile({ +export async function recompile(context: IBuildContext): Promise { + const [stats] = await Promise.all([ + recompileDevBundle(context), + recompileSSRBundle(context), + ]) + return stats +} + +async function recompileDevBundle({ webpackWatching, }: IBuildContext): Promise { if (!webpackWatching) { reporter.panic(`Missing compiler`) } - // Promisify the event-based API. We do this using emitter - // because you can't "untap" a webpack watcher, and we just want - // one compilation. - - return new Promise(resolve => { + return new Promise(resolve => { function finish(stats: Stats): void { emitter.off(`COMPILATION_DONE`, finish) resolve(stats) @@ -25,3 +33,47 @@ export async function recompile({ webpackWatching.suspend() }) } + +async function recompileSSRBundle({ + program, + websocketManager, + recompiledFiles = new Set(), +}: IBuildContext): Promise { + if (!(await includesSSRComponent(recompiledFiles))) { + return + } + reporter.verbose(`Recompiling SSR bundle`) + + const { close, rendererPath } = await buildRenderer( + program, + Stage.DevelopHTML + ) + + clearRequireCacheRecursively(rendererPath) + + if (websocketManager) { + websocketManager.emitStaleServerData() + } + + await close() +} + +async function includesSSRComponent( + recompiledFiles: Set +): Promise { + const result = await Promise.all( + Array.from(recompiledFiles).map(path => isSSRPageComponent(path)) + ) + return result.some(isSSR => isSSR === true) +} + +async function isSSRPageComponent(filename: string): Promise { + if ( + !(await fs.pathExists(filename)) || + !(await fs.lstat(filename)).isFile() + ) { + return false + } + const text = await fs.readFile(filename, `utf8`) + return text.includes(`getServerData`) +} diff --git a/packages/gatsby/src/services/start-webpack-server.ts b/packages/gatsby/src/services/start-webpack-server.ts index 647ae186a2245..c2128060dc759 100644 --- a/packages/gatsby/src/services/start-webpack-server.ts +++ b/packages/gatsby/src/services/start-webpack-server.ts @@ -35,13 +35,8 @@ export async function startWebpackServer({ if (!program || !app || !store) { report.panic(`Missing required params`) } - let { - compiler, - webpackActivity, - websocketManager, - cancelDevJSNotice, - webpackWatching, - } = await startServer(program, app, workerPool) + let { compiler, webpackActivity, websocketManager, webpackWatching } = + await startServer(program, app, workerPool) compiler.hooks.invalid.tap(`log compiling`, function () { if (!webpackActivity) { @@ -77,10 +72,6 @@ export async function startWebpackServer({ webpackWatching.suspend() } - if (cancelDevJSNotice) { - cancelDevJSNotice() - } - const urls = prepareUrls( program.https ? `https` : `http`, program.host, diff --git a/packages/gatsby/src/services/types.ts b/packages/gatsby/src/services/types.ts index 4a77b2889ccd7..176a07ca2fcea 100644 --- a/packages/gatsby/src/services/types.ts +++ b/packages/gatsby/src/services/types.ts @@ -44,5 +44,7 @@ export interface IBuildContext { webpackListener?: Actor queryFilesDirty?: boolean sourceFilesDirty?: boolean + changedSourceFiles?: Set // not available in "recompile" service + recompiledFiles?: Set // available in "recompile" service pendingQueryRuns?: Set } diff --git a/packages/gatsby/src/state-machines/data-layer/index.ts b/packages/gatsby/src/state-machines/data-layer/index.ts index 7d1f9f9929475..25c5f146f6d2a 100644 --- a/packages/gatsby/src/state-machines/data-layer/index.ts +++ b/packages/gatsby/src/state-machines/data-layer/index.ts @@ -48,17 +48,9 @@ const initialCreatePagesStates: StatesConfig = { invoke: { id: `creating-pages`, src: `createPages`, - onDone: { - target: `rebuildingSchemaWithSitePage`, - actions: `assignChangedPages`, - }, - }, - }, - rebuildingSchemaWithSitePage: { - invoke: { - src: `rebuildSchemaWithSitePage`, onDone: { target: `writingOutRedirects`, + actions: `assignChangedPages`, }, }, }, @@ -87,17 +79,9 @@ const recreatePagesStates: StatesConfig = { invoke: { id: `creating-pages`, src: `createPages`, - onDone: { - target: `rebuildingSchemaWithSitePage`, - actions: `assignChangedPages`, - }, - }, - }, - rebuildingSchemaWithSitePage: { - invoke: { - src: `rebuildSchemaWithSitePage`, onDone: { target: `done`, + actions: `assignChangedPages`, }, }, }, diff --git a/packages/gatsby/src/state-machines/data-layer/services.ts b/packages/gatsby/src/state-machines/data-layer/services.ts index a32125abbbc33..3dd8e34ebf8b5 100644 --- a/packages/gatsby/src/state-machines/data-layer/services.ts +++ b/packages/gatsby/src/state-machines/data-layer/services.ts @@ -4,7 +4,6 @@ import { createPages, buildSchema, sourceNodes, - rebuildSchemaWithSitePage, writeOutRedirects as writeOutRedirectsAndWatch, } from "../../services" import { IDataLayerContext } from "./types" @@ -17,6 +16,5 @@ export const dataLayerServices: Record< sourceNodes, createPages, buildSchema, - rebuildSchemaWithSitePage, writeOutRedirectsAndWatch, } diff --git a/packages/gatsby/src/state-machines/develop/actions.ts b/packages/gatsby/src/state-machines/develop/actions.ts index c6831db52ba66..ee86bd5132f75 100644 --- a/packages/gatsby/src/state-machines/develop/actions.ts +++ b/packages/gatsby/src/state-machines/develop/actions.ts @@ -57,14 +57,29 @@ export const markQueryFilesDirty = assign({ queryFilesDirty: true, }) -export const markSourceFilesDirty = assign({ - sourceFilesDirty: true, -}) +export const markSourceFilesDirty = assign( + (context, event) => { + const prev = context.changedSourceFiles ?? new Set() + return { + sourceFilesDirty: true, + changedSourceFiles: prev.add(event.payload ?? event.file), + } + } +) export const markSourceFilesClean = assign({ sourceFilesDirty: false, + changedSourceFiles: () => new Set(), }) +export const setRecompiledFiles = assign( + context => { + return { + recompiledFiles: context.changedSourceFiles, + } + } +) + export const markNodesDirty = assign({ nodesMutatedDuringQueryRun: true, }) @@ -99,6 +114,7 @@ export const assignServiceResult = assign( * This spawns the service that listens to the `emitter` for various mutation events */ export const spawnMutationListener = assign({ + // @ts-ignore - TODO: Fixing this seems more involved: https://xstate.js.org/docs/guides/typescript.html#troubleshooting & https://github.com/statelyai/xstate/issues/2664 mutationListener: () => spawn(listenForMutations, `listen-for-mutations`), }) @@ -111,6 +127,7 @@ export const assignServers = assign( ) export const spawnWebpackListener = assign({ + // @ts-ignore - TODO: Fixing this seems more involved: https://xstate.js.org/docs/guides/typescript.html#troubleshooting & https://github.com/statelyai/xstate/issues/2664 webpackListener: ({ compiler }) => { if (!compiler) { return undefined @@ -191,6 +208,7 @@ export const buildActions: ActionFunctionMap = { spawnWebpackListener, markSourceFilesDirty, markSourceFilesClean, + setRecompiledFiles, markNodesClean, incrementRecompileCount, resetRecompileCount, diff --git a/packages/gatsby/src/state-machines/develop/index.ts b/packages/gatsby/src/state-machines/develop/index.ts index 96b787e769cc8..12fede4540000 100644 --- a/packages/gatsby/src/state-machines/develop/index.ts +++ b/packages/gatsby/src/state-machines/develop/index.ts @@ -191,7 +191,7 @@ const developConfig: MachineConfig = { // Important: mark source files as clean when recompiling starts // Doing this `onDone` will wipe all file change events that occur **during** recompilation // See https://github.com/gatsbyjs/gatsby/issues/27609 - entry: `markSourceFilesClean`, + entry: [`setRecompiledFiles`, `markSourceFilesClean`], invoke: { src: `recompile`, onDone: { diff --git a/packages/gatsby/src/state-machines/query-running/services.ts b/packages/gatsby/src/state-machines/query-running/services.ts index e5b7aaa1b2794..499e6898aa143 100644 --- a/packages/gatsby/src/state-machines/query-running/services.ts +++ b/packages/gatsby/src/state-machines/query-running/services.ts @@ -7,7 +7,6 @@ import { runPageQueries, waitUntilAllJobsComplete, writeOutRedirects, - rebuildSchemaWithSitePage, } from "../../services" import { IQueryRunningContext } from "./types" @@ -22,5 +21,4 @@ export const queryRunningServices: Record< runPageQueries, waitUntilAllJobsComplete, writeOutRedirects, - rebuildSchemaWithSitePage, } diff --git a/packages/gatsby/src/utils/__tests__/webpack.config.js b/packages/gatsby/src/utils/__tests__/webpack.config.js index 1e7f042085d2d..1fd96819001f0 100644 --- a/packages/gatsby/src/utils/__tests__/webpack.config.js +++ b/packages/gatsby/src/utils/__tests__/webpack.config.js @@ -104,7 +104,6 @@ describe(`environment variables`, () => { [ `__PATH_PREFIX__`, `process.env.BUILD_STAGE`, - `process.env.GATSBY_BUILD_STAGE`, `process.env.NODE_ENV`, `process.env.PUBLIC_DIR`, ].reduce((merged, key) => { diff --git a/packages/gatsby/src/utils/__tests__/websocket-manager.ts b/packages/gatsby/src/utils/__tests__/websocket-manager.ts index 3bc382c81ad4c..46806c9c13979 100644 --- a/packages/gatsby/src/utils/__tests__/websocket-manager.ts +++ b/packages/gatsby/src/utils/__tests__/websocket-manager.ts @@ -395,6 +395,7 @@ describe(`websocket-manager`, () => { payload: { path: `/404.html`, component: `not-important`, + componentPath: `not-important`, context: {}, }, plugin: { name: `websocket-manager-test` }, @@ -404,6 +405,7 @@ describe(`websocket-manager`, () => { payload: { path: `/dev-404-page/`, component: `not-important`, + componentPath: `not-important`, context: {}, }, plugin: { name: `websocket-manager-test` }, diff --git a/packages/gatsby/src/utils/api-node-docs.ts b/packages/gatsby/src/utils/api-node-docs.ts index 06b2259350200..c302530bb3c2c 100644 --- a/packages/gatsby/src/utils/api-node-docs.ts +++ b/packages/gatsby/src/utils/api-node-docs.ts @@ -299,11 +299,8 @@ export const createSchemaCustomization = true * built schema from `info.schema`. * * Gatsby's data layer, including all internal query capabilities, is * exposed on [`context.nodeModel`](/docs/node-model/). The node store can be - * queried directly with `getAllNodes`, `getNodeById` and `getNodesByIds`, - * while more advanced queries can be composed with `runQuery`. Note that - * `runQuery` will call field resolvers before querying, so e.g. foreign-key - * fields will be expanded to full nodes. The other methods on `nodeModel` - * don't do this. + * queried directly with `findOne`, `getNodeById` and `getNodesByIds`, + * while more advanced queries can be composed with `findAll`. * * It is possible to add fields to the root `Query` type. * * When using the first resolver argument (`source` in the example below, * often also called `parent` or `root`), take care of the fact that field @@ -334,12 +331,11 @@ export const createSchemaCustomization = true * Query: { * allRecentPosts: { * type: [`BlogPost`], - * resolve: (source, args, context, info) => { - * const posts = context.nodeModel.getAllNodes({ type: `BlogPost` }) - * const recentPosts = posts.filter( + * resolve: async (source, args, context, info) => { + * const { entries } = await context.nodeModel.findAll({ type: `BlogPost` }) + * return entries.filter( * post => post.publishedAt > Date.UTC(2018, 0, 1) * ) - * return recentPosts * } * } * } diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/input.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/input.mjs new file mode 100644 index 0000000000000..ca5fa2d64f5fe --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/input.mjs @@ -0,0 +1,20 @@ +import { fetch, Response } from 'node-fetch'; + +const usedReference = 'my cool ref'; +const unusedReference = 'I hope to be removed'; + +export default function () { + const x = new Response({}) + anotherSelfReferencedOne(); + + return usedReference +} + +// such a structure is being generated by regenerator-runtime +function renderPage() { + renderPage = () => { }; +} + +function anotherSelfReferencedOne() { + anotherSelfReferencedOne = () => { }; +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/output.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/output.mjs new file mode 100644 index 0000000000000..81daac568e205 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/default/output.mjs @@ -0,0 +1,16 @@ +import { fetch, Response } from 'node-fetch'; +const usedReference = 'my cool ref'; +const unusedReference = 'I hope to be removed'; +export default function () { + const x = new Response({}); + anotherSelfReferencedOne(); + return usedReference; +} // such a structure is being generated by regenerator-runtime + +function renderPage() { + renderPage = () => {}; +} + +function anotherSelfReferencedOne() { + anotherSelfReferencedOne = () => {}; +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/input.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/input.mjs new file mode 100644 index 0000000000000..042c2d898ca65 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/input.mjs @@ -0,0 +1,32 @@ +const { fetch, Response } = require('node-fetch'); +const usedReference = 'used reference'; + +module.exports = function () { + const x = new Response({}) + + return usedReference +} + +exports.getServerData = async function getServerData() { + const data = await fetch('https://example.com'); + const file = fs.readFileSync('./unknown.tmp.json', 'utf8') + + return { + props: { + file, + } + } +} + +exports.config = function config() { + return { + pageContext: { + env: 'test', + unusedReference, + }, + } +} + +exports.anotherFunction = function anotherFunction() { + return "test" +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/output.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/output.mjs new file mode 100644 index 0000000000000..3108ad06304a1 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/exports/output.mjs @@ -0,0 +1,14 @@ +const { + Response +} = require('node-fetch'); + +const usedReference = 'used reference'; + +module.exports = function () { + const x = new Response({}); + return usedReference; +}; + +exports.anotherFunction = function anotherFunction() { + return "test"; +}; diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/input.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/input.mjs new file mode 100644 index 0000000000000..91d90f48be297 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/input.mjs @@ -0,0 +1,7 @@ +/** @jsx jsx */ +import { jsx } from 'react' + +export default function MyComponent() { + return
    Hello World
    +} + diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/options.json b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/options.json new file mode 100644 index 0000000000000..f43006233c230 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + "@babel/preset-react" + ], + "plugins": [ + [ + "../../../../babel-plugin-remove-api", + { + "apis": [ + "getServerData", + "config" + ] + } + ] + ] +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/output.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/output.mjs new file mode 100644 index 0000000000000..09fda6e861253 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/jsx/output.mjs @@ -0,0 +1,5 @@ +/** @jsx jsx */ +import { jsx } from 'react'; +export default function MyComponent() { + return jsx("div", null, "Hello World"); +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/options.json b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/options.json index bcbf672900118..e809d5e2160d7 100644 --- a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/options.json +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/options.json @@ -10,4 +10,4 @@ } ] ] -} \ No newline at end of file +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/input.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/input.mjs new file mode 100644 index 0000000000000..fc4701ec9bf49 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/input.mjs @@ -0,0 +1,5 @@ +import React from 'react'; + +export default function MyComponent() { + return
    Hello World
    +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/options.json b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/options.json new file mode 100644 index 0000000000000..f43006233c230 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/options.json @@ -0,0 +1,16 @@ +{ + "presets": [ + "@babel/preset-react" + ], + "plugins": [ + [ + "../../../../babel-plugin-remove-api", + { + "apis": [ + "getServerData", + "config" + ] + } + ] + ] +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/output.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/output.mjs new file mode 100644 index 0000000000000..6df32d3f04f55 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/react/output.mjs @@ -0,0 +1,4 @@ +import React from 'react'; +export default function MyComponent() { + return /*#__PURE__*/React.createElement("div", null, "Hello World"); +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/input.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/input.mjs new file mode 100644 index 0000000000000..bbf45accdf380 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/input.mjs @@ -0,0 +1,55 @@ +import { fetch, Response } from 'node-fetch'; +import something from 'my-import' +import * as fs from "fs" + +const usedReference = 'my cool ref'; +const unusedReference = 'I hope to be removed'; +const { x, y } = require('some-import'); + +export default function () { + const x = new Response({}) + anotherSelfReferencedOne(); + + return usedReference +} + +// such a structure is being generated by regenerator-runtime +function renderPage() { + renderPage = () => { }; +} + +function anotherSelfReferencedOne() { + anotherSelfReferencedOne = () => { }; +} + +export async function getServerData() { + const data = await fetch('https://example.com'); + const file = fs.readFileSync('./unknown.tmp.json', 'utf8') + renderPage(); + anotherSelfReferencedOne(); + + return { + props: { + x, + y, + file, + data: await data.json(), + unusedReference, + test: something(), + } + + } +} + +export function config() { + return { + pageContext: { + env: 'test', + unusedReference, + }, + } +} + +export function anotherFunction() { + return "test" +} diff --git a/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/output.mjs b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/output.mjs new file mode 100644 index 0000000000000..7751d2ed44a41 --- /dev/null +++ b/packages/gatsby/src/utils/babel/__tests__/fixtures/remove-apis/references/output.mjs @@ -0,0 +1,15 @@ +import { Response } from 'node-fetch'; +const usedReference = 'my cool ref'; +export default function () { + const x = new Response({}); + anotherSelfReferencedOne(); + return usedReference; +} // such a structure is being generated by regenerator-runtime + +function anotherSelfReferencedOne() { + anotherSelfReferencedOne = () => {}; +} + +export function anotherFunction() { + return "test"; +} diff --git a/packages/gatsby/src/utils/babel/babel-plugin-remove-api.ts b/packages/gatsby/src/utils/babel/babel-plugin-remove-api.ts index d59b710aefc42..03138f20309d9 100644 --- a/packages/gatsby/src/utils/babel/babel-plugin-remove-api.ts +++ b/packages/gatsby/src/utils/babel/babel-plugin-remove-api.ts @@ -19,7 +19,82 @@ export default declare(function removeApiCalls( return { name: `remove-api`, visitor: { - ExportNamedDeclaration(path): void { + Program: { + exit(path, state): void { + if (!state.apiRemoved) { + return + } + + // babel doesn't remove references very well so we loop until nothing gets removed + let removed = false + + // remove all unreferenced bindings + do { + removed = false + // make sure all references are up to date + path.scope.crawl() + + Object.keys(path.scope.bindings).forEach(refName => { + const ref = path.scope.bindings[refName] + + if (ref.referenced) { + // Functions can reference themselves, so we need to check if there's a + // binding outside the function scope or not. + if (ref.path.type === `FunctionDeclaration`) { + const isSelfReferenced = ref.referencePaths.every( + refPath => !!refPath.findParent(p => p === ref.path) + ) + + if (isSelfReferenced) { + ref.path.remove() + removed = true + } + } + } else { + // if const {x,y} is used, we remove the property + if ( + t.isVariableDeclarator(ref.path) && + t.isObjectPattern( + (ref.path.parent as t.VariableDeclaration).declarations[0] + .id + ) + ) { + const objectPattern = ( + ref.path.parent as t.VariableDeclaration + ).declarations[0].id as t.ObjectPattern + objectPattern.properties = objectPattern.properties.filter( + prop => + t.isObjectProperty(prop) + ? (prop.value as t.Identifier).name !== refName + : ((prop as t.RestElement).argument as t.Identifier) + .name !== refName + ) + + // if all properties got removed thus the object pattern is empty, we remove the whole declaration + if (!objectPattern.properties.length) { + ref.path.remove() + } + } else { + ref.path.remove() + } + + // if it's a module and all specifiers are removed, remove the full binding + if ( + ref.kind === `module` && + !(ref.path.parent as t.ImportDeclaration).specifiers.length + ) { + ref.path.parentPath.remove() + } + + removed = true + } + }) + } while (removed) + }, + }, + + // Remove export statements + ExportNamedDeclaration(path, state): void { const declaration = path.node.declaration if (t.isExportNamedDeclaration(path.node)) { @@ -55,6 +130,25 @@ export default declare(function removeApiCalls( } if (apiToCheck && apisToRemove.includes(apiToCheck)) { + state.apiRemoved = true + path.remove() + } + }, + + // remove exports + ExpressionStatement(path, state): void { + if ( + !t.isAssignmentExpression(path.node.expression) || + !t.isMemberExpression(path.node.expression.left) || + (path.node.expression.left.object as t.Identifier).name !== `exports` + ) { + return + } + + const apiToCheck = (path.node.expression.left.property as t.Identifier) + .name + if (apiToCheck && apisToRemove.includes(apiToCheck)) { + state.apiRemoved = true path.remove() } }, diff --git a/packages/gatsby/src/utils/changed-pages.ts b/packages/gatsby/src/utils/changed-pages.ts index 16a76dbafbe42..0359ee4d9d809 100644 --- a/packages/gatsby/src/utils/changed-pages.ts +++ b/packages/gatsby/src/utils/changed-pages.ts @@ -17,8 +17,7 @@ export function deleteUntouchedPages( if ( (shouldRunCreatePagesStatefully || !page.isCreatedByStatefulCreatePages) && - page.updatedAt < timeBeforeApisRan && - page.path !== `/404.html` + page.updatedAt < timeBeforeApisRan ) { store.dispatch(deletePage(page)) deletedPages.push(page.path, `/page-data${page.path}`) diff --git a/packages/gatsby/src/utils/clear-require-cache.ts b/packages/gatsby/src/utils/clear-require-cache.ts new file mode 100644 index 0000000000000..4f1989abda962 --- /dev/null +++ b/packages/gatsby/src/utils/clear-require-cache.ts @@ -0,0 +1,25 @@ +export function clearRequireCacheRecursively( + module: string, + ignoreNodeModules: boolean = true +): void { + const resolvedModule = require.resolve(module) + const cacheEntry = require.cache[resolvedModule] + if (!cacheEntry) { + return + } + if (ignoreNodeModules && resolvedModule.includes(`node_modules`)) { + return + } + delete require.cache[resolvedModule] + + const parent = cacheEntry.parent + if (parent) { + const index = parent.children.findIndex(c => c.filename === resolvedModule) + if (index !== -1) { + parent.children.splice(index, 1) + } + } + cacheEntry.children.forEach(module => + clearRequireCacheRecursively(module.filename, ignoreNodeModules) + ) +} diff --git a/packages/gatsby/src/utils/create-node-id.ts b/packages/gatsby/src/utils/create-node-id.ts index a0b0979abe37d..6b92ce4e415e1 100644 --- a/packages/gatsby/src/utils/create-node-id.ts +++ b/packages/gatsby/src/utils/create-node-id.ts @@ -1,4 +1,4 @@ -import uuidv5 from "uuid/v5" +import { v5 as uuidv5 } from "uuid" import report from "gatsby-cli/lib/reporter" const seedConstant = `638f7a53-c567-4eca-8fc1-b23efb1cfb2b` diff --git a/packages/gatsby/src/utils/develop-preload-headers.ts b/packages/gatsby/src/utils/develop-preload-headers.ts index 80d251d9e582c..d317b863605a9 100644 --- a/packages/gatsby/src/utils/develop-preload-headers.ts +++ b/packages/gatsby/src/utils/develop-preload-headers.ts @@ -4,6 +4,7 @@ import { fixedPagePath } from "gatsby-core-utils" import { findPageByPath } from "./find-page-by-path" import { readPageData } from "./page-data" import { store } from "../redux" +import { getPageMode } from "./page-mode" /** * Add preload link headers to responses for .html files. This allows browser to schedule fetching critical resources @@ -32,7 +33,10 @@ export async function appendPreloadHeaders( // add page-data.json preload // our runtime also demands 404 and dev-404 page-data to be fetched to even render (see cache-dir/app.js) const pagePathsToPreload = [`/404.html`, `/dev-404-page/`] - if (!pagePathsToPreload.includes(page.path)) { + if ( + getPageMode(page) !== `SSR` && + !pagePathsToPreload.includes(page.path) + ) { // let's make sure page path is first one (order shouldn't matter, just for reasonable order) pagePathsToPreload.unshift(page.path) } diff --git a/packages/gatsby/src/utils/develop-proxy.ts b/packages/gatsby/src/utils/develop-proxy.ts index 9a1c4e986bceb..dc1aaef7c1735 100644 --- a/packages/gatsby/src/utils/develop-proxy.ts +++ b/packages/gatsby/src/utils/develop-proxy.ts @@ -1,10 +1,8 @@ import http from "http" import https from "https" import httpProxy from "http-proxy" -import path from "path" import fs from "fs-extra" import { getServices } from "gatsby-core-utils" -import st from "st" import restartingScreen from "./restarting-screen" import { IProgram } from "../commands/types" @@ -16,14 +14,6 @@ export interface IProxyControls { const noop = (): void => {} -const adminFolder = path.join(__dirname, `..`, `..`, `gatsby-admin-public`) - -const serveAdmin = st({ - path: adminFolder, - url: `/___admin`, - index: `index.html`, -}) - export const startDevelopProxy = (input: { proxyPort: number targetPort: number @@ -44,13 +34,6 @@ export const startDevelopProxy = (input: { proxy.on(`error`, noop) const app: http.RequestListener = (req, res): void => { - if (process.env.GATSBY_EXPERIMENTAL_ENABLE_ADMIN) { - const wasAdminRequest = serveAdmin(req, res) - if (wasAdminRequest) { - return - } - } - // Add a route at localhost:8000/___services for service discovery if (req.url === `/___services`) { getServices(input.program.directory).then(services => { diff --git a/packages/gatsby/src/utils/engine-context.ts b/packages/gatsby/src/utils/engine-context.ts new file mode 100644 index 0000000000000..19e2b456d6a5b --- /dev/null +++ b/packages/gatsby/src/utils/engine-context.ts @@ -0,0 +1,22 @@ +import { AsyncLocalStorage } from "async_hooks" + +export interface IEngineContext { + requestId: string +} + +let asyncLocalStorage +function getAsyncLocalStorage(): AsyncLocalStorage { + return asyncLocalStorage ?? (asyncLocalStorage = new AsyncLocalStorage()) +} + +export function getEngineContext(): IEngineContext | undefined { + return getAsyncLocalStorage().getStore() +} + +export function runWithEngineContext( + context: IEngineContext, + fn: (...args: Array) => T +): T { + // @ts-ignore typings are incorrect, run() returns the result of fn() + return getAsyncLocalStorage().run(context, fn) +} diff --git a/packages/gatsby/src/utils/engines-helpers.ts b/packages/gatsby/src/utils/engines-helpers.ts index e9de5206e6b3a..3a6d0dda63c16 100644 --- a/packages/gatsby/src/utils/engines-helpers.ts +++ b/packages/gatsby/src/utils/engines-helpers.ts @@ -1,5 +1,5 @@ import { emitter } from "../redux" -import { ICreatePageAction } from "../redux/types" +import { ICreatePageAction, ISetComponentFeatures } from "../redux/types" export function shouldPrintEngineSnapshot(): boolean { return process.env.gatsby_executing_command === `build` @@ -11,5 +11,9 @@ export function shouldGenerateEngines(): boolean { } emitter.on(`CREATE_PAGE`, (action: ICreatePageAction) => { - if (action.payload.mode !== `SSG`) generate = true + if (action.payload.mode && action.payload.mode !== `SSG`) generate = true +}) +emitter.on(`SET_COMPONENT_FEATURES`, (action: ISetComponentFeatures) => { + if (action.payload.serverData) generate = true + // TODO: if (action.payload.config) generate = true }) diff --git a/packages/gatsby/src/utils/flags.ts b/packages/gatsby/src/utils/flags.ts index c5295f9d03518..408e2b44716c5 100644 --- a/packages/gatsby/src/utils/flags.ts +++ b/packages/gatsby/src/utils/flags.ts @@ -87,7 +87,7 @@ const activeFlags: Array = [ experimental: false, description: `Enable all experiments aimed at improving develop server start time.`, includedFlags: [ - `DEV_SSR`, + // `DEV_SSR`, - not working with serverdata atm `PRESERVE_FILE_DOWNLOAD_CACHE`, `DEV_WEBPACK_CACHE`, ], @@ -189,16 +189,6 @@ const activeFlags: Array = [ umbrellaIssue: `https://gatsby.dev/parallel-sourcing-feedback`, testFitness: (): fitnessEnum => true, }, - { - name: `FUNCTIONS`, - env: `GATSBY_EXPERIMENTAL_FUNCTIONS`, - command: `all`, - telemetryId: `Functions`, - experimental: false, - description: `Compile Serverless functions in your Gatsby project and write them to disk, ready to deploy to Gatsby Cloud`, - umbrellaIssue: `https://gatsby.dev/functions-feedback`, - testFitness: (): fitnessEnum => `LOCKED_IN`, - }, { name: `LMDB_STORE`, env: `GATSBY_EXPERIMENTAL_LMDB_STORE`, diff --git a/packages/gatsby/src/utils/gatsby-webpack-stats-extractor.ts b/packages/gatsby/src/utils/gatsby-webpack-stats-extractor.ts index 0c950066a16db..428216b309afe 100644 --- a/packages/gatsby/src/utils/gatsby-webpack-stats-extractor.ts +++ b/packages/gatsby/src/utils/gatsby-webpack-stats-extractor.ts @@ -8,7 +8,9 @@ export class GatsbyWebpackStatsExtractor { this.plugin = { name: `GatsbyWebpackStatsExtractor` } } apply(compiler: Compiler): void { - compiler.hooks.done.tapAsync(this.plugin.name, (stats, done) => { + let previousChunkMapJson: string | undefined + let previousWebpackStatsJson: string | undefined + compiler.hooks.done.tapAsync(this.plugin.name, async (stats, done) => { const assets = {} const assetsMap = {} const childAssets = {} @@ -54,17 +56,26 @@ export class GatsbyWebpackStatsExtractor { assetsByChunkName: assets, childAssetsByChunkName: childAssets, } - fs.writeFile( - path.join(`public`, `chunk-map.json`), - JSON.stringify(assetsMap), - () => { - fs.writeFile( - path.join(`public`, `webpack.stats.json`), - JSON.stringify(webpackStats), - done - ) - } - ) + + const newChunkMapJson = JSON.stringify(assetsMap) + if (newChunkMapJson !== previousChunkMapJson) { + await fs.writeFile( + path.join(`public`, `chunk-map.json`), + newChunkMapJson + ) + previousChunkMapJson = newChunkMapJson + } + + const newWebpackStatsJson = JSON.stringify(webpackStats) + if (newWebpackStatsJson !== previousWebpackStatsJson) { + await fs.writeFile( + path.join(`public`, `webpack.stats.json`), + newWebpackStatsJson + ) + previousWebpackStatsJson = newWebpackStatsJson + } + + done() }) } } diff --git a/packages/gatsby/src/utils/jobs/__tests__/manager.js b/packages/gatsby/src/utils/jobs/__tests__/manager.js index ef8a3f7a17e06..19e50c1d3d6d8 100644 --- a/packages/gatsby/src/utils/jobs/__tests__/manager.js +++ b/packages/gatsby/src/utils/jobs/__tests__/manager.js @@ -36,16 +36,14 @@ jest.mock( { virtual: true } ) -jest.mock(`uuid/v4`, () => - jest.fn().mockImplementation(jest.requireActual(`uuid/v4`)) -) - const worker = require(`/node_modules/gatsby-plugin-test/gatsby-worker`) const reporter = require(`gatsby-cli/lib/reporter`) const hasha = require(`hasha`) const fs = require(`fs-extra`) const pDefer = require(`p-defer`) -const uuidv4 = require(`uuid/v4`) +const { uuid } = require(`gatsby-core-utils`) + +jest.spyOn(uuid, `v4`) fs.ensureDir = jest.fn().mockResolvedValue(true) @@ -84,7 +82,7 @@ describe(`Jobs manager`, () => { worker.TEST_JOB.mockReset() endActivity.mockClear() pDefer.mockClear() - uuidv4.mockClear() + uuid.v4.mockClear() reporter.phantomActivity.mockImplementation(() => { return { start: jest.fn(), @@ -153,7 +151,7 @@ describe(`Jobs manager`, () => { const internalJob = createInternalJob(createMockJob(), plugin) createInternalJob(internalJob, plugin) - expect(uuidv4).toHaveBeenCalledTimes(1) + expect(uuid.v4).toHaveBeenCalledTimes(1) }) }) diff --git a/packages/gatsby/src/utils/jobs/manager.ts b/packages/gatsby/src/utils/jobs/manager.ts index 8907a219f1a14..1c8f91a01158d 100644 --- a/packages/gatsby/src/utils/jobs/manager.ts +++ b/packages/gatsby/src/utils/jobs/manager.ts @@ -1,10 +1,9 @@ -import uuidv4 from "uuid/v4" import path from "path" import hasha from "hasha" import fs from "fs-extra" import pDefer from "p-defer" import _ from "lodash" -import { createContentDigest, slash } from "gatsby-core-utils" +import { createContentDigest, slash, uuid } from "gatsby-core-utils" import reporter from "gatsby-cli/lib/reporter" import { IPhantomReporter } from "gatsby-cli" import { @@ -221,7 +220,7 @@ export function createInternalJob( }) const internalJob: InternalJob = { - id: uuidv4(), + id: uuid.v4(), name, contentDigest: ``, inputPaths: inputPathsWithContentDigest, @@ -325,6 +324,16 @@ export function waitUntilAllJobsComplete(): Promise { return hasActiveJobs ? hasActiveJobs.promise : Promise.resolve() } +export async function waitJobs(jobDigests: Set): Promise { + const promises: Array> = [] + for (const [digest, job] of jobsInProcess) { + if (jobDigests.has(digest)) { + promises.push(job.deferred.promise) + } + } + await Promise.all(promises) +} + export function isJobStale( job: Partial & { inputPaths: InternalJob["inputPaths"] } ): boolean { diff --git a/packages/gatsby/src/redux/reducers/normalize-path.ts b/packages/gatsby/src/utils/normalize-path.ts similarity index 100% rename from packages/gatsby/src/redux/reducers/normalize-path.ts rename to packages/gatsby/src/utils/normalize-path.ts diff --git a/packages/gatsby/src/utils/page-data-helpers.ts b/packages/gatsby/src/utils/page-data-helpers.ts index 6a7ace434f841..6126390418ff3 100644 --- a/packages/gatsby/src/utils/page-data-helpers.ts +++ b/packages/gatsby/src/utils/page-data-helpers.ts @@ -1,3 +1,4 @@ +import type { IStructuredError } from "gatsby-cli/src/structured-errors/types" import { IGatsbyPage } from "../redux/types" export interface IPageData { @@ -5,6 +6,7 @@ export interface IPageData { matchPath?: IGatsbyPage["matchPath"] path: IGatsbyPage["path"] staticQueryHashes: Array + getServerDataError?: IStructuredError | Array | null } export function constructPageDataString( diff --git a/packages/gatsby/src/utils/page-data.ts b/packages/gatsby/src/utils/page-data.ts index b70a1673f9f6d..be9f5f212d04f 100644 --- a/packages/gatsby/src/utils/page-data.ts +++ b/packages/gatsby/src/utils/page-data.ts @@ -20,6 +20,7 @@ import { Span } from "opentracing" export { reverseFixedPagePath } import { IExecutionResult } from "../query/types" +import { getPageMode } from "./page-mode" export interface IPageDataWithQueryResult extends IPageData { result: IExecutionResult @@ -198,7 +199,7 @@ export async function flush(parentSpan?: Span): Promise { if (hasFlag(query.dirty, FLAG_DIRTY_NEW_PAGE)) { // query results are not written yet - process.nextTick(() => cb(null, true)) + setImmediate(() => cb(null, true)) return } } @@ -208,7 +209,7 @@ export async function flush(parentSpan?: Span): Promise { if ( _CFLAGS_.GATSBY_MAJOR !== `4` || !isBuild || - (isBuild && page.mode === `SSG`) + (isBuild && getPageMode(page) === `SSG`) ) { const staticQueryHashes = staticQueriesByTemplate.get(page.componentPath) || [] @@ -239,9 +240,9 @@ export async function flush(parentSpan?: Span): Promise { }, }) - // `process.nextTick` below is a workaround against stack overflow + // `setImmediate` below is a workaround against stack overflow // occurring when there are many non-SSG pages - process.nextTick(() => cb(null, true)) + setImmediate(() => cb(null, true)) return }, 25) diff --git a/packages/gatsby/src/utils/page-mode.ts b/packages/gatsby/src/utils/page-mode.ts new file mode 100644 index 0000000000000..868c026f33948 --- /dev/null +++ b/packages/gatsby/src/utils/page-mode.ts @@ -0,0 +1,93 @@ +import { store } from "../redux" +import { + IGatsbyPage, + IGatsbyState, + IMaterializePageMode, + PageMode, +} from "../redux/types" +import { reportOnce } from "./report-once" + +/** + * In develop IGatsbyPage["mode"] can change at any time, so as a general rule we need to resolve it + * every time from page component and IGatsbyPage["defer"] value. + * + * IGatsbyPage["mode"] is only reliable in engines and in `onPostBuild` hook. + */ +export function getPageMode(page: IGatsbyPage, state?: IGatsbyState): PageMode { + const { components } = state ?? store.getState() + + // assume SSG until components are actually extracted + const component = components.get(page.componentPath) ?? { serverData: false } + + // TODO: fs routes support: + // if (component.config) { + // const renderer = require(PAGE_RENDERER_PATH) + // const componentInstance = await renderer.getPageChunk({ componentChunkName: page.componentChunkName }) + // return resolvePageMode(page, component, componentInstance) + // } + return resolvePageMode(page, component) +} + +function resolvePageMode( + page: IGatsbyPage, + component: { serverData: boolean } + // TODO: + // componentInstance?: NodeModule +): PageMode { + let pageMode: PageMode + if (component.serverData) { + pageMode = `SSR` + } else { + pageMode = page.defer ? `DSG` : `SSG` + } + // TODO: fs routes support, e.g.: + // if (componentInstance) { + // return componentInstance.config.defer(page) ? `DSG` : `SSG` + // } + if ( + pageMode !== `SSG` && + (page.path === `/404.html` || page.path === `/500.html`) + ) { + reportOnce( + `Status page "${page.path}" ignores page mode ("${pageMode}") and force sets it to SSG (this page can't be lazily rendered).` + ) + pageMode = `SSG` + } + + return pageMode +} + +/** + * Persist page.mode for SSR/DSG pages to ensure they work with `gatsby serve` + * + * TODO: ideally IGatsbyPage["mode"] should not exist at all and instead we need a different entity + * holding this information: an entity that is only created in the end of the build e.g. Route + * then materializePageMode transforms to createRoutes + */ +export async function materializePageMode(): Promise { + const { pages, components } = store.getState() + + let dispatchCount = 0 + for (const page of pages.values()) { + const component = components.get(page.componentPath) + if (!component) { + throw new Error(`Could not find matching component for page ${page.path}`) + } + const pageMode = resolvePageMode(page, component) + + // Do not materialize for SSG pages: saves some CPU time as `page.mode` === `SSG` by default when creating a page + // and our pages are re-generated on each build, not persisted + // (so no way to get DSG/SSR value from the previous build) + if (pageMode !== `SSG`) { + const action: IMaterializePageMode = { + type: `MATERIALIZE_PAGE_MODE`, + payload: { path: page.path, pageMode }, + } + store.dispatch(action) + } + // Do not block task queue of the event loop for too long: + if (dispatchCount++ % 100 === 0) { + await new Promise(resolve => setImmediate(resolve)) + } + } +} diff --git a/packages/gatsby/src/utils/page-ssr-module/bundle-webpack.ts b/packages/gatsby/src/utils/page-ssr-module/bundle-webpack.ts index a0c8775ebb668..ac739bbca1a2c 100644 --- a/packages/gatsby/src/utils/page-ssr-module/bundle-webpack.ts +++ b/packages/gatsby/src/utils/page-ssr-module/bundle-webpack.ts @@ -1,8 +1,8 @@ import * as path from "path" -import { store } from "../../redux" import webpack from "webpack" import mod from "module" - +import { WebpackLoggingPlugin } from "../../utils/webpack/plugins/webpack-logging" +import reporter from "gatsby-cli/lib/reporter" import type { ITemplateDetails } from "./entry" import { @@ -10,26 +10,55 @@ import { readWebpackStats, } from "../client-assets-for-template" import { writeStaticQueryContext } from "../static-query-utils" +import { IGatsbyState } from "../../redux/types" + +type Reporter = typeof reporter const extensions = [`.mjs`, `.js`, `.json`, `.node`, `.ts`, `.tsx`] const outputDir = path.join(process.cwd(), `.cache`, `page-ssr`) -export async function createPageSSRBundle(): Promise { - const { program, components } = store.getState() - const webpackStats = await readWebpackStats( - path.join(program.directory, `public`) - ) +export async function writeQueryContext({ + staticQueriesByTemplate, + components, +}: { + staticQueriesByTemplate: IGatsbyState["staticQueriesByTemplate"] + components: IGatsbyState["components"] +}): Promise { + const waitingForWrites: Array> = [] + for (const pageTemplate of components.values()) { + const staticQueryHashes = + staticQueriesByTemplate.get(pageTemplate.componentPath) || [] + + waitingForWrites.push( + writeStaticQueryContext( + staticQueryHashes, + pageTemplate.componentChunkName + ) + ) + } + + return Promise.all(waitingForWrites).then(() => {}) +} + +export async function createPageSSRBundle({ + rootDir, + components, + staticQueriesByTemplate, + reporter, + isVerbose = false, +}: { + rootDir: string + components: IGatsbyState["components"] + staticQueriesByTemplate: IGatsbyState["staticQueriesByTemplate"] + reporter: Reporter + isVerbose?: boolean +}): Promise { + const webpackStats = await readWebpackStats(path.join(rootDir, `public`)) const toInline: Record = {} for (const pageTemplate of components.values()) { const staticQueryHashes = - store - .getState() - .staticQueriesByTemplate.get(pageTemplate.componentPath) || [] - await writeStaticQueryContext( - staticQueryHashes, - pageTemplate.componentChunkName - ) + staticQueriesByTemplate.get(pageTemplate.componentPath) || [] toInline[pageTemplate.componentChunkName] = { query: pageTemplate.query, @@ -40,7 +69,9 @@ export async function createPageSSRBundle(): Promise { ), } } + const compiler = webpack({ + name: `Page Engine`, mode: `none`, entry: path.join(__dirname, `entry.js`), output: { @@ -100,14 +131,17 @@ export async function createPageSSRBundle(): Promise { resolve: { extensions, alias: { - ".cache": `${program.directory}/.cache/`, + ".cache": `${rootDir}/.cache/`, }, }, plugins: [ new webpack.DefinePlugin({ INLINED_TEMPLATE_TO_DETAILS: JSON.stringify(toInline), }), - ], + process.env.GATSBY_WEBPACK_LOGGING?.includes(`page-engine`) + ? new WebpackLoggingPlugin(rootDir, reporter, isVerbose) + : false, + ].filter(Boolean) as Array, }) return new Promise((resolve, reject) => { diff --git a/packages/gatsby/src/utils/page-ssr-module/entry.ts b/packages/gatsby/src/utils/page-ssr-module/entry.ts index 221244265a970..ad3cbfe2e2626 100644 --- a/packages/gatsby/src/utils/page-ssr-module/entry.ts +++ b/packages/gatsby/src/utils/page-ssr-module/entry.ts @@ -1,3 +1,7 @@ +// "engines-fs-provider" must be first import, as it sets up global +// fs and this need to happen before anything else tries to import fs +import "../engines-fs-provider" + // just types - those should not be bundled import type { GraphQLEngine } from "../../schema/graphql-engine/entry" import type { IExecutionResult } from "../../query/types" @@ -7,7 +11,6 @@ import type { IPageDataWithQueryResult } from "../page-data" import type { Request } from "express" // actual imports -import "../engines-fs-provider" import * as path from "path" import * as fs from "fs-extra" import { @@ -17,6 +20,7 @@ import { // @ts-ignore render-page import will become valid later on (it's marked as external) import htmlComponentRenderer, { getPageChunk } from "./routes/render-page" import { getServerData, IServerData } from "../get-server-data" +import { getCodeFrame } from "../../query/graphql-errors-codeframe" export interface ITemplateDetails { query: string @@ -29,6 +33,7 @@ export interface ISSRData { templateDetails: ITemplateDetails potentialPagePath: string serverDataHeaders?: Record + searchString: string } const pageTemplateDetailsMap: Record< @@ -78,7 +83,20 @@ export async function getData({ ...page.context, }) .then(queryResults => { - results = queryResults + if (queryResults.errors && queryResults.errors.length > 0) { + const e = queryResults.errors[0] + const codeFrame = getCodeFrame( + templateDetails.query, + e.locations && e.locations[0].line, + e.locations && e.locations[0].column + ) + + const queryRunningError = new Error(e.message + `\n\n` + codeFrame) + queryRunningError.stack = e.stack + throw queryRunningError + } else { + results = queryResults + } }) ) } @@ -101,15 +119,34 @@ export async function getData({ } results.pageContext = page.context + let searchString = `` + if (req?.query) { + const maybeQueryString = Object.entries(req.query) + .map(([k, v]) => `${k}=${v}`) + .join(`&`) + if (maybeQueryString) { + searchString = `?${maybeQueryString}` + } + } + return { results, page, templateDetails, potentialPagePath, serverDataHeaders: serverData?.headers, + searchString, } } +function getPath(data: ISSRData): string { + return ( + (data.page.mode !== `SSG` && data.page.matchPath + ? data.potentialPagePath + : data.page.path) + (data.page.mode === `SSR` ? data.searchString : ``) + ) +} + export async function renderPageData({ data, }: { @@ -118,10 +155,7 @@ export async function renderPageData({ const results = await constructPageDataString( { componentChunkName: data.page.componentChunkName, - path: - data.page.mode !== `SSG` && data.page.matchPath - ? data.potentialPagePath - : data.page.path, + path: getPath(data), matchPath: data.page.matchPath, staticQueryHashes: data.templateDetails.staticQueryHashes, }, @@ -161,10 +195,7 @@ export async function renderHTML({ ) const results = await htmlComponentRenderer({ - pagePath: - data.page.mode !== `SSG` && data.page.matchPath - ? data.potentialPagePath - : data.page.path, + pagePath: getPath(data), pageData, staticQueryContext, ...data.templateDetails.assets, diff --git a/packages/gatsby/src/utils/report-once.ts b/packages/gatsby/src/utils/report-once.ts new file mode 100644 index 0000000000000..631214e1eda8b --- /dev/null +++ b/packages/gatsby/src/utils/report-once.ts @@ -0,0 +1,16 @@ +import reporter from "gatsby-cli/lib/reporter" +import { isWorker } from "gatsby-worker" + +const displayedWarnings = new Set() + +export const reportOnce = ( + message: string, + method: "log" | "warn" | "info" | "success" | "verbose" | "error" = `warn`, + key?: string +): void => { + const messageId = key ?? message + if (!displayedWarnings.has(messageId) && !isWorker) { + displayedWarnings.add(messageId) + reporter[method](message) + } +} diff --git a/packages/gatsby/src/utils/source-nodes.ts b/packages/gatsby/src/utils/source-nodes.ts index 3ec189a4cfe24..322127231d5cc 100644 --- a/packages/gatsby/src/utils/source-nodes.ts +++ b/packages/gatsby/src/utils/source-nodes.ts @@ -112,4 +112,6 @@ export default async ({ warnForPluginsWithoutNodes(state, nodes) deleteStaleNodes(state, nodes) + + store.dispatch(actions.apiFinished({ apiName: `sourceNodes` })) } diff --git a/packages/gatsby/src/utils/start-server.ts b/packages/gatsby/src/utils/start-server.ts index feea2c9f6b1a6..7fd0dc862c9a5 100644 --- a/packages/gatsby/src/utils/start-server.ts +++ b/packages/gatsby/src/utils/start-server.ts @@ -13,13 +13,13 @@ import { GraphQLFormattedError, Kind, } from "graphql" -import { isCI } from "gatsby-core-utils" +import { slash, uuid } from "gatsby-core-utils" import http from "http" import cors from "cors" import telemetry from "gatsby-telemetry" import launchEditor from "react-dev-utils/launchEditor" import { codeFrameColumns } from "@babel/code-frame" -import uuidv4 from "uuid/v4" +import * as fs from "fs-extra" import { withBasePath } from "../utils/path" import webpackConfig from "../utils/webpack.config" @@ -30,10 +30,6 @@ import * as WorkerPool from "../utils/worker/pool" import { developStatic } from "../commands/develop-static" import withResolverContext from "../schema/context" import { websocketManager, WebsocketManager } from "../utils/websocket-manager" -import { - showExperimentNoticeAfterTimeout, - CancelExperimentNoticeCallbackOrUndefined, -} from "../utils/show-experiment-notice" import { reverseFixedPagePath, readPageData, @@ -55,6 +51,7 @@ import { import { renderDevHTML } from "./dev-ssr/render-dev-html" import { getServerData, IServerData } from "./get-server-data" import { ROUTES_DIRECTORY } from "../constants" +import { getPageMode } from "./page-mode" type ActivityTracker = any // TODO: Replace this with proper type once reporter is typed @@ -62,7 +59,6 @@ interface IServer { compiler: webpack.Compiler listener: http.Server webpackActivity: ActivityTracker - cancelDevJSNotice: CancelExperimentNoticeCallbackOrUndefined websocketManager: WebsocketManager workerPool: WorkerPool.GatsbyWorkerPool webpackWatching: IWebpackWatchingPauseResume @@ -95,34 +91,12 @@ export async function startServer( // query on demand is enabled and loading indicator is not disabled writeVirtualLoadingIndicatorModule() - const THIRTY_SECONDS = 30 * 1000 - let cancelDevJSNotice: CancelExperimentNoticeCallbackOrUndefined - if ( - process.env.gatsby_executing_command === `develop` && - !process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE && - !isCI() - ) { - cancelDevJSNotice = showExperimentNoticeAfterTimeout( - `Preserve webpack's Cache`, - `https://github.com/gatsbyjs/gatsby/discussions/28331`, - `which changes Gatsby's cache clearing behavior to not clear webpack's -cache unless you run "gatsby clean" or delete the .cache folder manually. -Here's how to try it: - -module.exports = { - flags: { PRESERVE_WEBPACK_CACHE: true }, - plugins: [...] -}`, - THIRTY_SECONDS - ) - } - // Remove the following when merging GATSBY_EXPERIMENTAL_DEV_SSR const directoryPath = withBasePath(directory) const { buildRenderer, doBuildPages } = require(`../commands/build-html`) const createIndexHtml = async (activity: ActivityTracker): Promise => { try { - const { rendererPath } = await buildRenderer( + const { rendererPath, close } = await buildRenderer( program, Stage.DevelopHTML, activity.span @@ -134,6 +108,8 @@ module.exports = { workerPool, Stage.DevelopHTML ) + // close the compiler + await close() } catch (err) { if (err.name !== `WebpackError`) { report.panic(err) @@ -269,7 +245,7 @@ module.exports = { req: express.Request, pluginName?: string ): Promise => { - global.__GATSBY.buildId = uuidv4() + global.__GATSBY.buildId = uuid.v4() emitter.emit(`WEBHOOK_RECEIVED`, { webhookBody: req.body, @@ -330,9 +306,11 @@ module.exports = { if (page) { try { - let serverDataPromise: Promise = Promise.resolve({}) + let serverDataPromise: Promise | Promise = + Promise.resolve({}) + const pageMode = getPageMode(page) - if (page.mode === `SSR`) { + if (pageMode === `SSR`) { const renderer = require(PAGE_RENDERER_PATH) const componentInstance = await renderer.getPageChunk(page) @@ -341,7 +319,7 @@ module.exports = { page, potentialPagePath, componentInstance - ) + ).catch(error => error) } let pageData: IPageDataWithQueryResult @@ -362,11 +340,36 @@ module.exports = { ) } - if (page.mode === `SSR`) { - const { props } = await serverDataPromise - - pageData.result.serverData = props - pageData.path = `/${requestedPagePath}` + if (pageMode === `SSR`) { + try { + const result = await serverDataPromise + + if (result instanceof Error) { + throw result + } + + pageData.result.serverData = result.props + pageData.getServerDataError = null + } catch (error) { + const structuredError = report.panicOnBuild({ + id: `95315`, + context: { + sourceMessage: error.message, + pagePath: requestedPagePath, + potentialPagePath, + }, + error, + }) + // Use page-data.json file instead of emitting via websockets as this makes it easier + // to only display the relevant error + clearing of the error + // The query-result-store reacts to this + pageData.getServerDataError = structuredError + } + pageData.path = page.matchPath ? `/${potentialPagePath}` : page.path + } else { + // When user removes getServerData function, Gatsby browser runtime still has cached version of page-data. + // Send `null` to always reset cached serverData: + pageData.result.serverData = null } res.status(200).send(pageData) @@ -467,6 +470,41 @@ module.exports = { }) }) + app.get(`/__file-code-frame`, async (req, res) => { + const emptyResponse = { + codeFrame: `No codeFrame could be generated`, + sourcePosition: null, + sourceContent: null, + } + + const filePath = req?.query?.filePath + const lineNumber = parseInt(req.query.lineNumber, 10) + const columnNumber = parseInt(req.query.columnNumber, 10) + + if (!filePath) { + res.json(emptyResponse) + return + } + + const sourceContent = await fs.readFile(filePath, `utf-8`) + + const codeFrame = codeFrameColumns( + sourceContent, + { + start: { + line: lineNumber, + column: columnNumber ?? 0, + }, + }, + { + highlightCode: true, + } + ) + res.json({ + codeFrame, + }) + }) + // Expose access to app for advanced use cases const { developMiddleware } = store.getState().config @@ -705,7 +743,7 @@ module.exports = { res.send(e).status(500) } } else { - const potentialPagePath = reverseFixedPagePath(req.path) + const potentialPagePath = reverseFixedPagePath(decodeURI(req.path)) const page = findPageByPath(store.getState(), potentialPagePath, false) // When we can't find a page we send 404 @@ -735,7 +773,6 @@ module.exports = { if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR) { const chokidar = require(`chokidar`) - const { slash } = require(`gatsby-core-utils`) // Register watcher that rebuilds index.html every time html.js changes. const watchGlobs = [`src/html.js`, `plugins/**/gatsby-ssr.js`].map(path => slash(directoryPath(path)) @@ -752,7 +789,6 @@ module.exports = { compiler, listener, webpackActivity, - cancelDevJSNotice, websocketManager, workerPool, webpackWatching: webpackDevMiddlewareInstance.context.watching, diff --git a/packages/gatsby/src/utils/state-machine-logging.ts b/packages/gatsby/src/utils/state-machine-logging.ts index a3a032ebde1d6..fb448d4cdd6ab 100644 --- a/packages/gatsby/src/utils/state-machine-logging.ts +++ b/packages/gatsby/src/utils/state-machine-logging.ts @@ -33,6 +33,7 @@ export function logTransitions( // actor. We don't need to worry about detaching the listener // because xstate handles that for us when the actor is stopped. + // @ts-ignore - TODO: Fix it if (isInterpreter(child) && !listeners.has(child)) { let sublast = child.state child.onTransition(substate => { diff --git a/packages/gatsby/src/utils/validate-engines/child.ts b/packages/gatsby/src/utils/validate-engines/child.ts new file mode 100644 index 0000000000000..5ea3e4f962acc --- /dev/null +++ b/packages/gatsby/src/utils/validate-engines/child.ts @@ -0,0 +1,80 @@ +import mod from "module" +import * as path from "path" + +// @ts-ignore TS doesn't like accessing `_load` +const originalModuleLoad = mod._load + +class EngineValidationError extends Error { + request: string + relativeToRoot: string + parentPath: string + + constructor({ + request, + relativeToRoot, + parent, + }: { + request: string + relativeToRoot: string + parent: mod + }) { + super( + `Generated engines use disallowed import "${request}". Only allowed imports are to Node.js builtin modules or engines internals.` + ) + this.request = request + this.relativeToRoot = relativeToRoot + this.parentPath = parent.filename + } +} + +export async function validate(directory: string): Promise { + // intercept module loading and validate no unexpected imports are happening + // @ts-ignore TS doesn't like accessing `_load` + mod._load = (request: string, parent: mod, isMain: boolean): any => { + // Allow all node builtins + if (mod.builtinModules.includes(request)) { + return originalModuleLoad(request, parent, isMain) + } + + // Allow imports to modules in engines directory. + // For example: importing ".cache/page-ssr/routes/render-page" from + // page-ssr engine should be allowed as it is part of engine. + const allowedPrefixes = [ + path.join(`.cache`, `query-engine`), + path.join(`.cache`, `page-ssr`), + ] + const localRequire = mod.createRequire(parent.filename) + const absPath = localRequire.resolve(request) + const relativeToRoot = path.relative(directory, absPath) + for (const allowedPrefix of allowedPrefixes) { + if (relativeToRoot.startsWith(allowedPrefix)) { + return originalModuleLoad(request, parent, isMain) + } + } + + // We throw on anything that is not allowed + // Runtime might have try/catch for it and continue to work + // (for example`msgpackr` have fallback if native `msgpack-extract` can't be loaded) + // and we don't fail validation in those cases because error we throw will be handled. + // We do want to fail validation if there is no fallback + throw new EngineValidationError({ request, relativeToRoot, parent }) + } + + // workaround for gatsby-worker issue: + // gatsby-worker gets bundled in engines and it will auto-init "child" module + // if GATSBY_WORKER_MODULE_PATH env var is set. To prevent this we just unset + // env var so it's falsy. + process.env.GATSBY_WORKER_MODULE_PATH = `` + + // import engines, initiate them, if there is any error thrown it will be handled in parent process + const { GraphQLEngine } = require(path.join( + directory, + `.cache`, + `query-engine` + )) + require(path.join(directory, `.cache`, `page-ssr`)) + const graphqlEngine = new GraphQLEngine({ + dbPath: path.join(directory, `.cache`, `data`, `datastore`), + }) + await graphqlEngine.ready() +} diff --git a/packages/gatsby/src/utils/validate-engines/index.ts b/packages/gatsby/src/utils/validate-engines/index.ts new file mode 100644 index 0000000000000..29d0833108e2e --- /dev/null +++ b/packages/gatsby/src/utils/validate-engines/index.ts @@ -0,0 +1,14 @@ +import { WorkerPool } from "gatsby-worker" + +export async function validateEngines(directory: string): Promise { + const worker = new WorkerPool( + require.resolve(`./child`), + { numWorkers: 1 } + ) + + try { + await worker.single.validate(directory) + } finally { + worker.end() + } +} diff --git a/packages/gatsby/src/utils/wait-until-jobs-complete.ts b/packages/gatsby/src/utils/wait-until-jobs-complete.ts index 593f271047d1b..c40be438ae91c 100644 --- a/packages/gatsby/src/utils/wait-until-jobs-complete.ts +++ b/packages/gatsby/src/utils/wait-until-jobs-complete.ts @@ -1,9 +1,12 @@ import { emitter, store } from "../redux" -import { waitUntilAllJobsComplete as waitUntilAllJobsV2Complete } from "./jobs/manager" +import { + waitJobs as waitJobsV2, + waitUntilAllJobsComplete as waitUntilAllJobsV2Complete, +} from "./jobs/manager" -export const waitUntilAllJobsComplete = (): Promise => { - const jobsV1Promise = new Promise(resolve => { +async function waitJobsV1(): Promise { + return new Promise(resolve => { const onEndJob = (): void => { if (store.getState().jobs.active.length === 0) { resolve() @@ -14,6 +17,16 @@ export const waitUntilAllJobsComplete = (): Promise => { emitter.on(`END_JOB`, onEndJob) onEndJob() }) +} + +export const waitUntilAllJobsComplete = (): Promise => + Promise.all([waitJobsV1(), waitUntilAllJobsV2Complete()]).then() - return Promise.all([jobsV1Promise, waitUntilAllJobsV2Complete()]).then() +export async function waitJobsByRequest(requestId: string): Promise { + const jobs = store.getState().jobsV2 + const jobDigests = new Set([ + ...(jobs.jobsByRequest.get(requestId) ?? []), + ...(jobs.jobsByRequest.get(``) ?? []), // wait for jobs without requestId just in case + ]) + await Promise.all([waitJobsV1(), waitJobsV2(jobDigests)]) } diff --git a/packages/gatsby/src/utils/webpack-utils.ts b/packages/gatsby/src/utils/webpack-utils.ts index 496766744cd84..db3c0a7c9910b 100644 --- a/packages/gatsby/src/utils/webpack-utils.ts +++ b/packages/gatsby/src/utils/webpack-utils.ts @@ -5,6 +5,7 @@ import { Plugin as PostCSSPlugin } from "postcss" import autoprefixer from "autoprefixer" import flexbugs from "postcss-flexbugs-fixes" import TerserPlugin from "terser-webpack-plugin" +import type { MinifyOptions as TerserOptions } from "terser" import MiniCssExtractPlugin from "mini-css-extract-plugin" import CssMinimizerPlugin from "css-minimizer-webpack-plugin" import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin" @@ -644,7 +645,7 @@ export const createWebpackUtils = ( terserOptions, ...options }: { - terserOptions?: TerserPlugin.TerserPluginOptions + terserOptions?: TerserOptions } = {}): WebpackPluginInstance => new TerserPlugin({ exclude: /\.min\.js/, @@ -654,7 +655,7 @@ export const createWebpackUtils = ( safari10: true, }, parse: { - ecma: 8, + ecma: 5, }, compress: { ecma: 5, @@ -697,7 +698,6 @@ export const createWebpackUtils = ( `moveElemsAttrsToGroup`, `moveGroupAttrsToElems`, `prefixIds`, // Default: disabled - `removeAttrs`, // Default: disabled `removeComments`, `removeDesc`, `removeDoctype`, diff --git a/packages/gatsby/src/utils/webpack.config.js b/packages/gatsby/src/utils/webpack.config.js index be94b9937ffc2..050a6660ebf7f 100644 --- a/packages/gatsby/src/utils/webpack.config.js +++ b/packages/gatsby/src/utils/webpack.config.js @@ -4,8 +4,10 @@ const crypto = require(`crypto`) const fs = require(`fs-extra`) const path = require(`path`) const dotenv = require(`dotenv`) -const { CoreJSResolver } = require(`./webpack/corejs-resolver`) -const { CacheFolderResolver } = require(`./webpack/cache-folder-resolver`) +const { CoreJSResolver } = require(`./webpack/plugins/corejs-resolver`) +const { + CacheFolderResolver, +} = require(`./webpack/plugins/cache-folder-resolver`) const { store } = require(`../redux`) const { actions } = require(`../redux/actions`) const { getPublicPath } = require(`./get-public-path`) @@ -17,8 +19,9 @@ const apiRunnerNode = require(`./api-runner-node`) import { createWebpackUtils } from "./webpack-utils" import { hasLocalEslint } from "./local-eslint-config-finder" import { getAbsolutePathForVirtualModule } from "./gatsby-webpack-virtual-modules" -import { StaticQueryMapper } from "./webpack/static-query-mapper" -import { ForceCssHMRForEdgeCases } from "./webpack/force-css-hmr-for-edge-cases" +import { StaticQueryMapper } from "./webpack/plugins/static-query-mapper" +import { ForceCssHMRForEdgeCases } from "./webpack/plugins/force-css-hmr-for-edge-cases" +import { WebpackLoggingPlugin } from "./webpack/plugins/webpack-logging" import { hasES6ModuleSupport } from "./browserslist" import { builtinModules } from "module" import { shouldGenerateEngines } from "./engines-helpers" @@ -44,10 +47,6 @@ module.exports = async ( const modulesThatUseGatsby = await getGatsbyDependents() const directoryPath = withBasePath(directory) - // we will converge to build-html later on but for now this was the fastest way to get SSR to work - // TODO remove in v4 - we deprecated this in v3 - process.env.GATSBY_BUILD_STAGE = suppliedStage - // We combine develop & develop-html stages for purposes of generating the // webpack config. const stage = suppliedStage @@ -232,7 +231,9 @@ module.exports = async ( plugins.virtualModules(), new BabelConfigItemsCacheInvalidatorPlugin(), - ] + process.env.GATSBY_WEBPACK_LOGGING?.split(`,`)?.includes(stage) && + new WebpackLoggingPlugin(program.directory, report, program.verbose), + ].filter(Boolean) switch (stage) { case `develop`: { @@ -520,6 +521,7 @@ module.exports = async ( } const config = { + name: stage, // Context is the base directory for resolving the entry option. context: directory, entry: getEntry(), diff --git a/packages/gatsby/src/utils/webpack/bundle.ts b/packages/gatsby/src/utils/webpack/bundle.ts new file mode 100644 index 0000000000000..f2259b44106af --- /dev/null +++ b/packages/gatsby/src/utils/webpack/bundle.ts @@ -0,0 +1,60 @@ +import webpack from "webpack" + +export function build(webpackConfig: webpack.Configuration): Promise<{ + stats: webpack.Stats + close: () => Promise +}> { + const compiler = webpack(webpackConfig) + + return new Promise((resolve, reject) => { + compiler.run((err, stats) => { + // stats can only be empty when an error occurs. Adding it to the if makes typescript happy. + if (err || !stats) { + return compiler.close(() => { + reject(err) + }) + } + + if (stats.hasErrors()) { + return compiler.close(() => { + reject(stats.compilation.errors) + }) + } + + return resolve({ + stats, + close: (): Promise => + new Promise((resolve, reject) => + compiler.close(err => (err ? reject(err) : resolve())) + ), + }) + }) + }) +} + +export function watch( + webpackConfig: webpack.Configuration, + onWatch: ( + err: Error | webpack.WebpackError | undefined, + stats: webpack.Stats | undefined + ) => void, + watchOptions: webpack.Watching["watchOptions"] = {} +): { + watcher: webpack.Watching + close: () => Promise +} { + const compiler = webpack(webpackConfig) + + const watcher = compiler.watch(watchOptions, (err, stats) => { + // this runs multiple times + onWatch(err, stats) + }) + + return { + watcher, + close: (): Promise => + new Promise((resolve, reject) => + watcher.close(err => (err ? reject(err) : resolve())) + ), + } +} diff --git a/packages/gatsby/src/utils/webpack/__tests__/corejs-resolver.ts b/packages/gatsby/src/utils/webpack/plugins/__tests__/corejs-resolver.ts similarity index 100% rename from packages/gatsby/src/utils/webpack/__tests__/corejs-resolver.ts rename to packages/gatsby/src/utils/webpack/plugins/__tests__/corejs-resolver.ts diff --git a/packages/gatsby/src/utils/webpack/cache-folder-resolver.ts b/packages/gatsby/src/utils/webpack/plugins/cache-folder-resolver.ts similarity index 100% rename from packages/gatsby/src/utils/webpack/cache-folder-resolver.ts rename to packages/gatsby/src/utils/webpack/plugins/cache-folder-resolver.ts diff --git a/packages/gatsby/src/utils/webpack/corejs-resolver.ts b/packages/gatsby/src/utils/webpack/plugins/corejs-resolver.ts similarity index 100% rename from packages/gatsby/src/utils/webpack/corejs-resolver.ts rename to packages/gatsby/src/utils/webpack/plugins/corejs-resolver.ts diff --git a/packages/gatsby/src/utils/webpack/force-css-hmr-for-edge-cases.ts b/packages/gatsby/src/utils/webpack/plugins/force-css-hmr-for-edge-cases.ts similarity index 100% rename from packages/gatsby/src/utils/webpack/force-css-hmr-for-edge-cases.ts rename to packages/gatsby/src/utils/webpack/plugins/force-css-hmr-for-edge-cases.ts diff --git a/packages/gatsby/src/utils/webpack/static-query-mapper.ts b/packages/gatsby/src/utils/webpack/plugins/static-query-mapper.ts similarity index 98% rename from packages/gatsby/src/utils/webpack/static-query-mapper.ts rename to packages/gatsby/src/utils/webpack/plugins/static-query-mapper.ts index 23898391ad408..2650c927c5317 100644 --- a/packages/gatsby/src/utils/webpack/static-query-mapper.ts +++ b/packages/gatsby/src/utils/webpack/plugins/static-query-mapper.ts @@ -3,13 +3,13 @@ import { Store } from "redux" import { Compiler, Module, NormalModule, Compilation } from "webpack" import ConcatenatedModule from "webpack/lib/optimize/ConcatenatedModule" import { isEqual } from "lodash" -import { +import { generateComponentChunkName } from "../../js-chunk-names" +import { enqueueFlush } from "../../page-data" +import type { IGatsbyState, IGatsbyPageComponent, IGatsbyStaticQueryComponents, -} from "../../redux/types" -import { generateComponentChunkName } from "../js-chunk-names" -import { enqueueFlush } from "../page-data" +} from "../../../redux/types" type ChunkGroup = Compilation["chunkGroups"][0] type EntryPoint = Compilation["asyncEntrypoints"][0] diff --git a/packages/gatsby/src/utils/webpack/plugins/webpack-logging.ts b/packages/gatsby/src/utils/webpack/plugins/webpack-logging.ts new file mode 100644 index 0000000000000..8ecf715cf0c11 --- /dev/null +++ b/packages/gatsby/src/utils/webpack/plugins/webpack-logging.ts @@ -0,0 +1,58 @@ +import { ProgressPlugin } from "webpack" +import resolveFrom from "resolve-from" +import type reporter from "gatsby-cli/lib/reporter" +import type { Compiler } from "webpack" + +type Reporter = typeof reporter + +export class WebpackLoggingPlugin { + private PLUGIN_NAME = `WebpackLogging` + private rootDir: string + private reporter: Reporter + private isVerbose = false + + constructor(rootDir: string, reporter: Reporter, isVerbose = false) { + this.rootDir = rootDir + this.reporter = reporter + this.isVerbose = isVerbose + } + + apply(compiler: Compiler): void { + compiler.options.infrastructureLogging = { + level: `verbose`, + debug: /FileSystemInfo/, + } + compiler.options.profile = true + + new ProgressPlugin({ + profile: true, + }).apply(compiler) + + // if webpack bundle analyzer is installed lets use it + const webpackBundleAnalyzerPath = resolveFrom.silent( + this.rootDir, + `webpack-bundle-analyzer` + ) + if (webpackBundleAnalyzerPath) { + compiler.hooks.beforeRun.tapPromise(this.PLUGIN_NAME, () => + import(webpackBundleAnalyzerPath).then(({ BundleAnalyzerPlugin }) => { + new BundleAnalyzerPlugin({ + analyzerMode: `static`, + openAnalyzer: false, + title: compiler.name, + reportFilename: `report.html`, + }).apply(compiler) + }) + ) + } + + compiler.hooks.done.tap(this.PLUGIN_NAME, stats => { + this.reporter.log( + stats.toString({ + colors: true, + logging: this.isVerbose ? `verbose` : `log`, + }) + ) + }) + } +} diff --git a/packages/gatsby/src/utils/websocket-manager.ts b/packages/gatsby/src/utils/websocket-manager.ts index 6c3c5543022a8..3e5ab2088b80e 100644 --- a/packages/gatsby/src/utils/websocket-manager.ts +++ b/packages/gatsby/src/utils/websocket-manager.ts @@ -11,6 +11,7 @@ import url from "url" import { createHash } from "crypto" import { findPageByPath } from "./find-page-by-path" import { Server as SocketIO, Socket } from "socket.io" +import { getPageMode } from "./page-mode" export interface IPageQueryResult { id: string @@ -89,7 +90,7 @@ export class WebsocketManager { if (page) { // when it's SSR we don't want to return the page path but the actualy url used, // this is necessary when matchPaths are used. - if (page.mode === `SSR`) { + if (getPageMode(page) === `SSR`) { activePagePath = newActivePath } else { activePagePath = page.path @@ -249,6 +250,14 @@ export class WebsocketManager { } return false } + + emitStaleServerData(): boolean { + if (this.websocket) { + this.websocket.send({ type: `staleServerData` }) + return true + } + return false + } } export const websocketManager: WebsocketManager = new WebsocketManager() diff --git a/packages/gatsby/src/utils/worker/__tests__/queries.ts b/packages/gatsby/src/utils/worker/__tests__/queries.ts index 6d33c2eb4541c..961fb82c945cb 100644 --- a/packages/gatsby/src/utils/worker/__tests__/queries.ts +++ b/packages/gatsby/src/utils/worker/__tests__/queries.ts @@ -298,7 +298,7 @@ describeWhenLMDB(`worker (queries)`, () => { const spy = jest.spyOn(worker.single, `runQueries`) // @ts-ignore - worker is defined - await runQueriesInWorkersQueue(worker, queryIdsBig, 10) + await runQueriesInWorkersQueue(worker, queryIdsBig, { chunkSize: 10 }) const stateFromWorker = await worker.single.getState() // Called the complete ABC so we can test _a diff --git a/packages/gatsby/src/utils/worker/__tests__/share-state.ts b/packages/gatsby/src/utils/worker/__tests__/share-state.ts index 2be3661ce3a68..10279d1a02319 100644 --- a/packages/gatsby/src/utils/worker/__tests__/share-state.ts +++ b/packages/gatsby/src/utils/worker/__tests__/share-state.ts @@ -20,6 +20,7 @@ let worker: GatsbyTestWorkerPool | undefined const dummyPagePayload = { path: `/foo/`, component: `/foo`, + componentPath: `/foo`, } describe(`worker (share-state)`, () => { @@ -103,6 +104,7 @@ describe(`worker (share-state)`, () => { "/foo/", }, "query": "", + "serverData": false, }, }, } @@ -123,6 +125,7 @@ describe(`worker (share-state)`, () => { "/foo/", }, "query": "", + "serverData": false, }, }, "staticQueryComponents": Map { @@ -231,6 +234,7 @@ describe(`worker (share-state)`, () => { "isInBootstrap": true, "pages": Object {}, "query": "I'm a page query", + "serverData": false, } `) diff --git a/packages/gatsby/src/utils/worker/child/render-html.ts b/packages/gatsby/src/utils/worker/child/render-html.ts index 439e5e93d2f5b..cfadd3476ea52 100644 --- a/packages/gatsby/src/utils/worker/child/render-html.ts +++ b/packages/gatsby/src/utils/worker/child/render-html.ts @@ -4,6 +4,7 @@ import fs from "fs-extra" import Bluebird from "bluebird" import * as path from "path" import { generateHtmlPath, fixedPagePath } from "gatsby-core-utils" +import { truncate } from "lodash" import { readWebpackStats, @@ -111,6 +112,20 @@ async function getResourcesForTemplate( return resources } +const truncateObjStrings = (obj): IPageDataWithQueryResult => { + // Recursively truncate strings nested in object + // These objs can be quite large, but we want to preserve each field + for (const key in obj) { + if (typeof obj[key] === `object` && obj[key] !== null) { + truncateObjStrings(obj[key]) + } else if (typeof obj[key] === `string`) { + obj[key] = truncate(obj[key], { length: 250 }) + } + } + + return obj +} + export const renderHTMLProd = async ({ htmlComponentRendererPath, paths, @@ -123,8 +138,10 @@ export const renderHTMLProd = async ({ sessionId: number }): Promise => { const publicDir = join(process.cwd(), `public`) + const isPreview = process.env.GATSBY_IS_PREVIEW === `true` const unsafeBuiltinsUsageByPagePath = {} + const previewErrors = {} // Check if we need to do setup and cache clearing. Within same session we can reuse memoized data, // but it's not safe to reuse them in different sessions. Check description of `lastSessionId` for more details @@ -165,7 +182,7 @@ export const renderHTMLProd = async ({ unsafeBuiltinsUsageByPagePath[pagePath] = unsafeBuiltinsUsage } - return fs.outputFile(generateHtmlPath(publicDir, pagePath), html) + await fs.outputFile(generateHtmlPath(publicDir, pagePath), html) } catch (e) { if (e.unsafeBuiltinsUsage && e.unsafeBuiltinsUsage.length > 0) { unsafeBuiltinsUsageByPagePath[pagePath] = e.unsafeBuiltinsUsage @@ -175,13 +192,38 @@ export const renderHTMLProd = async ({ path: pagePath, unsafeBuiltinsUsageByPagePath, } - throw e + + // If we're in Preview-mode, write out a simple error html file. + if (isPreview) { + const pageData = await readPageData(publicDir, pagePath) + const truncatedPageData = truncateObjStrings(pageData) + + const html = `

    Preview build error

    +

    There was an error when building the preview page for this page ("${pagePath}").

    +

    Error

    +
    ${e.stack}
    +

    Page component id

    +

    ${pageData.componentChunkName}

    +

    Page data

    +
    ${JSON.stringify(truncatedPageData, null, 4)}
    ` + + await fs.outputFile(generateHtmlPath(publicDir, pagePath), html) + previewErrors[pagePath] = { + e, + message: e.message, + code: e.code, + stack: e.stack, + name: e.name, + } + } else { + throw e + } } }, { concurrency: 2 } ) - return { unsafeBuiltinsUsageByPagePath } + return { unsafeBuiltinsUsageByPagePath, previewErrors } } // TODO: remove when DEV_SSR is done diff --git a/packages/gatsby/src/utils/worker/child/schema.ts b/packages/gatsby/src/utils/worker/child/schema.ts index 57e5921e94d4d..0f4dea90220c9 100644 --- a/packages/gatsby/src/utils/worker/child/schema.ts +++ b/packages/gatsby/src/utils/worker/child/schema.ts @@ -22,5 +22,5 @@ export async function buildSchema(): Promise { await apiRunnerNode(`createSchemaCustomization`) // build() runs other lifecycles like "createResolvers" or "setFieldsOnGraphQLNodeType" internally - await build({ fullMetadataBuild: false, freeze: true, parentSpan: {} }) + await build({ fullMetadataBuild: false, parentSpan: {} }) } diff --git a/packages/gatsby/src/utils/worker/pool.ts b/packages/gatsby/src/utils/worker/pool.ts index af78be727adf8..5fdc6340d72fb 100644 --- a/packages/gatsby/src/utils/worker/pool.ts +++ b/packages/gatsby/src/utils/worker/pool.ts @@ -2,6 +2,7 @@ import { WorkerPool } from "gatsby-worker" import { chunk } from "lodash" import reporter from "gatsby-cli/lib/reporter" import { cpuCoreCount } from "gatsby-core-utils" +import { Span } from "opentracing" import { IGroupedQueryIds } from "../../services" import { initJobsMessagingInMainProcess } from "../jobs/worker-messaging" @@ -46,16 +47,27 @@ function handleRunQueriesInWorkersQueueError(e: Error): never { export async function runQueriesInWorkersQueue( pool: GatsbyWorkerPool, queryIds: IGroupedQueryIds, - chunkSize = queriesChunkSize + opts?: { + chunkSize?: number + parentSpan?: Span + } ): Promise { const activity = reporter.createProgress( `run queries in workers`, - queryIds.staticQueryIds.length + queryIds.pageQueryIds.length + queryIds.staticQueryIds.length + queryIds.pageQueryIds.length, + 0, + { parentSpan: opts?.parentSpan } ) activity.start() try { - const staticQuerySegments = chunk(queryIds.staticQueryIds, chunkSize) - const pageQuerySegments = chunk(queryIds.pageQueryIds, chunkSize) + const staticQuerySegments = chunk( + queryIds.staticQueryIds, + opts?.chunkSize ?? queriesChunkSize + ) + const pageQuerySegments = chunk( + queryIds.pageQueryIds, + opts?.chunkSize ?? queriesChunkSize + ) pool.all.setComponents() @@ -90,8 +102,11 @@ export async function runQueriesInWorkersQueue( } } -export async function mergeWorkerState(pool: GatsbyWorkerPool): Promise { - const activity = reporter.activityTimer(`Merge worker state`) +export async function mergeWorkerState( + pool: GatsbyWorkerPool, + parentSpan?: Span +): Promise { + const activity = reporter.activityTimer(`Merge worker state`, { parentSpan }) activity.start() for (const { workerId } of pool.getWorkerInfo()) { diff --git a/renovate.json5 b/renovate.json5 index c5b4c9976021c..4ecb6f82178fb 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -40,6 +40,7 @@ "schedule": [ "before 7am on the first day of the month" ], + "updateNotScheduled": false, "packageRules": [ { "matchDepTypes": [ @@ -1405,250 +1406,6 @@ "commitMessageSuffix": "{{#unless groupName}} for create-gatsby{{/unless}}", "dependencyDashboardApproval": true }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "devDependencies" - ], - "matchUpdateTypes": [ - "patch", - "minor" - ], - "groupName": "[DEV] minor and patch dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-dev-minor", - "automerge": true, - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "devDependencies" - ], - "matchUpdateTypes": [ - "major" - ], - "groupName": "[DEV] major dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-dev-major", - "automerge": true, - "dependencyDashboardApproval": false, - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "matchUpdateTypes": [ - "patch", - "minor" - ], - "groupName": "minor and patch dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-prod-minor", - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "matchUpdateTypes": [ - "major" - ], - "groupName": "major dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-prod-major", - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}", - "dependencyDashboardApproval": true - }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "groupName": "minor and patch dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-prod-minor", - "matchPackageNames": [], - "matchUpdateTypes": [ - "patch" - ], - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-admin/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "groupName": "major dependencies for gatsby-admin", - "groupSlug": "gatsby-admin-prod-major", - "matchPackageNames": [], - "matchUpdateTypes": [ - "major", - "minor" - ], - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-admin{{/unless}}", - "dependencyDashboardApproval": true - }, { "matchPaths": [ "packages/gatsby-cli/package.json" @@ -9989,254 +9746,6 @@ "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify-cms{{/unless}}", "dependencyDashboardApproval": true }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "devDependencies" - ], - "matchUpdateTypes": [ - "patch", - "minor" - ], - "groupName": "[DEV] minor and patch dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-dev-minor", - "automerge": true, - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "devDependencies" - ], - "matchUpdateTypes": [ - "major" - ], - "groupName": "[DEV] major dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-dev-major", - "automerge": true, - "dependencyDashboardApproval": false, - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "matchUpdateTypes": [ - "patch", - "minor" - ], - "groupName": "minor and patch dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-prod-minor", - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "matchUpdateTypes": [ - "major" - ], - "groupName": "major dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-prod-major", - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}", - "dependencyDashboardApproval": true - }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "groupName": "minor and patch dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-prod-minor", - "matchPackageNames": [ - "kebab-hash" - ], - "matchUpdateTypes": [ - "patch" - ], - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}" - }, - { - "matchPaths": [ - "packages/gatsby-plugin-netlify/package.json" - ], - "matchDepTypes": [ - "dependencies" - ], - "groupName": "major dependencies for gatsby-plugin-netlify", - "groupSlug": "gatsby-plugin-netlify-prod-major", - "matchPackageNames": [ - "kebab-hash" - ], - "matchUpdateTypes": [ - "major", - "minor" - ], - "excludePackageNames": [ - "eslint", - "prettier", - "cross-env", - "execa", - "mini-css-extract-plugin", - "sharp", - "@types/sharp", - "typescript", - "chalk", - "fs-extra", - "@types/fs-extra", - "cheerio", - "semver", - "@types/semver", - "core-js", - "core-js-compat", - "chokidar" - ], - "excludePackagePatterns": [ - "^@babel", - "^eslint-", - "^@typescript-eslint/", - "^@testing-library/" - ], - "commitMessageSuffix": "{{#unless groupName}} for gatsby-plugin-netlify{{/unless}}", - "dependencyDashboardApproval": true - }, { "matchPaths": [ "packages/gatsby-plugin-no-sourcemaps/package.json" @@ -19718,7 +19227,9 @@ ], "groupName": "minor and patch dependencies for gatsby-source-drupal", "groupSlug": "gatsby-source-drupal-prod-minor", - "matchPackageNames": [], + "matchPackageNames": [ + "opentracing" + ], "matchUpdateTypes": [ "patch" ], @@ -19758,7 +19269,9 @@ ], "groupName": "major dependencies for gatsby-source-drupal", "groupSlug": "gatsby-source-drupal-prod-major", - "matchPackageNames": [], + "matchPackageNames": [ + "opentracing" + ], "matchUpdateTypes": [ "major", "minor" @@ -22423,7 +21936,8 @@ "matchPackageNames": [ "axios", "cache-manager-fs-hash", - "replaceall" + "replaceall", + "sharp" ], "matchUpdateTypes": [ "patch" @@ -22467,7 +21981,8 @@ "matchPackageNames": [ "axios", "cache-manager-fs-hash", - "replaceall" + "replaceall", + "sharp" ], "matchUpdateTypes": [ "major", diff --git a/scripts/renovate-config-generator.js b/scripts/renovate-config-generator.js index 2a585815c404c..aa18bdf898b02 100644 --- a/scripts/renovate-config-generator.js +++ b/scripts/renovate-config-generator.js @@ -343,6 +343,7 @@ const renovateConfig = { postUpdateOptions: [`yarnDedupeHighest`], timezone: `GMT`, schedule: [`before 7am on the first day of the month`], + updateNotScheduled: false, packageRules: defaultPackageRules.concat( Array.from(packageRules.values()).flat() ), diff --git a/starters/blog/package-lock.json b/starters/blog/package-lock.json index b8a52eafc3cd0..edea195d92f9d 100644 --- a/starters/blog/package-lock.json +++ b/starters/blog/package-lock.json @@ -20,9 +20,9 @@ } }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -33,19 +33,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -54,90 +54,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -159,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -176,11 +92,11 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -198,17 +114,6 @@ "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -218,17 +123,6 @@ "requires": { "@babel/helper-explode-assignable-expression": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-compilation-targets": { @@ -260,58 +154,6 @@ "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-create-regexp-features-plugin": { @@ -359,43 +201,32 @@ "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-member-expression-to-functions": { @@ -404,17 +235,6 @@ "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-module-imports": { @@ -423,131 +243,21 @@ "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -556,17 +266,6 @@ "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-plugin-utils": { @@ -582,17 +281,6 @@ "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-wrap-function": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-replace-supers": { @@ -604,105 +292,6 @@ "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/helper-simple-access": { @@ -711,17 +300,6 @@ "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -730,31 +308,20 @@ "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -770,105 +337,6 @@ "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/helpers": { @@ -879,105 +347,6 @@ "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/highlight": { @@ -1003,9 +372,9 @@ } }, "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -1018,9 +387,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -1334,58 +703,6 @@ "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/plugin-transform-computed-properties": { @@ -1494,25 +811,6 @@ "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-identifier": "^7.14.9", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/plugin-transform-modules-umd": { @@ -1619,14 +917,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1647,12 +945,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -1680,9 +978,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1707,16 +1005,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -1771,7 +1069,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -1780,21 +1078,12 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" }, "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -1838,9 +1127,9 @@ } }, "@babel/runtime": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", - "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -1855,32 +1144,32 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1896,9 +1185,9 @@ } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "requires": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" @@ -1983,11 +1272,11 @@ }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2049,14 +1338,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -2109,6 +1407,14 @@ "slash": "^3.0.0" } }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2737,9 +2043,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" } } }, @@ -2754,9 +2060,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sindresorhus/slugify": { "version": "1.1.2", @@ -2791,11 +2097,11 @@ } }, "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { - "defer-to-connect": "^1.0.1" + "defer-to-connect": "^2.0.0" } }, "@tokenizer/token": { @@ -2863,9 +2169,9 @@ "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -2958,17 +2264,17 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/keyv": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", - "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "requires": { "@types/node": "*" } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/mdast": { "version": "3.0.10", @@ -2992,9 +2298,9 @@ } }, "@types/node": { - "version": "16.4.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.12.tgz", - "integrity": "sha512-zxrTNFl9Z8boMJXs6ieqZP0wAhvkdzmHSxTlJabM16cf5G9xBc1uPRH5Bbv2omEDDiM8MzTfqTJXBf0Ba4xFWA==" + "version": "16.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.4.tgz", + "integrity": "sha512-EITwVTX5B4nDjXjGeQAfXOrm+Jn+qNjDmyDRtWoD+wZsl/RDPRTFRKivs4Mt74iOFlLOrE5+Kf+p5yjyhm3+cA==" }, "@types/node-fetch": { "version": "2.5.12", @@ -3046,9 +2352,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3114,14 +2420,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3138,26 +2445,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3172,26 +2479,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3210,14 +2517,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3382,9 +2694,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -3432,33 +2744,11 @@ "integrity": "sha512-4T2MOoBvX1Gjroo1esGpMmNNIsH+vEw0zQEcskj1bt6Ydhp59qRL9GAThdMPYgEwnIyTNqT9LkCTPSEM/J/blQ==" }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + "string-width": "^4.1.0" } }, "ansi-colors": { @@ -3477,9 +2767,9 @@ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -3524,14 +2814,19 @@ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3599,15 +2894,15 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" } }, "array-iterate": { @@ -3626,24 +2921,23 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" } }, "arrify": { @@ -3705,26 +2999,21 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" } }, @@ -3823,12 +3112,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -3840,9 +3129,13 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", @@ -3864,25 +3157,25 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" } }, "babel-runtime": { @@ -4164,15 +3457,15 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "buffer": { @@ -4203,11 +3496,6 @@ "readable-stream": "1.1.x" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -4274,61 +3562,22 @@ } }, "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - }, - "dependencies": { - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "requires": { - "json-buffer": "3.0.1" - } - } - } + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", + "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - } + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "call-bind": { @@ -4378,9 +3627,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "ccount": { "version": "1.1.0", @@ -4643,11 +3892,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -4768,9 +4017,9 @@ } }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.4.0", @@ -4873,6 +4122,11 @@ "typedarray": "^0.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4934,13 +4188,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -4954,12 +4208,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -5002,16 +4258,16 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.3.tgz", - "integrity": "sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -5023,9 +4279,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.3", @@ -5062,9 +4318,12 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + } }, "create-require": { "version": "1.1.1", @@ -5233,9 +4492,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "css.escape": { "version": "1.5.1", @@ -5337,9 +4596,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -5360,11 +4619,18 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "deep-extend": { @@ -5383,9 +4649,9 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", @@ -5592,11 +4858,6 @@ "streamsearch": "0.1.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -5716,9 +4977,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "emoji-regex": { "version": "8.0.0", @@ -5803,9 +5064,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5858,21 +5119,24 @@ } }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -5882,9 +5146,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -6088,11 +5352,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "which": { @@ -6123,11 +5387,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -6205,23 +5470,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -6239,56 +5502,13 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "esutils": "^2.0.2" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -6318,22 +5538,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -6358,6 +5579,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -6540,6 +5766,11 @@ "which": "^2.0.1" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -6741,9 +5972,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -7239,39 +6470,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -7283,13 +6481,13 @@ "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs-monkey": { @@ -7319,17 +6517,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -7337,6 +6536,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -7345,36 +6545,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -7386,20 +6587,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -7441,7 +6642,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -7471,11 +6672,12 @@ }, "dependencies": { "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -7483,14 +6685,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -7503,7 +6705,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -7514,55 +6716,40 @@ "yoga-layout-prebuilt": "^1.9.6", "yurnalist": "^2.1.0" } - }, - "hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "requires": { - "lru-cache": "^6.0.0" - } } } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } + "@babel/runtime": "^7.15.4" } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { @@ -7583,263 +6770,156 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" } }, "gatsby-plugin-feed": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-3.13.0.tgz", - "integrity": "sha512-wdYh+KUKo8/7j0dBFesWYv7OM/s/0PotwgwfU1NKrTs2lTYxNE5nhgV2zp3hgUt+8Ea5voOD+Kv3zkh1ofvAFA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-3.14.0.tgz", + "integrity": "sha512-d9fkaDyPN9ol6qL8WhojFm2p4VOn+tbz1EnTMr4nhDsn3l3Fyv6XV6xUsqeCclHwIwcK4Nj3mB07l6tDaBl9uQ==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@hapi/joi": "^15.1.1", "common-tags": "^1.8.0", - "fs-extra": "^9.1.0", - "gatsby-plugin-utils": "^1.13.0", + "fs-extra": "^10.0.0", + "gatsby-plugin-utils": "^1.14.0", "lodash.merge": "^4.6.2", "rss": "^1.2.2" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "gatsby-plugin-google-analytics": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-3.13.0.tgz", - "integrity": "sha512-uABleg0WAgS20V3Budmx8P0KeXUimDSabGq9no9FgMR0ifFV8InxH39NAB+Rq47LpZRlIkQeorzJKAh6es9/rw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-3.14.0.tgz", + "integrity": "sha512-yfSBRrGZZWruKDQMAJOHp7S1nUBQewT9MuvqegCqFsHhxUtm6PZ5JFv3k8385DfQ/+ux9MmzpY20vQ0E5/30fA==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "minimatch": "3.0.4", "web-vitals": "^1.1.2" } }, "gatsby-plugin-image": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.13.0.tgz", - "integrity": "sha512-ZJcModngwC+2r/mQRz03kWpEpeA4OfgJeyCKC3wBjx3dr8n5fpYRmhnX21U6Wh9QyjdVh0sHykmYEgs2vrPa1A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.14.1.tgz", + "integrity": "sha512-3ZiCFyIVjWxlpral04HlFZbeWC4Eoo7DYGA/Eh3qNMZ3tPKxySk4xXUdrnhIt967KBGATFuuYnPR9kKEHatCuQ==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/parser": "^7.14.9", - "@babel/traverse": "^7.14.9", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "babel-jsx-utils": "^1.1.0", - "babel-plugin-remove-graphql-queries": "^3.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", "camelcase": "^5.3.1", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "objectFitPolyfill": "^2.3.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "objectFitPolyfill": "^2.3.5", "prop-types": "^15.7.2" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-manifest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.13.0.tgz", - "integrity": "sha512-izBaVUUnOId7IlX7nDjgnFqxx2insGbm4r+CwlmyjF5slETdvxifERPX8ng+WAscbh3qvJ/vlgLlbbjjfvJe9w==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.14.0.tgz", + "integrity": "sha512-l++KGG/3/8iwUExJ8oXUHF5ra7P//xQkkhoDybUu3N7+9jpp9S2j4NWqJvgpMhRbh09zcUfuw7usII0sJO24lA==", "requires": { - "@babel/runtime": "^7.14.8", - "gatsby-core-utils": "^2.13.0", - "gatsby-plugin-utils": "^1.13.0", + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0", + "gatsby-plugin-utils": "^1.14.0", "semver": "^7.3.5", "sharp": "^0.29.0" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-offline": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-4.13.0.tgz", - "integrity": "sha512-43EMQAOhhtwPF8zrXry9fF9ugjeehC56RaDj+9BDUApd/CvOHTqMY+8nqtwu1CfpemIPGVFZG8xVkAawLX4LxA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-4.14.0.tgz", + "integrity": "sha512-ac6Jl/xvQq0v+PF1ip3aUBdnarxLyfDenK//frxY00gcAv2QjaEG8H8SMLbbgdPWqSnpzfrc+U2rE9CvJpwO1A==", "requires": { - "@babel/runtime": "^7.14.8", - "cheerio": "^1.0.0-rc.9", - "gatsby-core-utils": "^2.13.0", + "@babel/runtime": "^7.15.4", + "cheerio": "^1.0.0-rc.10", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", "workbox-build": "^4.3.1" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" } }, "gatsby-plugin-react-helmet": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.13.0.tgz", - "integrity": "sha512-GwIqbhFtPDryftM6NEWdjgWNDpWhyifgshDxtIh8PMSEIs7VMg2tgLQf8W8EpSP7yXu3aKDm/pxFXRlPZPk9cA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.14.0.tgz", + "integrity": "sha512-IpLC0mWRNP+E0ezDBXHciVATW+mv2MCvCP3lEYtFQ8mfcm3K//MpeynouNQSPCXn9cH7fr5w0Y355Wl5w1kw1A==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" } }, "gatsby-plugin-sharp": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.13.0.tgz", - "integrity": "sha512-3ifLeUrTUqyaNh4QY6CvKVeggL6GYlcxCjx/JO0R+We1iT6ogKSssQno0cltHnmwsfki+DH2lyV9l7uCNvBVIQ==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.14.1.tgz", + "integrity": "sha512-eLRoxLTrn5QCerIl/zaUTzJCBfPaaOZdVPhO6QUOd1o2qni6AR9QkeAw3He2e/1mnkB9wWGwJUdPiCfvUSE/pQ==", "requires": { - "@babel/runtime": "^7.14.8", - "async": "^3.2.0", + "@babel/runtime": "^7.15.4", + "async": "^3.2.1", "bluebird": "^3.7.2", "filenamify": "^4.3.0", - "fs-extra": "^9.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", - "got": "^10.7.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", + "got": "^11.8.2", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.3.3", "potrace": "^2.1.8", "probe-image-size": "^6.0.0", "progress": "^2.0.3", - "semver": "^7.3.4", + "semver": "^7.3.5", "sharp": "^0.29.0", "svgo": "1.3.2", "uuid": "3.4.0" }, "dependencies": { - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@turist/time": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", - "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" - }, "async": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==" }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -7875,19 +6955,6 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" }, - "decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -7918,170 +6985,11 @@ "domelementtype": "1" } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", - "requires": { - "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", - "@turist/fetch": "^7.1.7", - "@turist/time": "^0.0.2", - "async-retry-ng": "^2.0.1", - "boxen": "^4.2.0", - "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "git-up": "^4.0.5", - "is-docker": "^2.2.1", - "lodash": "^4.17.21", - "node-fetch": "^2.6.1", - "uuid": "3.4.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "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" - } - }, - "got": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", - "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "requires": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -8090,19 +6998,6 @@ "boolbase": "~1.0.0" } }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "requires": { - "lowercase-keys": "^2.0.0" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -8127,73 +7022,60 @@ "unquote": "~1.1.1", "util.promisify": "~1.0.0" } - }, - "to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==" - }, - "type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -8202,9 +7084,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -8227,7 +7109,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -8249,23 +7131,23 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "gatsby-remark-copy-linked-files": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-4.10.0.tgz", - "integrity": "sha512-NaMMExnjnebrRty9poDXu57cdxU13GMoR2OAASriFzw9xJuvqJug+kyUdBxuZ71AQ+LOnyXNJjFGXiz4RVwCQQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-4.11.0.tgz", + "integrity": "sha512-24VI4ZM7767b+2x/J5Ww7yzeTJhVtGCJOQGjH2NZgEAw4ryBoZLJ2WwHiVwBD03+JSMPKGutQxus95jkLmMD4w==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "fs-extra": "^8.1.0", + "fs-extra": "^10.0.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "path-is-inside": "^1.0.2", @@ -8274,14 +7156,14 @@ } }, "gatsby-remark-images": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-5.10.0.tgz", - "integrity": "sha512-p5mQ1R6tEeRqYEnyhVLwNe626tIjvijkb4N/LHwRIX+sC3c1WISZrHmGj7IedCV3z5Gezmgs1ST6mQAdATwzwA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-5.11.0.tgz", + "integrity": "sha512-KP5dWp8AQ6wwhFN4+IIKvxAm2BsL6HyvLU9w61HxvDtYrT7aRRAHj2YFPaPrgeJQ5ncAzwn+knB5Ofy4a/wx0g==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "mdast-util-definitions": "^4.0.0", @@ -8289,41 +7171,24 @@ "query-string": "^6.13.3", "unist-util-select": "^3.0.4", "unist-util-visit-parents": "^3.1.1" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-remark-prismjs": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-prismjs/-/gatsby-remark-prismjs-5.10.0.tgz", - "integrity": "sha512-t6C7mKDUb8Wm7NSctyYkZ7cKZ8o0pWna5xPsd6z4TApo/kTrSrvllqfMPLOdWJCRDd3mJ4maxAzvPs/C/mVGTg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-prismjs/-/gatsby-remark-prismjs-5.11.0.tgz", + "integrity": "sha512-WrS074GqW0st5chlYxTrFxLZLjAubWvNdw23DYW8qcaAfnH527hmgEDQgynjVnkSxhxbhnhTqT5MYWBdTBLk5A==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "parse-numeric-range": "^1.2.0", "unist-util-visit": "^2.0.3" } }, "gatsby-remark-responsive-iframe": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-responsive-iframe/-/gatsby-remark-responsive-iframe-4.10.0.tgz", - "integrity": "sha512-Z8VD88n2U+G9hNXkP+fJu9rd778bHEN0UfPjamtEaNQ01jrO9BxJW/J7bJd/9fJXuANRKJd0qQn1Y9RMZJDQ3A==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-responsive-iframe/-/gatsby-remark-responsive-iframe-4.11.0.tgz", + "integrity": "sha512-b4Nl9wOzRIjxRUHSkwKDczsKvSF5l8FcUf37Mbnecx+eTzfvQtMccIG87C488C5FTBsOh44jjokhR9QwqnWkww==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", "common-tags": "^1.8.0", "lodash": "^4.17.21", @@ -8331,27 +7196,27 @@ } }, "gatsby-remark-smartypants": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-smartypants/-/gatsby-remark-smartypants-4.10.0.tgz", - "integrity": "sha512-RglCG5oaGrLksmBXaX3ORAU4aMPPCww5yGJE4WWNh2wMFjFySQ6D6PR1VdLiWA7gIWFjRqR3DXWkNOOi1I7Sbw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-smartypants/-/gatsby-remark-smartypants-4.11.0.tgz", + "integrity": "sha512-ImGPDP9Nm4DadBTCDmuHGg8zOY9D2B54ddWfLOqo9sA/zdXIlMnkmNGMuavddfJIqHZRo9WaqdBBaLvqlok6BA==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "retext": "^7.0.1", "retext-smartypants": "^4.0.0", "unist-util-visit": "^2.0.3" } }, "gatsby-source-filesystem": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.13.0.tgz", - "integrity": "sha512-SR0OFKunE4OtsZ0E7kpX6kipQcbrw3jTfROuhqD6EJPM5hkTxeEI/6I2r/bUo4ZS1rpwrEYd3UF89Q0YdAhLqQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.14.0.tgz", + "integrity": "sha512-Gg5GGxiWXhjapWMYdXOGk7zp+ajYowS+xNmaDUkL1gH+IQLvE18XbvKh00B/HiFaHm4azJfS2QRrRI/mPTZX+w==", "requires": { - "@babel/runtime": "^7.14.8", - "better-queue": "^3.8.10", - "chokidar": "^3.4.3", - "file-type": "^16.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "@babel/runtime": "^7.15.4", + "chokidar": "^3.5.2", + "fastq": "^1.11.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "got": "^9.6.0", "md5-file": "^5.0.0", "mime": "^2.5.2", @@ -8361,21 +7226,61 @@ "xstate": "^4.14.0" }, "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -8401,23 +7306,59 @@ "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } } } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -8426,12 +7367,12 @@ } }, "gatsby-transformer-remark": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-remark/-/gatsby-transformer-remark-4.10.0.tgz", - "integrity": "sha512-laIDi9fY4PntsD+4uhpL+BmXA7Kf8u82ubuzyt7J8kQT6VATXx9Tks84dVzSvtvDaN/bhNk+CdLAo+brJ49oFg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-remark/-/gatsby-transformer-remark-4.11.0.tgz", + "integrity": "sha512-K00qbvSVq5puyDmZZp+WOU8CmBJRpjmJt1t8yl30My66PiDT8u242xVYUE0qdsKEr2gz5npE0w4nj/5Hgtfw7Q==", "requires": { - "@babel/runtime": "^7.14.8", - "gatsby-core-utils": "^2.13.0", + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0", "gray-matter": "^4.0.2", "hast-util-raw": "^6.0.2", "hast-util-to-html": "^7.1.2", @@ -8454,21 +7395,6 @@ "unist-util-visit": "^2.0.3" }, "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - }, "remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", @@ -8501,53 +7427,27 @@ } }, "gatsby-transformer-sharp": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.13.0.tgz", - "integrity": "sha512-h98RamqeT+vwPkcacByH1+5mwXhq0zjalt8sOtdOO7YmyluwzmARAUs55S2f9RldlfeG7zeLH1/ehAaxjRCi+Q==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.14.0.tgz", + "integrity": "sha512-p0bBu4Sheo4MrrrTRXEu+jcOvsvKmzr1Wc/CQ9VD1U7vTPj74a8JiMJ9GrXrkei5qcXXeXACjBTu5F0Hyg6qMQ==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", "common-tags": "^1.8.0", - "fs-extra": "^9.1.0", + "fs-extra": "^10.0.0", "potrace": "^2.1.8", "probe-image-size": "^6.0.0", "semver": "^7.3.5", "sharp": "^0.29.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" } }, "gauge": { @@ -8634,9 +7534,21 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "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" + } + }, + "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==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } }, "get-value": { "version": "2.0.6", @@ -8672,9 +7584,9 @@ "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8758,114 +7670,32 @@ } }, "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" - }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - } + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -8960,13 +7790,6 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "has": { @@ -8992,24 +7815,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", @@ -9219,9 +8029,12 @@ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "html-entities": { "version": "2.3.2", @@ -9285,6 +8098,15 @@ } } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -9420,11 +8242,11 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -9444,15 +8266,6 @@ "side-channel": "^1.0.4" } }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -9562,9 +8375,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } @@ -9648,9 +8461,9 @@ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -9720,11 +8533,6 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -9788,16 +8596,16 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", @@ -9853,6 +8661,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -9882,9 +8698,9 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", @@ -9901,15 +8717,6 @@ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, "iterall": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", @@ -10026,9 +8833,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", @@ -10065,9 +8872,9 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-loader": { "version": "0.5.7", @@ -10103,28 +8910,29 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "kind-of": { @@ -10204,28 +9012,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -10319,6 +9105,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -10400,9 +9191,9 @@ } }, "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", @@ -10726,9 +9517,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -10944,16 +9735,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -11096,10 +9887,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -11138,9 +9934,9 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "needle": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.0.tgz", - "integrity": "sha512-UBLC4P8w9to3rAhWOQYXIXzTUio9yVnDzIeKxfGbF+Hngy+2bXTqqFK+6nF42EAQKfJdezXK6vzMsefUa1Y3ag==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -11204,9 +10000,9 @@ } }, "node-addon-api": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.1.0.tgz", - "integrity": "sha512-Zz1o1BDX2VtduiAt6kgiUl8jX1Vm3NMboljFYKQJ6ee8AGfiTvM2mlZFI3xPbqjs80rCQgiVJI/DjQ/1QJ0HwA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz", + "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==" }, "node-eta": { "version": "0.9.0", @@ -11219,32 +10015,14 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-object-hash": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.8.tgz", - "integrity": "sha512-hg/4TUqBOFdEhKjLF4jnn64utX3OWPVPWunVaDsaKxY+TVoViOFyW4lu34DES8yAqAqULSFm2jFL9SqVGes0Zg==" + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-path": { "version": "3.0.0", @@ -11293,9 +10071,9 @@ } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "requires": { "boolbase": "^1.0.0" } @@ -11409,34 +10187,42 @@ } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.19.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -11448,13 +10234,13 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "objectFitPolyfill": { @@ -11529,43 +10315,20 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "requires": { - "p-timeout": "^3.1.0" - }, - "dependencies": { - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -11590,13 +10353,10 @@ "aggregate-error": "^3.0.0" } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" }, "p-try": { "version": "2.2.0", @@ -11614,6 +10374,61 @@ "semver": "^6.2.0" }, "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -11640,6 +10455,42 @@ "url-parse-lax": "^3.0.0" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -11879,15 +10730,20 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pixelmatch": { "version": "4.0.2", @@ -11906,51 +10762,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -11974,12 +10817,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -12409,9 +11252,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -12517,6 +11360,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -12726,56 +11574,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -12875,80 +11683,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -13412,6 +12146,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -13431,11 +12170,11 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "^2.0.0" } }, "restore-cursor": { @@ -13589,26 +12328,6 @@ "postcss": "^7.0.27" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "domhandler": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", @@ -13629,27 +12348,18 @@ } }, "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -13830,13 +12540,13 @@ "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==" }, "sharp": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.29.0.tgz", - "integrity": "sha512-mdN1Up0eN+SwyForPls59dWO0nx64J1XRQYy5ZiKSADAccGYCB10UAGJHSVG9VObzJdhHqrVJzQcq6gx8USyoA==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.29.1.tgz", + "integrity": "sha512-DpgdAny9TuS+oWCQ7MRS8XyY9x6q1+yW3a5wNx0J3HrGuB/Jot/8WcT+lElHY9iJu2pwtegSGxqMaqFiMhs4rQ==", "requires": { "color": "^4.0.1", "detect-libc": "^1.0.3", - "node-addon-api": "^4.0.0", + "node-addon-api": "^4.1.0", "prebuild-install": "^6.1.4", "semver": "^7.3.5", "simple-get": "^3.1.0", @@ -13873,9 +12583,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "simple-concat": { "version": "1.0.1", @@ -13974,9 +12684,9 @@ } }, "slugify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.0.tgz", - "integrity": "sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.1.tgz", + "integrity": "sha512-5ofqMTbetNhxlzjYYLBaZFQd6oiTuSkQlyfPEFIMwgUABlZQ0hbk5xIV9Ydd5jghWeRoO7GkiJliUvTpLOjNRA==" }, "snapdragon": { "version": "0.8.2", @@ -14115,9 +12825,9 @@ }, "dependencies": { "@types/node": { - "version": "14.17.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.16.tgz", - "integrity": "sha512-WiFf2izl01P1CpeY8WqFAeKWwByMueBEkND38EcN8N68qb0aDG3oIS1P5MhAX5kUdr469qRyqsY/MjanLjsFbQ==" + "version": "14.17.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.22.tgz", + "integrity": "sha512-6Mgu9YWd8j0dk9M8V9+5w6ktqIFCcn/fFXAVIDFk/niAOFiOiz4GeFAMWYAQjKrcsASbFqMkqR8/Y2wuVCAkNg==" }, "debug": { "version": "4.3.2", @@ -14178,21 +12888,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -14246,34 +12941,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -14405,33 +13072,33 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -14647,16 +13314,16 @@ } }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } }, @@ -14675,16 +13342,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -14704,11 +13371,11 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -14747,9 +13414,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -14782,9 +13449,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -14842,11 +13509,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -15266,9 +13928,9 @@ } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unixify": { "version": "1.0.0", @@ -15331,6 +13993,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -15356,9 +14023,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -15430,11 +14097,6 @@ "prepend-http": "^2.0.0" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -15489,15 +14151,6 @@ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "value-or-promise": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", @@ -15558,9 +14211,9 @@ "integrity": "sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig==" }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -15571,8 +14224,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -15813,6 +14466,19 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } }, @@ -15949,11 +14615,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -16025,9 +14691,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -16041,9 +14707,9 @@ } }, "xstate": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.23.3.tgz", - "integrity": "sha512-Djw9CJ5gpivFe6wGNsSFs8Ya5awG2hxbDHxBjqQrysl3LiOr+uULExs11eqTi8IIw9WWE2lbiJMbWRONCvj1Yg==" + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.25.0.tgz", + "integrity": "sha512-qP7lc/ypOuuWME4ArOBnzaCa90TfHkjiqYDmxpiCjPy6FcXstInA2vH6qRVAHbPXRK4KQIYfIEOk1X38P+TldQ==" }, "xtend": { "version": "4.0.2", diff --git a/starters/blog/package.json b/starters/blog/package.json index e04a6a659e1d9..1fad3b1d79bbe 100644 --- a/starters/blog/package.json +++ b/starters/blog/package.json @@ -8,22 +8,22 @@ "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { - "gatsby": "^3.13.1", - "gatsby-plugin-feed": "^3.13.0", - "gatsby-plugin-google-analytics": "^3.13.0", - "gatsby-plugin-image": "^1.13.0", - "gatsby-plugin-manifest": "^3.13.0", - "gatsby-plugin-offline": "^4.13.0", - "gatsby-plugin-react-helmet": "^4.13.0", - "gatsby-plugin-sharp": "^3.13.0", - "gatsby-remark-copy-linked-files": "^4.10.0", - "gatsby-remark-images": "^5.10.0", - "gatsby-remark-prismjs": "^5.10.0", - "gatsby-remark-responsive-iframe": "^4.10.0", - "gatsby-remark-smartypants": "^4.10.0", - "gatsby-source-filesystem": "^3.13.0", - "gatsby-transformer-remark": "^4.10.0", - "gatsby-transformer-sharp": "^3.13.0", + "gatsby": "^3.14.2", + "gatsby-plugin-feed": "^3.14.0", + "gatsby-plugin-google-analytics": "^3.14.0", + "gatsby-plugin-image": "^1.14.1", + "gatsby-plugin-manifest": "^3.14.0", + "gatsby-plugin-offline": "^4.14.0", + "gatsby-plugin-react-helmet": "^4.14.0", + "gatsby-plugin-sharp": "^3.14.1", + "gatsby-remark-copy-linked-files": "^4.11.0", + "gatsby-remark-images": "^5.11.0", + "gatsby-remark-prismjs": "^5.11.0", + "gatsby-remark-responsive-iframe": "^4.11.0", + "gatsby-remark-smartypants": "^4.11.0", + "gatsby-source-filesystem": "^3.14.0", + "gatsby-transformer-remark": "^4.11.0", + "gatsby-transformer-sharp": "^3.14.0", "prismjs": "^1.25.0", "react": "^17.0.1", "react-dom": "^17.0.1", diff --git a/starters/default/package-lock.json b/starters/default/package-lock.json index c6c618e28bec6..85f670d2062b6 100644 --- a/starters/default/package-lock.json +++ b/starters/default/package-lock.json @@ -20,9 +20,9 @@ } }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -33,19 +33,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -54,90 +54,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -159,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -176,11 +92,11 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -198,17 +114,6 @@ "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -218,17 +123,6 @@ "requires": { "@babel/helper-explode-assignable-expression": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-compilation-targets": { @@ -260,58 +154,6 @@ "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-create-regexp-features-plugin": { @@ -359,43 +201,32 @@ "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-member-expression-to-functions": { @@ -404,17 +235,6 @@ "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-module-imports": { @@ -423,131 +243,21 @@ "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -556,17 +266,6 @@ "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-plugin-utils": { @@ -582,17 +281,6 @@ "@babel/helper-annotate-as-pure": "^7.15.4", "@babel/helper-wrap-function": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-replace-supers": { @@ -604,105 +292,6 @@ "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/helper-simple-access": { @@ -711,17 +300,6 @@ "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -730,31 +308,20 @@ "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", "requires": { "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -770,105 +337,6 @@ "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/helpers": { @@ -879,105 +347,6 @@ "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/highlight": { @@ -1003,9 +372,9 @@ } }, "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -1018,9 +387,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -1334,58 +703,6 @@ "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/plugin-transform-computed-properties": { @@ -1494,25 +811,6 @@ "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-identifier": "^7.14.9", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/plugin-transform-modules-umd": { @@ -1619,14 +917,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1647,12 +945,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -1680,9 +978,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1707,16 +1005,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -1771,7 +1069,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -1780,21 +1078,12 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" }, "dependencies": { - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -1838,9 +1127,9 @@ } }, "@babel/runtime": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", - "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -1855,32 +1144,32 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1896,9 +1185,9 @@ } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "requires": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" @@ -1983,11 +1272,11 @@ }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2049,14 +1338,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -2109,6 +1407,14 @@ "slash": "^3.0.0" } }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2737,9 +2043,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" } } }, @@ -2754,9 +2060,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sindresorhus/slugify": { "version": "1.1.2", @@ -2791,11 +2097,11 @@ } }, "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { - "defer-to-connect": "^1.0.1" + "defer-to-connect": "^2.0.0" } }, "@tokenizer/token": { @@ -2863,9 +2169,9 @@ "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -2950,17 +2256,17 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/keyv": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", - "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "requires": { "@types/node": "*" } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/minimatch": { "version": "3.0.5", @@ -2976,9 +2282,9 @@ } }, "@types/node": { - "version": "16.4.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.12.tgz", - "integrity": "sha512-zxrTNFl9Z8boMJXs6ieqZP0wAhvkdzmHSxTlJabM16cf5G9xBc1uPRH5Bbv2omEDDiM8MzTfqTJXBf0Ba4xFWA==" + "version": "16.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.4.tgz", + "integrity": "sha512-EITwVTX5B4nDjXjGeQAfXOrm+Jn+qNjDmyDRtWoD+wZsl/RDPRTFRKivs4Mt74iOFlLOrE5+Kf+p5yjyhm3+cA==" }, "@types/node-fetch": { "version": "2.5.12", @@ -3025,9 +2331,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3093,14 +2399,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3117,26 +2424,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3151,26 +2458,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3189,14 +2496,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3361,9 +2673,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -3411,33 +2723,11 @@ "integrity": "sha512-4T2MOoBvX1Gjroo1esGpMmNNIsH+vEw0zQEcskj1bt6Ydhp59qRL9GAThdMPYgEwnIyTNqT9LkCTPSEM/J/blQ==" }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + "string-width": "^4.1.0" } }, "ansi-colors": { @@ -3456,9 +2746,9 @@ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -3503,14 +2793,19 @@ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3578,15 +2873,15 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" } }, "array-union": { @@ -3600,24 +2895,23 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" } }, "arrify": { @@ -3679,26 +2973,21 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" } }, @@ -3797,12 +3086,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -3814,9 +3103,13 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", @@ -3838,25 +3131,25 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" } }, "babel-runtime": { @@ -4138,15 +3431,15 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "buffer": { @@ -4177,11 +3470,6 @@ "readable-stream": "1.1.x" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -4248,61 +3536,22 @@ } }, "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - }, - "dependencies": { - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "requires": { - "json-buffer": "3.0.1" - } - } - } + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", + "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - } + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "call-bind": { @@ -4352,9 +3601,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "ccount": { "version": "1.1.0", @@ -4617,11 +3866,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -4742,9 +3991,9 @@ } }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.4.0", @@ -4842,6 +4091,11 @@ "typedarray": "^0.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4903,13 +4157,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -4923,12 +4177,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -4971,16 +4227,16 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.3.tgz", - "integrity": "sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -4992,9 +4248,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.3", @@ -5031,9 +4287,12 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + } }, "create-require": { "version": "1.1.1", @@ -5197,9 +4456,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "css.escape": { "version": "1.5.1", @@ -5301,9 +4560,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -5324,11 +4583,18 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "deep-extend": { @@ -5347,9 +4613,9 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", @@ -5556,11 +4822,6 @@ "streamsearch": "0.1.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -5680,9 +4941,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "emoji-regex": { "version": "8.0.0", @@ -5767,9 +5028,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5822,21 +5083,24 @@ } }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -5846,9 +5110,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -6052,11 +5316,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "which": { @@ -6087,11 +5351,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -6169,23 +5434,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -6206,53 +5469,10 @@ "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -6282,22 +5502,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -6322,6 +5543,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -6504,6 +5730,11 @@ "which": "^2.0.1" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -6705,9 +5936,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -7203,39 +6434,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -7247,13 +6445,13 @@ "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs-monkey": { @@ -7283,17 +6481,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -7301,6 +6500,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -7309,36 +6509,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -7350,20 +6551,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -7405,7 +6606,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -7435,11 +6636,12 @@ }, "dependencies": { "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -7447,14 +6649,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -7467,7 +6669,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -7478,55 +6680,40 @@ "yoga-layout-prebuilt": "^1.9.6", "yurnalist": "^2.1.0" } - }, - "hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "requires": { - "lru-cache": "^6.0.0" - } } } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } + "@babel/runtime": "^7.15.4" } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { @@ -7547,212 +6734,132 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" } }, "gatsby-plugin-image": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.13.0.tgz", - "integrity": "sha512-ZJcModngwC+2r/mQRz03kWpEpeA4OfgJeyCKC3wBjx3dr8n5fpYRmhnX21U6Wh9QyjdVh0sHykmYEgs2vrPa1A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.14.1.tgz", + "integrity": "sha512-3ZiCFyIVjWxlpral04HlFZbeWC4Eoo7DYGA/Eh3qNMZ3tPKxySk4xXUdrnhIt967KBGATFuuYnPR9kKEHatCuQ==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/parser": "^7.14.9", - "@babel/traverse": "^7.14.9", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "babel-jsx-utils": "^1.1.0", - "babel-plugin-remove-graphql-queries": "^3.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", "camelcase": "^5.3.1", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "objectFitPolyfill": "^2.3.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "objectFitPolyfill": "^2.3.5", "prop-types": "^15.7.2" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-manifest": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.13.0.tgz", - "integrity": "sha512-izBaVUUnOId7IlX7nDjgnFqxx2insGbm4r+CwlmyjF5slETdvxifERPX8ng+WAscbh3qvJ/vlgLlbbjjfvJe9w==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.14.0.tgz", + "integrity": "sha512-l++KGG/3/8iwUExJ8oXUHF5ra7P//xQkkhoDybUu3N7+9jpp9S2j4NWqJvgpMhRbh09zcUfuw7usII0sJO24lA==", "requires": { - "@babel/runtime": "^7.14.8", - "gatsby-core-utils": "^2.13.0", - "gatsby-plugin-utils": "^1.13.0", + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0", + "gatsby-plugin-utils": "^1.14.0", "semver": "^7.3.5", "sharp": "^0.29.0" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-offline": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-4.13.0.tgz", - "integrity": "sha512-43EMQAOhhtwPF8zrXry9fF9ugjeehC56RaDj+9BDUApd/CvOHTqMY+8nqtwu1CfpemIPGVFZG8xVkAawLX4LxA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-4.14.0.tgz", + "integrity": "sha512-ac6Jl/xvQq0v+PF1ip3aUBdnarxLyfDenK//frxY00gcAv2QjaEG8H8SMLbbgdPWqSnpzfrc+U2rE9CvJpwO1A==", "requires": { - "@babel/runtime": "^7.14.8", - "cheerio": "^1.0.0-rc.9", - "gatsby-core-utils": "^2.13.0", + "@babel/runtime": "^7.15.4", + "cheerio": "^1.0.0-rc.10", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", "workbox-build": "^4.3.1" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" } }, "gatsby-plugin-react-helmet": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.13.0.tgz", - "integrity": "sha512-GwIqbhFtPDryftM6NEWdjgWNDpWhyifgshDxtIh8PMSEIs7VMg2tgLQf8W8EpSP7yXu3aKDm/pxFXRlPZPk9cA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.14.0.tgz", + "integrity": "sha512-IpLC0mWRNP+E0ezDBXHciVATW+mv2MCvCP3lEYtFQ8mfcm3K//MpeynouNQSPCXn9cH7fr5w0Y355Wl5w1kw1A==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" } }, "gatsby-plugin-sharp": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.13.0.tgz", - "integrity": "sha512-3ifLeUrTUqyaNh4QY6CvKVeggL6GYlcxCjx/JO0R+We1iT6ogKSssQno0cltHnmwsfki+DH2lyV9l7uCNvBVIQ==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.14.1.tgz", + "integrity": "sha512-eLRoxLTrn5QCerIl/zaUTzJCBfPaaOZdVPhO6QUOd1o2qni6AR9QkeAw3He2e/1mnkB9wWGwJUdPiCfvUSE/pQ==", "requires": { - "@babel/runtime": "^7.14.8", - "async": "^3.2.0", + "@babel/runtime": "^7.15.4", + "async": "^3.2.1", "bluebird": "^3.7.2", "filenamify": "^4.3.0", - "fs-extra": "^9.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", - "got": "^10.7.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", + "got": "^11.8.2", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.3.3", "potrace": "^2.1.8", "probe-image-size": "^6.0.0", "progress": "^2.0.3", - "semver": "^7.3.4", + "semver": "^7.3.5", "sharp": "^0.29.0", "svgo": "1.3.2", "uuid": "3.4.0" }, "dependencies": { - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "@turist/time": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", - "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" - }, "async": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==" }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -7788,19 +6895,6 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" }, - "decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -7831,189 +6925,17 @@ "domelementtype": "1" } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", - "requires": { - "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", - "@turist/fetch": "^7.1.7", - "@turist/time": "^0.0.2", - "async-retry-ng": "^2.0.1", - "boxen": "^4.2.0", - "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "git-up": "^4.0.5", - "is-docker": "^2.2.1", - "lodash": "^4.17.21", - "node-fetch": "^2.6.1", - "uuid": "3.4.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "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" - } - }, - "got": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", - "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "requires": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "requires": { - "lowercase-keys": "^2.0.0" + "boolbase": "~1.0.0" } }, "source-map": { @@ -8040,73 +6962,60 @@ "unquote": "~1.1.1", "util.promisify": "~1.0.0" } - }, - "to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==" - }, - "type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -8115,9 +7024,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -8140,7 +7049,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -8162,26 +7071,26 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "gatsby-source-filesystem": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.13.0.tgz", - "integrity": "sha512-SR0OFKunE4OtsZ0E7kpX6kipQcbrw3jTfROuhqD6EJPM5hkTxeEI/6I2r/bUo4ZS1rpwrEYd3UF89Q0YdAhLqQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.14.0.tgz", + "integrity": "sha512-Gg5GGxiWXhjapWMYdXOGk7zp+ajYowS+xNmaDUkL1gH+IQLvE18XbvKh00B/HiFaHm4azJfS2QRrRI/mPTZX+w==", "requires": { - "@babel/runtime": "^7.14.8", - "better-queue": "^3.8.10", - "chokidar": "^3.4.3", - "file-type": "^16.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "@babel/runtime": "^7.15.4", + "chokidar": "^3.5.2", + "fastq": "^1.11.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "got": "^9.6.0", "md5-file": "^5.0.0", "mime": "^2.5.2", @@ -8191,21 +7100,61 @@ "xstate": "^4.14.0" }, "dependencies": { - "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", - "proper-lockfile": "^4.1.2", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -8231,23 +7180,59 @@ "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } } } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -8256,53 +7241,27 @@ } }, "gatsby-transformer-sharp": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.13.0.tgz", - "integrity": "sha512-h98RamqeT+vwPkcacByH1+5mwXhq0zjalt8sOtdOO7YmyluwzmARAUs55S2f9RldlfeG7zeLH1/ehAaxjRCi+Q==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.14.0.tgz", + "integrity": "sha512-p0bBu4Sheo4MrrrTRXEu+jcOvsvKmzr1Wc/CQ9VD1U7vTPj74a8JiMJ9GrXrkei5qcXXeXACjBTu5F0Hyg6qMQ==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", "common-tags": "^1.8.0", - "fs-extra": "^9.1.0", + "fs-extra": "^10.0.0", "potrace": "^2.1.8", "probe-image-size": "^6.0.0", "semver": "^7.3.5", "sharp": "^0.29.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" } }, "gauge": { @@ -8389,9 +7348,21 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "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" + } + }, + "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==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } }, "get-value": { "version": "2.0.6", @@ -8422,9 +7393,9 @@ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8508,114 +7479,32 @@ } }, "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" - }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - } + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -8699,13 +7588,6 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "has": { @@ -8731,24 +7613,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", @@ -8850,9 +7719,12 @@ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "html-entities": { "version": "2.3.2", @@ -8911,6 +7783,15 @@ } } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -9046,11 +7927,11 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -9070,15 +7951,6 @@ "side-channel": "^1.0.4" } }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -9188,9 +8060,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } @@ -9274,9 +8146,9 @@ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -9346,11 +8218,6 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -9414,16 +8281,16 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", @@ -9479,6 +8346,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -9508,9 +8383,9 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", @@ -9527,15 +8402,6 @@ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, "iterall": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", @@ -9652,9 +8518,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", @@ -9691,9 +8557,9 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-loader": { "version": "0.5.7", @@ -9729,28 +8595,29 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "kind-of": { @@ -9830,28 +8697,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -9945,6 +8790,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -10026,9 +8876,9 @@ } }, "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", @@ -10207,9 +9057,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -10367,16 +9217,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -10519,10 +9369,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -10561,9 +9416,9 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "needle": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.0.tgz", - "integrity": "sha512-UBLC4P8w9to3rAhWOQYXIXzTUio9yVnDzIeKxfGbF+Hngy+2bXTqqFK+6nF42EAQKfJdezXK6vzMsefUa1Y3ag==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -10622,9 +9477,9 @@ } }, "node-addon-api": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.1.0.tgz", - "integrity": "sha512-Zz1o1BDX2VtduiAt6kgiUl8jX1Vm3NMboljFYKQJ6ee8AGfiTvM2mlZFI3xPbqjs80rCQgiVJI/DjQ/1QJ0HwA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz", + "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==" }, "node-eta": { "version": "0.9.0", @@ -10637,32 +9492,14 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-object-hash": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.8.tgz", - "integrity": "sha512-hg/4TUqBOFdEhKjLF4jnn64utX3OWPVPWunVaDsaKxY+TVoViOFyW4lu34DES8yAqAqULSFm2jFL9SqVGes0Zg==" + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-path": { "version": "3.0.0", @@ -10706,9 +9543,9 @@ } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "requires": { "boolbase": "^1.0.0" } @@ -10822,34 +9659,42 @@ } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.19.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -10861,13 +9706,13 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "objectFitPolyfill": { @@ -10942,43 +9787,20 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "requires": { - "p-timeout": "^3.1.0" - }, - "dependencies": { - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -11003,13 +9825,10 @@ "aggregate-error": "^3.0.0" } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" }, "p-try": { "version": "2.2.0", @@ -11027,6 +9846,61 @@ "semver": "^6.2.0" }, "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -11053,6 +9927,42 @@ "url-parse-lax": "^3.0.0" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -11256,15 +10166,20 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pixelmatch": { "version": "4.0.2", @@ -11283,51 +10198,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -11351,12 +10253,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -11781,9 +10683,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -11881,6 +10783,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -12090,56 +10997,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -12239,80 +11106,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -12709,6 +11502,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -12728,11 +11526,11 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "^2.0.0" } }, "restore-cursor": { @@ -12964,13 +11762,13 @@ "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==" }, "sharp": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.29.0.tgz", - "integrity": "sha512-mdN1Up0eN+SwyForPls59dWO0nx64J1XRQYy5ZiKSADAccGYCB10UAGJHSVG9VObzJdhHqrVJzQcq6gx8USyoA==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.29.1.tgz", + "integrity": "sha512-DpgdAny9TuS+oWCQ7MRS8XyY9x6q1+yW3a5wNx0J3HrGuB/Jot/8WcT+lElHY9iJu2pwtegSGxqMaqFiMhs4rQ==", "requires": { "color": "^4.0.1", "detect-libc": "^1.0.3", - "node-addon-api": "^4.0.0", + "node-addon-api": "^4.1.0", "prebuild-install": "^6.1.4", "semver": "^7.3.5", "simple-get": "^3.1.0", @@ -13007,9 +11805,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "simple-concat": { "version": "1.0.1", @@ -13108,9 +11906,9 @@ } }, "slugify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.0.tgz", - "integrity": "sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.1.tgz", + "integrity": "sha512-5ofqMTbetNhxlzjYYLBaZFQd6oiTuSkQlyfPEFIMwgUABlZQ0hbk5xIV9Ydd5jghWeRoO7GkiJliUvTpLOjNRA==" }, "snapdragon": { "version": "0.8.2", @@ -13249,9 +12047,9 @@ }, "dependencies": { "@types/node": { - "version": "14.17.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.16.tgz", - "integrity": "sha512-WiFf2izl01P1CpeY8WqFAeKWwByMueBEkND38EcN8N68qb0aDG3oIS1P5MhAX5kUdr469qRyqsY/MjanLjsFbQ==" + "version": "14.17.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.22.tgz", + "integrity": "sha512-6Mgu9YWd8j0dk9M8V9+5w6ktqIFCcn/fFXAVIDFk/niAOFiOiz4GeFAMWYAQjKrcsASbFqMkqR8/Y2wuVCAkNg==" }, "debug": { "version": "4.3.2", @@ -13312,21 +12110,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -13375,34 +12158,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -13534,33 +12289,33 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -13771,16 +12526,16 @@ } }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } }, @@ -13799,16 +12554,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -13828,11 +12583,11 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -13871,9 +12626,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -13906,9 +12661,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -13966,11 +12721,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -14331,9 +13081,9 @@ } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unixify": { "version": "1.0.0", @@ -14396,6 +13146,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -14421,9 +13176,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -14495,11 +13250,6 @@ "prepend-http": "^2.0.0" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -14554,15 +13304,6 @@ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "value-or-promise": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", @@ -14613,9 +13354,9 @@ } }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -14626,8 +13367,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -14868,6 +13609,19 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } }, @@ -15004,11 +13758,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -15075,9 +13829,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" @@ -15091,9 +13845,9 @@ } }, "xstate": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.23.3.tgz", - "integrity": "sha512-Djw9CJ5gpivFe6wGNsSFs8Ya5awG2hxbDHxBjqQrysl3LiOr+uULExs11eqTi8IIw9WWE2lbiJMbWRONCvj1Yg==" + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.25.0.tgz", + "integrity": "sha512-qP7lc/ypOuuWME4ArOBnzaCa90TfHkjiqYDmxpiCjPy6FcXstInA2vH6qRVAHbPXRK4KQIYfIEOk1X38P+TldQ==" }, "xtend": { "version": "4.0.2", diff --git a/starters/default/package.json b/starters/default/package.json index 143e8c62877a4..d1bfb92fa8f85 100644 --- a/starters/default/package.json +++ b/starters/default/package.json @@ -5,14 +5,14 @@ "version": "0.1.0", "author": "Kyle Mathews ", "dependencies": { - "gatsby": "^3.13.1", - "gatsby-plugin-image": "^1.13.0", - "gatsby-plugin-manifest": "^3.13.0", - "gatsby-plugin-offline": "^4.13.0", - "gatsby-plugin-react-helmet": "^4.13.0", - "gatsby-plugin-sharp": "^3.13.0", - "gatsby-source-filesystem": "^3.13.0", - "gatsby-transformer-sharp": "^3.13.0", + "gatsby": "^3.14.2", + "gatsby-plugin-image": "^1.14.1", + "gatsby-plugin-manifest": "^3.14.0", + "gatsby-plugin-offline": "^4.14.0", + "gatsby-plugin-react-helmet": "^4.14.0", + "gatsby-plugin-sharp": "^3.14.1", + "gatsby-source-filesystem": "^3.14.0", + "gatsby-transformer-sharp": "^3.14.0", "prop-types": "^15.7.2", "react": "^17.0.1", "react-dom": "^17.0.1", diff --git a/starters/gatsby-starter-blog-theme-core/package-lock.json b/starters/gatsby-starter-blog-theme-core/package-lock.json index c2e79defec8ec..40f8ca75865b5 100644 --- a/starters/gatsby-starter-blog-theme-core/package-lock.json +++ b/starters/gatsby-starter-blog-theme-core/package-lock.json @@ -75,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -416,19 +416,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -521,9 +521,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -536,9 +536,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -706,19 +706,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -811,9 +811,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -826,9 +826,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1308,14 +1308,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1349,9 +1349,9 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/types": { "version": "7.15.6", @@ -1373,12 +1373,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -1390,33 +1390,28 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -1436,14 +1431,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -1494,9 +1489,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1504,19 +1499,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1609,9 +1604,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -1624,9 +1619,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1853,9 +1848,9 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { "version": "7.12.13", @@ -1985,12 +1980,17 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2052,14 +2052,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -2908,9 +2917,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" } } }, @@ -3034,9 +3043,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -3137,9 +3146,9 @@ } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/mdast": { "version": "3.0.3", @@ -3217,9 +3226,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3312,14 +3321,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3336,26 +3346,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3370,26 +3380,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3408,14 +3418,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3580,9 +3595,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -3822,15 +3837,71 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array-iterate": { @@ -3849,24 +3920,135 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "arrify": { @@ -3939,49 +4121,44 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -4135,31 +4312,31 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -4170,11 +4347,11 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -4295,18 +4472,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -4368,9 +4545,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -4399,9 +4576,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -4414,9 +4591,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -4819,12 +4996,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -4869,16 +5046,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -4933,7 +5110,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -4942,7 +5119,7 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" @@ -5004,6 +5181,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -5020,12 +5210,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -5037,21 +5227,40 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -5063,17 +5272,12 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -5092,10 +5296,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -5107,36 +5324,116 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5164,6 +5461,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -6370,6 +6672,11 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6392,11 +6699,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -6502,9 +6809,9 @@ } }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.2.2", @@ -6703,13 +7010,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -6723,12 +7030,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -6792,9 +7101,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.2", @@ -6831,9 +7140,22 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } }, "create-require": { "version": "1.1.1", @@ -7134,9 +7456,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -7881,9 +8203,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -7959,9 +8281,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -8095,6 +8417,11 @@ "@babel/highlight": "^7.10.4" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -8165,11 +8492,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -8205,11 +8532,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -8287,23 +8615,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -8325,9 +8651,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8340,7 +8666,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8349,27 +8677,27 @@ "unbox-primitive": "^1.0.1" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8387,15 +8715,6 @@ "has-tostringtag": "^1.0.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8407,40 +8726,14 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" + "es-abstract": "^1.19.1" } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -8470,22 +8763,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -8498,9 +8792,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8513,7 +8807,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8555,13 +8851,13 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "resolve": { @@ -8572,6 +8868,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -8971,9 +9272,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -9589,17 +9890,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -9607,6 +9909,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -9615,36 +9918,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -9656,20 +9960,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -9711,7 +10015,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -9741,9 +10045,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -9754,19 +10058,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -9796,11 +10100,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -9824,15 +10128,15 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "semver": { @@ -9885,18 +10189,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -9907,6 +10211,11 @@ "@babel/types": "^7.15.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", @@ -9935,9 +10244,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -9977,9 +10286,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -10034,6 +10343,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -10045,14 +10367,37 @@ "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "4.1.2", @@ -10081,6 +10426,21 @@ } } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -10094,10 +10454,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "core-js": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "cross-spawn": { "version": "7.0.3", @@ -10109,10 +10469,23 @@ "which": "^2.0.1" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -10128,6 +10501,13 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } } }, "file-type": { @@ -10140,12 +10520,23 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -10153,14 +10544,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -10173,7 +10564,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -10186,34 +10577,36 @@ } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -10221,11 +10614,6 @@ "uuid": "3.4.0" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, "git-up": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", @@ -10235,6 +10623,24 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10253,23 +10659,60 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, - "node-object-hash": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", - "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" - }, - "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "normalize-url": { + "jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "parse-url": { - "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" + }, + "node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "parse-url": { + "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", "requires": { @@ -10289,6 +10732,22 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10320,6 +10779,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10346,11 +10810,11 @@ } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -10364,13 +10828,22 @@ } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "core-js-compat": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", @@ -10388,11 +10861,11 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" }, @@ -10408,15 +10881,15 @@ } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" @@ -10430,11 +10903,71 @@ "regenerator-runtime": "^0.13.4" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -10445,25 +10978,37 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10473,16 +11018,92 @@ "path-is-absolute": "^1.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "strtok3": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", @@ -10500,6 +11121,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -10622,35 +11248,37 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -10690,9 +11318,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -10705,9 +11333,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -10752,6 +11380,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -10762,6 +11403,25 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -10772,6 +11432,21 @@ "supports-color": "^5.3.0" } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -10780,6 +11455,19 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -10790,35 +11478,47 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -10835,6 +11535,56 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -10845,6 +11595,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -10861,6 +11616,22 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -10883,6 +11654,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11059,23 +11835,23 @@ } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -11086,19 +11862,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11108,11 +11884,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11171,18 +11947,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -11234,9 +12010,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -11264,9 +12040,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", @@ -11339,27 +12115,68 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -11371,11 +12188,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -11384,15 +12196,143 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" + }, + "file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "gatsby-core-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", + "requires": { + "@babel/runtime": "^7.15.4", + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", + "proper-lockfile": "^4.1.2", + "tmp": "^0.2.1", + "xdg-basedir": "^4.0.0" + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "peek-readable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", + "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } }, "semver": { "version": "6.3.0", @@ -11403,23 +12343,57 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "strtok3": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", + "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.0.1" + } + }, + "token-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", + "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -11433,24 +12407,25 @@ } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -11459,9 +12434,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -11484,7 +12459,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -11498,9 +12473,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -11511,19 +12486,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11540,11 +12515,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11618,18 +12593,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -11681,9 +12656,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -11711,9 +12686,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", @@ -11788,6 +12763,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -11798,22 +12786,56 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.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" + } + } } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -11825,10 +12847,20 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } }, "cross-spawn": { "version": "7.0.3", @@ -11848,10 +12880,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -11879,35 +12924,47 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -11929,26 +12986,81 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -11970,6 +13082,22 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11989,11 +13117,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strtok3": { @@ -12014,6 +13142,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -12389,17 +13522,18 @@ } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -12410,19 +13544,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12432,11 +13566,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -12495,18 +13629,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -12545,9 +13679,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -12575,9 +13709,17 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } }, "@babel/template": { "version": "7.15.4", @@ -12615,21 +13757,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -12641,11 +13783,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -12655,14 +13792,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -13019,9 +14156,9 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -13447,6 +14584,15 @@ "requires-port": "^1.0.0" } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -13634,12 +14780,17 @@ "type-fest": "^0.21.3" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -14040,6 +15191,11 @@ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz", @@ -14105,6 +15261,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -14278,9 +15442,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", @@ -14363,11 +15527,11 @@ } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, @@ -14461,33 +15625,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -14596,6 +15733,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -15029,9 +16171,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -15444,10 +16586,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -15772,20 +16919,86 @@ "object-keys": "^1.1.1" } }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -15798,7 +17011,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -15836,17 +17051,6 @@ } } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, "object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", @@ -15857,6 +17061,71 @@ "es-abstract": "^1.18.0-next.2" } }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -16069,6 +17338,11 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" }, + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" + }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -16399,6 +17673,11 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", @@ -16439,51 +17718,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -16518,12 +17784,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -16548,36 +17814,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -16661,36 +17922,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -16891,11 +18147,6 @@ "svgo": "^2.3.0" }, "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -16923,9 +18174,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -16979,16 +18230,16 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } } @@ -17127,9 +18378,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -17240,6 +18491,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17449,56 +18705,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -17577,85 +18793,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -18233,9 +19370,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -18361,6 +19498,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -19520,13 +20662,13 @@ } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -19535,9 +20677,9 @@ }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -19550,7 +20692,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -19859,16 +21003,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -19882,17 +21026,32 @@ "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -20004,9 +21163,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -20032,9 +21191,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -20665,9 +21824,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -20885,9 +22044,9 @@ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -20898,8 +22057,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -21103,6 +22262,11 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -21125,11 +22289,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -21201,9 +22365,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" diff --git a/starters/gatsby-starter-blog-theme-core/package.json b/starters/gatsby-starter-blog-theme-core/package.json index 379626d6936d7..b42e5f8b4f00d 100644 --- a/starters/gatsby-starter-blog-theme-core/package.json +++ b/starters/gatsby-starter-blog-theme-core/package.json @@ -11,7 +11,7 @@ "license": "0BSD", "dependencies": { "@mdx-js/react": "^1.6.22", - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "gatsby-theme-blog-core": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-blog-theme/package-lock.json b/starters/gatsby-starter-blog-theme/package-lock.json index 35348c29714e1..35ae74f89573d 100644 --- a/starters/gatsby-starter-blog-theme/package-lock.json +++ b/starters/gatsby-starter-blog-theme/package-lock.json @@ -75,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -416,19 +416,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -521,9 +521,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -536,9 +536,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -706,19 +706,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -811,9 +811,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -826,9 +826,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1308,14 +1308,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1349,9 +1349,9 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/types": { "version": "7.15.6", @@ -1373,12 +1373,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -1390,33 +1390,28 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -1436,14 +1431,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -1494,9 +1489,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1504,19 +1499,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1609,9 +1604,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -1624,9 +1619,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1853,9 +1848,9 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { "version": "7.12.13", @@ -2123,12 +2118,17 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2190,14 +2190,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -3424,9 +3433,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -3527,9 +3536,9 @@ } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/mdast": { "version": "3.0.3", @@ -3607,9 +3616,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3710,14 +3719,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3734,26 +3744,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3768,26 +3778,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3806,14 +3816,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3978,9 +3993,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -4220,15 +4235,71 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array-iterate": { @@ -4247,24 +4318,135 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "arrify": { @@ -4337,49 +4519,44 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -4533,31 +4710,31 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -4568,11 +4745,11 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -4693,18 +4870,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -4766,9 +4943,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -4797,9 +4974,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -4812,9 +4989,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -5217,12 +5394,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -5267,16 +5444,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -5331,7 +5508,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -5340,7 +5517,7 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" @@ -5402,6 +5579,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -5418,12 +5608,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -5435,21 +5625,40 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -5461,17 +5670,12 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -5490,10 +5694,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -5505,36 +5722,116 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, - "node-object-hash": { + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5562,6 +5859,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -6768,6 +7070,11 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6790,11 +7097,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -6900,9 +7207,9 @@ } }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.2.2", @@ -7101,13 +7408,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -7121,12 +7428,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -7190,9 +7499,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.2", @@ -7229,9 +7538,22 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } }, "create-require": { "version": "1.1.1", @@ -7532,9 +7854,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -8279,9 +8601,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8357,9 +8679,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -8493,6 +8815,11 @@ "@babel/highlight": "^7.10.4" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -8563,11 +8890,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -8603,11 +8930,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -8685,23 +9013,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -8723,9 +9049,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8738,7 +9064,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8747,27 +9075,27 @@ "unbox-primitive": "^1.0.1" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8785,15 +9113,6 @@ "has-tostringtag": "^1.0.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8805,40 +9124,14 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" + "es-abstract": "^1.19.1" } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -8868,22 +9161,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -8896,9 +9190,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8911,7 +9205,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8953,13 +9249,13 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "resolve": { @@ -8970,6 +9266,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -9369,9 +9670,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -9992,17 +10293,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -10010,6 +10312,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -10018,36 +10321,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -10059,20 +10363,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -10114,7 +10418,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -10144,9 +10448,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -10157,19 +10461,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -10199,11 +10503,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -10227,15 +10531,15 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "semver": { @@ -10288,18 +10592,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -10310,6 +10614,11 @@ "@babel/types": "^7.15.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", @@ -10338,9 +10647,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -10380,9 +10689,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -10437,6 +10746,32 @@ "to-fast-properties": "^2.0.0" } }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -10448,14 +10783,37 @@ "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "4.1.2", @@ -10484,6 +10842,21 @@ } } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -10497,10 +10870,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "core-js": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "cross-spawn": { "version": "7.0.3", @@ -10512,10 +10885,23 @@ "which": "^2.0.1" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -10531,6 +10917,13 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } } }, "file-type": { @@ -10543,12 +10936,23 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -10556,14 +10960,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -10576,7 +10980,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -10589,42 +10993,59 @@ } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + }, + "dependencies": { + "joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + } } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -10632,11 +11053,6 @@ "uuid": "3.4.0" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, "git-up": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", @@ -10646,6 +11062,24 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10664,21 +11098,58 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, - "node-object-hash": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -10700,11 +11171,27 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10736,6 +11223,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10762,11 +11254,11 @@ } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -10780,13 +11272,22 @@ } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "core-js-compat": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", @@ -10804,11 +11305,11 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" }, @@ -10824,15 +11325,15 @@ } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" @@ -10846,11 +11347,71 @@ "regenerator-runtime": "^0.13.4" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -10861,25 +11422,37 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10889,16 +11462,92 @@ "path-is-absolute": "^1.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "strtok3": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", @@ -10916,6 +11565,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11088,35 +11742,37 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11156,9 +11812,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -11171,9 +11827,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -11218,6 +11874,32 @@ "to-fast-properties": "^2.0.0" } }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -11228,6 +11910,25 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -11238,6 +11939,21 @@ "supports-color": "^5.3.0" } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -11246,6 +11962,19 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -11256,35 +11985,56 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "gatsby-plugin-utils": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", + "requires": { + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + } + }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -11301,6 +12051,68 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -11311,6 +12123,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -11327,6 +12144,22 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -11349,6 +12182,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11546,23 +12384,23 @@ } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -11573,19 +12411,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11595,11 +12433,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11658,18 +12496,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -11721,9 +12559,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -11751,9 +12589,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", @@ -11826,27 +12664,68 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -11858,11 +12737,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -11871,15 +12745,143 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" + }, + "file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "gatsby-core-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", + "requires": { + "@babel/runtime": "^7.15.4", + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", + "proper-lockfile": "^4.1.2", + "tmp": "^0.2.1", + "xdg-basedir": "^4.0.0" + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "peek-readable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", + "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } }, "semver": { "version": "6.3.0", @@ -11890,6 +12892,29 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "strtok3": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", + "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.0.1" + } + }, + "token-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", + "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11902,11 +12927,11 @@ } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -11920,24 +12945,25 @@ } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -11946,9 +12972,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -11971,7 +12997,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -11985,9 +13011,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -11998,19 +13024,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12027,11 +13053,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -12105,18 +13131,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -12168,9 +13194,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -12198,9 +13224,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", @@ -12275,6 +13301,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -12285,22 +13324,56 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.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" + } + } } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -12312,10 +13385,20 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } }, "cross-spawn": { "version": "7.0.3", @@ -12335,10 +13418,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -12366,35 +13462,47 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -12416,26 +13524,81 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -12457,11 +13620,27 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12481,11 +13660,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strtok3": { @@ -12506,6 +13685,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -12920,17 +14104,18 @@ } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -12941,19 +14126,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12963,11 +14148,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -13026,18 +14211,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -13076,9 +14261,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -13106,9 +14291,17 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } }, "@babel/template": { "version": "7.15.4", @@ -13146,21 +14339,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -13172,11 +14365,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -13186,14 +14374,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -13550,9 +14738,9 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -13986,6 +15174,15 @@ "requires-port": "^1.0.0" } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -14173,12 +15370,17 @@ "type-fest": "^0.21.3" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -14579,6 +15781,11 @@ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz", @@ -14644,6 +15851,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -14902,11 +16117,11 @@ } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, @@ -15000,33 +16215,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -15135,6 +16323,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -15573,9 +16766,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -15988,10 +17181,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -16316,20 +17514,86 @@ "object-keys": "^1.1.1" } }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -16342,7 +17606,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -16380,17 +17646,6 @@ } } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, "object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", @@ -16401,6 +17656,71 @@ "es-abstract": "^1.18.0-next.2" } }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -16613,6 +17933,11 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" }, + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" + }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -16943,6 +18268,11 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", @@ -16983,51 +18313,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -17062,12 +18379,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -17092,36 +18409,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -17205,36 +18517,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -17435,11 +18742,6 @@ "svgo": "^2.3.0" }, "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -17467,9 +18769,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -17523,16 +18825,16 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } } @@ -17676,9 +18978,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -17789,6 +19091,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17998,56 +19305,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -18147,85 +19414,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -18803,9 +19991,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -18931,6 +20119,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -20121,13 +21314,13 @@ } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -20136,9 +21329,9 @@ }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -20151,7 +21344,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -20485,16 +21680,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -20508,17 +21703,32 @@ "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -20630,9 +21840,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -20658,9 +21868,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -21389,9 +22599,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -21609,9 +22819,9 @@ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -21622,8 +22832,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -21827,6 +23037,11 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -21849,11 +23064,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -21930,9 +23145,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" diff --git a/starters/gatsby-starter-blog-theme/package.json b/starters/gatsby-starter-blog-theme/package.json index 11775d2aebca9..9698c5e090807 100644 --- a/starters/gatsby-starter-blog-theme/package.json +++ b/starters/gatsby-starter-blog-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "gatsby-theme-blog": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/starters/gatsby-starter-minimal/package.json b/starters/gatsby-starter-minimal/package.json index eed7befdcb40a..c61fbd3eaf2e0 100644 --- a/starters/gatsby-starter-minimal/package.json +++ b/starters/gatsby-starter-minimal/package.json @@ -16,7 +16,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "react": "^17.0.1", "react-dom": "^17.0.1" } diff --git a/starters/gatsby-starter-notes-theme/package-lock.json b/starters/gatsby-starter-notes-theme/package-lock.json index 882352ce33c84..fcd3b704dd45b 100644 --- a/starters/gatsby-starter-notes-theme/package-lock.json +++ b/starters/gatsby-starter-notes-theme/package-lock.json @@ -75,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -416,19 +416,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -521,9 +521,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -536,9 +536,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -706,19 +706,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -811,9 +811,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -826,9 +826,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1308,14 +1308,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1349,9 +1349,9 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/types": { "version": "7.15.6", @@ -1373,12 +1373,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -1390,33 +1390,28 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -1436,14 +1431,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -1494,9 +1489,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1504,19 +1499,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1609,9 +1604,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -1624,9 +1619,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1853,9 +1848,9 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { "version": "7.12.13", @@ -2119,11 +2114,11 @@ }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2185,14 +2180,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -2718,9 +2722,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" } } }, @@ -3009,6 +3013,17 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, "@types/common-tags": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.1.tgz", @@ -3040,9 +3055,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -3084,6 +3099,11 @@ "@types/unist": "*" } }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, "@types/http-proxy": { "version": "1.17.7", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz", @@ -3129,10 +3149,18 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, + "@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "requires": { + "@types/node": "*" + } + }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/mdast": { "version": "3.0.3", @@ -3205,9 +3233,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3223,6 +3251,14 @@ "safe-buffer": "*" } }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, "@types/rimraf": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.5.tgz", @@ -3300,14 +3336,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3324,26 +3361,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3358,26 +3395,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3396,14 +3433,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3568,9 +3610,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -3618,33 +3660,11 @@ "integrity": "sha512-4T2MOoBvX1Gjroo1esGpMmNNIsH+vEw0zQEcskj1bt6Ydhp59qRL9GAThdMPYgEwnIyTNqT9LkCTPSEM/J/blQ==" }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + "string-width": "^4.1.0" } }, "ansi-colors": { @@ -3742,15 +3762,15 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" } }, "array-iterate": { @@ -3769,24 +3789,23 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" } }, "arrify": { @@ -3854,49 +3873,44 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -4035,9 +4049,107 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "gatsby-core-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", + "requires": { + "@babel/runtime": "^7.15.4", + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", + "proper-lockfile": "^4.1.2", + "tmp": "^0.2.1", + "xdg-basedir": "^4.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" + }, + "peek-readable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", + "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" + }, + "strtok3": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", + "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.0.1" + } + }, + "token-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", + "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } }, "babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", @@ -4045,31 +4157,31 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -4080,11 +4192,11 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -4205,18 +4317,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -4278,9 +4390,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -4309,9 +4421,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -4324,9 +4436,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -4729,12 +4841,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -4779,16 +4891,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -4843,7 +4955,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -4852,7 +4964,7 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" @@ -4930,12 +5042,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -4947,21 +5059,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -4973,17 +5085,12 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -5003,9 +5110,9 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -5017,30 +5124,51 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "peek-readable": { "version": "4.0.1", @@ -5074,6 +5202,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -5359,11 +5492,6 @@ "readable-stream": "1.1.x" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -5429,6 +5557,11 @@ } } }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -5856,11 +5989,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -5921,9 +6054,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.2.2", @@ -6026,6 +6159,11 @@ "typedarray": "^0.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -6091,13 +6229,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -6111,12 +6249,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -6180,9 +6320,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.3", @@ -6219,9 +6359,22 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } }, "create-require": { "version": "1.1.1", @@ -6423,9 +6576,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "css.escape": { "version": "1.5.1", @@ -6527,9 +6680,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -6785,11 +6938,6 @@ "streamsearch": "0.1.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -7019,9 +7167,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -7074,9 +7222,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -7089,7 +7237,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -7099,9 +7249,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -7305,11 +7455,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "which": { @@ -7340,11 +7490,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -7422,23 +7573,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -7459,61 +7608,26 @@ "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "is-extglob": "^2.1.1" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -7543,22 +7657,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -7583,6 +7698,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -7969,9 +8089,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -8458,39 +8578,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", @@ -8533,17 +8620,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -8551,6 +8639,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -8559,36 +8648,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -8600,20 +8690,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -8655,7 +8745,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -8685,9 +8775,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -8698,19 +8788,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -8740,11 +8830,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -8768,15 +8858,15 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "semver": { @@ -8829,18 +8919,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -8851,6 +8941,11 @@ "@babel/types": "^7.15.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", @@ -8879,9 +8974,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -8921,9 +9016,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -8984,19 +9079,34 @@ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "core-js": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -9008,12 +9118,23 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -9021,14 +9142,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -9041,7 +9162,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -9054,26 +9175,29 @@ } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, - "hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "lru-cache": "^6.0.0" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "node-object-hash": { @@ -9082,15 +9206,23 @@ "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -9113,6 +9245,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -9132,11 +9269,11 @@ } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -9150,13 +9287,22 @@ } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "core-js-compat": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", @@ -9174,11 +9320,11 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" }, @@ -9194,15 +9340,15 @@ } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" @@ -9221,6 +9367,21 @@ "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -9231,25 +9392,37 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9259,6 +9432,15 @@ "path-is-absolute": "^1.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -9269,6 +9451,14 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "strtok3": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", @@ -9286,6 +9476,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -9411,35 +9606,37 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -9479,9 +9676,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -9494,9 +9691,17 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } }, "@babel/template": { "version": "7.15.4", @@ -9548,6 +9753,21 @@ "supports-color": "^5.3.0" } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -9566,21 +9786,42 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -9591,6 +9832,14 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -9613,6 +9862,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -9630,23 +9884,23 @@ "integrity": "sha512-G92tnNZyViyP/wMd6ps1KhXuG48qlInZ3aUqCrgMNpsX9Hb6rSet0mWmpgj8T8dSRw7Ll7byI0DfKXL5gScgjA==" }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -9657,19 +9911,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -9679,11 +9933,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -9742,18 +9996,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -9805,9 +10059,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -9835,9 +10089,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", @@ -9911,21 +10165,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -9937,11 +10191,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -9951,14 +10200,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -9973,19 +10222,30 @@ } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -9999,24 +10259,25 @@ } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -10025,9 +10286,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -10050,7 +10311,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -10064,9 +10325,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -10077,19 +10338,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -10106,11 +10367,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -10184,18 +10445,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -10247,9 +10508,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -10277,9 +10538,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", @@ -10311,6 +10572,14 @@ "@babel/types": "^7.14.9" } }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "@babel/template": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", @@ -10352,21 +10621,21 @@ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -10378,10 +10647,20 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } }, "debug": { "version": "4.3.2", @@ -10392,9 +10671,9 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -10406,36 +10685,65 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -10447,11 +10755,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strtok3": { @@ -10471,6 +10779,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -10523,19 +10836,19 @@ } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -10544,17 +10857,17 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -10599,21 +10912,42 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -10641,6 +10975,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -10669,17 +11008,18 @@ "integrity": "sha512-UtEAY03r7/yO2uKNXq5fNU2gwZgBuZwGiuiZFKcRpZMEF0HlOr5Krmtoao1yhRN5UxQUDasraEJxDrARmSjB6Q==" }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -10690,19 +11030,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -10712,11 +11052,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -10775,18 +11115,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -10825,9 +11165,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -10855,9 +11195,17 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } }, "@babel/template": { "version": "7.15.4", @@ -10895,21 +11243,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -10921,11 +11269,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -10935,14 +11278,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -11110,102 +11453,98 @@ } }, "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" }, "dependencies": { "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" } }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "json-buffer": "3.0.0" + "mimic-response": "^3.1.0" } }, - "normalize-url": { + "defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "json-buffer": "3.0.1" } }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "lowercase-keys": "^2.0.0" } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" } } }, @@ -11215,9 +11554,9 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -11312,13 +11651,6 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "has": { @@ -11344,24 +11676,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", @@ -11570,9 +11889,12 @@ } }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "html-entities": { "version": "2.3.2", @@ -11638,6 +11960,15 @@ "requires-port": "^1.0.0" } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -11763,11 +12094,11 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -11787,15 +12118,6 @@ "side-channel": "^1.0.4" } }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -12087,11 +12409,6 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -12158,16 +12475,16 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", @@ -12231,6 +12548,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", @@ -12265,9 +12590,9 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", @@ -12280,18 +12605,9 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" }, "iterall": { "version": "1.3.0", @@ -12397,9 +12713,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", @@ -12477,11 +12793,11 @@ } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, @@ -12548,28 +12864,6 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -12678,6 +12972,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -13051,9 +13350,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -13211,16 +13510,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -13345,10 +13644,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -13442,24 +13746,6 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13602,24 +13888,32 @@ } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -13631,13 +13925,13 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "on-finished": { @@ -13716,11 +14010,6 @@ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -13764,13 +14053,10 @@ } } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" }, "p-try": { "version": "2.2.0", @@ -14042,15 +14328,20 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pkg-dir": { "version": "4.2.0", @@ -14061,51 +14352,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -14124,12 +14402,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -14154,36 +14432,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -14267,36 +14540,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -14579,9 +14847,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -14682,6 +14950,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14891,56 +15164,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -15027,80 +15260,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -15708,6 +15867,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -16323,21 +16487,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -16391,34 +16540,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -16560,33 +16681,33 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -16801,24 +16922,17 @@ } }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" - }, - "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - } } }, "swap-case": { @@ -16852,16 +16966,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -16881,11 +16995,11 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -16901,9 +17015,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -16936,9 +17050,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -17009,11 +17123,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -17477,6 +17586,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -17502,9 +17616,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -17610,11 +17724,6 @@ "prepend-http": "^2.0.0" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -17650,15 +17759,6 @@ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "value-or-promise": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", @@ -17714,9 +17814,9 @@ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -17727,8 +17827,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -17917,11 +18017,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -17963,9 +18063,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" diff --git a/starters/gatsby-starter-notes-theme/package.json b/starters/gatsby-starter-notes-theme/package.json index 7e76a5056b6f2..6c4c8bd0afee5 100644 --- a/starters/gatsby-starter-notes-theme/package.json +++ b/starters/gatsby-starter-notes-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "gatsby-theme-notes": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-theme-workspace/example/package.json b/starters/gatsby-starter-theme-workspace/example/package.json index 8cd77b311ae43..df78472bb30ac 100644 --- a/starters/gatsby-starter-theme-workspace/example/package.json +++ b/starters/gatsby-starter-theme-workspace/example/package.json @@ -9,7 +9,7 @@ "build": "gatsby build" }, "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "gatsby-theme-minimal": "^1.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-theme/package-lock.json b/starters/gatsby-starter-theme/package-lock.json index a3d1b9313a9d0..7c79f8f13cf9c 100644 --- a/starters/gatsby-starter-theme/package-lock.json +++ b/starters/gatsby-starter-theme/package-lock.json @@ -75,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -416,19 +416,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -521,9 +521,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -536,9 +536,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -706,19 +706,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -811,9 +811,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -826,9 +826,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1308,14 +1308,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -1349,9 +1349,9 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/types": { "version": "7.15.6", @@ -1373,12 +1373,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -1390,33 +1390,28 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -1436,14 +1431,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -1494,9 +1489,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1504,19 +1499,19 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1609,9 +1604,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -1624,9 +1619,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/template": { "version": "7.15.4", @@ -1853,9 +1848,9 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { "version": "7.12.13", @@ -2123,12 +2118,17 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -2190,14 +2190,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -3424,9 +3433,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -3527,9 +3536,9 @@ } }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/mdast": { "version": "3.0.3", @@ -3607,9 +3616,9 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3710,14 +3719,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -3734,26 +3744,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -3768,26 +3778,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -3806,14 +3816,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3978,9 +3993,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -4220,15 +4235,71 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array-iterate": { @@ -4247,24 +4318,135 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "arrify": { @@ -4337,49 +4519,44 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -4533,31 +4710,31 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -4568,11 +4745,11 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -4693,18 +4870,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -4766,9 +4943,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -4797,9 +4974,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -4812,9 +4989,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -5217,12 +5394,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -5267,16 +5444,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -5331,7 +5508,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -5340,7 +5517,7 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" @@ -5402,6 +5579,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -5418,12 +5608,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -5435,21 +5625,40 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -5461,17 +5670,12 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -5490,10 +5694,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "file-type": { "version": "16.5.3", @@ -5505,36 +5722,116 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, - "node-object-hash": { + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5562,6 +5859,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -6768,6 +7070,11 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6790,11 +7097,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -6900,9 +7207,9 @@ } }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.2.2", @@ -7101,13 +7408,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -7121,12 +7428,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -7190,9 +7499,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.2", @@ -7229,9 +7538,22 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } }, "create-require": { "version": "1.1.1", @@ -7532,9 +7854,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -8279,9 +8601,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8357,9 +8679,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -8493,6 +8815,11 @@ "@babel/highlight": "^7.10.4" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -8563,11 +8890,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -8603,11 +8930,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -8685,23 +9013,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -8723,9 +9049,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8738,7 +9064,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8747,27 +9075,27 @@ "unbox-primitive": "^1.0.1" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8785,15 +9113,6 @@ "has-tostringtag": "^1.0.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8805,40 +9124,14 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" + "es-abstract": "^1.19.1" } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -8868,22 +9161,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -8896,9 +9190,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -8911,7 +9205,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -8953,13 +9249,13 @@ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "resolve": { @@ -8970,6 +9266,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -9369,9 +9670,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -9992,17 +10293,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -10010,6 +10312,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -10018,36 +10321,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -10059,20 +10363,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -10114,7 +10418,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -10144,9 +10448,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -10157,19 +10461,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -10199,11 +10503,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -10227,15 +10531,15 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "semver": { @@ -10288,18 +10592,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -10310,6 +10614,11 @@ "@babel/types": "^7.15.4" } }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, "@babel/helper-replace-supers": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", @@ -10338,9 +10647,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -10380,9 +10689,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -10437,6 +10746,32 @@ "to-fast-properties": "^2.0.0" } }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -10448,14 +10783,37 @@ "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "4.1.2", @@ -10484,6 +10842,21 @@ } } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -10497,10 +10870,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "core-js": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "cross-spawn": { "version": "7.0.3", @@ -10512,10 +10885,23 @@ "which": "^2.0.1" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -10531,6 +10917,13 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } } }, "file-type": { @@ -10543,12 +10936,23 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -10556,14 +10960,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -10576,7 +10980,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -10589,42 +10993,59 @@ } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + }, + "dependencies": { + "joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + } } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -10632,11 +11053,6 @@ "uuid": "3.4.0" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, "git-up": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", @@ -10646,6 +11062,24 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10664,21 +11098,58 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, - "node-object-hash": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -10700,11 +11171,27 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10736,6 +11223,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10762,11 +11254,11 @@ } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -10780,13 +11272,22 @@ } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "core-js-compat": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", @@ -10804,11 +11305,11 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" }, @@ -10824,15 +11325,15 @@ } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" @@ -10846,11 +11347,71 @@ "regenerator-runtime": "^0.13.4" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -10861,25 +11422,37 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10889,16 +11462,92 @@ "path-is-absolute": "^1.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "peek-readable": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "strtok3": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", @@ -10916,6 +11565,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11108,35 +11762,37 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11176,9 +11832,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -11191,9 +11847,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/runtime": { "version": "7.15.4", @@ -11238,6 +11894,32 @@ "to-fast-properties": "^2.0.0" } }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -11248,6 +11930,25 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -11258,6 +11959,21 @@ "supports-color": "^5.3.0" } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -11266,6 +11982,19 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "file-type": { "version": "16.5.3", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", @@ -11276,35 +12005,56 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, + "gatsby-plugin-utils": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", + "requires": { + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" + } + }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -11321,6 +12071,68 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -11331,6 +12143,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -11347,6 +12164,22 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -11369,6 +12202,11 @@ "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11574,23 +12412,23 @@ } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -11601,19 +12439,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11623,11 +12461,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11686,18 +12524,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -11749,9 +12587,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -11779,9 +12617,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", @@ -11854,27 +12692,68 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -11886,11 +12765,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -11899,15 +12773,143 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" + }, + "file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "gatsby-core-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", + "requires": { + "@babel/runtime": "^7.15.4", + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "file-type": "^16.5.3", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", + "proper-lockfile": "^4.1.2", + "tmp": "^0.2.1", + "xdg-basedir": "^4.0.0" + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "node-object-hash": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", + "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "peek-readable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", + "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } }, "semver": { "version": "6.3.0", @@ -11918,6 +12920,29 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "strtok3": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", + "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.0.1" + } + }, + "token-types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", + "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -11930,11 +12955,11 @@ } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/runtime": { @@ -11948,24 +12973,25 @@ } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -11974,9 +13000,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -11999,7 +13025,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -12013,9 +13039,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -12026,19 +13052,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12055,11 +13081,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -12133,18 +13159,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -12196,9 +13222,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -12226,9 +13252,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", @@ -12303,6 +13329,19 @@ "to-fast-properties": "^2.0.0" } }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -12313,22 +13352,56 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.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" + } + } } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -12340,10 +13413,20 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } }, "cross-spawn": { "version": "7.0.3", @@ -12363,10 +13446,23 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "execa": { "version": "5.1.1", @@ -12394,35 +13490,47 @@ "token-types": "^4.1.1" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -12444,26 +13552,81 @@ "parse-url": "^6.0.0" } }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -12485,11 +13648,27 @@ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==" }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12509,11 +13688,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strtok3": { @@ -12534,6 +13713,11 @@ "ieee754": "^1.2.1" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -12952,17 +14136,18 @@ } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -12973,19 +14158,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12995,11 +14180,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -13058,18 +14243,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -13108,9 +14293,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -13138,9 +14323,17 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } }, "@babel/template": { "version": "7.15.4", @@ -13178,21 +14371,21 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "chalk": { "version": "2.4.2", @@ -13204,11 +14397,6 @@ "supports-color": "^5.3.0" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -13218,14 +14406,14 @@ } }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "semver": { "version": "6.3.0", @@ -13582,9 +14770,9 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -14018,6 +15206,15 @@ "requires-port": "^1.0.0" } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -14205,12 +15402,17 @@ "type-fest": "^0.21.3" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -14633,6 +15835,11 @@ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz", @@ -14698,6 +15905,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", @@ -14961,11 +16176,11 @@ } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, @@ -15059,33 +16274,6 @@ } } }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -15194,6 +16382,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -15632,9 +16825,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -16047,10 +17240,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -16375,20 +17573,86 @@ "object-keys": "^1.1.1" } }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -16401,7 +17665,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -16439,17 +17705,6 @@ } } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, "object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", @@ -16460,6 +17715,71 @@ "es-abstract": "^1.18.0-next.2" } }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -16672,6 +17992,11 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" }, + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" + }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -17002,6 +18327,11 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", @@ -17042,51 +18372,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -17121,12 +18438,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -17151,36 +18468,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -17264,36 +18576,31 @@ }, "dependencies": { "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" } } }, @@ -17494,11 +18801,6 @@ "svgo": "^2.3.0" }, "dependencies": { - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -17526,9 +18828,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -17582,16 +18884,16 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } } @@ -17735,9 +19037,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -17848,6 +19150,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -18057,56 +19364,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -18214,85 +19481,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -18870,9 +20058,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "dom-serializer": { "version": "1.3.2", @@ -18998,6 +20186,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -20188,13 +21381,13 @@ } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -20203,9 +21396,9 @@ }, "dependencies": { "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -20218,7 +21411,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -20552,16 +21747,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -20575,17 +21770,32 @@ "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -20697,9 +21907,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -20725,9 +21935,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -21376,9 +22586,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -21596,9 +22806,9 @@ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -21609,8 +22819,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -21814,6 +23024,11 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -21836,11 +23051,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -21917,9 +23132,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" diff --git a/starters/gatsby-starter-theme/package.json b/starters/gatsby-starter-theme/package.json index 6b9bf08056ad4..2a6512e98ea2d 100644 --- a/starters/gatsby-starter-theme/package.json +++ b/starters/gatsby-starter-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "gatsby-theme-blog": "^3.0.0", "gatsby-theme-notes": "^3.0.0", "react": "^17.0.2", diff --git a/starters/hello-world/package-lock.json b/starters/hello-world/package-lock.json index cb948f0db6672..e33da7ef0ee1d 100644 --- a/starters/hello-world/package-lock.json +++ b/starters/hello-world/package-lock.json @@ -20,9 +20,9 @@ } }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", "requires": { "@babel/highlight": "^7.14.5" } @@ -33,19 +33,19 @@ "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", + "@babel/parser": "^7.15.8", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -75,9 +75,9 @@ } }, "@babel/eslint-parser": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz", - "integrity": "sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", "requires": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", @@ -92,11 +92,11 @@ } }, "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", "requires": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.15.6", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -246,18 +246,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", "requires": { "@babel/helper-module-imports": "^7.15.4", "@babel/helper-replace-supers": "^7.15.4", "@babel/helper-simple-access": "^7.15.4", "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.15.4", "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { @@ -319,9 +319,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -372,9 +372,9 @@ } }, "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -387,9 +387,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", - "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", + "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.15.4", @@ -917,14 +917,14 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz", + "integrity": "sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-module-imports": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "semver": "^6.3.0" }, @@ -945,12 +945,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", + "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" } }, "@babel/plugin-transform-sticky-regex": { @@ -978,9 +978,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.8.tgz", + "integrity": "sha512-ZXIkJpbaf6/EsmjeTbiJN/yMxWPFWvlr7sEG1P95Xb4S4IBcrf2n7s/fItIhsAmOf8oSh3VJPDppO6ExfAfKRQ==", "requires": { "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", @@ -1005,16 +1005,16 @@ } }, "@babel/preset-env": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", - "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.8.tgz", + "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", "requires": { "@babel/compat-data": "^7.15.0", "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.8", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.15.4", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -1069,7 +1069,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-spread": "^7.15.8", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -1078,7 +1078,7 @@ "@babel/preset-modules": "^0.1.4", "@babel/types": "^7.15.6", "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.5", "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" @@ -1144,9 +1144,9 @@ } }, "@babel/standalone": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.6.tgz", - "integrity": "sha512-1N9+KHL9ZYKiDDXFgBvg8Sl135evIJgP/YZdOhqdfMMTL/zuAm6bUi/FYEwzTXYhQS8MBtRMVmmcIurif7hYiQ==" + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.15.8.tgz", + "integrity": "sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==" }, "@babel/template": { "version": "7.15.4", @@ -1272,11 +1272,11 @@ }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -1338,14 +1338,23 @@ } }, "@graphql-tools/import": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.4.0.tgz", - "integrity": "sha512-jfE01oPcmc4vzAcYLs6xT7XC4jJWrM1HNtIwc7HyyHTxrC3nf36XrF3txEZ2l20GT53+OWnMgYx1HhauLGdJmA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.5.3.tgz", + "integrity": "sha512-6+XorJifwJyXHUSYZl53U/V7HVGrSRzrWIAC3Oo//Ei75PkM4pFfYb78ptyK4pBgyy3M1Ff61mjsEoQi7fQVCw==", "requires": { + "@graphql-tools/utils": "8.2.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, "dependencies": { + "@graphql-tools/utils": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.2.5.tgz", + "integrity": "sha512-k/Rktklhy22dQfbJLKiLGfQymQCTr6Rd2BilC7g2Yk6wFSzVLYr8jeXNoTD+/p61XBQzBjTVayskvaMvNS3BDg==", + "requires": { + "tslib": "~2.3.0" + } + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -1398,6 +1407,14 @@ "slash": "^3.0.0" } }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -1698,9 +1715,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" } } }, @@ -1715,9 +1732,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sindresorhus/slugify": { "version": "1.1.2", @@ -1752,11 +1769,11 @@ } }, "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { - "defer-to-connect": "^1.0.1" + "defer-to-connect": "^2.0.0" } }, "@tokenizer/token": { @@ -1782,6 +1799,17 @@ "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.2.tgz", "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, "@types/common-tags": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.1.tgz", @@ -1813,9 +1841,9 @@ "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", + "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -1849,6 +1877,11 @@ "@types/node": "*" } }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, "@types/http-proxy": { "version": "1.17.7", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz", @@ -1894,10 +1927,18 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, + "@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "requires": { + "@types/node": "*" + } + }, "@types/lodash": { - "version": "4.14.173", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", - "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==" + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==" }, "@types/minimatch": { "version": "3.0.5", @@ -1913,9 +1954,9 @@ } }, "@types/node": { - "version": "16.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", - "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==" + "version": "16.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.4.tgz", + "integrity": "sha512-EITwVTX5B4nDjXjGeQAfXOrm+Jn+qNjDmyDRtWoD+wZsl/RDPRTFRKivs4Mt74iOFlLOrE5+Kf+p5yjyhm3+cA==" }, "@types/node-fetch": { "version": "2.5.12", @@ -1957,15 +1998,23 @@ } }, "@types/react": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.21.tgz", - "integrity": "sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.29.tgz", + "integrity": "sha512-HSenIfBEBZ70BLrrVhtEtHpqaP79waauPtA8XKlczTxL3hXrW/ElGNLTpD1TmqkykgGlOAK55+D3SmUHEirpFw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, "@types/rimraf": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.5.tgz", @@ -2017,14 +2066,15 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", - "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", + "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.31.1", - "@typescript-eslint/scope-manager": "4.31.1", + "@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" @@ -2041,26 +2091,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", - "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", - "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", + "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.31.1", - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/typescript-estree": "4.31.1", + "@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": { @@ -2075,26 +2125,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", - "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" } }, "@typescript-eslint/types": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", - "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==" + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" }, "@typescript-eslint/typescript-estree": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", - "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "requires": { - "@typescript-eslint/types": "4.31.1", - "@typescript-eslint/visitor-keys": "4.31.1", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -2113,14 +2163,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", - "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "requires": { - "@typescript-eslint/types": "4.31.1", + "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" } }, + "@vercel/webpack-asset-relocator-loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz", + "integrity": "sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -2285,9 +2340,9 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" }, "acorn-jsx": { "version": "5.3.2", @@ -2335,33 +2390,11 @@ "integrity": "sha512-4T2MOoBvX1Gjroo1esGpMmNNIsH+vEw0zQEcskj1bt6Ydhp59qRL9GAThdMPYgEwnIyTNqT9LkCTPSEM/J/blQ==" }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + "string-width": "^4.1.0" } }, "ansi-colors": { @@ -2459,15 +2492,15 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" } }, "array-union": { @@ -2481,24 +2514,23 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.0" } }, "arrify": { @@ -2566,15 +2598,15 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", - "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.7.tgz", + "integrity": "sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg==", "requires": { - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001252", - "colorette": "^1.3.0", + "browserslist": "^4.17.3", + "caniuse-lite": "^1.0.30001264", "fraction.js": "^4.1.1", "normalize-range": "^0.1.2", + "picocolors": "^0.2.1", "postcss-value-parser": "^4.1.0" } }, @@ -2660,12 +2692,12 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "core-js-compat": "^3.16.2" } }, "babel-plugin-polyfill-regenerator": { @@ -2677,9 +2709,13 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.13.0.tgz", - "integrity": "sha512-6kznO5vqrcVAZLwwJwDev4QyjjRhW+G665NZgdUsjF/j9pikyZ5zp58c75wijkY7eXH2W1lhzd4GS3zxLQibCQ==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.14.0.tgz", + "integrity": "sha512-uRqbsHOcJ1kWn6IK6clZOGHBnQCddiz1LuoGIpv/hcGZCO1nCy16z9KMgEM8TdGG6L6cO31mNr1RcVmvGtcCEw==", + "requires": { + "@babel/runtime": "^7.15.4", + "gatsby-core-utils": "^2.14.0" + } }, "babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", @@ -2687,25 +2723,25 @@ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, "babel-preset-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.13.0.tgz", - "integrity": "sha512-m7j5P06nl3QWSm1LQUXO0dWuiF85Cko02pqLuTXndOHlpBbRMLks72Q3MTzEZw2R6ePj/ib+dzdkarYQ86P4Uw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-1.14.0.tgz", + "integrity": "sha512-weu2mSxvlzWUUaSfO67AS005W2+UncMgyTwkGWMoqeNe4MaZxWMtEimxBRVDPHvhW/VQIzeh3aL+gjZ2v9P4oQ==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.14.9", - "@babel/plugin-transform-runtime": "^7.14.5", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-runtime": "^7.15.0", "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.14.9", + "@babel/preset-env": "^7.15.4", "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^2.8.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^2.13.0", - "gatsby-legacy-polyfills": "^1.13.0" + "gatsby-core-utils": "^2.14.0", + "gatsby-legacy-polyfills": "^1.14.0" } }, "backo2": { @@ -2956,15 +2992,15 @@ } }, "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "buffer": { @@ -2990,11 +3026,6 @@ "readable-stream": "1.1.x" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -3060,38 +3091,23 @@ } } }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", + "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - } + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" } }, "call-bind": { @@ -3141,9 +3157,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001257", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz", - "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==" + "version": "1.0.30001265", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" }, "ccount": { "version": "1.1.0", @@ -3368,11 +3384,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "wrap-ansi": { @@ -3433,9 +3449,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colord": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.7.0.tgz", - "integrity": "sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz", + "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==" }, "colorette": { "version": "1.4.0", @@ -3533,6 +3549,11 @@ "typedarray": "^0.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3589,13 +3610,13 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.39.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.39.0.tgz", - "integrity": "sha512-BkzR5NTIamtSErC94Yrodt/Qwtco3zHj09lUIE+V3JlAuHpU8VgYkGsKkaLYTlTNRlTUGbr8333zJSoY/Rbwaw==", + "version": "7.42.5", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.42.5.tgz", + "integrity": "sha512-GGuH/CnOiPHHP9SymJk1KWvMEnvgSBzTG7I6SODVJMzG5gq2Nvx8wE8urdCpD0uKp+mNRT9U/j+aiBNzx2NKuQ==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.4", - "contentful-sdk-core": "^6.9.0", + "contentful-sdk-core": "^6.10.1", "fast-copy": "^2.1.0", "lodash.isplainobject": "^4.0.6", "type-fest": "^0.21.3" @@ -3609,12 +3630,14 @@ } }, "contentful-sdk-core": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.9.0.tgz", - "integrity": "sha512-fLwE0avEf81iDdJGVFUB5nC8AzI1OPg+YY33V8aFBgHkKMXpHI6zNInWnQGUekXCl2OAGKk5QkVfEAjvpkFGig==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz", + "integrity": "sha512-IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==", "requires": { "fast-copy": "^2.1.0", - "lodash": "^4.17.21", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "p-throttle": "^4.1.1", "qs": "^6.9.4" }, "dependencies": { @@ -3657,16 +3680,16 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.3.tgz", - "integrity": "sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" }, "core-js-compat": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz", - "integrity": "sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", + "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", "requires": { - "browserslist": "^4.17.0", + "browserslist": "^4.17.3", "semver": "7.0.0" }, "dependencies": { @@ -3678,9 +3701,9 @@ } }, "core-js-pure": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz", - "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "core-util-is": { "version": "1.0.3", @@ -3717,9 +3740,12 @@ } }, "create-gatsby": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.13.0.tgz", - "integrity": "sha512-ypJeb+nj5uZybFeic+ab5myxGh21oZQ+OeCRkKHPL9NPZbzcvQE/y5lWXgVXHqy2/xf2IBnotkImrmiQiqPOxg==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.14.0.tgz", + "integrity": "sha512-ba081Li7A7T7cHmcoE4oL+MO12k4ck5MWENPcuF9U8fTbOfICf+r3S0Mr+35YKbxr0w25RzhN5VcOS3+rokgbA==", + "requires": { + "@babel/runtime": "^7.15.4" + } }, "create-require": { "version": "1.1.1", @@ -3878,9 +3904,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "css.escape": { "version": "1.5.1", @@ -3982,9 +4008,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", - "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==" }, "debug": { "version": "3.2.7", @@ -4005,11 +4031,18 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "deep-extend": { @@ -4022,10 +4055,15 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", @@ -4222,11 +4260,6 @@ "streamsearch": "0.1.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -4341,9 +4374,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.840", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz", - "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==" + "version": "1.3.866", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", + "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==" }, "emoji-regex": { "version": "8.0.0", @@ -4428,9 +4461,9 @@ } }, "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4483,9 +4516,9 @@ } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -4498,7 +4531,9 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -4508,9 +4543,9 @@ } }, "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==" + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -4714,11 +4749,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "which": { @@ -4749,11 +4784,12 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz", + "integrity": "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==", "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -4831,23 +4867,21 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.1.tgz", + "integrity": "sha512-YiQtY+ehqQXb6dvdrFUVdl3hsTvl+g3aKoTLZFIy1j/mKxjrLcRISI2rA7dNmEReJdr5xzjLld6vJ8pC1bfCfw==", "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, @@ -4868,53 +4902,10 @@ "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -4944,22 +4935,23 @@ } }, "eslint-plugin-react": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", - "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", + "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", "requires": { "array-includes": "^3.1.3", "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "estraverse": "^5.2.0", - "has": "^1.0.3", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.0.4", "object.entries": "^1.1.4", "object.fromentries": "^2.0.4", + "object.hasown": "^1.0.0", "object.values": "^1.1.4", "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", "string.prototype.matchall": "^4.0.5" }, "dependencies": { @@ -4984,6 +4976,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -5166,6 +5163,11 @@ "which": "^2.0.1" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5357,9 +5359,9 @@ } }, "ext": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz", - "integrity": "sha512-+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { "type": "^2.5.0" }, @@ -5840,52 +5842,19 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs-monkey": { @@ -5915,17 +5884,18 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.13.1.tgz", - "integrity": "sha512-ZSxdP8v/wdQxGzRur373U2GNmpGuMk3J7bqUTTzY/QGI0sb0AeczD954qdTylTeUV88Ud2UKQ+qFYG1BjX1GJA==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.14.2.tgz", + "integrity": "sha512-1cjyfGkQ9zXtou+RhtYBprv8nYXTPuRIs4IFzBP373vBD1CdwabAC/R8kjqHfdvyNrorzg3sqRjLjActtfU8NA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/core": "^7.14.8", - "@babel/eslint-parser": "^7.14.9", - "@babel/parser": "^7.14.9", - "@babel/runtime": "^7.14.8", - "@babel/traverse": "^7.14.9", - "@babel/types": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/eslint-parser": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/parser": "^7.15.5", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", "@nodelib/fs.walk": "^1.2.4", @@ -5933,6 +5903,7 @@ "@types/http-proxy": "^1.17.4", "@typescript-eslint/eslint-plugin": "^4.29.3", "@typescript-eslint/parser": "^4.29.3", + "@vercel/webpack-asset-relocator-loader": "^1.6.0", "address": "1.1.2", "anser": "^2.0.1", "autoprefixer": "^10.2.4", @@ -5941,36 +5912,37 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^3.13.0", - "babel-preset-gatsby": "^1.13.0", + "babel-plugin-remove-graphql-queries": "^3.14.0", + "babel-preset-gatsby": "^1.14.0", "better-opn": "^2.0.0", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.9.0", + "core-js": "^3.17.2", "cors": "^2.8.5", "css-loader": "^5.0.1", "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", + "deepmerge": "^4.2.2", "del": "^5.1.0", "detect-port": "^1.3.0", "devcert": "^1.1.3", "dotenv": "^8.2.0", "eslint": "^7.32.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.8.2", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.23.4", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", "eslint-webpack-plugin": "^2.5.4", "event-source-polyfill": "^1.0.15", @@ -5982,20 +5954,20 @@ "file-loader": "^6.2.0", "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^3.13.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-graphiql-explorer": "^1.13.0", - "gatsby-legacy-polyfills": "^1.13.0", - "gatsby-link": "^3.13.0", - "gatsby-plugin-page-creator": "^3.13.0", - "gatsby-plugin-typescript": "^3.13.0", - "gatsby-plugin-utils": "^1.13.0", - "gatsby-react-router-scroll": "^4.13.0", - "gatsby-telemetry": "^2.13.0", - "gatsby-worker": "^0.4.0", + "fs-extra": "^10.0.0", + "gatsby-cli": "^3.14.1", + "gatsby-core-utils": "^2.14.0", + "gatsby-graphiql-explorer": "^1.14.0", + "gatsby-legacy-polyfills": "^1.14.0", + "gatsby-link": "^3.14.0", + "gatsby-plugin-page-creator": "^3.14.0", + "gatsby-plugin-typescript": "^3.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-react-router-scroll": "^4.14.0", + "gatsby-telemetry": "^2.14.0", + "gatsby-worker": "^0.5.0", "glob": "^7.1.6", - "got": "8.3.2", + "got": "^11.8.2", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", "graphql-playground-middleware-express": "^1.7.18", @@ -6037,7 +6009,7 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.3", "slugify": "^1.4.4", @@ -6067,11 +6039,12 @@ }, "dependencies": { "gatsby-cli": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.13.0.tgz", - "integrity": "sha512-QTJZUY4wPwXLuK4aP3GCqBpklruV2hv/jtf65ED5zfeF2YnZlFvrJXt40n9o1ptc5XYe/FF6yFBxu1Lwbt9qtg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.14.1.tgz", + "integrity": "sha512-0k8fJU2oE35U1D3sj4qFHMmKj32LJRmXeUSsDtJWdvNZ8+xhBNyIh+YGcqfqbCNicLXiPyfzvt6UwBIbOOTCRQ==", "requires": { "@babel/code-frame": "^7.14.0", + "@babel/runtime": "^7.15.4", "@types/common-tags": "^1.8.0", "better-opn": "^2.0.0", "chalk": "^4.1.2", @@ -6079,14 +6052,14 @@ "common-tags": "^1.8.0", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^1.13.0", + "create-gatsby": "^1.14.0", "envinfo": "^7.7.3", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-recipes": "^0.24.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-recipes": "^0.25.0", + "gatsby-telemetry": "^2.14.0", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -6099,7 +6072,7 @@ "prompts": "^2.3.2", "redux": "^4.0.5", "resolve-cwd": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "signal-exit": "^3.0.3", "source-map": "0.7.3", "stack-trace": "^0.0.10", @@ -6110,45 +6083,40 @@ "yoga-layout-prebuilt": "^1.9.6", "yurnalist": "^2.1.0" } - }, - "hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "requires": { - "lru-cache": "^6.0.0" - } } } }, "gatsby-core-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.13.0.tgz", - "integrity": "sha512-fkMAxiWFY8N26Iui/Wq8yfE2FY2b31bGJVtlIlSwLgfsoO7fpta64lxeivRtfpNLbAoywmWY/L8TC74GFlnuWg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.14.0.tgz", + "integrity": "sha512-HDMb1XMqysup9raLYWB0wIQU568R9qPounF7iAwjf2esFUVV5mdBTvxEpune/7yG0RmwhNPhgrEZo2rBHeJf7A==", "requires": { + "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "file-type": "^16.5.3", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.3.8", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "node-object-hash": "^2.3.9", "proper-lockfile": "^4.1.2", "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } }, "gatsby-graphiql-explorer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.13.0.tgz", - "integrity": "sha512-0vsbFEMFZlYwaL7jLHf5t3DYNet2vEXXSdg3JGtr26mnefK0+PeZemIvCp8EBVun+DUZK6mpYw5hbWFjfCNbTQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.14.0.tgz", + "integrity": "sha512-OdwNGWDzrzmLHx8n02yrnuQo2ePsEsnrZHI/EZvb6I14fnSBizeW7rV35/5ppxdqV/1nsfNSMpzmFK+5ySVSEA==", "requires": { - "@babel/runtime": "^7.15.3" + "@babel/runtime": "^7.15.4" } }, "gatsby-legacy-polyfills": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.13.0.tgz", - "integrity": "sha512-DjSW8KgQ+DMzIc47XrOJvIaTe9xpwIV7NYjVNo7Sh3gP78Dij7i/snwhJyGdHY+dg+GeoIw/RUiwCVJIoR2Kfg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.14.0.tgz", + "integrity": "sha512-IGto7YurB4cEm6r07Lr/hSPZZvrkT1/0YdGpZQp7rC6CdSLqyWO9X5CS9F111NJyJhLusHCr9ZuRJG5cA0SYxQ==", "requires": { + "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" }, "dependencies": { @@ -6169,95 +6137,99 @@ } }, "gatsby-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.13.0.tgz", - "integrity": "sha512-18KOZEOdsD3wgCozZeT1EWuXVv3ESwHefCkTFKyeL4hjTM9MaLSt64e4tD4EpfDwOaXfDeRM0qY6ABcM3pM8wA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-3.14.0.tgz", + "integrity": "sha512-a7ZC6aQZ+dz6lhkW0nrg33zlFQq9DADvtl/wwk3W3GdTlseDNOC+iry11tLMEthisUQZ2H3SZGJyVeNuQkdFsw==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.9", "prop-types": "^15.7.2" } }, "gatsby-page-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.13.0.tgz", - "integrity": "sha512-IKWFP/JA7MrFjOeAVnHxg0bxxnCUIaT+Ip3E4xmBqUC3dDh8CjWJ0/5ice4Gad4njBNOvFrEfdGZSOPM0yVeLw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-1.14.0.tgz", + "integrity": "sha512-Hjyxq4XnbUYCaYc5Ta7xXML1S3qLNkTv3xYQn2W91LuVDY4/u27LaOgzIYOVPMlHUSfocfhu0CMFmXw4fOjGFg==", "requires": { - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", + "gatsby-core-utils": "^2.14.0", "glob": "^7.1.7", "lodash": "^4.17.21", "micromatch": "^4.0.4" } }, "gatsby-plugin-page-creator": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.13.0.tgz", - "integrity": "sha512-4uoMCMw7+zLuEIs0jIIaatjjPnWIOWOmKEaxOhryhQiV+nxci1HSuLqs9/msxvCtFob1QQJQH61bxidLXBWSXw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.14.0.tgz", + "integrity": "sha512-Y7Ims8CkdDpDYrr/42aFM4wTdpBTxIYe7VakdV8m0fJGb1OdD1W/7Wc9yOj+yBTqMgeeXXp45pg26wsjiG5H9w==", "requires": { - "@babel/traverse": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.1", + "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-page-utils": "^1.13.0", - "gatsby-telemetry": "^2.13.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-page-utils": "^1.14.0", + "gatsby-plugin-utils": "^1.14.0", + "gatsby-telemetry": "^2.14.0", "globby": "^11.0.4", "lodash": "^4.17.21" } }, "gatsby-plugin-typescript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.13.0.tgz", - "integrity": "sha512-qYE5ZdpV8XdbEXRjkpD7aiDwDRVnhdYzBSrTDUmjfTrwUK+QmZ7BxDQjic+hA5fjTMDMgLR+dYmvwotkqp8hxA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.14.0.tgz", + "integrity": "sha512-gQVkLFPvO9g+O+DdY9nw+1SAelF2yOQ+CqpFJ9aDllf/JUyxNbajND7nbYkLCiDja86yi3ZNCkZR2yp8qWZnpQ==", "requires": { - "@babel/core": "^7.14.8", + "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/preset-typescript": "^7.14.0", - "@babel/runtime": "^7.14.8", - "babel-plugin-remove-graphql-queries": "^3.13.0" + "@babel/preset-typescript": "^7.15.0", + "@babel/runtime": "^7.15.4", + "babel-plugin-remove-graphql-queries": "^3.14.0" } }, "gatsby-plugin-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.13.0.tgz", - "integrity": "sha512-Qen1qBe4qOm32856V7lCoPH3XxRhcVej36LxPElWWknLmLcmLY2sBnzXgx2gSMaOcepAw3jtoqgaSuVLFeYA6Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-1.14.0.tgz", + "integrity": "sha512-lYzr9R9yTH/PzgRTWB878yB1xBlJULvyosEoF8LnE62+UyuPXxv+e/frfwZCeCoqsqstuciR0yaMELIPYMna+Q==", "requires": { - "joi": "^17.2.1" + "@babel/runtime": "^7.15.4", + "joi": "^17.4.2" } }, "gatsby-react-router-scroll": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.13.0.tgz", - "integrity": "sha512-SfvZ8fWxVPrX5jXo6HyhC33i/rT9L/naCzjUAawp4dunTuSJV1ZJquFJXqPIvUMiXNz/OgRoCzxHzq3zHIevEg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.14.0.tgz", + "integrity": "sha512-ahsJqhqSroRsm+BySUUNNrTLWOzjxb8zBP6UNja/VssEYAiGnG3V7ycVqpzMXDnWnZAKTSGIO7B3ZiM5sf6mYw==", "requires": { - "@babel/runtime": "^7.14.8" + "@babel/runtime": "^7.15.4" } }, "gatsby-recipes": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz", - "integrity": "sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz", + "integrity": "sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==", "requires": { - "@babel/core": "^7.14.8", - "@babel/generator": "^7.14.9", + "@babel/core": "^7.15.5", + "@babel/generator": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.0", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/standalone": "^7.14.9", - "@babel/template": "^7.14.0", - "@babel/types": "^7.14.9", + "@babel/runtime": "^7.15.4", + "@babel/standalone": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4", "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.0.2", "@hapi/hoek": "8.x.x", "@hapi/joi": "^15.1.1", "better-queue": "^3.8.10", - "chokidar": "^3.4.2", + "chokidar": "^3.5.2", "contentful-management": "^7.5.1", "cors": "^2.8.5", "debug": "^4.3.1", @@ -6266,9 +6238,9 @@ "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", - "gatsby-telemetry": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", + "gatsby-telemetry": "^2.14.0", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -6291,7 +6263,7 @@ "remark-parse": "^6.0.3", "remark-stringify": "^8.1.0", "resolve-from": "^5.0.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "single-trailing-newline": "^1.0.0", "strip-ansi": "^6.0.0", "style-to-object": "^0.3.0", @@ -6313,29 +6285,29 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "gatsby-telemetry": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.13.0.tgz", - "integrity": "sha512-PN9kKbZd0i2QkoVvHyCa3VjuRVIvBwjXTyZHwL+se5yrbYufZQXoyMiMMXFV48FvxMgE53ON1U2vtzeRvE8U2w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.14.0.tgz", + "integrity": "sha512-c8/1L1nkK1OcxYV7axyoyM+7nzM1WL7DXvgxJloI7NSwb6M3EgcWvgq9bmqUAfmWM29/whR07mO7nnl1jZntyA==", "requires": { "@babel/code-frame": "^7.14.0", - "@babel/runtime": "^7.14.8", + "@babel/runtime": "^7.15.4", "@turist/fetch": "^7.1.7", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.13.0", + "fs-extra": "^10.0.0", + "gatsby-core-utils": "^2.14.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -6344,11 +6316,12 @@ } }, "gatsby-worker": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.4.0.tgz", - "integrity": "sha512-yVp4R7UvzTTi+zyzknJK21qMfgBou9+O03zM4zwA+8GN/ibYOHalIMJCbnJWkPPL4MArIy0/NIlwi0JNPkmaow==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-0.5.0.tgz", + "integrity": "sha512-r9BBUqCfHESSHfVvBW4tajacZ+tSxqWm+j5RB+Av8sBEhbMBFCHmWdU2USs7Bt0lvRpybwU5oxswb6nmeKkaSg==", "requires": { - "@babel/core": "^7.14.8" + "@babel/core": "^7.15.5", + "@babel/runtime": "^7.15.4" } }, "gensync": { @@ -6382,9 +6355,12 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "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" + } }, "get-symbol-description": { "version": "1.0.0", @@ -6410,9 +6386,9 @@ } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6487,103 +6463,21 @@ } }, "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" - }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - } + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, "graceful-fs": { @@ -6592,9 +6486,9 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graphql": { - "version": "15.5.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz", - "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-compose": { "version": "7.25.1", @@ -6678,13 +6572,6 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "has": { @@ -6710,24 +6597,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", @@ -6824,9 +6698,12 @@ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "html-entities": { "version": "2.3.2", @@ -6885,6 +6762,15 @@ } } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7010,11 +6896,11 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "type-fest": { @@ -7034,15 +6920,6 @@ "side-channel": "^1.0.4" } }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -7152,9 +7029,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "requires": { "has": "^1.0.3" } @@ -7233,9 +7110,9 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -7305,11 +7182,6 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -7368,16 +7240,16 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, "is-ssh": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", @@ -7433,6 +7305,14 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -7462,9 +7342,9 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", @@ -7481,15 +7361,6 @@ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, "iterall": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", @@ -7594,9 +7465,9 @@ }, "dependencies": { "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", @@ -7628,9 +7499,9 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-loader": { "version": "0.5.7", @@ -7666,28 +7537,29 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "requires": { - "array-includes": "^3.1.2", + "array-includes": "^3.1.3", "object.assign": "^4.1.2" } }, "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "kind-of": { @@ -7745,28 +7617,6 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -7855,6 +7705,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -7919,9 +7774,9 @@ } }, "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", @@ -8100,9 +7955,9 @@ } }, "memfs": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.4.tgz", - "integrity": "sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", + "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", "requires": { "fs-monkey": "1.0.3" } @@ -8260,16 +8115,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -8394,10 +8249,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "version": "3.1.29", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz", + "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==" }, "nanomatch": { "version": "1.2.13", @@ -8482,27 +8342,9 @@ "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" }, "normalize-path": { "version": "3.0.0", @@ -8646,24 +8488,32 @@ } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { @@ -8675,13 +8525,13 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "on-finished": { @@ -8746,9 +8596,9 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-defer": { "version": "3.0.0", @@ -8760,11 +8610,6 @@ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -8789,13 +8634,10 @@ "aggregate-error": "^3.0.0" } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } + "p-throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-throttle/-/p-throttle-4.1.1.tgz", + "integrity": "sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==" }, "p-try": { "version": "2.2.0", @@ -8813,6 +8655,61 @@ "semver": "^6.2.0" }, "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -8839,6 +8736,42 @@ "url-parse-lax": "^3.0.0" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8995,15 +8928,20 @@ "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pkg-dir": { "version": "4.2.0", @@ -9014,51 +8952,38 @@ } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -9077,12 +9002,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "version": "8.3.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz", + "integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==", "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "nanoid": "^3.1.28", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" } }, @@ -9459,9 +9384,9 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -9554,6 +9479,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9763,56 +9693,16 @@ "json5": "^2.1.2" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - } - } - }, "prompts": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", @@ -9891,80 +9781,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -10361,6 +10177,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -10380,11 +10201,11 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "^2.0.0" } }, "restore-cursor": { @@ -10639,9 +10460,9 @@ } }, "signal-exit": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "single-trailing-newline": { "version": "1.0.0", @@ -10695,9 +10516,9 @@ } }, "slugify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.0.tgz", - "integrity": "sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.1.tgz", + "integrity": "sha512-5ofqMTbetNhxlzjYYLBaZFQd6oiTuSkQlyfPEFIMwgUABlZQ0hbk5xIV9Ydd5jghWeRoO7GkiJliUvTpLOjNRA==" }, "snapdragon": { "version": "0.8.2", @@ -10836,9 +10657,9 @@ }, "dependencies": { "@types/node": { - "version": "14.17.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.16.tgz", - "integrity": "sha512-WiFf2izl01P1CpeY8WqFAeKWwByMueBEkND38EcN8N68qb0aDG3oIS1P5MhAX5kUdr469qRyqsY/MjanLjsFbQ==" + "version": "14.17.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.22.tgz", + "integrity": "sha512-6Mgu9YWd8j0dk9M8V9+5w6ktqIFCcn/fFXAVIDFk/niAOFiOiz4GeFAMWYAQjKrcsASbFqMkqR8/Y2wuVCAkNg==" }, "debug": { "version": "4.3.2", @@ -10899,21 +10720,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -10962,34 +10768,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==" - }, "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", @@ -11098,33 +10876,33 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", @@ -11301,16 +11079,16 @@ } }, "svgo": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.6.1.tgz", - "integrity": "sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", "requires": { "@trysound/sax": "0.2.0", - "colorette": "^1.4.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", + "nanocolors": "^0.1.12", "stable": "^0.1.8" } }, @@ -11329,16 +11107,16 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -11358,11 +11136,11 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -11378,9 +11156,9 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.8.0.tgz", - "integrity": "sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -11413,9 +11191,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jest-worker": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz", + "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -11473,11 +11251,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -11812,9 +11585,9 @@ } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unixify": { "version": "1.0.0", @@ -11872,6 +11645,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -11897,9 +11675,9 @@ }, "dependencies": { "boxen": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.1.tgz", - "integrity": "sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -11971,11 +11749,6 @@ "prepend-http": "^2.0.0" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -12011,15 +11784,6 @@ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "value-or-promise": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", @@ -12070,9 +11834,9 @@ } }, "webpack": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.53.0.tgz", - "integrity": "sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ==", + "version": "5.58.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz", + "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", @@ -12083,8 +11847,8 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -12273,11 +12037,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -12314,9 +12078,9 @@ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" }, "xss": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz", - "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", "requires": { "commander": "^2.20.3", "cssfilter": "0.0.10" diff --git a/starters/hello-world/package.json b/starters/hello-world/package.json index a863274e33c2e..a53d1de72a32c 100644 --- a/starters/hello-world/package.json +++ b/starters/hello-world/package.json @@ -14,7 +14,7 @@ "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }, "dependencies": { - "gatsby": "^3.13.1", + "gatsby": "^3.14.2", "react": "^17.0.1", "react-dom": "^17.0.1" }, diff --git a/tsconfig.json b/tsconfig.json index 89ad7aa0b2596..0298424d392a6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "target": "ESNext", + "module": "ESNext", "moduleResolution": "node", "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/yarn.lock b/yarn.lock index 7a54711a48be7..a6d4f2da19936 100644 --- a/yarn.lock +++ b/yarn.lock @@ -418,7 +418,7 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== @@ -1455,7 +1455,7 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.3.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.3.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== @@ -1536,7 +1536,7 @@ dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" -"@emotion/babel-plugin@^11.2.0", "@emotion/babel-plugin@^11.3.0": +"@emotion/babel-plugin@^11.2.0": version "11.3.0" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz#3a16850ba04d8d9651f07f3fb674b3436a4fb9d7" integrity sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA== @@ -1574,17 +1574,6 @@ "@emotion/utils" "0.11.3" "@emotion/weak-memoize" "0.2.5" -"@emotion/cache@^11.4.0": - version "11.4.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.4.0.tgz#293fc9d9a7a38b9aad8e9337e5014366c3b09ac0" - integrity sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g== - dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.0.0" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - stylis "^4.0.3" - "@emotion/core@^10.0.0": version "10.1.1" resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.1.1.tgz#c956c1365f2f2481960064bcb8c4732e5fb612c3" @@ -1618,13 +1607,6 @@ dependencies: "@emotion/memoize" "0.7.4" -"@emotion/is-prop-valid@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.0.tgz#29ef6be1e946fb4739f9707def860f316f668cde" - integrity sha512-9RkilvXAufQHsSsjQ3PIzSns+pxuX4EW8EbGeSPjZMHuMx6z/MOzb9LpqNieQX4F3mre3NWS2+X3JNRHTQztUQ== - dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" @@ -1635,19 +1617,6 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== -"@emotion/react@^11.4.1": - version "11.4.1" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.4.1.tgz#a1b0b767b5bad57515ffb0cad9349614d27f4d57" - integrity sha512-pRegcsuGYj4FCdZN6j5vqCALkNytdrKw3TZMekTzNXixRg4wkLsU5QEaBG5LC6l01Vppxlp7FE3aTHpIG5phLg== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/cache" "^11.4.0" - "@emotion/serialize" "^1.0.2" - "@emotion/sheet" "^1.0.2" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - hoist-non-react-statics "^3.3.1" - "@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": version "0.11.16" resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" @@ -1675,11 +1644,6 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== -"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.2.tgz#1d9ffde531714ba28e62dac6a996a8b1089719d0" - integrity sha512-QQPB1B70JEVUHuNtzjHftMGv6eC3Y9wqavyarj4x4lg47RACkeSfNo5pxIOKizwS9AEFLohsqoaxGQj4p0vSIw== - "@emotion/styled-base@^10.0.27": version "10.0.31" resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a" @@ -1690,17 +1654,6 @@ "@emotion/serialize" "^0.11.15" "@emotion/utils" "0.11.3" -"@emotion/styled@*", "@emotion/styled@^11.3.0": - version "11.3.0" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.3.0.tgz#d63ee00537dfb6ff612e31b0e915c5cf9925a207" - integrity sha512-fUoLcN3BfMiLlRhJ8CuPUMEyKkLEoM+n+UyAbnqGEsCd5IzKQ7VQFLtzpJOaCD2/VR2+1hXQTnSZXVJeiTNltA== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.3.0" - "@emotion/is-prop-valid" "^1.1.0" - "@emotion/serialize" "^1.0.2" - "@emotion/utils" "^1.0.0" - "@emotion/styled@^10.0.0": version "10.0.27" resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf" @@ -1729,7 +1682,7 @@ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== -"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5": +"@emotion/weak-memoize@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== @@ -1823,11 +1776,6 @@ unique-filename "^1.1.1" which "^1.3.1" -"@feedback-fish/react@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@feedback-fish/react/-/react-1.2.1.tgz#b4d226f310df936517e9e5e82397806a5df4e2d8" - integrity sha512-4YFD2hE93xBIT/Ko0x0l6UB0OyaxJcWKLGrnznsUVoLE5Q9vB8I1LEbMySYyuvbU9ul3yM3FjGkVZhYVPdwEyA== - "@gatsbyjs/reach-router@^1.3.6": version "1.3.6" resolved "https://registry.yarnpkg.com/@gatsbyjs/reach-router/-/reach-router-1.3.6.tgz#4e8225836959be247890b66f21a3198a0589e34d" @@ -2475,6 +2423,17 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^27.1.1": + version "27.1.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.1.tgz#77a3fc014f906c65752d12123a0134359707c0ad" + integrity sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jimp/bmp@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.14.0.tgz#6df246026554f276f7b354047c6fff9f5b2b5182" @@ -3450,6 +3409,18 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@lukeed/csprng@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.0.0.tgz#733a122382749d27e2e46ec38f8c71c9d53a9636" + integrity sha512-ruuGHsnabmObBdeMg3vKdGRmh06Oog3eFpf/Tk6X0kDSJDpJTDCj2dqdp1+0VjzIUgHlFF9GBm7uFqfYhhdX9g== + +"@lukeed/uuid@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@lukeed/uuid/-/uuid-2.0.0.tgz#1c0f33c071cb6902bc3b9e475782ada7314ef9bd" + integrity sha512-dUz8OmYvlY5A9wXaroHIMSPASpSYRLCqbPvxGSyHguhtTQIy24lC+EGxQlwv71AhRCO55WOtgwhzQLpw27JaJQ== + dependencies: + "@lukeed/csprng" "^1.0.0" + "@mdx-js/mdx@^1.6.16": version "1.6.16" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.16.tgz#f01af0140539c1ce043d246259d8becd2153b2bb" @@ -3502,7 +3473,7 @@ unist-builder "2.0.3" unist-util-visit "2.0.3" -"@mdx-js/react@^1.0.0", "@mdx-js/react@^1.5.2", "@mdx-js/react@^1.6.16": +"@mdx-js/react@^1.0.0", "@mdx-js/react@^1.6.16": version "1.6.16" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.16.tgz#538eb14473194d0b3c54020cb230e426174315cd" integrity sha512-+FhuSVOPo7+4fZaRwWuCSRUcZkJOkZu0rfAbBKvoCg1LWb1Td8Vzi0DTLORdSvgWNbU6+EL40HIgwTOs00x2Jw== @@ -3585,29 +3556,29 @@ readdirp "^2.2.1" upath "^1.1.1" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" "@octokit/auth-token@^2.4.0": @@ -3763,144 +3734,6 @@ "@prefresh/core" "^1.3.1" "@prefresh/utils" "^1.1.0" -"@reach/alert@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/alert/-/alert-0.10.3.tgz#9e4278edf8e6cfbe94df9a105faaa1c049a84517" - integrity sha512-Nu0XRKsHdM4gblgIgfTyJSl2KV1vrRTVVCVpol/f/ZVckTXAM/qN0C+JCCZSMfdjtt3u29CX6pRNkVu3PLfYsQ== - dependencies: - "@reach/utils" "^0.10.3" - "@reach/visually-hidden" "^0.10.2" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/auto-id@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/auto-id/-/auto-id-0.10.3.tgz#d2b6fe3ccb81b0fb44dc8bd3aca567c94ac11f5e" - integrity sha512-LK3qIsurXnga+gUbjl6t6msrZ+F3aZMY+k2go5Xcns9b85bNRyF/LwlUtcGSqmhgqbVYvMcnLeEdSQLZRxCGnQ== - dependencies: - "@reach/utils" "^0.10.3" - tslib "^1.11.2" - -"@reach/combobox@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/combobox/-/combobox-0.10.3.tgz#a5c2b76fdaf28a8872e5a49200570970da20e7e7" - integrity sha512-Z9Xl+j4Tm9JNC6ouHhzL0lv2Y+Of5/tD7CnpxaVudeIeXQKjeg5YSUCnIBU/OTUtRsIllkgACk70SGHqvntQAw== - dependencies: - "@reach/auto-id" "^0.10.3" - "@reach/descendants" "^0.10.3" - "@reach/popover" "^0.10.3" - "@reach/portal" "^0.10.3" - "@reach/utils" "^0.10.3" - highlight-words-core "1.2.2" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/descendants@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/descendants/-/descendants-0.10.3.tgz#c2cbd14c172cb82189bf6f290b09577193926a1a" - integrity sha512-1uwe2w49xSMF0ei1KedydB30sEWfyksk5axI3nEanwUDO7Sd1kCyt2GHZHoP2ESr6VQx2a9ETzMw8gKHsoy79g== - dependencies: - "@reach/utils" "^0.10.3" - tslib "^1.11.2" - -"@reach/dialog@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/dialog/-/dialog-0.10.3.tgz#ba789809c3b194fff79d3bcb4a583c58e03edb83" - integrity sha512-RMpUHNjRQhkjGzKt9/oLmDhwUBikW3JbEzgzZngq5MGY5kWRPwYInLDkEA8We4E43AbBsl5J/PRzQha9V+EEXw== - dependencies: - "@reach/portal" "^0.10.3" - "@reach/utils" "^0.10.3" - prop-types "^15.7.2" - react-focus-lock "^2.3.1" - react-remove-scroll "^2.3.0" - tslib "^1.11.2" - -"@reach/menu-button@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/menu-button/-/menu-button-0.10.3.tgz#6e72cd122e16f28c4b15a140f329be256adc72c8" - integrity sha512-50C5nl7JJG9YcKqngmwTLVft+ZF2MMieto1GSCC7qEU8ykUNz0p69Ipup+Eqjk7KRHpSIYPlYIfAOS75dDuiZQ== - dependencies: - "@reach/auto-id" "^0.10.3" - "@reach/descendants" "^0.10.3" - "@reach/popover" "^0.10.3" - "@reach/utils" "^0.10.3" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/observe-rect@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.1.0.tgz#4e967a93852b6004c3895d9ed8d4e5b41895afde" - integrity sha512-kE+jvoj/OyJV24C03VvLt5zclb9ArJi04wWXMMFwQvdZjdHoBlN4g0ZQFjyy/ejPF1Z/dpUD5dhRdBiUmIGZTA== - -"@reach/popover@0.10.3", "@reach/popover@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/popover/-/popover-0.10.3.tgz#82e29b91748869923756a165758a29c8269b93e3" - integrity sha512-41iNfdjd9/5HtYuhezTc9z9WGkloYFVB8wBmPX3QOTuBP4qYd0La5sXClrfyiVqPn/uj1gGzehrZKuh8oSkorw== - dependencies: - "@reach/portal" "^0.10.3" - "@reach/rect" "^0.10.3" - "@reach/utils" "^0.10.3" - tabbable "^4.0.0" - tslib "^1.11.2" - -"@reach/portal@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.10.3.tgz#2eb408cc246d3eabbbf3b47ca4dc9c381cdb1d88" - integrity sha512-t8c+jtDxMLSPRGg93sQd2s6dDNilh5/qdrwmx88ki7l9h8oIXqMxPP3kSkOqZ9cbVR0b2A68PfMhCDOwMGvkoQ== - dependencies: - "@reach/utils" "^0.10.3" - tslib "^1.11.2" - -"@reach/rect@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/rect/-/rect-0.10.3.tgz#b4fd7c730d27eaf5fdf04c9a65227cc805787803" - integrity sha512-OmnGfG+MdumviJXK5oPcrw2Nd4EgMPKLMCs03GrbkmZJwtXIQJNhQrVg60PQT6HKAKI0+0LobHKxHFT+7Ri7kw== - dependencies: - "@reach/observe-rect" "^1.1.0" - "@reach/utils" "^0.10.3" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/tabs@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/tabs/-/tabs-0.10.3.tgz#392461762b33af2476d26b3018e1489260532b85" - integrity sha512-yKHyb4NRah9+V8kjkgzIXnj+FPG9aNfHX9uBs32A4MAG4RQLsZr9jBVSoWV1jxMUcYDe4CLtQj8qVphaW/GB2A== - dependencies: - "@reach/auto-id" "^0.10.3" - "@reach/descendants" "^0.10.3" - "@reach/utils" "^0.10.3" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/tooltip@0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/tooltip/-/tooltip-0.10.3.tgz#0f34630aceaba7da7ad2dd23f92cc0d484e7113f" - integrity sha512-tbj569uSJ+O86fAvR62lK8Tb00aTQxah6dFKgf06lskCGUoYzeFxkZTds9b+TRjzz9G1v68McQHwuAZUH0XrGA== - dependencies: - "@reach/auto-id" "^0.10.3" - "@reach/portal" "^0.10.3" - "@reach/rect" "^0.10.3" - "@reach/utils" "^0.10.3" - "@reach/visually-hidden" "^0.10.2" - prop-types "^15.7.2" - tslib "^1.11.2" - -"@reach/utils@^0.10.3": - version "0.10.3" - resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.10.3.tgz#e30f9b172d131161953df7dd01553c57ca4e78f8" - integrity sha512-LoIZSfVAJMA+DnzAMCMfc/wAM39iKT8BQQ9gI1FODpxd8nPFP4cKisMuRXImh2/iVtG2Z6NzzCNgceJSrywqFQ== - dependencies: - "@types/warning" "^3.0.0" - tslib "^1.11.2" - warning "^4.0.3" - -"@reach/visually-hidden@^0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.10.2.tgz#cbe391c78be2139be9583bae5666ab58eb82f682" - integrity sha512-RWC2CZsEB6sUOMnBCiuemyesMVNOOKJP53j4RgbdaJ2zGFL6N+bh/E5bfZnAiVhjJ0G0laViE9s7iROaRWNFew== - dependencies: - tslib "^1.11.2" - "@rematch/core@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@rematch/core/-/core-1.4.0.tgz#686ce814e1cf125029c5e9fba23ef3ab7c3eb2a7" @@ -3997,10 +3830,6 @@ resolved "https://registry.yarnpkg.com/@rtsao/csstype/-/csstype-2.6.5-forked.0.tgz#b5b4e2a07ad83a91874ebf5fabdb73dc8c1632f6" integrity sha512-0HwnY8uPWcCloTgdbbaJG3MbDUfNf6yKWZfCKxFv9yj2Sbp4mSKaIjC7Cr/5L4hMxvrrk85CU3wlAg7EtBBJ1Q== -"@sheerun/mutationobserver-shim@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz#8013f2af54a2b7d735f71560ff360d3a8176a87b" - "@sideway/address@^4.1.0": version "4.1.1" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d" @@ -4096,7 +3925,7 @@ dependencies: object-assign "^4.1.1" -"@styled-system/css@^5.0.0", "@styled-system/css@^5.1.5": +"@styled-system/css@^5.1.5": version "5.1.5" resolved "https://registry.yarnpkg.com/@styled-system/css/-/css-5.1.5.tgz#0460d5f3ff962fa649ea128ef58d9584f403bbbc" integrity sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A== @@ -4136,7 +3965,7 @@ dependencies: "@styled-system/core" "^5.1.2" -"@styled-system/should-forward-prop@^5.0.0", "@styled-system/should-forward-prop@^5.1.2": +"@styled-system/should-forward-prop@^5.1.2": version "5.1.5" resolved "https://registry.yarnpkg.com/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz#c392008c6ae14a6eb78bf1932733594f7f7e5c76" integrity sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q== @@ -4181,20 +4010,7 @@ dependencies: defer-to-connect "^2.0.0" -"@testing-library/dom@^6.15.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-6.16.0.tgz#04ada27ed74ad4c0f0d984a1245bb29b1fd90ba9" - integrity sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA== - dependencies: - "@babel/runtime" "^7.8.4" - "@sheerun/mutationobserver-shim" "^0.3.2" - "@types/testing-library__dom" "^6.12.1" - aria-query "^4.0.2" - dom-accessibility-api "^0.3.0" - pretty-format "^25.1.0" - wait-for-expect "^3.0.2" - -"@testing-library/dom@^7.28.1", "@testing-library/dom@^7.31.2": +"@testing-library/dom@^7.28.1": version "7.31.2" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== @@ -4208,6 +4024,20 @@ lz-string "^1.4.4" pretty-format "^26.6.2" +"@testing-library/dom@^8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.5.0.tgz#56e31331015f943a68c6ec27e259fdf16c69ab7d" + integrity sha512-O0fmHFaPlqaYCpa/cBL0cvroMridb9vZsMLacgIqrlxj+fd+bGF8UfAgwsLCHRF84KLBafWlm9CuOvxeNTlodw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.6" + lz-string "^1.4.4" + pretty-format "^27.0.2" + "@testing-library/jest-dom@^5.14.1": version "5.14.1" resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz#8501e16f1e55a55d675fe73eecee32cdaddb9766" @@ -4231,15 +4061,6 @@ "@babel/runtime" "^7.12.5" "@testing-library/dom" "^7.28.1" -"@testing-library/react@^9.5.0": - version "9.5.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-9.5.0.tgz#71531655a7890b61e77a1b39452fbedf0472ca5e" - integrity sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg== - dependencies: - "@babel/runtime" "^7.8.4" - "@testing-library/dom" "^6.15.0" - "@types/testing-library__react" "^9.1.2" - "@testing-library/user-event@^13.2.1": version "13.2.1" resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.2.1.tgz#7a71a39e50b4a733afbe2916fa2b99966e941f98" @@ -4270,18 +4091,6 @@ "@theme-ui/css" "^0.4.0-rc.13" "@types/styled-system" "^4.2.2" -"@theme-ui/components@>= 0.4.0-rc.1": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@theme-ui/components/-/components-0.4.0.tgz#9da8f3c59291f2150494fdc6afea40200f56c5a1" - integrity sha512-P0+BaWewKVx7IybPfbtNl2Jbyt54LF8/GqpCAzYR2VFOaU0r5fOqLFyyxjK7msqziLpfkwdVtTqaB0qHJww55g== - dependencies: - "@emotion/core" "^10.0.0" - "@emotion/styled" "^10.0.0" - "@styled-system/color" "^5.1.2" - "@styled-system/should-forward-prop" "^5.1.2" - "@styled-system/space" "^5.1.2" - "@theme-ui/css" "^0.4.0-rc.5" - "@theme-ui/core@^0.4.0-rc.13": version "0.4.0-rc.13" resolved "https://registry.yarnpkg.com/@theme-ui/core/-/core-0.4.0-rc.13.tgz#ff206b3d2113f4f78df267d371ed21b03ac2da29" @@ -4291,7 +4100,7 @@ "@theme-ui/css" "^0.4.0-rc.13" deepmerge "^4.2.2" -"@theme-ui/css@>= 0.4.0-rc.1", "@theme-ui/css@^0.4.0-rc.13", "@theme-ui/css@^0.4.0-rc.5": +"@theme-ui/css@^0.4.0-rc.13": version "0.4.0-rc.13" resolved "https://registry.yarnpkg.com/@theme-ui/css/-/css-0.4.0-rc.13.tgz#ffe585bebe4fc91fea2935bb6beb40f50c6a7cf0" integrity sha512-YEO462Ia26T+i/6p/B4EJt/p3qJanPsSYpRP7MK4GchF/LbuHi0MS+zc4TpctIuIqpXgQR3w75b6xJZG1Oqn1Q== @@ -4344,18 +4153,6 @@ resolved "https://registry.yarnpkg.com/@turist/time/-/time-0.0.2.tgz#32fe0ce708ea0f4512776bd313409f1459976dda" integrity sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ== -"@types/algoliasearch-helper@*": - version "2.26.1" - resolved "https://registry.yarnpkg.com/@types/algoliasearch-helper/-/algoliasearch-helper-2.26.1.tgz#60cf377e7cb4bd9a55f7eba35182792763230a24" - integrity sha512-JN1wq/yLxxBcc6MeSe57F9Aqv8wL964L0nBOUTSQ5OECzWxaECuGYV06VnGKn/c+9AGB97RAgqx2PUbYflZNqA== - dependencies: - "@types/algoliasearch" "*" - -"@types/algoliasearch@*": - version "3.34.10" - resolved "https://registry.yarnpkg.com/@types/algoliasearch/-/algoliasearch-3.34.10.tgz#08cd8f7018451197d7a51c21e1305794aca187b9" - integrity sha512-P6OKrRClvlVIF645zmRdGt3pK/IlBeFMAqB/OqM5Z/iYVFp8mSYMFR+uAdADsv0X/8AC6bIPAfj2x+mjslBuFg== - "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -4454,10 +4251,10 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/common-tags@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/common-tags/-/common-tags-1.8.0.tgz#79d55e748d730b997be5b7fce4b74488d8b26a6b" - integrity sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg== +"@types/common-tags@^1.8.0", "@types/common-tags@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/common-tags/-/common-tags-1.8.1.tgz#a5a49ca5ebbb58e0f8947f3ec98950c8970a68a9" + integrity sha512-20R/mDpKSPWdJs5TOpz3e7zqbeCNuMCPhV7Yndk9KU2Rbij2r5W4RzwDPkzC+2lzUqXYu9rFzTktCBnDjHuNQg== "@types/component-emitter@^1.2.10": version "1.2.10" @@ -4600,10 +4397,10 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== -"@types/http-proxy@^1.17.4": - version "1.17.4" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" - integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q== +"@types/http-proxy@^1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== dependencies: "@types/node" "*" @@ -4698,14 +4495,7 @@ dependencies: "@types/node" "*" -"@types/lodash.sample@^4.2.6": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@types/lodash.sample/-/lodash.sample-4.2.6.tgz#ec7f6a6dbd0401c4a1e5f5b3c85fa5a85a42a84a" - integrity sha512-hxBvsUjPcW1O8mC9TiBE4m8TwvLuUU+zW8J6GI1M6WmPg8J87mXGt7zavpJ/9Znb+0rVsSB3VNAjCFaJ9YUJKg== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*", "@types/lodash@^4.14.165", "@types/lodash@^4.14.170", "@types/lodash@^4.14.92": +"@types/lodash@^4.14.170", "@types/lodash@^4.14.92": version "4.14.170" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.170.tgz#0d67711d4bf7f4ca5147e9091b847479b87925d6" integrity sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q== @@ -4753,21 +4543,26 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@^15.0.1": - version "15.0.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" - integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== +"@types/node@*", "@types/node@>= 8", "@types/node@>=10.0.0": + version "16.10.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5" + integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ== "@types/node@^12.20.6": version "12.20.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.6.tgz#7b73cce37352936e628c5ba40326193443cfba25" integrity sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA== -"@types/node@^14.10.2", "@types/node@^14.14.10", "@types/node@^14.17.14": +"@types/node@^14.10.2", "@types/node@^14.17.14": version "14.17.14" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.14.tgz#6fda9785b41570eb628bac27be4b602769a3f938" integrity sha512-rsAj2u8Xkqfc332iXV12SqIsjVi07H479bOP4q94NAcjzmAvapumEhuVIt53koEf7JFrpjgNKjBga5Pnn/GL8A== +"@types/node@^15.0.1": + version "15.0.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" + integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== + "@types/node@^8.5.7": version "8.10.59" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.59.tgz#9e34261f30183f9777017a13d185dfac6b899e04" @@ -4818,13 +4613,6 @@ dependencies: "@types/react" "*" -"@types/react-dom@*", "@types/react-dom@^17.0.9": - version "17.0.9" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" - integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== - dependencies: - "@types/react" "*" - "@types/react-dom@^16.9.8": version "16.9.8" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" @@ -4832,21 +4620,12 @@ dependencies: "@types/react" "*" -"@types/react-instantsearch-core@*": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@types/react-instantsearch-core/-/react-instantsearch-core-6.3.0.tgz#74acc99250ce416a96a0b1896e127a283a9f6b76" - integrity sha512-EZVOXs9CBxTwGbIdYX/JUk2hB9/lkaGK0rSnbnJ9C1MXe73xEpV7THrlgaFg6BO+5yrEPAf2NazCALR1WpaVwA== - dependencies: - "@types/algoliasearch-helper" "*" - "@types/react" "*" - -"@types/react-instantsearch-dom@^5.2.6": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@types/react-instantsearch-dom/-/react-instantsearch-dom-5.2.6.tgz#b47fc2c19b1aa8df06a95f67d01f5485abace8f0" - integrity sha512-gx7QBnL+rG50IUaIoj2SVwXT4O5HVOayQoEqiWF1RU1py43E+Wtlyi6WCdTEfEOz0sj6kWNEXAPMhfz+vjl9mQ== +"@types/react-dom@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== dependencies: "@types/react" "*" - "@types/react-instantsearch-core" "*" "@types/react@*", "@types/react@^16.14.8", "@types/react@^16.9.56": version "16.14.8" @@ -4865,15 +4644,6 @@ "@types/node" "*" safe-buffer "*" -"@types/reflexbox@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/reflexbox/-/reflexbox-4.0.1.tgz#dfe91aace3c931766507cfd1cce65498a4d052a0" - integrity sha512-Ucw4Fh13EYJdWS8zsyP6HJz8ooDL3LFwGT63J9Pu9hMqNRTO21yFaXH6BDUtNjD1zNyOxpv6Oe1+7Z90iiLFtQ== - dependencies: - "@emotion/styled" "*" - "@types/react" "*" - "@types/styled-system" "*" - "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -4928,10 +4698,10 @@ dependencies: "@types/node" "*" -"@types/sharp@^0.28.5": - version "0.28.5" - resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.28.5.tgz#2095c304e24c310945d6ece7a9fd44b34272c93f" - integrity sha512-+RYU1NdKeDtTMau6HBbcVUCWjMiDydW4nRIGnOviwRxZxjJy0LqRdx0+YdxBKHcSlUWIYhD1XtiGQsUtInsjBQ== +"@types/sharp@^0.29.2": + version "0.29.2" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.29.2.tgz#b4e932e982e258d1013236c8b4bcc14f9883c9a3" + integrity sha512-tIbMvtPa8kMyFMKNhpsPT1HO3CgXLuiCAA8bxHAGAZLyALpYvYc4hUu3pu0+3oExQA5LwvHrWp+OilgXCYVQgg== dependencies: "@types/node" "*" @@ -4940,11 +4710,6 @@ resolved "https://registry.yarnpkg.com/@types/signal-exit/-/signal-exit-3.0.0.tgz#75e3b17660cf1f6c6cb8557675b4e680e43bbf36" integrity sha512-MaJ+16SOXz0Z27EMf3d88+B6UDglq1sn140a+5X/ROLkIcEfRq0CPg+1B2efF1GXQn4n+aKH4ti2hHG4Ya+Dzg== -"@types/socket.io-client@^1.4.36": - version "1.4.36" - resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.36.tgz#e4f1ca065f84c20939e9850e70222202bd76ff3f" - integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== - "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -4969,13 +4734,6 @@ resolved "https://registry.yarnpkg.com/@types/string-similarity/-/string-similarity-4.0.0.tgz#8cc03d5d1baad2b74530fe6c7d849d5768d391ad" integrity sha512-dMS4S07fbtY1AILG/RhuwmptmzK1Ql8scmAebOTJ/8iBtK/KI17NwGwKzu1uipjj8Kk+3mfPxum56kKZE93mzQ== -"@types/styled-system@*": - version "5.1.9" - resolved "https://registry.yarnpkg.com/@types/styled-system/-/styled-system-5.1.9.tgz#8baac8f6eca9e0bd5768c175ca5ce1f2d6f61ade" - integrity sha512-QlWv6tmQV8dqk8s+LSLb9QAtmuQEnfv4f8lKKZkMgDqRFVmxJDBwEw0u4zhpxp56u0hdR+TCIk9dGfOw3TkCoQ== - dependencies: - csstype "^2.6.9" - "@types/styled-system@^4.2.2": version "4.2.2" resolved "https://registry.yarnpkg.com/@types/styled-system/-/styled-system-4.2.2.tgz#d8ec981978dc303849030c2428c92e2d472507ff" @@ -4988,13 +4746,6 @@ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== -"@types/testing-library__dom@*", "@types/testing-library__dom@^6.12.1": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz#1aede831cb4ed4a398448df5a2c54b54a365644e" - integrity sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA== - dependencies: - pretty-format "^24.3.0" - "@types/testing-library__jest-dom@^5.9.1": version "5.9.5" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" @@ -5002,15 +4753,6 @@ dependencies: "@types/jest" "*" -"@types/testing-library__react@^9.1.2": - version "9.1.3" - resolved "https://registry.yarnpkg.com/@types/testing-library__react/-/testing-library__react-9.1.3.tgz#35eca61cc6ea923543796f16034882a1603d7302" - integrity sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w== - dependencies: - "@types/react-dom" "*" - "@types/testing-library__dom" "*" - pretty-format "^25.1.0" - "@types/through@*": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" @@ -5054,11 +4796,6 @@ "@types/unist" "*" "@types/vfile-message" "*" -"@types/warning@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" - integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI= - "@types/webpack-merge@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/webpack-merge/-/webpack-merge-4.1.5.tgz#265fbee4810474860d0f4c17e0107032881eed47" @@ -5120,6 +4857,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -5137,73 +4881,74 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== -"@typescript-eslint/eslint-plugin@^4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz#95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa" - integrity sha512-tBgfA3K/3TsZY46ROGvoRxQr1wBkclbVqRQep97MjVHJzcRBURRY3sNFqLk0/Xr//BY5hM9H2p/kp+6qim85SA== +"@typescript-eslint/eslint-plugin@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== dependencies: - "@typescript-eslint/experimental-utils" "4.29.3" - "@typescript-eslint/scope-manager" "4.29.3" + "@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" -"@typescript-eslint/experimental-utils@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz#52e437a689ccdef73e83c5106b34240a706f15e1" - integrity sha512-ffIvbytTVWz+3keg+Sy94FG1QeOvmV9dP2YSdLFHw/ieLXWCa3U1TYu8IRCOpMv2/SPS8XqhM1+ou1YHsdzKrg== +"@typescript-eslint/experimental-utils@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.29.3" - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/typescript-estree" "4.29.3" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz#2ac25535f34c0e98f50c0e6b28c679c2357d45f2" - integrity sha512-jrHOV5g2u8ROghmspKoW7pN8T/qUzk0+DITun0MELptvngtMrwUJ1tv5zMI04CYVEUsSrN4jV7AKSv+I0y0EfQ== +"@typescript-eslint/parser@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== dependencies: - "@typescript-eslint/scope-manager" "4.29.3" - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/typescript-estree" "4.29.3" + "@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@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz#497dec66f3a22e459f6e306cf14021e40ec86e19" - integrity sha512-x+w8BLXO7iWPkG5mEy9bA1iFRnk36p/goVlYobVWHyDw69YmaH9q6eA+Fgl7kYHmFvWlebUTUfhtIg4zbbl8PA== +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== dependencies: - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/visitor-keys" "4.29.3" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/types@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz#d7980c49aef643d0af8954c9f14f656b7fd16017" - integrity sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg== +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/typescript-estree@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz#1bafad610015c4ded35c85a70b6222faad598b40" - integrity sha512-45oQJA0bxna4O5TMwz55/TpgjX1YrAPOI/rb6kPgmdnemRZx/dB0rsx+Ku8jpDvqTxcE1C/qEbVHbS3h0hflag== +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== dependencies: - "@typescript-eslint/types" "4.29.3" - "@typescript-eslint/visitor-keys" "4.29.3" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.29.3": - version "4.29.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz#c691760a00bd86bf8320d2a90a93d86d322f1abf" - integrity sha512-MGGfJvXT4asUTeVs0Q2m+sY63UsfnA+C/FDgBKV3itLBmM9H0u+URcneePtkd0at1YELmZK6HSolCqM4Fzs6yA== +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== dependencies: - "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" "@urql/core@^1.16.0": @@ -5222,7 +4967,7 @@ async-retry "^1.3.1" debug "^3.1.0" -"@vercel/webpack-asset-relocator-loader@^1.6.0": +"@vercel/webpack-asset-relocator-loader@^1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.0.tgz#d3b707e0aba3111719f941dacb2408eff3c27319" integrity sha512-1Dy3BdOliDwxA7VZSIg55E1d/us2KvsCQOZV25fgufG//CsnZBGiSAL7qewTQf7YVHH0A9PHgzwMmKIZ8aFYVw== @@ -5614,10 +5359,6 @@ adler-32@~1.2.0: exit-on-epipe "~1.0.1" printj "~1.1.0" -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - agadoo@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/agadoo/-/agadoo-2.0.0.tgz#1fbbcf429ce5e71df3d93855a915252b277667ed" @@ -5653,10 +5394,6 @@ agent-base@~4.2.1: dependencies: es6-promisify "^5.0.0" -agentkeepalive@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" - agentkeepalive@^3.4.1: version "3.5.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.1.tgz#4eba75cf2ad258fc09efd506cdb8d8c2971d35a4" @@ -5705,36 +5442,6 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch-helper@^2.26.0: - version "2.28.1" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-2.28.1.tgz#90c574ab7b80b8e85bcf9542688f19d547321102" - integrity sha512-4yg3anWdILD6ZJ/GxWmtu4HgxauSemhSqbe9Cx6SFdPzaMHrccew4IDomMeQlz9RHJwRgi5sEeX//jx2H/PaWg== - dependencies: - events "^1.1.1" - lodash "^4.17.5" - qs "^6.5.1" - -algoliasearch@^3.27.1: - version "3.35.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c" - integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ== - dependencies: - agentkeepalive "^2.2.0" - debug "^2.6.9" - envify "^4.0.0" - es6-promise "^4.1.0" - events "^1.1.0" - foreach "^2.0.5" - global "^4.3.2" - inherits "^2.0.1" - isarray "^2.0.1" - load-script "^1.0.0" - object-keys "^1.0.11" - querystring-es3 "^0.2.1" - reduce "^1.0.1" - semver "^5.1.0" - tunnel-agent "^0.6.0" - algoliasearch@^4.9.1: version "4.9.1" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.9.1.tgz#1fa8ece3f9808e465226176b88b953801c2274e0" @@ -5763,10 +5470,10 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -anser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/anser/-/anser-2.0.1.tgz#8d9069291fee18306ffaf2e364a690dcc8ed78ad" - integrity sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ== +anser@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/anser/-/anser-2.0.2.tgz#12bd6fd23a9ff08605b83972a10f97fd1970a32b" + integrity sha512-4T2MOoBvX1Gjroo1esGpMmNNIsH+vEw0zQEcskj1bt6Ydhp59qRL9GAThdMPYgEwnIyTNqT9LkCTPSEM/J/blQ== ansi-align@^2.0.0: version "2.0.0" @@ -5841,6 +5548,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + ansi-wordwrap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ansi-wordwrap/-/ansi-wordwrap-1.0.2.tgz#0195cc379ec07ce9bc263500efaa8a13dbb93fd7" @@ -5989,7 +5701,7 @@ argv@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" -aria-query@^4.0.2, aria-query@^4.2.2: +aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== @@ -6112,10 +5824,6 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -6327,16 +6035,16 @@ autolinker@~0.28.0: dependencies: gulp-header "^1.7.1" -autoprefixer@^10.1.0, autoprefixer@^10.2.4, autoprefixer@^10.3.3: - version "10.3.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.3.tgz#4bac89c74ef98e6a40fe1c5b76c0d1c91db153ce" - integrity sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ== +autoprefixer@^10.1.0, autoprefixer@^10.3.6, autoprefixer@^10.3.7: + version "10.3.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.7.tgz#cef2562058406bd378c94aacda36bb46a97b3186" + integrity sha512-EmGpu0nnQVmMhX8ROoJ7Mx8mKYPlcUHuxkwrRYEYMz85lu7H09v8w6R1P0JPdn/hKU32GjpLBFEOuIlDWCRWvg== dependencies: - browserslist "^4.16.8" - caniuse-lite "^1.0.30001252" - colorette "^1.3.0" + browserslist "^4.17.3" + caniuse-lite "^1.0.30001264" fraction.js "^4.1.1" normalize-range "^0.1.2" + picocolors "^0.2.1" postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: @@ -6861,7 +6569,7 @@ babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -backo2@1.0.2, backo2@^1.0.2, backo2@~1.0.2: +backo2@^1.0.2, backo2@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -6878,10 +6586,6 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - base64-js@^1.0.2, base64-js@^1.1.2: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" @@ -6918,10 +6622,10 @@ before-after-hook@^2.0.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== -better-opn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.0.0.tgz#c70d198e51164bdc220306a28a885d9ac7a14c44" - integrity sha512-PPbGRgO/K0LowMHbH/JNvaV3qY3Vt+A2nH28fzJxy16h/DfR5OsVti6ldGl6S9SMsyUqT13sltikiAVtI6tKLA== +better-opn@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" + integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA== dependencies: open "^7.0.3" @@ -6977,11 +6681,6 @@ bl@^4.0.0, bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - bluebird@2.9.34: version "2.9.34" resolved "http://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz#2f7b4ec80216328a9fddebdf69c8d4942feff7d8" @@ -7051,10 +6750,10 @@ boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" -boxen@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.1.tgz#4faca6a437885add0bf8d99082e272d480814cd4" - integrity sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g== +boxen@^5.0.0, boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" camelcase "^6.2.0" @@ -7153,16 +6852,16 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.12.2, browserslist@^4.13.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.16.8: - version "4.16.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" - integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== +browserslist@^4.0.0, browserslist@^4.13.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.17.3: + version "4.17.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.3.tgz#2844cd6eebe14d12384b0122d217550160d2d624" + integrity sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ== dependencies: - caniuse-lite "^1.0.30001251" - colorette "^1.3.0" - electron-to-chromium "^1.3.811" + caniuse-lite "^1.0.30001264" + electron-to-chromium "^1.3.857" escalade "^3.1.1" - node-releases "^1.1.75" + node-releases "^1.1.77" + picocolors "^0.2.1" bser@^2.0.0: version "2.0.0" @@ -7522,10 +7221,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001252: - version "1.0.30001252" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" - integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001264: + version "1.0.30001265" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz#0613c9e6c922e422792e6fcefdf9a3afeee4f8c3" + integrity sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw== capitalize@^2.0.3: version "2.0.3" @@ -7543,11 +7242,6 @@ capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" -case@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" - integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== - caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -7729,7 +7423,7 @@ chokidar@^1.6.0: optionalDependencies: fsevents "^1.0.0" -chokidar@^3.0.0, chokidar@^3.2.2, chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.2: +chokidar@^3.0.0, chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -7784,11 +7478,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.5: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - clean-css@^4.2.1, clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -7805,12 +7494,7 @@ cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-boxes@^2.2.1: +cli-boxes@^2.2.0, cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== @@ -8002,12 +7686,10 @@ codemirror@^5.54.0: resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.59.1.tgz#cd6465555a87f8a2243eb41ffb460c777e15212c" integrity sha512-d0SSW/PCCD4LoSCBPdnP0BzmZB1v3emomCUtVlIWgZHJ06yVeBOvBtOH7vYz707pfAvEeWbO9aP6akh8vl1V3w== -codepage@~1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.14.0.tgz#8cbe25481323559d7d307571b0fff91e7a1d2f99" - dependencies: - commander "~2.14.1" - exit-on-epipe "~1.0.1" +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== coffee-loader@^0.9.0: version "0.9.0" @@ -8091,7 +7773,7 @@ color@^4.0.1: color-convert "^2.0.1" color-string "^1.6.0" -colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: +colorette@^1.2.1, colorette@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== @@ -8154,10 +7836,6 @@ commander@^7.0.0, commander@^7.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@~2.14.1: - version "2.14.1" - resolved "http://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" - commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -8195,23 +7873,11 @@ compass-vertical-rhythm@^1.4.5: object-assign "^4.1.0" parse-unit "^1.0.1" -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - compose-function@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" @@ -8817,16 +8483,6 @@ crc-32@~1.2.0: exit-on-epipe "~1.0.1" printj "~1.1.0" -create-emotion@^10.0.27: - version "10.0.27" - resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-10.0.27.tgz#cb4fa2db750f6ca6f9a001a33fbf1f6c46789503" - integrity sha512-fIK73w82HPPn/RsAij7+Zt8eCE8SptcJ3WoRMfxMtjteYxud8GDTKKld7MYwAX2TVhrw29uR1N/bVGxeStHILg== - dependencies: - "@emotion/cache" "^10.0.27" - "@emotion/serialize" "^0.11.15" - "@emotion/sheet" "0.9.4" - "@emotion/utils" "0.11.3" - create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" @@ -8960,23 +8616,21 @@ css-list-helpers@^2.0.0: resolved "https://registry.yarnpkg.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz#7cb3d6f9ec9e5087ae49d834cead282806e8818f" integrity sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ== -css-loader@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.0.tgz#a9ecda190500863673ce4434033710404efbff00" - integrity sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw== +css-loader@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== dependencies: - camelcase "^6.2.0" - cssesc "^3.0.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.8" + postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" schema-utils "^3.0.0" - semver "^7.3.4" + semver "^7.3.5" css-loader@^6.2.0: version "6.2.0" @@ -9308,7 +8962,7 @@ cssstyle@^2.0.0, cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@2.6.17, csstype@^2.5.7, csstype@^2.6.17, csstype@^2.6.4, csstype@^2.6.9, csstype@^3.0.2: +csstype@2.6.17, csstype@^2.5.7, csstype@^2.6.4, csstype@^3.0.2: version "2.6.17" resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== @@ -9445,10 +9099,10 @@ date-fns@^1.30.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -date-fns@^2.14.0, date-fns@^2.23.0, date-fns@^2.8.1: - version "2.23.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9" - integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA== +date-fns@^2.23.0, date-fns@^2.25.0: + version "2.25.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.25.0.tgz#8c5c8f1d958be3809a9a03f4b742eba894fc5680" + integrity sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w== dateformat@^3.0.0: version "3.0.3" @@ -9581,11 +9235,6 @@ deepmerge@^1.3.0: version "1.5.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - deepmerge@^4.0, deepmerge@^4.0.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -9773,10 +9422,6 @@ detect-newline@^3.0.0, detect-newline@^3.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - detect-port-alt@1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" @@ -9802,10 +9447,10 @@ detective@^5.2.0: defined "^1.0.0" minimist "^1.1.1" -devcert@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/devcert/-/devcert-1.1.3.tgz#ff8119efae52ebf2449531b7482ae0f7211542e9" - integrity sha512-7/nIzKdQ8y2K0imjIP7dyg2GJ2h38Ps6VOMXWZHIarNDV3p6mTXyEugKFnkmsZ2DD58JEG34ILyVb3qdOMmP9w== +devcert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/devcert/-/devcert-1.2.0.tgz#7fb0fa2ca4c73baf3a3053973e80ebc5899fb20d" + integrity sha512-Tca9LUcmDegqTxlnQLTxVARS3MqYT+eWJfskXykefknT9jPoSJEA+t5BkDq5C5Tz+gVmAWmOH5vvKMfLJO/UhQ== dependencies: "@types/configstore" "^2.1.1" "@types/debug" "^0.0.30" @@ -10028,11 +9673,6 @@ documentation@^13.1.0: vue-template-compiler "^2.5.16" yargs "^15.3.1" -dom-accessibility-api@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz#511e5993dd673b97c87ea47dba0e3892f7e0c983" - integrity sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA== - dom-accessibility-api@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" @@ -10109,7 +9749,7 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domhandler@^3.0, domhandler@^3.0.0: +domhandler@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== @@ -10184,10 +9824,10 @@ dot-prop@^5.1.0, dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotenv@^8.2.0, dotenv@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== dotgitignore@^2.1.0: version "2.1.0" @@ -10264,10 +9904,10 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.811: - version "1.3.826" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.826.tgz#dbe356b1546b39d83bcd47e675a9c5f61dadaed2" - integrity sha512-bpLc4QU4B8PYmdO4MSu2ZBTMD8lAaEXRS43C09lB31BvYwuk9UxgBRXbY5OJBw7VuMGcg2MZG5FyTaP9u4PQnw== +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.857: + version "1.3.862" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.862.tgz#c1c5d4382449e2c9b0e67fe1652f4fc451d6d8c0" + integrity sha512-o+FMbCD+hAUJ9S8bfz/FaqA0gE8OpCCm58KhhGogOEqiA1BLFSoVYLi+tW+S/ZavnqBn++n0XZm7HQiBVPs8Jg== emittery@^0.7.1: version "0.7.2" @@ -10306,14 +9946,6 @@ emoticon@^3.0.0, emoticon@^3.1.0: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== -emotion@^10.0.27: - version "10.0.27" - resolved "https://registry.yarnpkg.com/emotion/-/emotion-10.0.27.tgz#f9ca5df98630980a23c819a56262560562e5d75e" - integrity sha512-2xdDzdWWzue8R8lu4G76uWX5WhyQuzATon9LmNeCy/2BHVC6dsEpfhN1a0qhELgtDVdjyEA6J8Y/VlI5ZnaH0g== - dependencies: - babel-plugin-emotion "^10.0.27" - create-emotion "^10.0.27" - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -10341,23 +9973,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7" - integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - engine.io-client@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-4.1.1.tgz#109942705079f15a4fcf1090bc86d3a1341c0a61" @@ -10374,17 +9989,6 @@ engine.io-client@~4.1.0: xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - engine.io-parser@~4.0.0, engine.io-parser@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" @@ -10405,10 +10009,10 @@ engine.io@~4.1.0: engine.io-parser "~4.0.0" ws "~7.4.2" -enhanced-resolve@^5.8.0, enhanced-resolve@^5.8.2: - version "5.8.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" - integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== +enhanced-resolve@^5.8.2, enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -10434,18 +10038,16 @@ env-paths@^1.0.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= -envify@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e" - dependencies: - esprima "^4.0.0" - through "~2.3.4" - -envinfo@7.7.4, envinfo@^7.3.1, envinfo@^7.7.3: +envinfo@7.7.4: version "7.7.4" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== +envinfo@^7.3.1, envinfo@^7.7.3, envinfo@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + eol@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" @@ -10481,32 +10083,36 @@ error@^7.0.0: string-template "~0.2.1" xtend "~4.0.0" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.4.3: - version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.1, es-abstract@^1.18.2, es-abstract@^1.4.3: + version "1.19.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.0.tgz#0a6e6682268e7f5bdc1c740b33ce2578d64538d3" + integrity sha512-oWPrF+7P1nGv/rw9oIInwdkmI1qediEJSvVfHFryBd8mWllCKB5tke3aKyf51J6chgyKmi6mODqdnin2yb88Nw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" has "^1.0.3" has-symbols "^1.0.2" - is-callable "^1.2.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-to-primitive@^1.2.1: version "1.2.1" @@ -10534,7 +10140,7 @@ es6-iterator@2.0.3, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3, es6-promise@^4.0.5, es6-promise@^4.1.0: +es6-promise@^4.0.3, es6-promise@^4.0.5: version "4.2.5" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" @@ -10684,14 +10290,22 @@ eslint-plugin-filenames@^1.3.2: lodash.snakecase "4.1.1" lodash.upperfirst "4.3.1" -eslint-plugin-flowtype@^5.9.2: - version "5.9.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.2.tgz#aac08cd26ee4da79cba0e40c3877bb4d96a74ebc" - integrity sha512-qxE/eo9DCN7800MIB/O1ToOiFuOPOlaMJWQY2BEm69oY7RCm3s2X1z4CdgtFvDDWf9RSSugZm1KRhdBMBueKbg== +eslint-plugin-flowtype@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz#7764cc63940f215bf3f0bd2d9a1293b2b9b2b4bb" + integrity sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw== dependencies: lodash "^4.17.15" string-natural-compare "^3.0.1" +eslint-plugin-flowtype@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-6.1.0.tgz#626f44d9adbdb681644accd5fa29dffcb0d6d531" + integrity sha512-md72y02Gq/1mmLkW31wPpUmjT0CSYHbFA1IVfkQ1kViaFrKYGR1yCWKS1THqz0hmoIUlx8Jm7NHa4B6lDvJj3g== + dependencies: + lodash "^4.17.21" + string-natural-compare "^3.0.1" + eslint-plugin-graphql@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-graphql/-/eslint-plugin-graphql-4.0.0.tgz#d238ff2baee4d632cfcbe787a7a70a1f50428358" @@ -10740,10 +10354,10 @@ eslint-plugin-jsx-a11y@^6.4.1: jsx-ast-utils "^3.1.0" language-tags "^1.0.5" -eslint-plugin-prettier@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-prettier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -10752,23 +10366,24 @@ eslint-plugin-react-hooks@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.25.1: - version "7.25.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" - integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== +eslint-plugin-react@^7.26.1: + version "7.26.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e" + integrity sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" doctrine "^2.1.0" estraverse "^5.2.0" - has "^1.0.3" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.0.4" object.entries "^1.1.4" object.fromentries "^2.0.4" + object.hasown "^1.0.0" object.values "^1.1.4" prop-types "^15.7.2" resolve "^2.0.0-next.3" + semver "^6.3.0" string.prototype.matchall "^4.0.5" eslint-rule-composer@^0.3.0: @@ -11038,10 +10653,10 @@ event-emitter@^0.3.5: d "1" es5-ext "~0.10.14" -event-source-polyfill@^1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.15.tgz#a28e116281be677af4b055b67d95517e35c92435" - integrity sha512-IVmd8jWwX6ag5rXIdVCPBjBChiHBceLb1/7aKPIK7CUeJ5Br7alx029+ZpQlK4jW4Hk2qncy3ClJP97S8ltvmg== +event-source-polyfill@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.25.tgz#d8bb7f99cb6f8119c2baf086d9f6ee0514b6d9c8" + integrity sha512-hQxu6sN1Eq4JjoI7ITdQeGGUN193A2ra83qC0Ltm9I2UJVAten3OFVN6k5RX4YWeCS0BoC8xg/5czOCIHVosQg== event-stream@=3.3.4: version "3.3.4" @@ -11071,10 +10686,6 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^1.1.0, events@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -11444,10 +11055,10 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" -fastq@^1.10.0, fastq@^1.11.1, fastq@^1.6.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" - integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== +fastq@^1.11.1, fastq@^1.13.0, fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -11665,10 +11276,10 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== +find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" @@ -11784,11 +11395,6 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: inherits "^2.0.1" readable-stream "^2.0.4" -focus-lock@^0.6.7: - version "0.6.8" - resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.8.tgz#61985fadfa92f02f2ee1d90bc738efaf7f3c9f46" - integrity sha512-vkHTluRCoq9FcsrldC0ulQHiyBYgVJB2CX53I8r0nTC6KnEij7Of0jpBspjt3/CuNb6fyoj3aOh9J2HgQUM0og== - follow-redirects@^1.0.0, follow-redirects@^1.10.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" @@ -11951,19 +11557,6 @@ format@^0.2.0, format@^0.2.2: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= -formik@^2.2.9: - version "2.2.9" - resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0" - integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA== - dependencies: - deepmerge "^2.1.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.21" - lodash-es "^4.17.21" - react-fast-compare "^2.0.1" - tiny-warning "^1.0.2" - tslib "^1.10.0" - forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -12072,16 +11665,6 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -12095,10 +11678,10 @@ fs-mkdirp-stream@^1.0.0: graceful-fs "^4.1.11" through2 "^2.0.3" -fs-monkey@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" - integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== fs-readdir-recursive@^1.1.0: version "1.1.0" @@ -12141,57 +11724,6 @@ gather-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" -gatsby-design-tokens@^2.0.2: - version "2.0.13" - resolved "https://registry.yarnpkg.com/gatsby-design-tokens/-/gatsby-design-tokens-2.0.13.tgz#33f5fa84a399b821ae224b9921847d7b37c45600" - integrity sha512-I4i1pYG5y8yQ9uul1uvUZ1sy5skCOg33kHUUeYCWvW7vPdtBcQLgYqT2tLPQMMCc16ljbJF0DL4g52zQ7tVAhQ== - dependencies: - hex2rgba "^0.0.1" - -gatsby-image@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/gatsby-image/-/gatsby-image-3.11.0.tgz#9070ffd1e656b801052acfa9e470c34427c099e0" - integrity sha512-vRMhGLrgyQRH2RYs8leyZ1UyWYIew+NOZEsKur1w6gnWDf0U9UVmYFa9OIE1Vedlo1W+on3AuZ3/KwM+cI69VQ== - dependencies: - "@babel/runtime" "^7.14.6" - object-fit-images "^3.2.4" - prop-types "^15.7.2" - -gatsby-interface@^0.0.244: - version "0.0.244" - resolved "https://registry.yarnpkg.com/gatsby-interface/-/gatsby-interface-0.0.244.tgz#76d07099248f55be55b17d9577326a180fa1136d" - integrity sha512-UNDE4E9GRwWbDZ/Pxk+3FdjBhibaxiJMgxFuU54A8CNuJEBFEpntir1MPDVajWNN4U49yihe/n3Uw8mW3FYT7A== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@mdx-js/react" "^1.5.2" - "@reach/alert" "0.10.3" - "@reach/combobox" "0.10.3" - "@reach/dialog" "0.10.3" - "@reach/menu-button" "0.10.3" - "@reach/popover" "0.10.3" - "@reach/tabs" "0.10.3" - "@reach/tooltip" "0.10.3" - "@types/lodash.sample" "^4.2.6" - case "^1.6.2" - date-fns "^2.8.1" - fs-extra "^9.0.1" - gatsby-design-tokens "^2.0.2" - lodash.sample "^4.2.1" - markdown-to-jsx "^7.0.0" - theme-ui "^0.2.49" - -gatsby-plugin-webfonts@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/gatsby-plugin-webfonts/-/gatsby-plugin-webfonts-1.1.4.tgz#f6fb8daf0acc4c59511c98964fceca35504014ac" - integrity sha512-u0K7CYzG9IlL5Q/qZI14+bFNYK7I68wkjw4FzZ35EEBECmRhPAnttZLDa5slXdbUBWnwT3SU6uX0o5EKYUlFLA== - dependencies: - axios "^0.21.1" - cssnano "^4.1.10" - fs-extra "^9.0.1" - lodash.isempty "^4.4.0" - postcss "^8.2.2" - postcss-js "^3.0.3" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -12254,11 +11786,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-nonce@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" - integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== - get-own-enumerable-property-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" @@ -12328,6 +11855,14 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -12533,10 +12068,10 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -12551,12 +12086,12 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: - ini "^1.3.5" + ini "2.0.0" global-modules@2.0.0: version "2.0.0" @@ -12592,7 +12127,7 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global@^4.3.0, global@^4.3.2: +global@^4.3.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== @@ -12793,10 +12328,10 @@ graphiql@^1.4.0: graphql-language-service "^3.1.2" markdown-it "^10.0.0" -graphql-compose@~7.25.0: - version "7.25.0" - resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-7.25.0.tgz#cd893172616ce56b0566e62fd249fb7782332d38" - integrity sha512-Zd2G62Sq0ZQW+qXds/LgSi3YSulmk2t2YS3WJfHvNslkEbyAcE1mFiy7c1wU0tl3woB0vPRwI0jAYtSSG6llNA== +graphql-compose@~7.25.0, graphql-compose@~7.25.1: + version "7.25.1" + resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-7.25.1.tgz#9d89f72781931590d4dfca6a709f381f2f76b873" + integrity sha512-TPXTe1BoQkMjp/MH93yA0SQo8PiXxJAv6Eo6K/+kpJELM9l2jZnd5PCduweuXFcKv+nH973wn/VYzYKDMQ9YoQ== dependencies: graphql-type-json "0.3.2" object-path "0.11.5" @@ -12855,26 +12390,19 @@ graphql-language-service@^3.1.2: graphql-language-service-interface "^2.8.2" graphql-language-service-types "^1.8.0" -graphql-playground-html@1.6.25: - version "1.6.25" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.25.tgz#2d8fa250cec4036a4f5b7f8ad069c86d6d64c95f" - integrity sha512-wMNvGsQ0OwBVhn72VVi7OdpI85IxiIZT43glRx7gQIwQ6NvhFnzMYBIVmcJAJ4UlXRYiWtrQhuOItDXObiR3kg== +graphql-playground-html@^1.6.29: + version "1.6.29" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#5b0c60a0161cc0f3116085f64c5a16cb3b2d9a16" + integrity sha512-fbF/zZKuw2sdfKp8gjTORJ/I9xBsqeEYRseWxBzuR15NHMptRTT9414IyRCs3ognZzUDr5MDJgx97SlLZCtQyA== dependencies: xss "^1.0.6" -graphql-playground-middleware-express@^1.7.18: - version "1.7.18" - resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.18.tgz#306d64d54ccb531baf7df0699df3220ca4e25364" - integrity sha512-EywRL+iBa4u//5YbY1iJxrl0n4IKyomBKgLXrMbG8gHJUwxmFs5FCWJJ4Q6moSn5Q3RgMZvrWzXB27lKwN8Kgw== +graphql-playground-middleware-express@^1.7.22: + version "1.7.22" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.22.tgz#e4bbe4faaa56b48e95769c8b87b65e53355d91a4" + integrity sha512-PJLiCxLmN6Dp+dHGyHU92m9y3hB/RAkcUBWcqYl2fiP+EbpDDgNfElrsVzW60MhJe+LTV1PFqiInH2d3KNvlCQ== dependencies: - graphql-playground-html "1.6.25" - -graphql-query-compress@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/graphql-query-compress/-/graphql-query-compress-1.2.4.tgz#27c6a21ef4fe0dfaa2ff9d29ca8938a876a55650" - integrity sha512-W5SMy8/2RAsC9uMOV9VTwnUkp+8N3BZz6qef6jRCIxOVrVxRBiX2btvpaKrEnPU4nchnc1bCfmMDkEtCRzJUiw== - dependencies: - tokenizr "1.5.7" + graphql-playground-html "^1.6.29" graphql-request@^1.8.2: version "1.8.2" @@ -12906,10 +12434,10 @@ graphql-ws@^4.1.0: resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.3.2.tgz#c58b03acc3bd5d4a92a6e9f729d29ba5e90d46a3" integrity sha512-jsW6eOlko7fJek1iaSGQFj97AWuhexL9A3PuxYtyke/VlMdbSFzmDR4PlPPCTBBskRg6tNRb5RTbBVSd2T60JQ== -graphql@^15.4.0, graphql@^15.5.1, graphql@^15.5.2: - version "15.5.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.2.tgz#efa19f8f2bf1a48eb7d5c85bf17e144ba8bb0480" - integrity sha512-dZjLPWNQqYv0dqV2RNbiFed0LtSp6yd4jchsDGnuhDKa9OQHJYCfovaOEvY91w9gqbYO7Se9LKDTl3xxYva/3w== +graphql@^15.4.0, graphql@^15.5.1, graphql@^15.5.2, graphql@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.1.tgz#9125bdf057553525da251e19e96dab3d3855ddfc" + integrity sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw== gray-matter@^2.1.0: version "2.1.1" @@ -13019,12 +12547,6 @@ has-bigints@^1.0.1: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - dependencies: - isarray "2.0.1" - has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" @@ -13059,6 +12581,13 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -13101,10 +12630,10 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" -hasha@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" - integrity sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw== +hasha@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== dependencies: is-stream "^2.0.0" type-fest "^0.8.0" @@ -13275,11 +12804,6 @@ hicat@^0.8.0: highlight.js "^10.4.1" minimist "^1.2.5" -highlight-words-core@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa" - integrity sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg== - highlight.js@^10.4.1: version "10.5.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" @@ -13289,17 +12813,12 @@ highlight.js@^9.15.5: version "9.15.6" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.6.tgz#72d4d8d779ec066af9a17cb14360c3def0aa57c4" -history@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== +history@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/history/-/history-5.0.1.tgz#de35025ed08bce0db62364b47ebbf9d97b5eb06a" + integrity sha512-5qC/tFUKfVci5kzgRxZxN5Mf1CV8NmJx9ByaPX0YTLx5Vz3Svh7NYp6eA4CpDq4iA9D0C1t8BNIfvQIrUI3mVw== dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" + "@babel/runtime" "^7.7.6" hjson@^3.2.2: version "3.2.2" @@ -13311,7 +12830,7 @@ hoek@6.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== -hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -13337,10 +12856,10 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== -hosted-git-info@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.6.tgz#761da6d68c559238164f3f3078842ef9e8ae1607" - integrity sha512-VRvqVD5T6t9HdmNDWTwbi8H/EC722MemAhOSP5QvYAXpDAY0Nhu2I/i+bXsktu4sU5LVHSh/wmXtVU8bDtjedQ== +hosted-git-info@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== dependencies: lru-cache "^6.0.0" @@ -13417,16 +12936,6 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" -html-to-react@^1.3.4: - version "1.4.3" - resolved "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.3.tgz#1430a1cb581ef29533892ec70a2fdc4554b17ffd" - integrity sha512-txe09A3vxW8yEZGJXJ1is5gGDfBEVACmZDSgwDyH5EsfRdOubBwBCg63ZThZP0xBn0UE4FyvMXZXmohusCxDcg== - dependencies: - domhandler "^3.0" - htmlparser2 "^4.1.0" - lodash.camelcase "^4.3.0" - ramda "^0.27" - html-void-elements@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.3.tgz#956707dbecd10cf658c92c5d27fee763aa6aa982" @@ -13718,11 +13227,6 @@ iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - ignore-walk@^3.0.1, ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" @@ -13843,10 +13347,6 @@ indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -13868,6 +13368,11 @@ inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -14158,10 +13663,10 @@ is-buffer@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^1.0.10: version "1.2.1" @@ -14335,13 +13840,13 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" + global-dirs "^3.0.0" + is-path-inside "^3.0.2" is-interactive@^1.0.0: version "1.0.0" @@ -14394,11 +13899,6 @@ is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" @@ -14529,13 +14029,13 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== +is-regex@^1.0.4, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" + has-tostringtag "^1.0.0" is-regexp@^1.0.0: version "1.0.0" @@ -14572,6 +14072,11 @@ is-root@2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + is-ssh@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.0.tgz#ebea1169a2614da392a63740366c3ce049d8dff6" @@ -14587,10 +14092,12 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-subset@^0.1.1: version "0.1.1" @@ -14647,6 +14154,11 @@ is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-uuid@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-uuid/-/is-uuid-1.0.2.tgz#ad1898ddf154947c25c8e54966f48604e9caecc4" + integrity sha1-rRiY3fFUlHwlyOVJZvSGBOnK7MQ= + is-valid-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" @@ -14657,6 +14169,13 @@ is-valid-path@^0.1.1: dependencies: is-invalid-path "^0.1.0" +is-weakref@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + dependencies: + call-bind "^1.0.0" + is-whitespace-character@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed" @@ -14693,14 +14212,6 @@ isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - -isarray@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" - isemail@3.x.x: version "3.2.0" resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" @@ -15745,10 +15256,10 @@ jest-worker@^26.2.1, jest-worker@^26.3.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.2: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== +jest-worker@^27.0.6: + version "27.2.5" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.5.tgz#ed42865661959488aa020e8a325df010597c36d4" + integrity sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -15791,7 +15302,7 @@ joi@^14.3.1: isemail "3.x.x" topo "3.x.x" -joi@^17.2.1, joi@^17.4.0, joi@^17.4.2: +joi@^17.4.2: version "17.4.2" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.2.tgz#02f4eb5cf88e515e614830239379dcbbe28ce7f7" integrity sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw== @@ -16184,10 +15695,10 @@ katex@^0.12.0: dependencies: commander "^2.19.0" -katex@^0.13.17: - version "0.13.17" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.13.17.tgz#1f1e3d6e0f29e6bc685829d86452ea31b0c68255" - integrity sha512-Mkxj7uXs9xBRBIWGhcvf0K2c1DAbPqETjEebjur04fqJ4UXfj1ky9vrgkNJIwJJ4J4owS69vAqgBkKyr4Lh0eQ== +katex@^0.13.18: + version "0.13.18" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.13.18.tgz#ba89e8e4b70cc2325e25e019a62b9fe71e5c2931" + integrity sha512-a3dC4NSVSDU3O1WZbTnOiA8rVNJ2lSiomOl0kmckCIGObccIHXof7gAseIY0o1gjEspe+34ZeSEX2D1ChFKIvA== dependencies: commander "^6.0.0" @@ -16285,7 +15796,7 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -latest-version@5.1.0, latest-version@^5.0.0, latest-version@^5.1.0: +latest-version@5.1.0, latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== @@ -16633,10 +16144,6 @@ load-plugin@^3.0.0: libnpmconfig "^1.0.0" resolve-from "^5.0.0" -load-script@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -16716,11 +16223,6 @@ lockfile@1.0.4, lockfile@^1.0, lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash-es@^4.17.15, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - lodash-webpack-plugin@^0.11.6: version "0.11.6" resolved "https://registry.yarnpkg.com/lodash-webpack-plugin/-/lodash-webpack-plugin-0.11.6.tgz#8204c6b78beb62ce5211217dfe783c21557ecd33" @@ -16849,11 +16351,6 @@ lodash.isboolean@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" -lodash.isempty@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" - integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -16955,11 +16452,6 @@ lodash.reject@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= -lodash.sample@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d" - integrity sha1-XkKRsMdT+hq+sKq4+ynfG2bwf20= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -17013,7 +16505,7 @@ lodash.without@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@4.17.21, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -17041,7 +16533,7 @@ longest-streak@^2.0.0, longest-streak@^2.0.1: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: @@ -17292,11 +16784,6 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" -markdown-to-jsx@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.0.1.tgz#7b3be496f30701f09e9308c4efabf0177ecd9251" - integrity sha512-0agsmQtnoAzGt2fO8jgoFL5wvDUbpjoIfQffErQZmP66BxaWMBGifsAo0RRuye+2Ydlp7csX6X6HpF2xaL6J1w== - markdown-toc@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" @@ -17343,13 +16830,6 @@ md5-file@^5.0.0: resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-5.0.0.tgz#e519f631feca9c39e7f9ea1780b63c4745012e20" integrity sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw== -mdast-add-list-metadata@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" - integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== - dependencies: - unist-util-visit-parents "1.1.2" - mdast-comment-marker@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d" @@ -17627,10 +17107,10 @@ mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" -meant@^1.0.1, meant@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.2.tgz#5d0c78310a3d8ae1408a16be0fe0bd42a969f560" - integrity sha512-KN+1uowN/NK+sT/Lzx7WSGIj2u+3xe5n2LbwObfjOhPZiA+cCfCm6idVl0RkEfjThkw5XJ96CyRcanq6GmKtUg== +meant@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz#67769af9de1d158773e928ae82c456114903554c" + integrity sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw== media-typer@0.3.0: version "0.3.0" @@ -17644,10 +17124,10 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^1.1.0" -mem@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.0.0.tgz#b5e4b6d2d241c6296da05436173b4d0c7ae1f9ac" - integrity sha512-qrcJOe6uD+EW8Wrci1Vdiua/15Xw3n/QnaNXE7varnB6InxSk7nu3/i5jfy3S6kWxr8WYJ6R1o0afMUtvorTsA== +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== dependencies: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" @@ -17657,12 +17137,12 @@ memfs-or-file-map-to-github-branch@^1.1.0: resolved "https://registry.yarnpkg.com/memfs-or-file-map-to-github-branch/-/memfs-or-file-map-to-github-branch-1.1.2.tgz#9d46c02481b7eca8e5ee8a94f170b7e0138cad67" integrity sha512-D2JKK2DTuVYQqquBWco3K6UfSVyVwmd58dgNqh+TgxHOZdTmR8I130gjMbVCkemDl/EzqDA62417cJxKL3/FFA== -memfs@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.0.tgz#f9438e622b5acd1daa8a4ae160c496fdd1325b26" - integrity sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A== +memfs@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.3.0.tgz#4da2d1fc40a04b170a56622c7164c6be2c4cbef2" + integrity sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg== dependencies: - fs-monkey "1.0.1" + fs-monkey "1.0.3" memoizee@^0.4.15: version "0.4.15" @@ -17955,10 +17435,10 @@ micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.45.0, "mime-db@>= 1.40.0 < 2": - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@1.50.0, "mime-db@>= 1.40.0 < 2": + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== mime-db@~1.25.0: version "1.25.0" @@ -17970,12 +17450,12 @@ mime-types@2.1.13: dependencies: mime-db "~1.25.0" -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: - mime-db "1.45.0" + mime-db "1.50.0" mime@1.6.0, mime@^1.3.4, mime@^1.4.1: version "1.6.0" @@ -18124,7 +17604,7 @@ mkdirp@*, mkdirp@^1.0.4, mkdirp@~1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@0.5.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -18162,10 +17642,10 @@ module-deps-sortable@^5.0.1: through2 "^2.0.0" xtend "^4.0.0" -moment@^2.19.3, moment@^2.27.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.0.tgz#fcbef955844d91deb55438613ddcec56e86a3425" - integrity sha512-z6IJ5HXYiuxvFTI6eiQ9dm77uE0gyy1yXNApVHqTcnIKfY9tIwEjlzsZ6u1LQXvVgKeTnv9Xm7NDvJ7lso3MtA== +moment@^2.19.3, moment@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== mongodb@^3.6.10: version "3.6.10" @@ -18250,15 +17730,15 @@ msw@^0.35.0: type-fest "^1.2.2" yargs "^17.0.1" -multer@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" - integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== +multer@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.3.tgz#4db352d6992e028ac0eacf7be45c6efd0264297b" + integrity sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg== dependencies: append-field "^1.0.0" busboy "^0.2.11" concat-stream "^1.5.2" - mkdirp "^0.5.1" + mkdirp "^0.5.4" object-assign "^4.1.1" on-finished "^2.3.0" type-is "^1.6.4" @@ -18305,15 +17785,10 @@ nan@^2.10.0, nan@^2.14.2, nan@^2.9.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoclone@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" - integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== - -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== +nanoid@^3.1.28: + version "3.1.29" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.29.tgz#214fb2d7a33e1a5bef4757b779dfaeb6a4e5aeb4" + integrity sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg== nanomatch@^1.2.9: version "1.2.13" @@ -18351,7 +17826,7 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -ncp@^2.0.0, ncp@~2.0.0: +ncp@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" @@ -18483,10 +17958,10 @@ node-abi@^2.21.0: dependencies: semver "^5.4.1" -node-addon-api@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.0.0.tgz#ac128f43eff7fac4b5f5ef2f39d6d7c2709efead" - integrity sha512-ALmRVBFzfwldBfk3SbKfl6+PVMXiCPKZBEfsJqB/EjXAMAI+MfFrEHR+GMRBuI162DihZ1QjEZ8ieYKuRCJ8Hg== +node-addon-api@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87" + integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q== node-cleanup@^2.1.2: version "2.1.2" @@ -18528,10 +18003,12 @@ node-fetch@2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0" - integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA== +node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" + integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== + dependencies: + whatwg-url "^5.0.0" node-gyp-build@^4.2.3: version "4.2.3" @@ -18638,26 +18115,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.61, node-releases@^1.1.75: - version "1.1.75" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" - integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== - -nodemon@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.12.tgz#5dae4e162b617b91f1873b3bfea215dd71e144d5" - integrity sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA== - dependencies: - chokidar "^3.2.2" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.3" - update-notifier "^4.1.0" +node-releases@^1.1.61, node-releases@^1.1.77: + version "1.1.77" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" + integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== noms@0.0.0: version "0.0.0" @@ -18679,13 +18140,6 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -18733,11 +18187,6 @@ normalize-url@^6.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize.css@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" - integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== - normalizeurl@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalizeurl/-/normalizeurl-1.0.0.tgz#4b1a458cd0c7d0856436f69c6b51047ab6855317" @@ -18933,14 +18382,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-fit-images@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz#6c299d38fdf207746e5d2d46c2877f6f25d15b52" - -object-inspect@^1.10.3, object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-inspect@~1.4.0: version "1.4.1" @@ -18954,15 +18399,11 @@ object-is@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~1.0.0: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - object-path@0.11.5: version "0.11.5" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" @@ -19020,6 +18461,14 @@ object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0 define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +object.hasown@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.0.0.tgz#bdbade33cfacfb25d7f26ae2b6cb870bf99905c2" + integrity sha512-qYMF2CLIjxxLGleeM0jrcB4kiv3loGVAjKQKvH8pSU/i2VcRRvUNmxbD+nEMmrXRfORhuVJuH8OtSYCZoue3zA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.1" + object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" @@ -19107,10 +18556,10 @@ opencollective-postinstall@^2.0.0, opencollective-postinstall@^2.0.2: resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== -opentracing@^0.14.4, opentracing@~0.14.3: - version "0.14.4" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" - integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== +opentracing@^0.14.5, opentracing@~0.14.3: + version "0.14.5" + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.5.tgz#891fa92cd90a24e64f99bc964370227310926c85" + integrity sha512-XLKtEfHxqrWyF1fzxznsv78w3csW41ucHnjiKnfzZLD5FN8UBDZZL1i4q0FR29zjxXhm+2Hop+5Vr/b8tKIvEg== optimism@^0.15.0: version "0.15.0" @@ -19716,11 +19165,6 @@ patch-console@^1.0.0: resolved "https://registry.yarnpkg.com/patch-console/-/patch-console-1.0.0.tgz#19b9f028713feb8a3c023702a8cc8cb9f7466f9d" integrity sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA== -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" @@ -19864,6 +19308,11 @@ physical-cpu-count@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -20104,14 +19553,6 @@ postcss-flexbugs-fixes@^5.0.2: resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== -postcss-js@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" - integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw== - dependencies: - camelcase-css "^2.0.1" - postcss "^8.1.6" - postcss-load-config@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.0.1.tgz#d214bf9cfec1608ffaf0f4161b3ba20664ab64b9" @@ -20131,10 +19572,10 @@ postcss-loader@^4.3.0: schema-utils "^3.0.0" semver "^7.3.4" -postcss-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.0.0.tgz#bea95363dcb550d72ceb612ce44663356b7782d7" - integrity sha512-bOvyWP5VHCJbThbv7wrBwCBc3DsVpyCfd+k/wHOL3wTAMMHmSSfNts90EADf8bHa6I810ird1JBEKmBRgJu3cg== +postcss-loader@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.3.0.tgz#1657f869e48d4fdb018a40771c235e499ee26244" + integrity sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" @@ -20665,13 +20106,13 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.22: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^8.1.6, postcss@^8.2.1, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.2.8, postcss@^8.2.9, postcss@^8.3.5: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== +postcss@^8.2.1, postcss@^8.2.15, postcss@^8.2.9, postcss@^8.3.9: + version "8.3.9" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.9.tgz#98754caa06c4ee9eb59cc48bd073bb6bd3437c31" + integrity sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw== dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" + nanoid "^3.1.28" + picocolors "^0.2.1" source-map-js "^0.6.2" potrace@^2.1.8: @@ -20734,10 +20175,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.3.2, prettier@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +prettier@2.4.1, prettier@^2.3.2: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" + integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== pretty-bytes@^3.0.0: version "3.0.1" @@ -20755,12 +20196,13 @@ pretty-bytes@^5.1.0, pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b" integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA== -pretty-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" +pretty-error@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - renderkid "^2.0.1" - utila "~0.4" + lodash "^4.17.20" + renderkid "^2.0.4" pretty-error@^3.0.4: version "3.0.4" @@ -20792,7 +20234,7 @@ pretty-format@^22.4.0, pretty-format@^22.4.3: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.3.0, pretty-format@^24.9.0: +pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== @@ -20802,7 +20244,7 @@ pretty-format@^24.3.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0, pretty-format@^25.5.0: +pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -20822,6 +20264,16 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" +pretty-format@^27.0.2: + version "27.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" + integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== + dependencies: + "@jest/types" "^27.1.1" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + prettyjson@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" @@ -20840,11 +20292,6 @@ printj@~1.1.0, printj@~1.1.2: version "1.1.2" resolved "http://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" -prism-react-renderer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" - integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== - prismjs@^1.21.0, prismjs@^1.23.0: version "1.23.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" @@ -20914,7 +20361,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prompts@2.4.0, prompts@^2.0.1, prompts@^2.3.2: +prompts@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== @@ -20922,13 +20369,21 @@ prompts@2.4.0, prompts@^2.0.1, prompts@^2.3.2: kleur "^3.0.3" sisteransi "^1.0.5" +prompts@^2.0.1, prompts@^2.4.1, prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" dependencies: read "1" -prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" dependencies: @@ -20950,11 +20405,6 @@ proper-lockfile@^4.1.2: retry "^0.12.0" signal-exit "^3.0.2" -property-expr@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" - integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== - property-information@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" @@ -21015,11 +20465,6 @@ psl@^1.1.24, psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -pstree.remy@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - public-ip@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/public-ip/-/public-ip-4.0.1.tgz#588ee2f6a889d6703fb8c41521e095f2773d6427" @@ -21063,7 +20508,7 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -pupa@^2.0.1, pupa@^2.1.1: +pupa@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== @@ -21113,7 +20558,7 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.1.0, qs@^6.4.0, qs@^6.5.1, qs@^6.5.2, qs@^6.9.4: +qs@^6.1.0, qs@^6.4.0, qs@^6.5.2, qs@^6.9.4: version "6.10.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== @@ -21124,7 +20569,7 @@ qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" -query-string@^6.13.1, query-string@^6.13.3, query-string@^6.13.7, query-string@^6.14.1, query-string@^6.8.2: +query-string@^6.13.3, query-string@^6.13.7, query-string@^6.14.1, query-string@^6.8.2: version "6.14.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== @@ -21134,10 +20579,6 @@ query-string@^6.13.1, query-string@^6.13.3, query-string@^6.13.7, query-string@^ split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -21174,11 +20615,6 @@ quote-stream@^1.0.1, quote-stream@~1.0.2: minimist "^1.1.3" through2 "^2.0.0" -ramda@^0.27: - version "0.27.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" - integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== - randomatic@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" @@ -21243,17 +20679,10 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-clientside-effect@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" - integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== - dependencies: - "@babel/runtime" "^7.0.0" - -react-dev-utils@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.3.tgz#b61ed499c7d74f447d4faddcc547e5e671e97c08" - integrity sha512-4lEA5gF4OHrcJLMUV1t+4XbNDiJbsAWCH5Z2uqlTqW6dD7Cf5nEASkeXrCI/Mz83sI2o527oBIFKVMXtRf1Vtg== +react-dev-utils@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== dependencies: "@babel/code-frame" "7.10.4" address "1.1.2" @@ -21314,80 +20743,11 @@ react-dom@^16.12.0: prop-types "^15.6.2" scheduler "^0.18.0" -react-error-boundary@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b" - integrity sha512-A+F9HHy9fvt9t8SNDlonq01prnU8AmkjvGKV4kk8seB9kU3xMEO8J/PQlLVmoOIDODl5U2kufSBs4vrWIqhsAA== - dependencies: - "@babel/runtime" "^7.12.5" - react-error-overlay@^6.0.9: version "6.0.9" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -react-fast-compare@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" - integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== - -react-fast-compare@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" - integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== - -react-focus-lock@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.3.1.tgz#9d5d85899773609c7eefa4fc54fff6a0f5f2fc47" - integrity sha512-j15cWLPzH0gOmRrUg01C09Peu8qbcdVqr6Bjyfxj80cNZmH+idk/bNBYEDSmkAtwkXI+xEYWSmHYqtaQhZ8iUQ== - dependencies: - "@babel/runtime" "^7.0.0" - focus-lock "^0.6.7" - prop-types "^15.6.2" - react-clientside-effect "^1.2.2" - use-callback-ref "^1.2.1" - use-sidecar "^1.0.1" - -react-helmet@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" - integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== - dependencies: - object-assign "^4.1.1" - prop-types "^15.7.2" - react-fast-compare "^3.1.1" - react-side-effect "^2.1.0" - -react-icons@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-3.11.0.tgz#2ca2903dfab8268ca18ebd8cc2e879921ec3b254" - integrity sha512-JRgiI/vdF6uyBgyZhVyYJUZAop95Sy4XDe/jmT3R/bKliFWpO/uZBwvSjWEdxwzec7SYbEPNPck0Kff2tUGM2Q== - dependencies: - camelcase "^5.0.0" - -react-instantsearch-core@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-core/-/react-instantsearch-core-5.7.0.tgz#6979ec419d2711033f6c83181de6cae9e1f064c2" - integrity sha512-fjexlv+hR8OyZraAmjwM+GmiVcJFzLUnufIKPMLO7/L4Mg5h0pETSXNBT22cCXTnda6XML//+GqQmWJFf+PBrA== - dependencies: - "@babel/runtime" "^7.1.2" - algoliasearch-helper "^2.26.0" - lodash "^4.17.4" - prop-types "^15.5.10" - -react-instantsearch-dom@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-dom/-/react-instantsearch-dom-5.7.0.tgz#5a9b0cfb461c08a349a5fdc5d1cff50b8f5fcf56" - integrity sha512-FwFZZXwgaYtLrXD9KJNlrPVkfw8JOqVgpDBvra547udF4zbacZUuX7/qTyMHjVW/Lz59t5T25vCGLzmQiO89YA== - dependencies: - "@babel/runtime" "^7.1.2" - algoliasearch "^3.27.1" - algoliasearch-helper "^2.26.0" - classnames "^2.2.5" - lodash "^4.17.4" - prop-types "^15.5.10" - react-instantsearch-core "^5.7.0" - react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -21402,20 +20762,6 @@ react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" -react-markdown@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-4.3.1.tgz#39f0633b94a027445b86c9811142d05381300f2f" - integrity sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw== - dependencies: - html-to-react "^1.3.4" - mdast-add-list-metadata "1.0.1" - prop-types "^15.7.2" - react-is "^16.8.6" - remark-parse "^5.0.0" - unified "^6.1.5" - unist-util-visit "^1.3.0" - xtend "^4.0.1" - react-reconciler@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd" @@ -21441,39 +20787,6 @@ react-refresh@^0.9.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== -react-remove-scroll-bar@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.1.0.tgz#edafe9b42a42c0dad9bdd10712772a1f9a39d7b9" - integrity sha512-5X5Y5YIPjIPrAoMJxf6Pfa7RLNGCgwZ95TdnVPgPuMftRfO8DaC7F4KP1b5eiO8hHbe7u+wZNDbYN5WUTpv7+g== - dependencies: - react-style-singleton "^2.1.0" - tslib "^1.0.0" - -react-remove-scroll@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.3.0.tgz#3af06fe2f7130500704b676cdef94452c08fe593" - integrity sha512-UqVimLeAe+5EHXKfsca081hAkzg3WuDmoT9cayjBegd6UZVhlTEchleNp9J4TMGkb/ftLve7ARB5Wph+HJ7A5g== - dependencies: - react-remove-scroll-bar "^2.1.0" - react-style-singleton "^2.1.0" - tslib "^1.0.0" - use-callback-ref "^1.2.3" - use-sidecar "^1.0.1" - -react-side-effect@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" - integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== - -react-style-singleton@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.0.tgz#7396885332e9729957f9df51f08cadbfc164e1c4" - integrity sha512-DH4ED+YABC1dhvSDYGGreAHmfuTXj6+ezT3CmHoqIEfxNgEYfIMoOtmbRp42JsUst3IPqBTDL+8r4TF7EWhIHw== - dependencies: - get-nonce "^1.0.0" - invariant "^2.2.4" - tslib "^1.0.0" - react-test-renderer@^16.13.1, react-test-renderer@^16.14.0: version "16.14.0" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" @@ -21773,17 +21086,11 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reduce@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.1.tgz#14fa2e5ff1fc560703a020cbb5fbaab691565804" - dependencies: - object-keys "~1.0.0" - redux-thunk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" -redux@^4.0.5: +redux@4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== @@ -21791,16 +21098,12 @@ redux@^4.0.5: loose-envify "^1.4.0" symbol-observable "^1.2.0" -reflexbox@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/reflexbox/-/reflexbox-4.0.6.tgz#fc756d2cc1ca493baf9b96bb27dd640ad8154cf1" - integrity sha512-UNUL4YoJEXAPjRKHuty1tuOk+LV1nDJ2KYViDcH7lYm5yU3AQ+EKNXxPU3E14bQNK/pE09b1hYl+ZKdA94tWLQ== +redux@^4.0.5: + version "4.1.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.1.tgz#76f1c439bb42043f985fbd9bf21990e60bd67f47" + integrity sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw== dependencies: - "@emotion/core" "^10.0.0" - "@emotion/styled" "^10.0.0" - "@styled-system/css" "^5.0.0" - "@styled-system/should-forward-prop" "^5.0.0" - styled-system "^5.0.0" + "@babel/runtime" "^7.9.2" regenerate-unicode-properties@^8.2.0: version "8.2.0" @@ -21956,10 +21259,10 @@ remark-cli@^9.0.0: remark "^13.0.0" unified-args "^8.0.0" -remark-custom-blocks@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/remark-custom-blocks/-/remark-custom-blocks-2.5.0.tgz#57cfb814b2c867fbd45a2e331582a1e402e0c4e5" - integrity sha512-FcCd5Boqn4XBXnlIvpy/9jyVTOZRg7unXv8m14FM4EM0qXLeSvxSReRfuoWmFWZwi0+MOf8bqEwJIBut0NYdJw== +remark-custom-blocks@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/remark-custom-blocks/-/remark-custom-blocks-2.5.1.tgz#15c2067a9fc2afe71809a21a7719b45c12a7acec" + integrity sha512-4S4oHsBVvTteNDkqN7ZgdSZPSAwwMsPQkWRbsnj+a522EvU6qp5hQiCW0bBT3NQTl1iChLYe4v7eaqcbpiVfeA== dependencies: space-separated-tokens "^1.1.5" @@ -22914,16 +22217,11 @@ remove-bom-stream@^1.2.0: safe-buffer "^5.1.0" through2 "^2.0.3" -remove-markdown@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/remove-markdown/-/remove-markdown-0.3.0.tgz#5e4b667493a93579728f3d52ecc1db9ca505dc98" - integrity sha1-XktmdJOpNXlyjz1S7MHbnKUF3Jg= - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" -renderkid@^2.0.1, renderkid@^2.0.6: +renderkid@^2.0.4, renderkid@^2.0.6: version "2.0.7" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== @@ -23107,11 +22405,6 @@ resolve-options@^1.1.0: dependencies: value-or-function "^3.0.0" -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - resolve-url-loader@^3.1.2: version "3.1.4" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz#3c16caebe0b9faea9c7cc252fa49d2353c412320" @@ -23684,7 +22977,7 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0, schema-utils@^3.0.0, schema-utils@^3.1.0: +schema-utils@^3.0, schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -23727,7 +23020,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -23870,14 +23163,14 @@ shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" -sharp@^0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.0.tgz#1fa302bd5f60292138c823aa0905609f64d710ba" - integrity sha512-mdN1Up0eN+SwyForPls59dWO0nx64J1XRQYy5ZiKSADAccGYCB10UAGJHSVG9VObzJdhHqrVJzQcq6gx8USyoA== +sharp@^0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.1.tgz#f60b50f24f399464a24187c86bd2da41aae50b85" + integrity sha512-DpgdAny9TuS+oWCQ7MRS8XyY9x6q1+yW3a5wNx0J3HrGuB/Jot/8WcT+lElHY9iJu2pwtegSGxqMaqFiMhs4rQ== dependencies: color "^4.0.1" detect-libc "^1.0.3" - node-addon-api "^4.0.0" + node-addon-api "^4.1.0" prebuild-install "^6.1.4" semver "^7.3.5" simple-get "^3.1.0" @@ -23943,10 +23236,10 @@ sift@^7.0.1: resolved "https://registry.yarnpkg.com/sift/-/sift-7.0.1.tgz#47d62c50b159d316f1372f8b53f9c10cd21a4b08" integrity sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g== -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== simple-concat@^1.0.0: version "1.0.0" @@ -24037,10 +23330,10 @@ slide@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" -slugify@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.4.tgz#2f032ffa52b1e1ca2a27737c1ce47baae3d0883a" - integrity sha512-N2+9NJ8JzfRMh6PQLrBeDEnVDQZSytE/W4BTC4fNNPmO90Uu58uNwSlIJSs+lmPgWsaAF79WLhVPe5tuy7spjw== +slugify@^1.4.4, slugify@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.1.tgz#a5fcaef29f4e57c6e932ce7044b6ffd9cf81b641" + integrity sha512-5ofqMTbetNhxlzjYYLBaZFQd6oiTuSkQlyfPEFIMwgUABlZQ0hbk5xIV9Ydd5jghWeRoO7GkiJliUvTpLOjNRA== smart-buffer@^4.1.0: version "4.1.0" @@ -24085,27 +23378,10 @@ socket.io-adapter@~2.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527" integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== -socket.io-client@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-client@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-3.1.1.tgz#43dfc3feddbb675b274a724f685d6b6af319b3e3" - integrity sha512-BLgIuCjI7Sf3mDHunKddX9zKR/pbkP7IACM3sJS3jha+zJ6/pGKRV6Fz5XSBHCfUs9YzT8kYIqNwOOuFNLtnYA== +socket.io-client@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-3.1.3.tgz#57ddcefea58cfab71f0e94c21124de8e3c5aa3e2" + integrity sha512-4sIGOGOmCg3AOgGi7EEr6ZkTZRkrXwub70bBB/F0JSkMOUFpA77WsL87o34DffQQ31PkbMUIadGOk+3tx1KGbw== dependencies: "@types/component-emitter" "^1.2.10" backo2 "~1.0.2" @@ -24115,15 +23391,6 @@ socket.io-client@3.1.1: parseuri "0.0.6" socket.io-parser "~4.0.4" -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - socket.io-parser@~4.0.3, socket.io-parser@~4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" @@ -24133,14 +23400,14 @@ socket.io-parser@~4.0.3, socket.io-parser@~4.0.4: component-emitter "~1.3.0" debug "~4.3.1" -socket.io@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.1.tgz#905e3d4a3b37d8e7970e67a4a6eb81110a5778ba" - integrity sha512-7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA== +socket.io@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.2.tgz#06e27caa1c4fc9617547acfbb5da9bc1747da39a" + integrity sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw== dependencies: "@types/cookie" "^0.4.0" "@types/cors" "^2.8.8" - "@types/node" "^14.14.10" + "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "~2.0.0" debug "~4.3.1" @@ -24216,10 +23483,10 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.0, source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@^0.5.0, source-map-support@^0.5.16, source-map-support@^0.5.20, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -24539,18 +23806,6 @@ strict-event-emitter@^0.2.0: dependencies: events "^3.3.0" -strict-ui@^0.2.0-0: - version "0.2.0-0" - resolved "https://registry.yarnpkg.com/strict-ui/-/strict-ui-0.2.0-0.tgz#43d30f0e0e63578032bc6c0675a875854b03fc27" - integrity sha512-IGEtUZyMpPBMvmQkgTx2nAVL/5fSSdlkQHQP4RItGAyVY04sopm3sE/RB86MxOon+QEgQAETzrnG5X7Fs9ukUQ== - dependencies: - "@theme-ui/components" ">= 0.4.0-rc.1" - "@theme-ui/css" ">= 0.4.0-rc.1" - "@types/reflexbox" "^4.0.0" - emotion "^10.0.27" - reflexbox "^4.0.6" - theme-ui ">= 0.4.0-rc.1" - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -24640,16 +23895,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^4.2.2: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -24888,7 +24134,7 @@ style-to-object@0.3.0, style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -styled-system@^5.0.0, styled-system@^5.1.5: +styled-system@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/styled-system/-/styled-system-5.1.5.tgz#e362d73e1dbb5641a2fd749a6eba1263dc85075e" integrity sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A== @@ -25021,7 +24267,7 @@ subscriptions-transport-ws@0.9.18: symbol-observable "^1.0.4" ws "^5.2.0" -subscriptions-transport-ws@^0.9.16, subscriptions-transport-ws@^0.9.18, subscriptions-transport-ws@^0.9.19: +subscriptions-transport-ws@^0.9.16, subscriptions-transport-ws@^0.9.18: version "0.9.19" resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz#10ca32f7e291d5ee8eb728b9c02e43c52606cdcf" integrity sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw== @@ -25056,7 +24302,7 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: @@ -25193,11 +24439,6 @@ sync-request@^3.0.1: http-response-object "^1.0.1" then-request "^2.0.1" -tabbable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-4.0.0.tgz#5bff1d1135df1482cf0f0206434f15eadbeb9261" - integrity sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ== - table@^5.2.3: version "5.4.4" resolved "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz#6e0f88fdae3692793d1077fd172a4667afe986a6" @@ -25330,17 +24571,17 @@ terminal-link@^2.0.0, terminal-link@^2.1.1: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.1.1, terser-webpack-plugin@^5.1.3: - version "5.1.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" - integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== +terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" + integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA== dependencies: - jest-worker "^27.0.2" + jest-worker "^27.0.6" p-limit "^3.1.0" - schema-utils "^3.0.0" + schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.7.0" + terser "^5.7.2" terser@^4.0.0, terser@^4.6.3: version "4.8.0" @@ -25351,14 +24592,14 @@ terser@^4.0.0, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.0.0, terser@^5.3.8, terser@^5.7.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" - integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== +terser@^5.0.0, terser@^5.3.8, terser@^5.7.0, terser@^5.7.2: + version "5.9.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" + integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== dependencies: commander "^2.20.0" source-map "~0.7.2" - source-map-support "~0.5.19" + source-map-support "~0.5.20" test-exclude@^4.2.1: version "4.2.3" @@ -25397,7 +24638,7 @@ text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -theme-ui@0.4.0-rc.14, "theme-ui@>= 0.4.0-rc.1", theme-ui@^0.11.1, theme-ui@^0.2.49: +theme-ui@0.4.0-rc.14: version "0.4.0-rc.14" resolved "https://registry.npmjs.org/theme-ui/-/theme-ui-0.4.0-rc.14.tgz#67856dd8302e621ad55f7687a18d483b506c0706" integrity sha512-ciaGwsv9cRskUAukHSzMHdRXhqpweV8xAsywkE61gBg9msAfeI6MyeOU7HCseK4U9/Ppu3NNJExI32CK4BMDtg== @@ -25520,11 +24761,6 @@ tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - tiny-lr@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" @@ -25541,11 +24777,6 @@ tiny-spin@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-spin/-/tiny-spin-1.0.2.tgz#a30ab6ef3b0b534fef9becc99874b49fb4115d23" integrity sha512-w+LQXNFIrts+pOjuf1/UivYCd4znPiH/c5X8500Qv6n7FpUDaaB5Q1JSuZN3MIj65qQHzoXcKT9QAz3Tg/djFQ== -tiny-warning@^1.0.0, tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - tinycolor2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" @@ -25589,10 +24820,6 @@ to-absolute-glob@^2.0.0: is-absolute "^1.0.0" is-negated-glob "^1.0.0" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -25674,11 +24901,6 @@ token-types@^4.1.1: "@tokenizer/token" "^0.3.0" ieee754 "^1.2.1" -tokenizr@1.5.7: - version "1.5.7" - resolved "https://registry.yarnpkg.com/tokenizr/-/tokenizr-1.5.7.tgz#80702775ac9d61899bd3c60e4c7ac36b9845bcbf" - integrity sha512-w6qS6F5PNtY30DxoRD4a7nC7zOlPM2SlpQ4zLhOmqBaB1VCZrlV82bLpc/lKNOdNmrwIwcsJLDcjEJ8f7UG6Mg== - toml@^2.3.2, toml@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" @@ -25691,17 +24913,6 @@ topo@3.x.x: dependencies: hoek "6.x.x" -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -25747,6 +24958,11 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -25857,7 +25073,7 @@ tslib@2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== -tslib@^1.0.0, tslib@^1.10.0, tslib@^1.11.2, tslib@^1.6.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.6.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== @@ -25999,10 +25215,10 @@ typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^4.1.3, typescript@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^4.1.3, typescript@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" + integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== typography-normalize@^0.16.19: version "0.16.19" @@ -26064,13 +25280,6 @@ unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" -undefsafe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" - integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== - dependencies: - debug "^2.2.0" - underscore.string@^3.3.5: version "3.3.5" resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.5.tgz#fc2ad255b8bd309e239cbc5816fd23a9b7ea4023" @@ -26211,7 +25420,7 @@ unified@9.2.0: trough "^1.0.0" vfile "^4.0.0" -unified@^6.0.0, unified@^6.1.5: +unified@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" dependencies: @@ -26457,11 +25666,6 @@ unist-util-visit-children@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.2.tgz#bd78b53db9644b9c339ac502854f15471f964f5b" -unist-util-visit-parents@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" - integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== - unist-util-visit-parents@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" @@ -26583,42 +25787,23 @@ update-notifier@^2.3.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" -update-notifier@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -update-notifier@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.0.1.tgz#1f92d45fb1f70b9e33880a72dd262bc12d22c20d" - integrity sha512-BuVpRdlwxeIOvmc32AGYvO1KVdPlsmqSh8KDDBxS6kDE5VR7R8OMP1d8MdhaVBvxl4H3551k9akXr0Y1iIB2Wg== +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== dependencies: - boxen "^4.2.0" + boxen "^5.0.0" chalk "^4.1.0" configstore "^5.0.1" has-yarn "^2.1.0" import-lazy "^2.1.0" is-ci "^2.0.0" - is-installed-globally "^0.3.2" + is-installed-globally "^0.4.0" is-npm "^5.0.0" is-yarn-global "^0.3.0" latest-version "^5.1.0" pupa "^2.1.1" - semver "^7.3.2" + semver "^7.3.4" semver-diff "^3.1.1" xdg-basedir "^4.0.0" @@ -26693,7 +25878,7 @@ urltools@^0.4.1: underscore "^1.8.3" urijs "^1.18.2" -urql@^1.11.6, urql@^1.9.7: +urql@^1.9.7: version "1.11.6" resolved "https://registry.yarnpkg.com/urql/-/urql-1.11.6.tgz#6b6b60093fc9ef142915938a8dbd3cc84e2dd195" integrity sha512-PpXzZiCKStcg52M9hJZTbcU5wIvQlYqu0vVofdaEv144JbvOhKIwzcX0+qkc3yJMyDm2isYo4D1vQQY+meRVqg== @@ -26701,19 +25886,6 @@ urql@^1.11.6, urql@^1.9.7: "@urql/core" "^1.16.0" wonka "^4.0.14" -use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.3.tgz#9f939dfb5740807bbf9dd79cdd4e99d27e827756" - integrity sha512-DPBPh1i2adCZoIArRlTuKRy7yue7QogtEnfv0AKrWsY+GA+4EKe37zhRDouNnyWMoNQFYZZRF+2dLHsWE4YvJA== - -use-sidecar@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.0.2.tgz#e72f582a75842f7de4ef8becd6235a4720ad8af6" - integrity sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA== - dependencies: - detect-node "^2.0.4" - tslib "^1.9.3" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -26763,15 +25935,15 @@ uuid@3.4.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0: +uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== +v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0, v8-compile-cache@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== v8-to-istanbul@^7.0.0, v8-to-istanbul@^7.1.0: version "7.1.2" @@ -26811,11 +25983,6 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - value-or-function@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" @@ -27062,11 +26229,6 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -wait-for-expect@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-3.0.2.tgz#d2f14b2f7b778c9b82144109c8fa89ceaadaa463" - integrity sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag== - wait-on@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-4.0.2.tgz#6ee9b5751b4e0329630abbb5fdba787802b32914" @@ -27085,13 +26247,6 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -warning@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - watchpack@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" @@ -27127,6 +26282,11 @@ web-vitals@^1.1.2: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.2.tgz#06535308168986096239aa84716e68b4c6ae6d1c" integrity sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -27173,22 +26333,22 @@ webpack-cli@^4.8.0: v8-compile-cache "^2.2.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" - integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== +webpack-dev-middleware@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" + integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== dependencies: - colorette "^1.2.1" - mem "^8.0.0" - memfs "^3.2.0" - mime-types "^2.1.28" + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.30" range-parser "^1.2.1" schema-utils "^3.0.0" -webpack-merge@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" - integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== +webpack-merge@^5.7.3, webpack-merge@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" @@ -27226,10 +26386,10 @@ webpack-virtual-modules@^0.3.2: dependencies: debug "^3.0.0" -webpack@^5.35.0, webpack@^5.51.1: - version "5.51.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.1.tgz#41bebf38dccab9a89487b16dbe95c22e147aac57" - integrity sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A== +webpack@^5.51.1, webpack@^5.58.1: + version "5.58.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.58.1.tgz#df8aad72b617a9d0db8c89d4f410784ee93320d7" + integrity sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -27240,8 +26400,8 @@ webpack@^5.35.0, webpack@^5.51.1: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -27300,6 +26460,14 @@ whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^6.4.1, whatwg-url@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" @@ -27732,14 +26900,14 @@ xhr@^2.0.1: parse-headers "^2.0.0" xtend "^4.0.0" -xlsx@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.17.0.tgz#028176a0140967dcee1817d221678461e47481c8" - integrity sha512-bZ36FSACiAyjoldey1+7it50PMlDp1pcAJrZKcVZHzKd8BC/z6TQ/QAN8onuqcepifqSznR6uKnjPhaGt6ig9A== +xlsx@^0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.17.1.tgz#2557400d594998301831ef60b08ddde80f2842ee" + integrity sha512-SrvK+kMEjiVIKYyJSjSIJwzm2cZn8nQWVh708g7O+pTsmgjoa+uYNLEUn7jmwQdMI/ffCHcY5yEvwBXssBwpRA== dependencies: adler-32 "~1.2.0" cfb "^1.1.4" - codepage "~1.14.0" + codepage "~1.15.0" commander "~2.17.1" crc-32 "~1.2.0" exit-on-epipe "~1.0.1" @@ -27803,10 +26971,10 @@ xss@^1.0.6: commander "^2.20.3" cssfilter "0.0.10" -xstate@^4.11.0, xstate@^4.14.0, xstate@^4.9.1: - version "4.14.0" - resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.14.0.tgz#dd9f3f0af4acd04a01b3ad60d3d4c66c51ac1b5d" - integrity sha512-nz+T5rlPl0Vu1L9NZdI7JYVq57k/pKpyLwmztqgcj/HqUVsopnMKBP6cQJCb4Op9TC8kffyJSMwHDFthuRpooQ== +xstate@^4.14.0, xstate@^4.25.0, xstate@^4.9.1: + version "4.25.0" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.25.0.tgz#d902ef33137532043f7a88597af8e5e1c7ad6bdf" + integrity sha512-qP7lc/ypOuuWME4ArOBnzaCa90TfHkjiqYDmxpiCjPy6FcXstInA2vH6qRVAHbPXRK4KQIYfIEOk1X38P+TldQ== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" @@ -28019,31 +27187,23 @@ yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" +yet-another-abortcontroller-polyfill@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/yet-another-abortcontroller-polyfill/-/yet-another-abortcontroller-polyfill-0.0.4.tgz#ce2270e564a4f2d07351812f599e10143526f98b" + integrity sha512-6do/P+mjm7FDUD+q8FrZ0ClMIbjGuKyWuWm3Vz2O7QmVf73HVLYIDV6toS7T0qoH1yeI2HPb8VgJp7w+zcVWvA== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yoga-layout-prebuilt@^1.9.6: - version "1.9.6" - resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.6.tgz#98dde95bbf8e6e12835876e9305f1e995c4bb801" - integrity sha512-Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ== +yoga-layout-prebuilt@^1.10.0, yoga-layout-prebuilt@^1.9.6: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz#2936fbaf4b3628ee0b3e3b1df44936d6c146faa6" + integrity sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g== dependencies: "@types/yoga-layout" "1.9.2" -yup@^0.32.9: - version "0.32.9" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.9.tgz#9367bec6b1b0e39211ecbca598702e106019d872" - integrity sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg== - dependencies: - "@babel/runtime" "^7.10.5" - "@types/lodash" "^4.14.165" - lodash "^4.17.20" - lodash-es "^4.17.15" - nanoclone "^0.2.1" - property-expr "^2.0.4" - toposort "^2.0.2" - yurnalist@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-2.1.0.tgz#44cf7ea5a33a8fab4968cc8c2970489f93760902"