diff --git a/.gitignore b/.gitignore
index 2d7d879365..95f1cddd0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,14 +7,13 @@ npm-debug.log
coverage/
.linkinator
/assets/images/early-access
+/assets/fonts/inter
/content/early-access
/data/early-access
-dist
.next
.eslintcache
# blc: broken link checker
blc_output.log
blc_output_internal.log
-/dist/
broken_links.md
diff --git a/Dockerfile b/Dockerfile
index 0dd8574072..817ab582a2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -46,7 +46,6 @@ COPY lib ./lib
# one part of the build relies on this content file to pull all-products
COPY content/index.md ./content/index.md
-COPY webpack.config.js ./webpack.config.js
COPY next.config.js ./next.config.js
COPY tsconfig.json ./tsconfig.json
@@ -73,7 +72,6 @@ USER node
COPY --chown=node:node --from=prod_deps /usr/src/docs/node_modules /usr/src/docs/node_modules
# Copy our front-end code
-COPY --chown=node:node --from=builder /usr/src/docs/dist /usr/src/docs/dist
COPY --chown=node:node --from=builder /usr/src/docs/.next /usr/src/docs/.next
# We should always be running in production mode
@@ -87,7 +85,6 @@ COPY --chown=node:node assets ./assets
COPY --chown=node:node content ./content
COPY --chown=node:node data ./data
COPY --chown=node:node includes ./includes
-COPY --chown=node:node layouts ./layouts
COPY --chown=node:node lib ./lib
COPY --chown=node:node middleware ./middleware
COPY --chown=node:node translations ./translations
diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md
index 26bd212f04..74f0ec25bc 100644
--- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md
+++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md
@@ -74,8 +74,9 @@ The recommended formats explicitly define which versions are used for all direct
| Package manager | Languages | Recommended formats | All supported formats |
| --- | --- | --- | ---|
| Composer | PHP | `composer.lock` | `composer.json`, `composer.lock` |
-| `dotnet` CLI | .NET languages (C#, C++, F#, VB) | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj`, `packages.config` |
-| Maven | Java, Scala | `pom.xml` | `pom.xml` |
+| `dotnet` CLI | .NET languages (C#, C++, F#, VB) | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj`, `packages.config` |{% ifversion fpt or ghes > 3.1 %}
+| Go modules | Go | `go.mod` | `go.mod` |
+{% endif %}| Maven | Java, Scala | `pom.xml` | `pom.xml` |
| npm | JavaScript | `package-lock.json` | `package-lock.json`, `package.json`|
| Python PIP | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile`, `pipfile.lock`, `setup.py`* |
| RubyGems | Ruby | `Gemfile.lock` | `Gemfile.lock`, `Gemfile`, `*.gemspec` |
diff --git a/data/reusables/supported-languages/go.md b/data/reusables/supported-languages/go.md
index a9590737d3..102e2b5b5e 100644
--- a/data/reusables/supported-languages/go.md
+++ b/data/reusables/supported-languages/go.md
@@ -1 +1 @@
-| Go {% ifversion fpt %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} | {% octicon "check" aria-label="The check icon" %} Go modules | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes > 2.21 %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}
+| Go {% ifversion fpt %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} Go modules | {% octicon "check" aria-label="The check icon" %} Go modules | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes > 3.1 %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} Go modules | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes > 2.21 %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}
diff --git a/includes/all-enterprise-releases-link.html b/includes/all-enterprise-releases-link.html
deleted file mode 100644
index ed96dfc2d4..0000000000
--- a/includes/all-enterprise-releases-link.html
+++ /dev/null
@@ -1 +0,0 @@
-See all Enterprise releases
diff --git a/includes/all-products-link.html b/includes/all-products-link.html
deleted file mode 100644
index 22e691d554..0000000000
--- a/includes/all-products-link.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% if currentVersion != 'homepage' %}
-
-
-
- All products
-
-
-{% endif %}
diff --git a/includes/contribution.html b/includes/contribution.html
deleted file mode 100644
index 29652dd0ff..0000000000
--- a/includes/contribution.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% unless enterpriseServerReleases.isOldestReleaseDeprecated and currentVersion contains enterpriseServerReleases.oldestSupported %}
-
-{% endunless %}
diff --git a/includes/error-404-deprecation-message.html b/includes/error-404-deprecation-message.html
deleted file mode 100644
index e73938725d..0000000000
--- a/includes/error-404-deprecation-message.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% if enterpriseServerReleases.deprecated contains currentVersion %}
-{% assign deprecatedDate = enterpriseServerReleases.dates[currentVersion].deprecationDate %}
-
-{% endif %}
diff --git a/includes/head.html b/includes/head.html
deleted file mode 100644
index 99425bbd70..0000000000
--- a/includes/head.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
- {% comment %} For human readers {% endcomment %}
-
- {% if error == '404' %}{% data ui.errors.oops %}{% elsif page.documentType == 'homepage' and currentVersion == 'free-pro-team@latest' %}GitHub Documentation{% elsif page.fullTitle %}{{ page.fullTitle }}{% else %}GitHub Documentation{% endif %}
-
-
-
-
-
- {% comment %} For Google and Bots {% endcomment %}
- {% if page.intro %}
-
- {% endif %}
- {% if page.topics %}
-
- {% endif %}
- {% if page.hidden %}
-
- {% endif %}
- {% for languageVariant in page.languageVariants %}
-
- {% endfor %}
-
-
-
- {% comment %} For our JS {% endcomment %}
-
-
-
diff --git a/includes/header-notification.html b/includes/header-notification.html
deleted file mode 100644
index 24775efd55..0000000000
--- a/includes/header-notification.html
+++ /dev/null
@@ -1,69 +0,0 @@
-
-{% if currentLanguage != 'en' %}
- {% assign translation_notification_type = "true" %}
-
-
- {% if page.relativePath contains '/site-policy/' %}
- {% assign translation_notification = site.data.reusables.policies.translation %}
-
-
- {% elsif languages[currentLanguage].wip != true %}
- {% assign translation_notification = site.data.ui.header.notices.localization_complete %}
-
-
- {% elsif languages[currentLanguage].wip %}
- {% assign translation_notification = site.data.ui.header.notices.localization_in_progress %}
- {% endif %}
-
-{% else %}
-
- {% if languages[userLanguage].wip == false and userLanguage != 'en' %}
- {% assign user_language_redirect_notification_type = true %}
- {% endif %}
-
-{% endif %}
-
-
-
-
-{% if currentVersion == "github-ae@latest" %}
- {% assign release_notification_type = "true" %}
- {% assign release_notification = site.data.ui.header.notices.ghae_silent_launch %}
-
-
-{% elsif currentVersion == site.data.variables.release_candidate.version %}
- {% assign release_notification_type = "true" %}
- {% assign release_notification = allVersions[currentVersion].versionTitle | append: site.data.ui.header.notices.release_candidate %}
-{% endif %}
-
-
-
-{% if page.hidden and page.relativePath contains "early-access/" %}
-{% assign early_access_notification_type = true %}
-{% assign early_access_notification = site.data.ui.header.notices.early_access %}
-{% endif %}
-
-
-{% if translation_notification_type %}
-
-{% endif %}
-
-{% if user_language_redirect_notification_type %}
-
-{% endif %}
-
-{% if release_notification_type %}
-
-{% endif %}
-
-{% if early_access_notification_type %}
-
-{% endif %}
diff --git a/includes/header-version-switcher.html b/includes/header-version-switcher.html
deleted file mode 100644
index 4462c7d344..0000000000
--- a/includes/header-version-switcher.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-{% if page.relativePath == 'index.md' or page.layout == 'product-landing' or page.layout == 'product-sublanding' or page.layout == 'release-notes' %}
-{% if page.permalinks and page.permalinks.length > 1 %}
-
-
-
-
-
- {{ allVersions[currentVersion].versionTitle }}
-
-
-
-
-
-
-{% endif %}
-{% endif %}
diff --git a/includes/header.html b/includes/header.html
deleted file mode 100644
index e4ad00cafd..0000000000
--- a/includes/header.html
+++ /dev/null
@@ -1,104 +0,0 @@
-
- {% unless error == '404' %}
- {% include header-notification %}
- {% endunless %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{% data ui.homepage.explore_by_product %}
-
-
-
-
-
- {{ productMap[currentProduct].name }}
-
-
-
-
-
-
-
-
-
- {% include header-version-switcher %}
-
-
-
-
- {% if page.languageVariants.length > 0 and error != '404' and !page.hidden %}
-
-
-
-
- {% if languages[page.languageCode].nativeName %}
- {{ languages[page.languageCode].nativeName }} ({{ languages[page.languageCode].name }})
- {% else %}
- {{ languages[page.languageCode].name }}
- {% endif %}
-
-
-
-
-
-
- {% endif %}
-
-
- {% if page.relativePath != 'index.md' and error != '404' %}
-
- {% include search-form %}
-
-
-
- {% endif %}
-
-
-
-
-
-
-
-
diff --git a/includes/liquid-tags/homepage-link-with-intro.html b/includes/liquid-tags/homepage-link-with-intro.html
deleted file mode 100644
index 3a2ed99940..0000000000
--- a/includes/liquid-tags/homepage-link-with-intro.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{ title }}→
- {{ intro }}
-
diff --git a/includes/liquid-tags/link-as-article-card.html b/includes/liquid-tags/link-as-article-card.html
index 23ba93ef90..628a2618ed 100644
--- a/includes/liquid-tags/link-as-article-card.html
+++ b/includes/liquid-tags/link-as-article-card.html
@@ -11,4 +11,4 @@
{% endif %}
-
+
\ No newline at end of file
diff --git a/includes/liquid-tags/link-in-list.html b/includes/liquid-tags/link-in-list.html
index ef9d132a22..51a25c9fe8 100644
--- a/includes/liquid-tags/link-in-list.html
+++ b/includes/liquid-tags/link-in-list.html
@@ -1 +1 @@
-- {{ title }}
+- {{ title }}
\ No newline at end of file
diff --git a/includes/liquid-tags/link-with-intro.html b/includes/liquid-tags/link-with-intro.html
index e5c70bbd8a..361f22042f 100644
--- a/includes/liquid-tags/link-with-intro.html
+++ b/includes/liquid-tags/link-with-intro.html
@@ -1,4 +1,4 @@
{{ title }}→
-{% if intro %}{{ intro }}
{% endif %}
+{% if intro %}{{ intro }}
{% endif %}
\ No newline at end of file
diff --git a/includes/liquid-tags/link.html b/includes/liquid-tags/link.html
index 1d4faae5b2..c41d80ea0e 100644
--- a/includes/liquid-tags/link.html
+++ b/includes/liquid-tags/link.html
@@ -1 +1 @@
-{{ title }}
+{{ title }}
\ No newline at end of file
diff --git a/includes/liquid-tags/topic-link-in-list.html b/includes/liquid-tags/topic-link-in-list.html
index 8870536b3c..87d5ddfdc2 100644
--- a/includes/liquid-tags/topic-link-in-list.html
+++ b/includes/liquid-tags/topic-link-in-list.html
@@ -1 +1 @@
-- {{ title }}
+- {{ title }}
\ No newline at end of file
diff --git a/includes/scripts.html b/includes/scripts.html
deleted file mode 100644
index 6f328a0cc3..0000000000
--- a/includes/scripts.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/includes/scroll-button.html b/includes/scroll-button.html
deleted file mode 100644
index 772ed5ac89..0000000000
--- a/includes/scroll-button.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {% octicon "chevron-up" %}
-
diff --git a/includes/search-form.html b/includes/search-form.html
deleted file mode 100644
index 5749ba0803..0000000000
--- a/includes/search-form.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
diff --git a/includes/sidebar-homepage.html b/includes/sidebar-homepage.html
deleted file mode 100644
index 0dbccee175..0000000000
--- a/includes/sidebar-homepage.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{% if currentVersion != 'free-pro-team@latest' %}
-{% include all-products-link %}
-{% endif %}
-
-{% for product in activeProducts %}
-{% if currentVersion == 'free-pro-team@latest' or product.external or product.versions contains currentVersion %}
-
-{% endif %}
-{% endfor %}
diff --git a/includes/sidebar-product.html b/includes/sidebar-product.html
deleted file mode 100644
index 94c41df035..0000000000
--- a/includes/sidebar-product.html
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-{% include all-products-link %}
-
-{% unless currentProductTree.page.hidden %}
-
-{% if currentProductTree.renderedShortTitle %}{% assign productTitle = currentProductTree.renderedShortTitle %}{% else %}{% assign productTitle = currentProductTree.renderedFullTitle %}{% endif %}
-
-
-
-
-
-
-{% endunless %}
diff --git a/includes/sidebar.html b/includes/sidebar.html
deleted file mode 100644
index d4ed2d8f85..0000000000
--- a/includes/sidebar.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
diff --git a/includes/small-footer.html b/includes/small-footer.html
deleted file mode 100644
index 85957b8c6b..0000000000
--- a/includes/small-footer.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-{% include scripts %}
diff --git a/includes/support-section.html b/includes/support-section.html
deleted file mode 100644
index fbb98fa7df..0000000000
--- a/includes/support-section.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- {% include survey %}
-
-
- {% include contribution %}
-
-
- {% include support %}
-
-
- {% include toggle-images %}
-
-
-
diff --git a/includes/support.html b/includes/support.html
deleted file mode 100644
index 2a78e31634..0000000000
--- a/includes/support.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
diff --git a/includes/survey.html b/includes/survey.html
deleted file mode 100644
index 882b015b8c..0000000000
--- a/includes/survey.html
+++ /dev/null
@@ -1,107 +0,0 @@
-{% unless enterpriseServerReleases.isOldestReleaseDeprecated and currentVersion contains enterpriseServerReleases.oldestSupported %}
-
-{% endunless %}
diff --git a/includes/toggle-images.html b/includes/toggle-images.html
deleted file mode 100644
index 79da415c49..0000000000
--- a/includes/toggle-images.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {% octicon "eye-closed" %}
- {% octicon "eye" %}
-
diff --git a/includes/tool-switcher.html b/includes/tool-switcher.html
index 5aca48f340..dec63c8214 100644
--- a/includes/tool-switcher.html
+++ b/includes/tool-switcher.html
@@ -6,4 +6,4 @@
cURL
Desktop
-
+
\ No newline at end of file
diff --git a/javascripts/explorer.ts b/javascripts/explorer.ts
deleted file mode 100644
index 44bfd0ee6d..0000000000
--- a/javascripts/explorer.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-const explorerUrl =
- location.hostname === 'localhost'
- ? 'http://localhost:3000'
- : 'https://graphql.github.com/explorer'
-
-// Pass non-search query params to Explorer app via the iFrame
-export default function () {
- const graphiqlExplorer = document.getElementById('graphiql') as HTMLIFrameElement
- const queryString = window.location.search
-
- if (!(queryString && graphiqlExplorer)) return
-
- window.onload = () => {
- graphiqlExplorer?.contentWindow?.postMessage(queryString, explorerUrl)
- }
-}
diff --git a/javascripts/hyperscript.ts b/javascripts/hyperscript.ts
deleted file mode 100644
index ddef7d9c06..0000000000
--- a/javascripts/hyperscript.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-const xmlns = 'http://www.w3.org/2000/svg'
-
-const plainObjectConstructor = {}.constructor
-
-function exists(value: any) {
- return value !== null && typeof value !== 'undefined'
-}
-
-function isPlainObject(value: any) {
- return value.constructor === plainObjectConstructor
-}
-
-function isString(value: any) {
- return typeof value === 'string'
-}
-
-function renderChildren(el: HTMLElement | SVGElement, children: Array) {
- for (const child of children) {
- if (isPlainObject(child)) {
- Object.entries(child)
- .filter(([, value]) => exists(value))
- .forEach(([key, value]) => el.setAttribute(key, value as string))
- } else if (Array.isArray(child)) {
- renderChildren(el, child)
- } else if (isString(child)) {
- el.append(document.createTextNode(child))
- } else {
- el.append(child)
- }
- }
-}
-
-export default function h(tagName: string, ...children: Array) {
- const el = ['svg', 'path'].includes(tagName)
- ? document.createElementNS(xmlns, tagName)
- : document.createElement(tagName)
- renderChildren(el, children)
- return el
-}
-
-export const tags = Object.fromEntries(
- ['div', 'form', 'a', 'input', 'button', 'ol', 'li', 'mark'].map((tagName) => [
- tagName,
- (...args: Array) => h(tagName, ...args),
- ])
-)
diff --git a/javascripts/index.ts b/javascripts/index.ts
index 95c5e219bb..4d1ca18b83 100644
--- a/javascripts/index.ts
+++ b/javascripts/index.ts
@@ -2,11 +2,7 @@
import '../stylesheets/index.scss'
import displayPlatformSpecificContent from './display-platform-specific-content'
import displayToolSpecificContent from './display-tool-specific-content'
-import explorer from './explorer'
-import scrollUp from './scroll-up'
-import search from './search'
import wrapCodeTerms from './wrap-code-terms'
-import print from './print'
import localization from './localization'
import experiment from './experiment'
import copyCode from './copy-code'
@@ -16,11 +12,7 @@ import toggleImages from './toggle-images'
document.addEventListener('DOMContentLoaded', async () => {
displayPlatformSpecificContent()
displayToolSpecificContent()
- explorer()
- scrollUp()
- search()
wrapCodeTerms()
- print()
localization()
copyCode()
initializeEvents()
diff --git a/javascripts/print.ts b/javascripts/print.ts
deleted file mode 100644
index 14c8a05494..0000000000
--- a/javascripts/print.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { EventType, sendEvent } from './events'
-
-export default function () {
- const printButtons = document.querySelectorAll('.js-print')
-
- Array.from(printButtons).forEach((btn) => {
- // Open the print dialog when the button is clicked
- btn.addEventListener('click', () => {
- window.print()
- })
- })
-
- // Track print events
- window.onbeforeprint = function () {
- sendEvent({ type: EventType.print })
- }
-}
diff --git a/javascripts/scroll-up.ts b/javascripts/scroll-up.ts
deleted file mode 100644
index e4604e02f8..0000000000
--- a/javascripts/scroll-up.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-export default function () {
- // function to scroll up to page top
- const PageTopBtn = document.getElementById('js-scroll-top')
- if (!PageTopBtn) return
-
- PageTopBtn.addEventListener('click', () => {
- window.scrollTo({
- top: 0,
- behavior: 'smooth',
- })
- })
-
- // show scroll button only when display is scroll down
- window.addEventListener('scroll', function () {
- const y = document.documentElement.scrollTop // get the height from page top
- if (y < 100) {
- PageTopBtn.classList.remove('show')
- } else if (y >= 100) {
- PageTopBtn.classList.add('show')
- }
- })
-}
diff --git a/javascripts/search-with-your-keyboard.d.ts b/javascripts/search-with-your-keyboard.d.ts
deleted file mode 100644
index b33fead8f5..0000000000
--- a/javascripts/search-with-your-keyboard.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare module 'search-with-your-keyboard' {
- export default function searchWithYourKeyboard(inputSelector: string, hitsSelector: string): void
-}
diff --git a/javascripts/search.ts b/javascripts/search.ts
deleted file mode 100644
index 5d1a84e45c..0000000000
--- a/javascripts/search.ts
+++ /dev/null
@@ -1,307 +0,0 @@
-import { tags } from './hyperscript'
-import { sendEvent, EventType } from './events'
-import searchWithYourKeyboard from 'search-with-your-keyboard'
-
-let $searchInputContainer: HTMLElement | null | undefined
-let $searchResultsContainer: HTMLElement | null | undefined
-let $searchOverlay: HTMLElement | null | undefined
-let $searchInput: HTMLInputElement | null | undefined
-
-let isExplorerPage: boolean
-
-// This is our default placeholder, but it can be localized with a tag
-let placeholder = 'Search topics, products...'
-let version: string
-let language: string
-
-export default function search() {
- // @ts-ignore
- if (window.IS_NEXTJS_PAGE) return
-
- // We don't want to mess with query params intended for the GraphQL Explorer
- isExplorerPage = Boolean(document.getElementById('graphiql'))
-
- // First, only initialize search if the elements are on the page
- $searchInputContainer = document.getElementById('search-input-container')
- $searchResultsContainer = document.getElementById('search-results-container')
- if (!$searchInputContainer || !$searchResultsContainer) return
-
- // This overlay exists so if you click off the search, it closes
- $searchOverlay = document.querySelector('.search-overlay-desktop') as HTMLElement
-
- // There's an index for every version/language combination
- const { languages, versions, nonEnterpriseDefaultVersion } = JSON.parse(
- (document.getElementById('expose') as HTMLScriptElement)?.text || ''
- ).searchOptions
- version = deriveVersionFromPath(versions, nonEnterpriseDefaultVersion)
- language = deriveLanguageCodeFromPath(languages)
-
- // Find search placeholder text in a tag, falling back to a default
- const $placeholderMeta = document.querySelector(
- 'meta[name="site.data.ui.search.placeholder"]'
- ) as HTMLMetaElement
- if ($placeholderMeta) {
- placeholder = $placeholderMeta.content
- }
-
- // Write the search form into its container
- $searchInputContainer.append(tmplSearchInput())
- $searchInput = $searchInputContainer.querySelector('input') as HTMLInputElement
-
- // Prevent 'enter' from refreshing the page
- ;($searchInputContainer.querySelector('form') as HTMLFormElement).addEventListener(
- 'submit',
- (evt) => evt.preventDefault()
- )
-
- // Search when the user finished typing
- $searchInput.addEventListener('keyup', debounce(onSearch))
-
- // Adds ability to navigate search results with keyboard (up, down, enter, esc)
- searchWithYourKeyboard('#search-input-container input', '.ais-Hits-item')
-
- // If the user already has a query in the URL, parse it and search away
- if (!isExplorerPage) {
- parseExistingSearch()
- }
-
- // If not on home page, decide if search panel should be open
- toggleSearchDisplay() // must come after parseExistingSearch
-}
-
-// The home page and 404 pages have a standalone search
-function hasStandaloneSearch() {
- return document.getElementById('landing') || document.querySelector('body.error-404') !== null
-}
-
-function toggleSearchDisplay() {
- // Clear/close search, if ESC is clicked
- document.addEventListener('keyup', (e) => {
- if (e.key === 'Escape') {
- closeSearch()
- }
- })
-
- // If not on homepage...
- if (hasStandaloneSearch()) return
-
- // Open panel if input is clicked
- $searchInput?.addEventListener('focus', openSearch)
-
- // Close panel if overlay is clicked
- if ($searchOverlay) {
- $searchOverlay.addEventListener('click', closeSearch)
- }
-
- // Open panel if page loads with query in the params/input
- if ($searchInput?.value) {
- openSearch()
- }
-}
-
-// On most pages, opens the search panel
-function openSearch() {
- $searchInput?.classList.add('js-open')
- $searchResultsContainer?.classList.add('js-open')
- $searchOverlay?.classList.add('js-open')
-}
-
-// Close panel if not on homepage
-function closeSearch() {
- if (!hasStandaloneSearch()) {
- $searchInput?.classList.remove('js-open')
- $searchResultsContainer?.classList.remove('js-open')
- $searchOverlay?.classList.remove('js-open')
- }
-
- if ($searchInput) $searchInput.value = ''
- onSearch()
-}
-
-function deriveLanguageCodeFromPath(languageCodes: Array) {
- let languageCode = location.pathname.split('/')[1]
- if (!languageCodes.includes(languageCode)) languageCode = 'en'
- return languageCode
-}
-
-function deriveVersionFromPath(
- allVersions: Record,
- nonEnterpriseDefaultVersion: string
-) {
- // fall back to the non-enterprise default version (FPT currently) on the homepage, 404 page, etc.
- const versionStr = location.pathname.split('/')[2] || nonEnterpriseDefaultVersion
- return allVersions[versionStr] || allVersions[nonEnterpriseDefaultVersion]
-}
-
-// Wait for the event to stop triggering for X milliseconds before responding
-function debounce(fn: Function, delay = 300) {
- let timer: number
- return (...args: Array) => {
- clearTimeout(timer)
- timer = window.setTimeout(() => fn.apply(null, args), delay)
- }
-}
-
-// When the user finishes typing, update the results
-async function onSearch() {
- const query = $searchInput?.value || ''
-
- // Update the URL with the search parameters in the query string
- // UNLESS this is the GraphQL Explorer page, where a query in the URL is a GraphQL query
- const pushUrl = new URL(location.toString())
- pushUrl.search = query && !isExplorerPage ? new URLSearchParams({ query }).toString() : ''
- history.pushState({}, '', pushUrl.toString())
-
- // If there's a query, call the endpoint
- // Otherwise, there's no results by default
- let results = []
- if (query.trim()) {
- const endpointUrl = new URL(location.origin)
- endpointUrl.pathname = '/search'
- endpointUrl.search = new URLSearchParams({ language, version, query }).toString()
-
- const response = await fetch(endpointUrl.toString(), {
- method: 'GET',
- headers: {
- 'Content-Type': 'application/json',
- },
- })
- results = response.ok ? await response.json() : []
- }
-
- // Either way, update the display
- $searchResultsContainer?.querySelectorAll('*').forEach((el) => el.remove())
- $searchResultsContainer?.append(tmplSearchResults(results))
- toggleStandaloneSearch()
-
- // Analytics tracking
- if (query.trim()) {
- sendEvent({
- type: EventType.search,
- search_query: query,
- // search_context
- })
- }
-}
-
-// If on homepage, toggle results container if query is present
-function toggleStandaloneSearch() {
- if (!hasStandaloneSearch()) return
-
- const query = $searchInput?.value
- const queryPresent = Boolean(query && query.length > 0)
- const $results = document.querySelector('.ais-Hits') as HTMLElement
-
- // Primer classNames for showing and hiding the results container
- const activeClass = $searchResultsContainer?.getAttribute('data-active-class')
- const inactiveClass = $searchResultsContainer?.getAttribute('data-inactive-class')
-
- if (!activeClass) {
- console.error(
- 'container is missing required `data-active-class` attribute',
- $searchResultsContainer
- )
- return
- }
-
- if (!inactiveClass) {
- console.error(
- 'container is missing required `data-inactive-class` attribute',
- $searchResultsContainer
- )
- return
- }
-
- // hide the container when no query is present
- $searchResultsContainer?.classList.toggle(activeClass, queryPresent)
- $searchResultsContainer?.classList.toggle(inactiveClass, !queryPresent)
-
- if (queryPresent && $results) $results.style.display = 'block'
-}
-
-// If the user shows up with a query in the URL, go ahead and search for it
-function parseExistingSearch() {
- const params = new URLSearchParams(location.search)
- if (!params.has('query')) return
- if ($searchInput) $searchInput.value = params.get('query') || ''
- onSearch()
-}
-
-/** * Template functions ***/
-
-function tmplSearchInput() {
- // only autofocus on the homepage, and only if no #hash is present in the URL
- const autofocus = (hasStandaloneSearch() && !location.hash.length) || null
- const { div, form, input, button } = tags
- return div(
- { class: 'ais-SearchBox' },
- form(
- { role: 'search', class: 'ais-SearchBox-form', novalidate: true },
- input({
- class: 'ais-SearchBox-input',
- type: 'search',
- placeholder,
- autofocus,
- autocomplete: 'off',
- autocorrect: 'off',
- autocapitalize: 'off',
- spellcheck: 'false',
- maxlength: '512',
- }),
- button({
- class: 'ais-SearchBox-submit',
- type: 'submit',
- title: 'Submit the search query.',
- hidden: true,
- })
- )
- )
-}
-
-type SearchResult = {
- url: string
- breadcrumbs: string
- heading: string
- title: string
- content: string
-}
-
-function tmplSearchResults(items: Array) {
- const { div, ol, li } = tags
- return div(
- { class: 'ais-Hits', style: 'display:block' },
- ol(
- { class: 'ais-Hits-list' },
- items.map((item) => li({ class: 'ais-Hits-item' }, tmplSearchResult(item)))
- )
- )
-}
-
-function tmplSearchResult({ url, breadcrumbs, heading, title, content }: SearchResult) {
- const { div, a } = tags
- return div(
- { class: 'search-result border-top color-border-secondary py-3 px-2' },
- a(
- { href: url, class: 'no-underline' },
- div(
- {
- class: 'search-result-breadcrumbs d-block color-text-primary opacity-60 text-small pb-1',
- },
- // Breadcrumbs in search records don't include the page title
- markify(breadcrumbs || '')
- ),
- div(
- { class: 'search-result-title d-block h4-mktg color-text-primary' },
- // Display page title and heading (if present exists)
- markify(heading ? `${title}: ${heading}` : title)
- ),
- div({ class: 'search-result-content d-block color-text-secondary' }, markify(content))
- )
- )
-}
-
-// Convert mark tags in search responses
-function markify(text: string) {
- const { mark } = tags
- return text.split(/<\/?mark>/g).map((el, i) => (i % 2 ? mark(el) : el))
-}
diff --git a/layouts/README.md b/layouts/README.md
deleted file mode 100644
index 0d25697508..0000000000
--- a/layouts/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Layouts
-
-The files in this directory are layouts which can be wrapped around pages.
-
-See also [includes](includes), which are snippets of HTML or Markdown that
-can be reused in multiple layouts.
-
-## Using Layouts
-
-Be default, `layouts/default.html` will be used for all pages.
-
-To use a custom layout, add a `layout` value to the page's frontmatter:
-
-```
----
-title: Hello World
-layout: some-layout
----
-```
-
-The example above will use the `layouts/some-layout.html` layout.
-
-To render a page with no layout, set `layout: false`.
-
-## Writing Layouts
-
-Layout files should have a `.html` or `.md` extension, and they
-must include the string `{{ content}}` to specify where inner content should
-be injected.
diff --git a/layouts/error-404.html b/layouts/error-404.html
deleted file mode 100644
index 5d6965ac41..0000000000
--- a/layouts/error-404.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-{% assign error = '404' %}
-
- {% include head %}
-
-
- {% include sidebar %}
-
-
- {% include header %}
-
-
-
- {% include error-404-deprecation-message %}
-
- {% data ui.errors.oops %}
-
-
- {% data ui.errors.page_doesnt_exist %}
-
-
-
-
{% data ui.search.need_help %}
- {% include search-form %}
-
-
-
-
-
-
- {% include support-section %}
- {% include small-footer %}
- {% include scroll-button %}
-
-
-
diff --git a/layouts/error-500.html b/layouts/error-500.html
deleted file mode 100644
index b1d928b9fe..0000000000
--- a/layouts/error-500.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- {% include head %}
-
- {% include header %}
-
-
-
- {% data ui.errors.oops %}
-
-
- {% data ui.errors.something_went_wrong %}
- {% data ui.errors.we_track_errors %}
-
-
- {% if error %}
- {{ error.stack }}
- {% endif %}
-
-
-
-
- {% include support-section %}
- {% include small-footer %}
- {% include scroll-button %}
-
-
diff --git a/lib/built-asset-urls.js b/lib/built-asset-urls.js
deleted file mode 100644
index f1990f1c91..0000000000
--- a/lib/built-asset-urls.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import fs from 'fs'
-import path from 'path'
-import crypto from 'crypto'
-
-// Get an MD4 Digest Hex content hash, loosely based on Webpack `[contenthash]`
-function getContentHash(absFilePath) {
- const buffer = fs.readFileSync(absFilePath)
- const hash = crypto.createHash('md4')
- hash.update(buffer)
- return hash.digest('hex')
-}
-
-function getUrl(relFilePath) {
- const absFilePath = path.join(process.cwd(), relFilePath)
- return `/${relFilePath}?hash=${getContentHash(absFilePath)}`
-}
-
-export default {
- main: {
- js: getUrl('dist/index.js'),
- css: getUrl('dist/index.css'),
- },
-}
diff --git a/lib/render-content/index.js b/lib/render-content/index.js
index 93b47836ad..84194938be 100644
--- a/lib/render-content/index.js
+++ b/lib/render-content/index.js
@@ -3,7 +3,6 @@ import renderContent from './renderContent.js'
import { ExtendedMarkdown, tags } from '../liquid-tags/extended-markdown.js'
import xLink from '../liquid-tags/link.js'
import xLinkWithIntro from '../liquid-tags/link-with-intro.js'
-import xHomepageLinkWithIntro from '../liquid-tags/homepage-link-with-intro.js'
import xLinkInList from '../liquid-tags/link-in-list.js'
import xTopicLinkInList from '../liquid-tags/topic-link-in-list.js'
import xIndentedDataReference from '../liquid-tags/indented-data-reference.js'
@@ -15,7 +14,6 @@ import xIfversion from '../liquid-tags/ifversion.js'
// Include custom tags like {% link_with_intro /article/foo %}
renderContent.liquid.registerTag('link', xLink('link'))
renderContent.liquid.registerTag('link_with_intro', xLinkWithIntro)
-renderContent.liquid.registerTag('homepage_link_with_intro', xHomepageLinkWithIntro)
renderContent.liquid.registerTag('link_in_list', xLinkInList)
renderContent.liquid.registerTag('topic_link_in_list', xTopicLinkInList)
renderContent.liquid.registerTag('indented_data_reference', xIndentedDataReference)
diff --git a/middleware/context.js b/middleware/context.js
index 72d3eea794..0a5f02c292 100644
--- a/middleware/context.js
+++ b/middleware/context.js
@@ -6,7 +6,6 @@ import xPathUtils from '../lib/path-utils.js'
import productNames from '../lib/product-names.js'
import warmServer from '../lib/warm-server.js'
import readJsonFile from '../lib/read-json-file.js'
-import builtAssets from '../lib/built-asset-urls.js'
import searchVersions from '../lib/search/versions.js'
import nonEnterpriseDefaultVersion from '../lib/non-enterprise-default-version.js'
const activeProducts = Object.values(productMap).filter(
@@ -58,9 +57,6 @@ export default async function contextualize(req, res, next) {
req.context.siteTree = siteTree
req.context.pages = pageMap
- // JS + CSS asset paths
- req.context.builtAssets = builtAssets
-
// Object exposing selected variables to client
req.context.expose = JSON.stringify({
// Languages and versions for search
diff --git a/middleware/handle-errors.js b/middleware/handle-errors.js
index 3b3647624f..01ce128bfd 100644
--- a/middleware/handle-errors.js
+++ b/middleware/handle-errors.js
@@ -1,6 +1,5 @@
import FailBot from '../lib/failbot.js'
import loadSiteData from '../lib/site-data.js'
-import builtAssets from '../lib/built-asset-urls.js'
import { nextApp } from './next.js'
function shouldLogException(error) {
@@ -42,9 +41,8 @@ export default async function handleError(error, req, res, next) {
// set req.context.site here so we can pass data/ui.yml text to the 500 layout
if (!req.context) {
const site = await loadSiteData()
- req.context = { site: site[req.language || 'en'].site, builtAssets }
+ req.context = { site: site[req.language || 'en'].site }
}
-
// display error on the page in development and staging, but not in production
if (req.context && process.env.HEROKU_PRODUCTION_APP !== 'true') {
req.context.error = error
diff --git a/next.config.js b/next.config.js
index 8644dd711b..8a86137242 100644
--- a/next.config.js
+++ b/next.config.js
@@ -3,17 +3,30 @@
const fs = require('fs')
const frontmatter = require('gray-matter')
+const CopyWebpackPlugin = require('copy-webpack-plugin')
const path = require('path')
const homepage = path.posix.join(process.cwd(), 'content/index.md')
const { data } = frontmatter(fs.readFileSync(homepage, 'utf8'))
const productIds = data.children
module.exports = {
+ webpack: (config, { isServer }) => {
+ if (isServer) {
+ config.plugins.push(
+ new CopyWebpackPlugin({
+ patterns: [
+ {
+ from: path.join(__dirname, 'node_modules/@primer/css/fonts'),
+ to: path.join(__dirname, 'assets/fonts/inter'),
+ },
+ ],
+ })
+ )
+ }
+ return config
+ },
// speed up production `next build` by ignoring typechecking during that step of build.
// type-checking still occurs in the Dockerfile build
- future: {
- webpack: 5,
- },
typescript: {
ignoreBuildErrors: true,
},
diff --git a/package-lock.json b/package-lock.json
index 382e37d303..7f871b710a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,6 +24,7 @@
"connect-datadog": "0.0.9",
"connect-slashes": "^1.4.0",
"cookie-parser": "^1.4.5",
+ "copy-webpack-plugin": "^9.0.1",
"cors": "^2.8.5",
"csurf": "^1.11.0",
"dayjs": "^1.10.4",
@@ -116,7 +117,6 @@
"babel-preset-env": "^1.7.0",
"chalk": "^4.1.1",
"commander": "^7.2.0",
- "copy-webpack-plugin": "^8.1.1",
"count-array-values": "^1.2.1",
"cross-env": "^7.0.3",
"csp-parse": "0.0.2",
@@ -171,8 +171,6 @@
"ts-loader": "^9.2.3",
"typescript": "^4.3.2",
"url-template": "^2.0.8",
- "webpack": "^5.37.0",
- "webpack-cli": "^4.7.0",
"website-scraper": "^4.2.3"
},
"engines": {
@@ -1889,15 +1887,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz",
- "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@emotion/is-prop-valid": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
@@ -3548,7 +3537,6 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
"integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
- "dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.4",
"run-parallel": "^1.1.9"
@@ -3561,7 +3549,6 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
"integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
- "dev": true,
"engines": {
"node": ">= 8"
}
@@ -3570,7 +3557,6 @@
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
"integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
- "dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.4",
"fastq": "^1.6.0"
@@ -4069,7 +4055,7 @@
"version": "7.2.8",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz",
"integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -4079,7 +4065,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz",
"integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/eslint": "*",
"@types/estree": "*"
@@ -4089,7 +4075,7 @@
"version": "0.0.47",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz",
"integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==",
- "devOptional": true
+ "peer": true
},
"node_modules/@types/github-slugger": {
"version": "1.3.0",
@@ -4170,10 +4156,9 @@
"dev": true
},
"node_modules/@types/json-schema": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
- "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
- "devOptional": true
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz",
+ "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg=="
},
"node_modules/@types/json5": {
"version": "0.0.29",
@@ -4655,7 +4640,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz",
"integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.11.0",
"@webassemblyjs/helper-wasm-bytecode": "1.11.0"
@@ -4665,25 +4650,25 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz",
"integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==",
- "devOptional": true
+ "peer": true
},
"node_modules/@webassemblyjs/helper-api-error": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz",
"integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==",
- "devOptional": true
+ "peer": true
},
"node_modules/@webassemblyjs/helper-buffer": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz",
"integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==",
- "devOptional": true
+ "peer": true
},
"node_modules/@webassemblyjs/helper-numbers": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz",
"integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.11.0",
"@webassemblyjs/helper-api-error": "1.11.0",
@@ -4694,13 +4679,13 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz",
"integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==",
- "devOptional": true
+ "peer": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz",
"integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -4712,7 +4697,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz",
"integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
@@ -4721,7 +4706,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz",
"integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
@@ -4730,13 +4715,13 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz",
"integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==",
- "devOptional": true
+ "peer": true
},
"node_modules/@webassemblyjs/wasm-edit": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz",
"integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -4752,7 +4737,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz",
"integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-wasm-bytecode": "1.11.0",
@@ -4765,7 +4750,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz",
"integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -4777,7 +4762,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz",
"integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-api-error": "1.11.0",
@@ -4791,44 +4776,23 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz",
"integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.11.0",
"@xtuc/long": "4.2.2"
}
},
- "node_modules/@webpack-cli/configtest": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz",
- "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==",
- "dev": true
- },
- "node_modules/@webpack-cli/info": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz",
- "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==",
- "dev": true,
- "dependencies": {
- "envinfo": "^7.7.3"
- }
- },
- "node_modules/@webpack-cli/serve": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz",
- "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==",
- "dev": true
- },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "devOptional": true
+ "peer": true
},
"node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "devOptional": true
+ "peer": true
},
"node_modules/abab": {
"version": "2.0.5",
@@ -5021,8 +4985,7 @@
"node_modules/ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "devOptional": true
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"node_modules/ajv/node_modules/json-schema-traverse": {
"version": "1.0.0",
@@ -7329,7 +7292,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
"integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"tslib": "^1.9.0"
},
@@ -7793,49 +7756,67 @@
"dev": true
},
"node_modules/copy-webpack-plugin": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
- "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
- "dev": true,
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz",
+ "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==",
"dependencies": {
"fast-glob": "^3.2.5",
- "glob-parent": "^5.1.1",
+ "glob-parent": "^6.0.0",
"globby": "^11.0.3",
"normalize-path": "^3.0.0",
"p-limit": "^3.1.0",
"schema-utils": "^3.0.0",
- "serialize-javascript": "^5.0.1"
+ "serialize-javascript": "^6.0.0"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
}
},
"node_modules/copy-webpack-plugin/node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/copy-webpack-plugin/node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
"engines": {
"node": ">=8"
}
},
+ "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz",
+ "integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/copy-webpack-plugin/node_modules/globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
- "dev": true,
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
+ "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -7846,13 +7827,15 @@
},
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/copy-webpack-plugin/node_modules/ignore": {
"version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true,
"engines": {
"node": ">= 4"
}
@@ -7861,7 +7844,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7870,26 +7852,39 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/copy-webpack-plugin/node_modules/schema-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
- "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "dev": true,
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"dependencies": {
- "@types/json-schema": "^7.0.6",
+ "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
},
"engines": {
"node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dependencies": {
+ "randombytes": "^2.1.0"
}
},
"node_modules/core-js": {
@@ -8748,7 +8743,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
"dependencies": {
"path-type": "^4.0.0"
},
@@ -9112,7 +9106,6 @@
"version": "5.8.2",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz",
"integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==",
- "devOptional": true,
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -9153,18 +9146,6 @@
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"dev": true
},
- "node_modules/envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
- "dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -9209,7 +9190,7 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
"integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==",
- "devOptional": true
+ "peer": true
},
"node_modules/es-to-primitive": {
"version": "1.2.1",
@@ -9649,7 +9630,6 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "devOptional": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -9662,7 +9642,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "devOptional": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -9674,7 +9653,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
"integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "devOptional": true,
"engines": {
"node": ">=4.0"
}
@@ -10310,7 +10288,6 @@
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
- "dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -10326,8 +10303,7 @@
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "devOptional": true
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
@@ -10340,17 +10316,10 @@
"integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
"dev": true
},
- "node_modules/fastest-levenshtein": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz",
- "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==",
- "dev": true
- },
"node_modules/fastq": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
"integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
- "dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
@@ -11956,15 +11925,6 @@
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
},
- "node_modules/interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@@ -12245,7 +12205,7 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
- "devOptional": true,
+ "optional": true,
"dependencies": {
"isobject": "^3.0.1"
},
@@ -12407,7 +12367,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "devOptional": true,
+ "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -14986,7 +14946,7 @@
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -15000,7 +14960,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -15009,7 +14969,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -15209,8 +15169,7 @@
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "devOptional": true
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
@@ -15227,8 +15186,7 @@
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "devOptional": true
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -15863,7 +15821,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
"integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">=6.11.5"
}
@@ -16383,7 +16341,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
"engines": {
"node": ">= 8"
}
@@ -16425,7 +16382,6 @@
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "devOptional": true,
"dependencies": {
"braces": "^3.0.1",
"picomatch": "^2.2.3"
@@ -16852,8 +16808,7 @@
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "devOptional": true
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node_modules/next": {
"version": "11.0.0",
@@ -18559,7 +18514,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -19463,8 +19417,7 @@
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"node_modules/quick-lru": {
"version": "4.0.1",
@@ -19691,18 +19644,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/rechoir": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
- "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
- "dev": true,
- "dependencies": {
- "resolve": "^1.9.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -20400,7 +20341,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -20464,7 +20404,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"dependencies": {
"queue-microtask": "^1.2.2"
}
@@ -20715,7 +20654,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -20917,8 +20856,7 @@
"node_modules/source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
- "devOptional": true
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"node_modules/source-map": {
"version": "0.5.7",
@@ -20941,7 +20879,6 @@
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "devOptional": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -20951,7 +20888,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -21902,7 +21838,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz",
"integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==",
- "devOptional": true,
"engines": {
"node": ">=6"
}
@@ -21972,7 +21907,7 @@
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz",
"integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"commander": "^2.20.0",
"source-map": "~0.7.2",
@@ -21989,7 +21924,7 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz",
"integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"jest-worker": "^26.6.2",
"p-limit": "^3.1.0",
@@ -22006,7 +21941,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -22018,7 +21953,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -22030,7 +21965,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
@@ -22044,7 +21979,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -22053,13 +21988,13 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "devOptional": true
+ "peer": true
},
"node_modules/terser/node_modules/source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">= 8"
}
@@ -22348,8 +22283,7 @@
"node_modules/tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "devOptional": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
},
"node_modules/tsscmp": {
"version": "1.0.6",
@@ -23248,7 +23182,7 @@
"version": "5.37.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.37.1.tgz",
"integrity": "sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.0",
"@types/estree": "^0.0.47",
@@ -23281,72 +23215,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/webpack-cli": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz",
- "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==",
- "dev": true,
- "dependencies": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.0.3",
- "@webpack-cli/info": "^1.2.4",
- "@webpack-cli/serve": "^1.4.0",
- "colorette": "^1.2.1",
- "commander": "^7.0.0",
- "execa": "^5.0.0",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
- "v8-compile-cache": "^2.2.0",
- "webpack-merge": "^5.7.3"
- },
- "bin": {
- "webpack-cli": "bin/cli.js"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack-merge": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz",
- "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==",
- "dev": true,
- "dependencies": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webpack-merge/node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/webpack-merge/node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
@@ -23370,7 +23238,7 @@
"version": "8.2.4",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz",
"integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==",
- "devOptional": true,
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -23382,7 +23250,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -23394,7 +23262,7 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">=0.8.x"
}
@@ -23403,7 +23271,7 @@
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">= 0.6"
}
@@ -23412,7 +23280,7 @@
"version": "2.1.30",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"mime-db": "1.47.0"
},
@@ -23424,7 +23292,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
@@ -23438,7 +23306,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -23447,7 +23315,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz",
"integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==",
- "devOptional": true,
+ "peer": true,
"dependencies": {
"source-list-map": "^2.0.1",
"source-map": "^0.6.1"
@@ -23606,12 +23474,6 @@
"node": ">=8"
}
},
- "node_modules/wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
- "dev": true
- },
"node_modules/word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -25570,12 +25432,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "@discoveryjs/json-ext": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz",
- "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==",
- "dev": true
- },
"@emotion/is-prop-valid": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
@@ -27021,7 +26877,6 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
"integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
- "dev": true,
"requires": {
"@nodelib/fs.stat": "2.0.4",
"run-parallel": "^1.1.9"
@@ -27030,14 +26885,12 @@
"@nodelib/fs.stat": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
- "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
- "dev": true
+ "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q=="
},
"@nodelib/fs.walk": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
"integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
- "dev": true,
"requires": {
"@nodelib/fs.scandir": "2.1.4",
"fastq": "^1.6.0"
@@ -27524,7 +27377,7 @@
"version": "7.2.8",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz",
"integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -27534,7 +27387,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz",
"integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/eslint": "*",
"@types/estree": "*"
@@ -27544,7 +27397,7 @@
"version": "0.0.47",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz",
"integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==",
- "devOptional": true
+ "peer": true
},
"@types/github-slugger": {
"version": "1.3.0",
@@ -27625,10 +27478,9 @@
"dev": true
},
"@types/json-schema": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
- "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
- "devOptional": true
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz",
+ "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg=="
},
"@types/json5": {
"version": "0.0.29",
@@ -27995,7 +27847,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz",
"integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/helper-numbers": "1.11.0",
"@webassemblyjs/helper-wasm-bytecode": "1.11.0"
@@ -28005,25 +27857,25 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz",
"integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==",
- "devOptional": true
+ "peer": true
},
"@webassemblyjs/helper-api-error": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz",
"integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==",
- "devOptional": true
+ "peer": true
},
"@webassemblyjs/helper-buffer": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz",
"integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==",
- "devOptional": true
+ "peer": true
},
"@webassemblyjs/helper-numbers": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz",
"integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/floating-point-hex-parser": "1.11.0",
"@webassemblyjs/helper-api-error": "1.11.0",
@@ -28034,13 +27886,13 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz",
"integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==",
- "devOptional": true
+ "peer": true
},
"@webassemblyjs/helper-wasm-section": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz",
"integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -28052,7 +27904,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz",
"integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@xtuc/ieee754": "^1.2.0"
}
@@ -28061,7 +27913,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz",
"integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@xtuc/long": "4.2.2"
}
@@ -28070,13 +27922,13 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz",
"integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==",
- "devOptional": true
+ "peer": true
},
"@webassemblyjs/wasm-edit": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz",
"integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -28092,7 +27944,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz",
"integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-wasm-bytecode": "1.11.0",
@@ -28105,7 +27957,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz",
"integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-buffer": "1.11.0",
@@ -28117,7 +27969,7 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz",
"integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@webassemblyjs/helper-api-error": "1.11.0",
@@ -28131,44 +27983,23 @@
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz",
"integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@webassemblyjs/ast": "1.11.0",
"@xtuc/long": "4.2.2"
}
},
- "@webpack-cli/configtest": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz",
- "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==",
- "dev": true
- },
- "@webpack-cli/info": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz",
- "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==",
- "dev": true,
- "requires": {
- "envinfo": "^7.7.3"
- }
- },
- "@webpack-cli/serve": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz",
- "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==",
- "dev": true
- },
"@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "devOptional": true
+ "peer": true
},
"@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "devOptional": true
+ "peer": true
},
"abab": {
"version": "2.0.5",
@@ -28332,8 +28163,7 @@
"ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "devOptional": true
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"algoliasearch": {
"version": "4.9.1",
@@ -30376,7 +30206,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
"integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"tslib": "^1.9.0"
}
@@ -30765,25 +30595,23 @@
"dev": true
},
"copy-webpack-plugin": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
- "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
- "dev": true,
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz",
+ "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==",
"requires": {
"fast-glob": "^3.2.5",
- "glob-parent": "^5.1.1",
+ "glob-parent": "^6.0.0",
"globby": "^11.0.3",
"normalize-path": "^3.0.0",
"p-limit": "^3.1.0",
"schema-utils": "^3.0.0",
- "serialize-javascript": "^5.0.1"
+ "serialize-javascript": "^6.0.0"
},
"dependencies": {
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -30794,14 +30622,20 @@
"array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ },
+ "glob-parent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz",
+ "integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
},
"globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
- "dev": true,
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
+ "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -30814,34 +30648,38 @@
"ignore": {
"version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"requires": {
"yocto-queue": "^0.1.0"
}
},
"schema-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
- "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "dev": true,
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"requires": {
- "@types/json-schema": "^7.0.6",
+ "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
}
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
}
}
},
@@ -31549,7 +31387,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
"requires": {
"path-type": "^4.0.0"
}
@@ -31863,7 +31700,6 @@
"version": "5.8.2",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz",
"integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==",
- "devOptional": true,
"requires": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -31897,12 +31733,6 @@
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"dev": true
},
- "envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
- "dev": true
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -31946,7 +31776,7 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
"integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==",
- "devOptional": true
+ "peer": true
},
"es-to-primitive": {
"version": "1.2.1",
@@ -32435,7 +32265,6 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "devOptional": true,
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -32445,7 +32274,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "devOptional": true,
"requires": {
"estraverse": "^5.2.0"
},
@@ -32453,8 +32281,7 @@
"estraverse": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "devOptional": true
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
}
}
}
@@ -32832,7 +32659,6 @@
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
- "dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -32845,8 +32671,7 @@
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "devOptional": true
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-levenshtein": {
"version": "2.0.6",
@@ -32859,17 +32684,10 @@
"integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
"dev": true
},
- "fastest-levenshtein": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz",
- "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==",
- "dev": true
- },
"fastq": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
"integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
- "dev": true,
"requires": {
"reusify": "^1.0.4"
}
@@ -34254,12 +34072,6 @@
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
"integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
},
- "interpret": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
- "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
- "dev": true
- },
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@@ -34474,7 +34286,7 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
- "devOptional": true,
+ "optional": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -34602,7 +34414,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "devOptional": true
+ "optional": true
},
"isstream": {
"version": "0.1.2",
@@ -36690,7 +36502,7 @@
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -36701,13 +36513,13 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "devOptional": true
+ "peer": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "devOptional": true,
+ "peer": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -36864,8 +36676,7 @@
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "devOptional": true
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
"json-parse-even-better-errors": {
"version": "2.3.1",
@@ -36882,8 +36693,7 @@
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "devOptional": true
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -37384,7 +37194,7 @@
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
"integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
- "devOptional": true
+ "peer": true
},
"loader-utils": {
"version": "1.4.0",
@@ -37834,8 +37644,7 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"methods": {
"version": "1.1.2",
@@ -37870,7 +37679,6 @@
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "devOptional": true,
"requires": {
"braces": "^3.0.1",
"picomatch": "^2.2.3"
@@ -38228,8 +38036,7 @@
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "devOptional": true
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"next": {
"version": "11.0.0",
@@ -39736,8 +39543,7 @@
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
},
"pause-stream": {
"version": "0.0.11",
@@ -40485,8 +40291,7 @@
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"quick-lru": {
"version": "4.0.1",
@@ -40679,15 +40484,6 @@
"picomatch": "^2.2.1"
}
},
- "rechoir": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz",
- "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==",
- "dev": true,
- "requires": {
- "resolve": "^1.9.0"
- }
- },
"redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -41279,8 +41075,7 @@
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"revalidator": {
"version": "0.3.1",
@@ -41336,7 +41131,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"requires": {
"queue-microtask": "^1.2.2"
}
@@ -41552,7 +41346,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
- "devOptional": true,
+ "peer": true,
"requires": {
"randombytes": "^2.1.0"
}
@@ -41741,8 +41535,7 @@
"source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
- "devOptional": true
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"source-map": {
"version": "0.5.7",
@@ -41759,7 +41552,6 @@
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "devOptional": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -41768,8 +41560,7 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -42566,8 +42357,7 @@
"tapable": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz",
- "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==",
- "devOptional": true
+ "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw=="
},
"tar-fs": {
"version": "2.1.1",
@@ -42627,7 +42417,7 @@
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz",
"integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==",
- "devOptional": true,
+ "peer": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.7.2",
@@ -42638,13 +42428,13 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "devOptional": true
+ "peer": true
},
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "devOptional": true
+ "peer": true
}
}
},
@@ -42652,7 +42442,7 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz",
"integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==",
- "devOptional": true,
+ "peer": true,
"requires": {
"jest-worker": "^26.6.2",
"p-limit": "^3.1.0",
@@ -42666,7 +42456,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "devOptional": true,
+ "peer": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -42678,7 +42468,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "devOptional": true,
+ "peer": true,
"requires": {
"yocto-queue": "^0.1.0"
}
@@ -42687,7 +42477,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
@@ -42698,7 +42488,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true
+ "peer": true
}
}
},
@@ -42934,8 +42724,7 @@
"tslib": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
- "devOptional": true
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
},
"tsscmp": {
"version": "1.0.6",
@@ -43701,7 +43490,7 @@
"version": "5.37.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.37.1.tgz",
"integrity": "sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/eslint-scope": "^3.7.0",
"@types/estree": "^0.0.47",
@@ -43732,13 +43521,13 @@
"version": "8.2.4",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz",
"integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==",
- "devOptional": true
+ "peer": true
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "devOptional": true,
+ "peer": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -43750,19 +43539,19 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "devOptional": true
+ "peer": true
},
"mime-db": {
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
- "devOptional": true
+ "peer": true
},
"mime-types": {
"version": "2.1.30",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
- "devOptional": true,
+ "peer": true,
"requires": {
"mime-db": "1.47.0"
}
@@ -43771,7 +43560,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
- "devOptional": true,
+ "peer": true,
"requires": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
@@ -43782,13 +43571,13 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true
+ "peer": true
},
"webpack-sources": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz",
"integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==",
- "devOptional": true,
+ "peer": true,
"requires": {
"source-list-map": "^2.0.1",
"source-map": "^0.6.1"
@@ -43796,59 +43585,6 @@
}
}
},
- "webpack-cli": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz",
- "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==",
- "dev": true,
- "requires": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^1.0.3",
- "@webpack-cli/info": "^1.2.4",
- "@webpack-cli/serve": "^1.4.0",
- "colorette": "^1.2.1",
- "commander": "^7.0.0",
- "execa": "^5.0.0",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^2.2.0",
- "rechoir": "^0.7.0",
- "v8-compile-cache": "^2.2.0",
- "webpack-merge": "^5.7.3"
- }
- },
- "webpack-merge": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz",
- "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==",
- "dev": true,
- "requires": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- },
- "dependencies": {
- "clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- }
- },
- "shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.2"
- }
- }
- }
- },
"webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
@@ -44004,12 +43740,6 @@
"string-width": "^4.0.0"
}
},
- "wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
- "dev": true
- },
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
diff --git a/package.json b/package.json
index 3fc2ab4c19..780f49c2ee 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
"connect-datadog": "0.0.9",
"connect-slashes": "^1.4.0",
"cookie-parser": "^1.4.5",
+ "copy-webpack-plugin": "^9.0.1",
"cors": "^2.8.5",
"csurf": "^1.11.0",
"dayjs": "^1.10.4",
@@ -118,7 +119,6 @@
"babel-preset-env": "^1.7.0",
"chalk": "^4.1.1",
"commander": "^7.2.0",
- "copy-webpack-plugin": "^8.1.1",
"count-array-values": "^1.2.1",
"cross-env": "^7.0.3",
"csp-parse": "0.0.2",
@@ -173,8 +173,6 @@
"ts-loader": "^9.2.3",
"typescript": "^4.3.2",
"url-template": "^2.0.8",
- "webpack": "^5.37.0",
- "webpack-cli": "^4.7.0",
"website-scraper": "^4.2.3"
},
"engines": {
@@ -196,7 +194,7 @@
"browser-test": "start-server-and-test browser-test-server 4001 browser-test-tests",
"browser-test-server": "cross-env NODE_ENV=production WEB_CONCURRENCY=1 PORT=4001 node server.mjs",
"browser-test-tests": "cross-env BROWSER=1 NODE_OPTIONS=--experimental-vm-modules jest tests/browser/browser.js",
- "build": "npm run webpack-build && next build",
+ "build": "next build",
"debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES='en,ja' nodemon --inspect server.mjs",
"dev": "npm start",
"heroku-postbuild": "node script/early-access/clone-for-build.js && npm run build",
@@ -220,8 +218,7 @@
"sync-search-indices": "script/sync-search-indices.js",
"sync-search-server": "cross-env NODE_ENV=production WEB_CONCURRENCY=1 PORT=4002 node server.mjs",
"test": "npm run lint && cross-env NODE_OPTIONS=--experimental-vm-modules jest",
- "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage",
- "webpack-build": "cross-env NODE_ENV=production npx webpack --mode production"
+ "test-watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch --notify --notifyMode=change --coverage"
},
"lint-staged": {
"*.{js,mjs,ts,tsx}": "eslint --cache --fix",
diff --git a/stylesheets/index.scss b/stylesheets/index.scss
index a9c2182924..917353f80a 100644
--- a/stylesheets/index.scss
+++ b/stylesheets/index.scss
@@ -5,7 +5,7 @@
@import "@primer/css/labels/index.scss";
@import "@primer/css/avatars/avatar.scss";
-$marketing-font-path: "/dist/fonts/";
+$marketing-font-path: "/assets/fonts/inter/";
@import "@primer/css/marketing/index.scss";
@import "font-mktg.scss";
diff --git a/tests/rendering/server.js b/tests/rendering/server.js
index f2bd50c245..262841543a 100644
--- a/tests/rendering/server.js
+++ b/tests/rendering/server.js
@@ -3,7 +3,6 @@ import enterpriseServerReleases from '../../lib/enterprise-server-releases.js'
import { get, getDOM, head, post } from '../helpers/supertest.js'
import { describeViaActionsOnly } from '../helpers/conditional-runs.js'
import { loadPages } from '../../lib/page-data.js'
-import builtAssets from '../../lib/built-asset-urls.js'
import CspParse from 'csp-parse'
import { productMap } from '../../lib/all-products.js'
import { jest } from '@jest/globals'
@@ -177,7 +176,11 @@ describe('server', () => {
const $ = await getDOM('/not-a-real-page')
expect($('h1').text()).toBe('Ooops!')
expect($.text().includes("It looks like this page doesn't exist.")).toBe(true)
- expect($.text().includes('We track these errors automatically, but if the problem persists please feel free to contact us.')).toBe(true)
+ expect(
+ $.text().includes(
+ 'We track these errors automatically, but if the problem persists please feel free to contact us.'
+ )
+ ).toBe(true)
expect($.res.statusCode).toBe(404)
})
@@ -200,8 +203,12 @@ describe('server', () => {
test('renders a 500 page when errors are thrown', async () => {
const $ = await getDOM('/_500')
expect($('h1').text()).toBe('Ooops!')
- expect($.text().includes("It looks like something went wrong.")).toBe(true)
- expect($.text().includes("We track these errors automatically, but if the problem persists please feel free to contact us.")).toBe(true)
+ expect($.text().includes('It looks like something went wrong.')).toBe(true)
+ expect(
+ $.text().includes(
+ 'We track these errors automatically, but if the problem persists please feel free to contact us.'
+ )
+ ).toBe(true)
expect($.res.statusCode).toBe(500)
})
@@ -498,9 +505,7 @@ describe('server', () => {
const $ = await getDOM(
`${latestEnterprisePath}/github/getting-started-with-github/set-up-git`
)
- expect(
- $('a[href="/en/desktop/installing-and-configuring-github-desktop"]').length
- ).toBe(1)
+ expect($('a[href="/en/desktop/installing-and-configuring-github-desktop"]').length).toBe(1)
})
test('admin articles that link to non-admin articles have Enterprise user links', async () => {
@@ -526,16 +531,16 @@ describe('server', () => {
`${latestEnterprisePath}/admin/installation/upgrading-github-enterprise-server`
)
expect(
- $(
- 'a[href="https://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm"]'
- ).length
+ $('a[href="https://docs.microsoft.com/azure/backup/backup-azure-vms-first-look-arm"]')
+ .length
).toBe(1)
})
})
describe('article versions', () => {
test('includes links to all versions of each article', async () => {
- const articlePath = 'github/setting-up-and-managing-your-github-user-account/managing-user-account-settings/about-your-personal-dashboard'
+ const articlePath =
+ 'github/setting-up-and-managing-your-github-user-account/managing-user-account-settings/about-your-personal-dashboard'
const $ = await getDOM(
`/en/enterprise-server@${enterpriseServerReleases.latest}/${articlePath}`
)
@@ -545,7 +550,10 @@ describe('server', () => {
).length
).toBe(2)
// 2.13 predates this feature, so it should be excluded:
- expect($(`[data-testid=article-version-picker] a[href="/en/enterprise/2.13/user/${articlePath}"]`).length).toBe(0)
+ expect(
+ $(`[data-testid=article-version-picker] a[href="/en/enterprise/2.13/user/${articlePath}"]`)
+ .length
+ ).toBe(0)
})
test('is not displayed if article has only one version', async () => {
@@ -852,8 +860,9 @@ describe('GitHub Desktop URLs', () => {
describe('static assets', () => {
test('fonts', async () => {
- expect((await get('/dist/fonts/Inter-Medium.woff')).statusCode).toBe(200)
- expect((await get('/dist/fonts/Inter-Regular.woff')).statusCode).toBe(200)
+ expect((await get('/assets/fonts/inter/Inter-Bold.woff')).statusCode).toBe(200)
+ expect((await get('/assets/fonts/inter/Inter-Medium.woff')).statusCode).toBe(200)
+ expect((await get('/assets/fonts/inter/Inter-Regular.woff')).statusCode).toBe(200)
})
})
@@ -948,37 +957,6 @@ describe('?json query param for context debugging', () => {
})
})
-describe('stylesheets', () => {
- it('compiles and sets the right content-type header', async () => {
- const stylesheetUrl = builtAssets.main.css
- const res = await get(stylesheetUrl)
- expect(res.statusCode).toBe(200)
- expect(res.headers['content-type']).toBe('text/css; charset=UTF-8')
- })
-})
-
-describe('client-side JavaScript bundle', () => {
- let res
- beforeAll(async () => {
- const scriptUrl = builtAssets.main.js
- res = await get(scriptUrl)
- })
-
- it('returns a 200 response', async () => {
- expect(res.statusCode).toBe(200)
- })
-
- it('sets the right content-type header', async () => {
- expect(res.headers['content-type']).toBe('application/javascript; charset=UTF-8')
- })
-
- // TODO: configure webpack to create production bundle in the test env
- // it('is not too big', async () => {
- // const tooBig = 10 * 1000
- // expect(res.text.length).toBeLessThan(tooBig)
- // })
-})
-
describe('static routes', () => {
it('serves content from the /assets directory', async () => {
expect((await get('/assets/images/site/be-social.gif')).statusCode).toBe(200)
diff --git a/webpack.config.js b/webpack.config.js
deleted file mode 100644
index f5652e573f..0000000000
--- a/webpack.config.js
+++ /dev/null
@@ -1,78 +0,0 @@
-const path = require('path')
-const MiniCssExtractPlugin = require('mini-css-extract-plugin')
-const CopyWebpackPlugin = require('copy-webpack-plugin')
-const { EnvironmentPlugin, ProvidePlugin } = require('webpack')
-
-module.exports = {
- mode: 'development',
- devtool: process.env.NODE_ENV === 'development' ? 'eval' : 'source-map', // no 'eval' outside of development
- entry: './javascripts/index.ts',
- output: {
- filename: 'index.js',
- path: path.resolve(__dirname, 'dist'),
- publicPath: '/dist',
- },
- stats: 'errors-only',
- resolve: {
- extensions: ['.tsx', '.ts', '.js', '.css', '.scss'],
- },
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- use: 'ts-loader',
- exclude: /node_modules/,
- },
- {
- test: /\.css$/i,
- use: ['style-loader', 'css-loader'],
- },
- {
- test: /\.s[ac]ss$/i,
- use: [
- MiniCssExtractPlugin.loader,
- {
- loader: 'css-loader',
- options: {
- sourceMap: true,
- url: false,
- },
- },
- {
- // Needed to resolve image url()s within @primer/css
- loader: 'resolve-url-loader',
- options: {},
- },
- {
- loader: 'sass-loader',
- options: {
- sassOptions: {
- quietDeps: true,
- includePaths: ['./stylesheets', './node_modules'],
- options: {
- sourceMap: true,
- sourceMapContents: false,
- },
- },
- },
- },
- ],
- },
- ],
- },
- plugins: [
- new MiniCssExtractPlugin({
- filename: 'index.css',
- }),
- new CopyWebpackPlugin({
- patterns: [{ from: 'node_modules/@primer/css/fonts', to: 'fonts' }],
- }),
- new EnvironmentPlugin({
- NODE_ENV: 'development', // use 'development' unless process.env.NODE_ENV is defined
- DEBUG: false,
- }),
- new ProvidePlugin({
- process: 'process/browser',
- }),
- ],
-}