From 9155154e45d7c52b12a98f212a290db52efe9468 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Mon, 2 Sep 2024 14:33:19 +0530 Subject: [PATCH 01/11] chore: removed unused codes --- {scripts => adobe-students/scripts}/aem.js | 0 .../scripts}/delayed.js | 0 .../scripts}/scripts.js | 0 {styles => adobe-students/styles}/fonts.css | 0 .../styles}/lazy-styles.css | 0 {styles => adobe-students/styles}/styles.css | 0 blocks/cards/cards.css | 27 -- blocks/cards/cards.js | 18 -- blocks/columns/columns.css | 33 --- blocks/columns/columns.js | 18 -- blocks/footer/footer.css | 20 -- blocks/footer/footer.js | 20 -- blocks/fragment/fragment.css | 1 - blocks/fragment/fragment.js | 55 ---- blocks/header/header.css | 268 ------------------ blocks/header/header.js | 166 ----------- blocks/hero/hero.css | 37 --- blocks/hero/hero.js | 0 fonts/roboto-bold.woff2 | Bin 11040 -> 0 bytes fonts/roboto-condensed-bold.woff2 | Bin 31976 -> 0 bytes fonts/roboto-medium.woff2 | Bin 64732 -> 0 bytes fonts/roboto-regular.woff2 | Bin 11028 -> 0 bytes icons/search.svg | 6 - 23 files changed, 669 deletions(-) rename {scripts => adobe-students/scripts}/aem.js (100%) rename {scripts => adobe-students/scripts}/delayed.js (100%) rename {scripts => adobe-students/scripts}/scripts.js (100%) rename {styles => adobe-students/styles}/fonts.css (100%) rename {styles => adobe-students/styles}/lazy-styles.css (100%) rename {styles => adobe-students/styles}/styles.css (100%) delete mode 100644 blocks/cards/cards.css delete mode 100644 blocks/cards/cards.js delete mode 100644 blocks/columns/columns.css delete mode 100644 blocks/columns/columns.js delete mode 100644 blocks/footer/footer.css delete mode 100644 blocks/footer/footer.js delete mode 100644 blocks/fragment/fragment.css delete mode 100644 blocks/fragment/fragment.js delete mode 100644 blocks/header/header.css delete mode 100644 blocks/header/header.js delete mode 100644 blocks/hero/hero.css delete mode 100644 blocks/hero/hero.js delete mode 100644 fonts/roboto-bold.woff2 delete mode 100644 fonts/roboto-condensed-bold.woff2 delete mode 100644 fonts/roboto-medium.woff2 delete mode 100644 fonts/roboto-regular.woff2 delete mode 100644 icons/search.svg diff --git a/scripts/aem.js b/adobe-students/scripts/aem.js similarity index 100% rename from scripts/aem.js rename to adobe-students/scripts/aem.js diff --git a/scripts/delayed.js b/adobe-students/scripts/delayed.js similarity index 100% rename from scripts/delayed.js rename to adobe-students/scripts/delayed.js diff --git a/scripts/scripts.js b/adobe-students/scripts/scripts.js similarity index 100% rename from scripts/scripts.js rename to adobe-students/scripts/scripts.js diff --git a/styles/fonts.css b/adobe-students/styles/fonts.css similarity index 100% rename from styles/fonts.css rename to adobe-students/styles/fonts.css diff --git a/styles/lazy-styles.css b/adobe-students/styles/lazy-styles.css similarity index 100% rename from styles/lazy-styles.css rename to adobe-students/styles/lazy-styles.css diff --git a/styles/styles.css b/adobe-students/styles/styles.css similarity index 100% rename from styles/styles.css rename to adobe-students/styles/styles.css diff --git a/blocks/cards/cards.css b/blocks/cards/cards.css deleted file mode 100644 index 7d88439..0000000 --- a/blocks/cards/cards.css +++ /dev/null @@ -1,27 +0,0 @@ -.cards > ul { - list-style: none; - margin: 0; - padding: 0; - display: grid; - grid-template-columns: repeat(auto-fill, minmax(257px, 1fr)); - grid-gap: 24px; -} - -.cards > ul > li { - border: 1px solid #dadada; - background-color: var(--background-color); -} - -.cards .cards-card-body { - margin: 16px; -} - -.cards .cards-card-image { - line-height: 0; -} - -.cards > ul > li img { - width: 100%; - aspect-ratio: 4 / 3; - object-fit: cover; -} diff --git a/blocks/cards/cards.js b/blocks/cards/cards.js deleted file mode 100644 index 0164816..0000000 --- a/blocks/cards/cards.js +++ /dev/null @@ -1,18 +0,0 @@ -import { createOptimizedPicture } from '../../scripts/aem.js'; - -export default function decorate(block) { - /* change to ul, li */ - const ul = document.createElement('ul'); - [...block.children].forEach((row) => { - const li = document.createElement('li'); - while (row.firstElementChild) li.append(row.firstElementChild); - [...li.children].forEach((div) => { - if (div.children.length === 1 && div.querySelector('picture')) div.className = 'cards-card-image'; - else div.className = 'cards-card-body'; - }); - ul.append(li); - }); - ul.querySelectorAll('picture > img').forEach((img) => img.closest('picture').replaceWith(createOptimizedPicture(img.src, img.alt, false, [{ width: '750' }]))); - block.textContent = ''; - block.append(ul); -} diff --git a/blocks/columns/columns.css b/blocks/columns/columns.css deleted file mode 100644 index f2b203e..0000000 --- a/blocks/columns/columns.css +++ /dev/null @@ -1,33 +0,0 @@ -.columns > div { - display: flex; - flex-direction: column; -} - -.columns img { - width: 100%; -} - -.columns > div > div { - order: 1; -} - -.columns > div > .columns-img-col { - order: 0; -} - -.columns > div > .columns-img-col img { - display: block; -} - -@media (width >= 900px) { - .columns > div { - align-items: center; - flex-direction: unset; - gap: 24px; - } - - .columns > div > div { - flex: 1; - order: unset; - } -} diff --git a/blocks/columns/columns.js b/blocks/columns/columns.js deleted file mode 100644 index 9b78c81..0000000 --- a/blocks/columns/columns.js +++ /dev/null @@ -1,18 +0,0 @@ -export default function decorate(block) { - const cols = [...block.firstElementChild.children]; - block.classList.add(`columns-${cols.length}-cols`); - - // setup image columns - [...block.children].forEach((row) => { - [...row.children].forEach((col) => { - const pic = col.querySelector('picture'); - if (pic) { - const picWrapper = pic.closest('div'); - if (picWrapper && picWrapper.children.length === 1) { - // picture is only content in column - picWrapper.classList.add('columns-img-col'); - } - } - }); - }); -} diff --git a/blocks/footer/footer.css b/blocks/footer/footer.css deleted file mode 100644 index d8617de..0000000 --- a/blocks/footer/footer.css +++ /dev/null @@ -1,20 +0,0 @@ -footer { - background-color: var(--light-color); - font-size: var(--body-font-size-xs); -} - -footer .footer > div { - margin: auto; - max-width: 1200px; - padding: 40px 24px 24px; -} - -footer .footer p { - margin: 0; -} - -@media (width >= 900px) { - footer .footer > div { - padding: 40px 32px 24px; - } -} diff --git a/blocks/footer/footer.js b/blocks/footer/footer.js deleted file mode 100644 index ff5708a..0000000 --- a/blocks/footer/footer.js +++ /dev/null @@ -1,20 +0,0 @@ -import { getMetadata } from '../../scripts/aem.js'; -import { loadFragment } from '../fragment/fragment.js'; - -/** - * loads and decorates the footer - * @param {Element} block The footer block element - */ -export default async function decorate(block) { - // load footer as fragment - const footerMeta = getMetadata('footer'); - const footerPath = footerMeta ? new URL(footerMeta, window.location).pathname : '/footer'; - const fragment = await loadFragment(footerPath); - - // decorate footer DOM - block.textContent = ''; - const footer = document.createElement('div'); - while (fragment.firstElementChild) footer.append(fragment.firstElementChild); - - block.append(footer); -} diff --git a/blocks/fragment/fragment.css b/blocks/fragment/fragment.css deleted file mode 100644 index ff71124..0000000 --- a/blocks/fragment/fragment.css +++ /dev/null @@ -1 +0,0 @@ -/* stylelint-disable no-empty-source */ diff --git a/blocks/fragment/fragment.js b/blocks/fragment/fragment.js deleted file mode 100644 index 9d9195c..0000000 --- a/blocks/fragment/fragment.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Fragment Block - * Include content on a page as a fragment. - * https://www.aem.live/developer/block-collection/fragment - */ - -import { - decorateMain, -} from '../../scripts/scripts.js'; - -import { - loadSections, -} from '../../scripts/aem.js'; - -/** - * Loads a fragment. - * @param {string} path The path to the fragment - * @returns {HTMLElement} The root element of the fragment - */ -export async function loadFragment(path) { - if (path && path.startsWith('/')) { - const resp = await fetch(`${path}.plain.html`); - if (resp.ok) { - const main = document.createElement('main'); - main.innerHTML = await resp.text(); - - // reset base path for media to fragment base - const resetAttributeBase = (tag, attr) => { - main.querySelectorAll(`${tag}[${attr}^="./media_"]`).forEach((elem) => { - elem[attr] = new URL(elem.getAttribute(attr), new URL(path, window.location)).href; - }); - }; - resetAttributeBase('img', 'src'); - resetAttributeBase('source', 'srcset'); - - decorateMain(main); - await loadSections(main); - return main; - } - } - return null; -} - -export default async function decorate(block) { - const link = block.querySelector('a'); - const path = link ? link.getAttribute('href') : block.textContent.trim(); - const fragment = await loadFragment(path); - if (fragment) { - const fragmentSection = fragment.querySelector(':scope .section'); - if (fragmentSection) { - block.closest('.section').classList.add(...fragmentSection.classList); - block.closest('.fragment').replaceWith(...fragment.childNodes); - } - } -} diff --git a/blocks/header/header.css b/blocks/header/header.css deleted file mode 100644 index 53e4e61..0000000 --- a/blocks/header/header.css +++ /dev/null @@ -1,268 +0,0 @@ -/* header and nav layout */ -header .nav-wrapper { - background-color: var(--background-color); - width: 100%; - z-index: 2; - position: fixed; -} - -header nav { - box-sizing: border-box; - display: grid; - grid-template: - 'hamburger brand tools' var(--nav-height) - 'sections sections sections' 1fr / auto 1fr auto; - align-items: center; - gap: 0 24px; - margin: auto; - max-width: 1248px; - height: var(--nav-height); - padding: 0 24px; - font-family: var(--body-font-family); -} - -header nav[aria-expanded='true'] { - grid-template: - 'hamburger brand' var(--nav-height) - 'sections sections' 1fr - 'tools tools' var(--nav-height) / auto 1fr; - overflow-y: auto; - min-height: 100dvh; -} - -@media (width >= 900px) { - header nav { - display: flex; - justify-content: space-between; - gap: 0 32px; - max-width: 1264px; - padding: 0 32px; - } - - header nav[aria-expanded='true'] { - min-height: 0; - overflow: visible; - } -} - -header nav p { - margin: 0; - line-height: 1; -} - -header nav a:any-link { - color: currentcolor; -} - -/* hamburger */ -header nav .nav-hamburger { - grid-area: hamburger; - height: 22px; - display: flex; - align-items: center; -} - -header nav .nav-hamburger button { - height: 22px; - margin: 0; - border: 0; - border-radius: 0; - padding: 0; - background-color: var(--background-color); - color: inherit; - overflow: initial; - text-overflow: initial; - white-space: initial; -} - -header nav .nav-hamburger-icon, -header nav .nav-hamburger-icon::before, -header nav .nav-hamburger-icon::after { - box-sizing: border-box; - display: block; - position: relative; - width: 20px; -} - -header nav .nav-hamburger-icon::before, -header nav .nav-hamburger-icon::after { - content: ''; - position: absolute; - background: currentcolor; -} - -header nav[aria-expanded='false'] .nav-hamburger-icon, -header nav[aria-expanded='false'] .nav-hamburger-icon::before, -header nav[aria-expanded='false'] .nav-hamburger-icon::after { - height: 2px; - border-radius: 2px; - background: currentcolor; -} - -header nav[aria-expanded='false'] .nav-hamburger-icon::before { - top: -6px; -} - -header nav[aria-expanded='false'] .nav-hamburger-icon::after { - top: 6px; -} - -header nav[aria-expanded='true'] .nav-hamburger-icon { - height: 22px; -} - -header nav[aria-expanded='true'] .nav-hamburger-icon::before, -header nav[aria-expanded='true'] .nav-hamburger-icon::after { - top: 3px; - left: 1px; - transform: rotate(45deg); - transform-origin: 2px 1px; - width: 24px; - height: 2px; - border-radius: 2px; -} - -header nav[aria-expanded='true'] .nav-hamburger-icon::after { - top: unset; - bottom: 3px; - transform: rotate(-45deg); -} - -@media (width >= 900px) { - header nav .nav-hamburger { - display: none; - visibility: hidden; - } -} - -/* brand */ -header .nav-brand { - grid-area: brand; - flex-basis: 128px; - font-size: var(--heading-font-size-s); - font-weight: 700; - line-height: 1; -} - -header nav .nav-brand img { - width: 128px; - height: auto; -} - -/* sections */ -header nav .nav-sections { - grid-area: sections; - flex: 1 1 auto; - display: none; - visibility: hidden; -} - -header nav[aria-expanded='true'] .nav-sections { - display: block; - visibility: visible; - align-self: start; -} - -header nav .nav-sections ul { - list-style: none; - padding-left: 0; - font-size: var(--body-font-size-s); -} - -header nav .nav-sections ul > li { - font-weight: 500; -} - -header nav .nav-sections ul > li > ul { - margin-top: 0; -} - -header nav .nav-sections ul > li > ul > li { - font-weight: 400; -} - -@media (width >= 900px) { - header nav .nav-sections { - display: block; - visibility: visible; - white-space: nowrap; - } - - header nav[aria-expanded='true'] .nav-sections { - align-self: unset; - } - - header nav .nav-sections .nav-drop { - position: relative; - padding-right: 16px; - cursor: pointer; - } - - header nav .nav-sections .nav-drop::after { - content: ''; - display: inline-block; - position: absolute; - top: 0.5em; - right: 2px; - transform: rotate(135deg); - width: 6px; - height: 6px; - border: 2px solid currentcolor; - border-radius: 0 1px 0 0; - border-width: 2px 2px 0 0; - } - - header nav .nav-sections .nav-drop[aria-expanded='true']::after { - top: unset; - bottom: 0.5em; - transform: rotate(315deg); - } - - header nav .nav-sections ul { - display: flex; - gap: 24px; - margin: 0; - } - - header nav .nav-sections .default-content-wrapper > ul > li { - flex: 0 1 auto; - position: relative; - } - - header nav .nav-sections .default-content-wrapper > ul > li > ul { - display: none; - position: relative; - } - - header nav .nav-sections .default-content-wrapper > ul > li[aria-expanded='true'] > ul { - display: block; - position: absolute; - left: -24px; - width: 200px; - top: 150%; - padding: 16px; - background-color: var(--light-color); - white-space: initial; - } - - header nav .nav-sections .default-content-wrapper > ul > li > ul::before { - content: ''; - position: absolute; - top: -8px; - left: 16px; - width: 0; - height: 0; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-bottom: 8px solid var(--light-color); - } - - header nav .nav-sections .default-content-wrapper > ul > li > ul > li { - padding: 8px 0; - } -} - -/* tools */ -header nav .nav-tools { - grid-area: tools; -} diff --git a/blocks/header/header.js b/blocks/header/header.js deleted file mode 100644 index cb2157c..0000000 --- a/blocks/header/header.js +++ /dev/null @@ -1,166 +0,0 @@ -import { getMetadata } from '../../scripts/aem.js'; -import { loadFragment } from '../fragment/fragment.js'; - -// media query match that indicates mobile/tablet width -const isDesktop = window.matchMedia('(min-width: 900px)'); - -function closeOnEscape(e) { - if (e.code === 'Escape') { - const nav = document.getElementById('nav'); - const navSections = nav.querySelector('.nav-sections'); - const navSectionExpanded = navSections.querySelector('[aria-expanded="true"]'); - if (navSectionExpanded && isDesktop.matches) { - // eslint-disable-next-line no-use-before-define - toggleAllNavSections(navSections); - navSectionExpanded.focus(); - } else if (!isDesktop.matches) { - // eslint-disable-next-line no-use-before-define - toggleMenu(nav, navSections); - nav.querySelector('button').focus(); - } - } -} - -function closeOnFocusLost(e) { - const nav = e.currentTarget; - if (!nav.contains(e.relatedTarget)) { - const navSections = nav.querySelector('.nav-sections'); - const navSectionExpanded = navSections.querySelector('[aria-expanded="true"]'); - if (navSectionExpanded && isDesktop.matches) { - // eslint-disable-next-line no-use-before-define - toggleAllNavSections(navSections, false); - } else if (!isDesktop.matches) { - // eslint-disable-next-line no-use-before-define - toggleMenu(nav, navSections, false); - } - } -} - -function openOnKeydown(e) { - const focused = document.activeElement; - const isNavDrop = focused.className === 'nav-drop'; - if (isNavDrop && (e.code === 'Enter' || e.code === 'Space')) { - const dropExpanded = focused.getAttribute('aria-expanded') === 'true'; - // eslint-disable-next-line no-use-before-define - toggleAllNavSections(focused.closest('.nav-sections')); - focused.setAttribute('aria-expanded', dropExpanded ? 'false' : 'true'); - } -} - -function focusNavSection() { - document.activeElement.addEventListener('keydown', openOnKeydown); -} - -/** - * Toggles all nav sections - * @param {Element} sections The container element - * @param {Boolean} expanded Whether the element should be expanded or collapsed - */ -function toggleAllNavSections(sections, expanded = false) { - sections.querySelectorAll('.nav-sections .default-content-wrapper > ul > li').forEach((section) => { - section.setAttribute('aria-expanded', expanded); - }); -} - -/** - * Toggles the entire nav - * @param {Element} nav The container element - * @param {Element} navSections The nav sections within the container element - * @param {*} forceExpanded Optional param to force nav expand behavior when not null - */ -function toggleMenu(nav, navSections, forceExpanded = null) { - const expanded = forceExpanded !== null ? !forceExpanded : nav.getAttribute('aria-expanded') === 'true'; - const button = nav.querySelector('.nav-hamburger button'); - document.body.style.overflowY = (expanded || isDesktop.matches) ? '' : 'hidden'; - nav.setAttribute('aria-expanded', expanded ? 'false' : 'true'); - toggleAllNavSections(navSections, expanded || isDesktop.matches ? 'false' : 'true'); - button.setAttribute('aria-label', expanded ? 'Open navigation' : 'Close navigation'); - // enable nav dropdown keyboard accessibility - const navDrops = navSections.querySelectorAll('.nav-drop'); - if (isDesktop.matches) { - navDrops.forEach((drop) => { - if (!drop.hasAttribute('tabindex')) { - drop.setAttribute('tabindex', 0); - drop.addEventListener('focus', focusNavSection); - } - }); - } else { - navDrops.forEach((drop) => { - drop.removeAttribute('tabindex'); - drop.removeEventListener('focus', focusNavSection); - }); - } - - // enable menu collapse on escape keypress - if (!expanded || isDesktop.matches) { - // collapse menu on escape press - window.addEventListener('keydown', closeOnEscape); - // collapse menu on focus lost - nav.addEventListener('focusout', closeOnFocusLost); - } else { - window.removeEventListener('keydown', closeOnEscape); - nav.removeEventListener('focusout', closeOnFocusLost); - } -} - -/** - * loads and decorates the header, mainly the nav - * @param {Element} block The header block element - */ -export default async function decorate(block) { - // load nav as fragment - const navMeta = getMetadata('nav'); - const navPath = navMeta ? new URL(navMeta, window.location).pathname : '/nav'; - const fragment = await loadFragment(navPath); - - // decorate nav DOM - block.textContent = ''; - const nav = document.createElement('nav'); - nav.id = 'nav'; - while (fragment.firstElementChild) nav.append(fragment.firstElementChild); - - const classes = ['brand', 'sections', 'tools']; - classes.forEach((c, i) => { - const section = nav.children[i]; - if (section) section.classList.add(`nav-${c}`); - }); - - const navBrand = nav.querySelector('.nav-brand'); - const brandLink = navBrand.querySelector('.button'); - if (brandLink) { - brandLink.className = ''; - brandLink.closest('.button-container').className = ''; - } - - const navSections = nav.querySelector('.nav-sections'); - if (navSections) { - navSections.querySelectorAll(':scope .default-content-wrapper > ul > li').forEach((navSection) => { - if (navSection.querySelector('ul')) navSection.classList.add('nav-drop'); - navSection.addEventListener('click', () => { - if (isDesktop.matches) { - const expanded = navSection.getAttribute('aria-expanded') === 'true'; - toggleAllNavSections(navSections); - navSection.setAttribute('aria-expanded', expanded ? 'false' : 'true'); - } - }); - }); - } - - // hamburger for mobile - const hamburger = document.createElement('div'); - hamburger.classList.add('nav-hamburger'); - hamburger.innerHTML = ``; - hamburger.addEventListener('click', () => toggleMenu(nav, navSections)); - nav.prepend(hamburger); - nav.setAttribute('aria-expanded', 'false'); - // prevent mobile nav behavior on window resize - toggleMenu(nav, navSections, isDesktop.matches); - isDesktop.addEventListener('change', () => toggleMenu(nav, navSections, isDesktop.matches)); - - const navWrapper = document.createElement('div'); - navWrapper.className = 'nav-wrapper'; - navWrapper.append(nav); - block.append(navWrapper); -} diff --git a/blocks/hero/hero.css b/blocks/hero/hero.css deleted file mode 100644 index 974eaf2..0000000 --- a/blocks/hero/hero.css +++ /dev/null @@ -1,37 +0,0 @@ -.hero-container .hero-wrapper { - max-width: unset; - padding: 0; -} - -.hero { - position: relative; - padding: 40px 24px; - min-height: 300px; -} - -.hero h1 { - max-width: 1200px; - margin-left: auto; - margin-right: auto; - color: var(--background-color); -} - -.hero picture { - position: absolute; - z-index: -1; - inset: 0; - object-fit: cover; - box-sizing: border-box; -} - -.hero img { - object-fit: cover; - width: 100%; - height: 100%; -} - -@media (width >= 900px) { - .hero { - padding: 40px 32px; - } -} \ No newline at end of file diff --git a/blocks/hero/hero.js b/blocks/hero/hero.js deleted file mode 100644 index e69de29..0000000 diff --git a/fonts/roboto-bold.woff2 b/fonts/roboto-bold.woff2 deleted file mode 100644 index 4aeda71b87481dae4c47aae4c258f5fa8b89f457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11040 zcmV+*E8o<2Pew8T0RR9104pE>4gdfE093R904m7<0RR9100000000000000000000 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 z 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 ON3B$ub4ks;IsgFgYn-P5 diff --git a/icons/search.svg b/icons/search.svg deleted file mode 100644 index 637c677..0000000 --- a/icons/search.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - From fcfd0090652125a2d49100f64d3635cd39f5a845 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Mon, 2 Sep 2024 21:51:25 +0530 Subject: [PATCH 02/11] feat: index,sitemap, path changed for sudents --- .editorconfig | 6 + .eslintrc.js | 31 +- .github/codeql/codeql-config.yml | 4 + .github/pull_request_template.md | 10 +- .github/workflows/codeql.yml | 67 + .github/workflows/run-lint.yaml | 27 + .github/workflows/run-nala.yaml | 30 + .github/workflows/run-tests.yaml | 43 + .gitignore | 3 - .hlxignore | 4 +- .kodiak/config.yaml | 26 + .stylelintrc.json | 2 +- .vscode/extensions.json | 10 + .vscode/launch.json | 15 + .vscode/settings.json | 2 + 404.html | 65 +- CODEOWNERS | 1 + CONTRIBUTING.md | 1 + README.md | 55 +- adobe-students/img/favicons/favicon-180.png | Bin 0 -> 4768 bytes adobe-students/img/favicons/favicon-192.png | Bin 0 -> 5185 bytes adobe-students/img/favicons/favicon-512.png | Bin 0 -> 17814 bytes adobe-students/img/favicons/favicon.ico | Bin 0 -> 9662 bytes adobe-students/img/favicons/favicon.svg | 1 + .../img/favicons/favicon.webmanifest | 8 + adobe-students/img/icons/3d-assets.svg | 27 + adobe-students/img/icons/designer.svg | 25 + adobe-students/img/icons/modeler.svg | 30 + adobe-students/img/icons/painter.svg | 44 + adobe-students/img/icons/sampler.svg | 44 + adobe-students/img/icons/stager.svg | 63 + adobe-students/scripts/decorate.js | 25 + adobe-students/scripts/fallback.js | 46 + adobe-students/scripts/goCart.js | 31 + adobe-students/scripts/scripts.js | 300 +- adobe-students/scripts/utils.js | 101 + adobe-students/sitemap-index.xml | 276 + adobe-students/styles/styles.css | 264 +- fstab.yaml | 2 +- head.html | 7 +- helix-query.yaml | 1140 +++- helix-sitemap.yaml | 579 ++ helix-version.txt | 1 + libs/deps/README | 1 + libs/deps/lit-all.min.js | 281 + package-lock.json | 5604 ++++++++++++++--- package.json | 44 +- test/scripts/mocks/body.html | 23 + test/scripts/mocks/head-off.html | 23 + test/scripts/mocks/head-on.html | 24 + test/scripts/scripts.test.js | 39 + tools/sidekick/config.json | 140 + web-test-runner.config.mjs | 47 + wtr | 0 54 files changed, 8133 insertions(+), 1509 deletions(-) create mode 100644 .editorconfig create mode 100644 .github/codeql/codeql-config.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/run-lint.yaml create mode 100644 .github/workflows/run-nala.yaml create mode 100644 .github/workflows/run-tests.yaml create mode 100644 .kodiak/config.yaml create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 CODEOWNERS create mode 100644 adobe-students/img/favicons/favicon-180.png create mode 100644 adobe-students/img/favicons/favicon-192.png create mode 100644 adobe-students/img/favicons/favicon-512.png create mode 100644 adobe-students/img/favicons/favicon.ico create mode 100644 adobe-students/img/favicons/favicon.svg create mode 100644 adobe-students/img/favicons/favicon.webmanifest create mode 100644 adobe-students/img/icons/3d-assets.svg create mode 100644 adobe-students/img/icons/designer.svg create mode 100644 adobe-students/img/icons/modeler.svg create mode 100644 adobe-students/img/icons/painter.svg create mode 100644 adobe-students/img/icons/sampler.svg create mode 100644 adobe-students/img/icons/stager.svg create mode 100644 adobe-students/scripts/decorate.js create mode 100644 adobe-students/scripts/fallback.js create mode 100644 adobe-students/scripts/goCart.js create mode 100644 adobe-students/scripts/utils.js create mode 100644 adobe-students/sitemap-index.xml create mode 100644 helix-sitemap.yaml create mode 100644 helix-version.txt create mode 100644 libs/deps/README create mode 100644 libs/deps/lit-all.min.js create mode 100644 test/scripts/mocks/body.html create mode 100644 test/scripts/mocks/head-off.html create mode 100644 test/scripts/mocks/head-on.html create mode 100644 test/scripts/scripts.test.js create mode 100644 tools/sidekick/config.json create mode 100644 web-test-runner.config.mjs create mode 100644 wtr diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3a1e9c1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +quote_type = single diff --git a/.eslintrc.js b/.eslintrc.js index 34c6b71..f9e6dd4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,9 +1,7 @@ module.exports = { root: true, extends: 'airbnb-base', - env: { - browser: true, - }, + env: { browser: true, mocha: true }, parser: '@babel/eslint-parser', parserOptions: { allowImportExportEverywhere: true, @@ -11,8 +9,29 @@ module.exports = { requireConfigFile: false, }, rules: { - 'import/extensions': ['error', { js: 'always' }], // require js file extensions in imports - 'linebreak-style': ['error', 'unix'], // enforce unix linebreaks - 'no-param-reassign': [2, { props: false }], // allow modifying properties of param + // allow reassigning param + 'no-param-reassign': [2, { props: false }], + 'linebreak-style': ['error', 'unix'], + 'import/extensions': ['error', { js: 'always' }], + 'object-curly-newline': ['error', { + ObjectExpression: { multiline: true, minProperties: 6 }, + ObjectPattern: { multiline: true, minProperties: 6 }, + ImportDeclaration: { multiline: true, minProperties: 6 }, + ExportDeclaration: 'never', + }], + 'no-unused-expressions': 0, + 'chai-friendly/no-unused-expressions': 2, }, + overrides: [ + { + files: ['test/**/*.js'], + rules: { 'no-console': 'off' }, + }, + ], + plugins: [ + 'chai-friendly', + ], + ignorePatterns: [ + '/adobe-students/deps/*', + ], }; diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml new file mode 100644 index 0000000..559e097 --- /dev/null +++ b/.github/codeql/codeql-config.yml @@ -0,0 +1,4 @@ +name: "CC CodeQL Config" + +paths-ignore: + - node_modules diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c9cffa3..a3dabef 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,7 +1,7 @@ -Please always provide the [GitHub issue(s)](../issues) your PR is for, as well as test URLs where your change can be observed (before and after): +* Add your specific features or fixes -Fix # +Resolves: [MWPW-NUMBER](https://jira.corp.adobe.com/browse/MWPW-NUMBER) -Test URLs: -- Before: https://main--adobe-students--adobecom.hlx.live/ -- After: https://--adobe-students--adobecom.hlx.live/ +**Test URLs:** +- Before: https://main--cc--adobecom.hlx.page/?martech=off +- After: https://--cc--adobecom.hlx.page/?martech=off diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..9aac6cf --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,67 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "stage", "main" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "stage", "main" ] + schedule: + # Scheduled to run at 06:18 every Friday + - cron: '18 6 * * 5' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + config-file: ./.github/codeql/codeql-config.yml + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/run-lint.yaml b/.github/workflows/run-lint.yaml new file mode 100644 index 0000000..3aab1f8 --- /dev/null +++ b/.github/workflows/run-lint.yaml @@ -0,0 +1,27 @@ +name: Lint +on: + pull_request: + types: [opened, synchronize, reopened] + paths: + - '**.js' + +jobs: + run-lint: + name: Running eslint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + with: + node-version: 18 + + - name: Install dependencies + run: npm ci + + - name: Run eslint on changed files + uses: tj-actions/eslint-changed-files@v20 + with: + config_path: ".eslintrc.js" + # ignore_path: "/path/to/.eslintignore" + # extra_args: "--max-warnings=0" diff --git a/.github/workflows/run-nala.yaml b/.github/workflows/run-nala.yaml new file mode 100644 index 0000000..e19b75a --- /dev/null +++ b/.github/workflows/run-nala.yaml @@ -0,0 +1,30 @@ +name: Nala Tests + +on: + pull_request: + types: [ labeled, opened, synchronize, reopened ] + +jobs: + action: + name: Running E2E & IT + if: contains(github.event.pull_request.labels.*.name, 'run-nala') + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v3 + - name: Run Nala + uses: adobecom/nala@main + env: + WORKFLOW_NAME: 'CC-PR-RUN' + PR_RUN: 'true' + labels: ${{ join(github.event.pull_request.labels.*.name, ' ') }} + branch: ${{ github.event.pull_request.head.ref }} + repoName: ${{ github.repository }} + prUrl: ${{ github.event.pull_request.head.repo.html_url }} + prOrg: ${{ github.event.pull_request.head.repo.owner.login }} + prRepo: ${{ github.event.pull_request.head.repo.name }} + prBranch: ${{ github.event.pull_request.head.ref }} + prBaseBranch: ${{ github.event.pull_request.base.ref }} + IMS_EMAIL: ${{ secrets.IMS_EMAIL }} + IMS_PASS: ${{ secrets.IMS_PASS }} diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml new file mode 100644 index 0000000..bd1a8b0 --- /dev/null +++ b/.github/workflows/run-tests.yaml @@ -0,0 +1,43 @@ +name: Unit Tests +on: + push: + branches: + - stage + - main + pull_request: + types: [opened, synchronize, reopened, edited] + branches: + - stage + - main +jobs: + run-tests: + name: Running tests + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 2 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install XVFB + run: sudo apt-get install xvfb + + - name: Install dependencies + run: npm install + + - name: Run the tests + run: xvfb-run -a npm test + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: coverage/lcov.info diff --git a/.gitignore b/.gitignore index 5f4aed1..e639ba0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,5 @@ coverage/* logs/* node_modules/* - -helix-importer-ui .DS_Store -*.bak .idea diff --git a/.hlxignore b/.hlxignore index c505916..7cbf3cd 100644 --- a/.hlxignore +++ b/.hlxignore @@ -1,7 +1,5 @@ .* *.md -karma.config.js LICENSE -package.json -package-lock.json test/* +!tools/sidekick/config.json diff --git a/.kodiak/config.yaml b/.kodiak/config.yaml new file mode 100644 index 0000000..2e216ae --- /dev/null +++ b/.kodiak/config.yaml @@ -0,0 +1,26 @@ +version: 1.0 + +snow: + - id: 546348 # Milo Genuine https://adobe.service-now.com/service_registry_portal.do#/service/546348 + +notifications: + jira: + default: + project: MWPW # Mandatory + filters: + include: + risk_rating: R5 + fields: + assignee: + name: blaishram + customfield_11800: MWPW-140779 #epic link + watchers: + - casalino + - jmichnow + - mauchley + labels: + - "OriginatingProcess=Kodiak" + - "security" + - "kodiak-ticket" + components: + - name: "DevOps Security" diff --git a/.stylelintrc.json b/.stylelintrc.json index 0a08a15..2e8ff58 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,3 +1,3 @@ { - "extends": ["stylelint-config-standard"] + "extends": ["stylelint-config-standard", "stylelint-config-prettier"] } diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..78cfea6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + "recommendations": [ + "stylelint.vscode-stylelint", + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig", + "ryanluker.vscode-coverage-gutters", + "eamodio.gitlens", + "virtual-comments.virtual-comments" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..9d6b5f6 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Debug on Helix", + "url": "http://localhost:3000", + "webRoot": "${workspaceFolder}" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} diff --git a/404.html b/404.html index 3e2081f..558d155 100644 --- a/404.html +++ b/404.html @@ -2,65 +2,20 @@ - Page not found - - - - - - - - - + 404 + + + + + + +
-
- +
+
diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..e6a8d5c --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @salonijain3 @bandana147 @amitbikram @raga-adbe-gh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93b8a26..3bcf422 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -71,3 +71,4 @@ One of the maintainers will look at the pull request within one week. Feedback o The project's committers will release to the [Adobe organization on npmjs.org](https://www.npmjs.com/org/adobe). Please contact the [Adobe Open Source Advisory Board](https://git.corp.adobe.com/OpenSourceAdvisoryBoard/discuss/issues) to get access to the npmjs organization. +The release process is fully automated using `semantic-release`, increasing the version numbers, etc. based on the contents of the commit messages found. diff --git a/README.md b/README.md index 5f9372e..f664252 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,49 @@ -# Your Project's Title... -Your project's description... +# Adobe Students x Milo +The Franklin based project for adobe student pages on www.adobe-students.com. Based off of milo-college. -## Environments -- Preview: https://main--adobe-students--adobecom.hlx.page/ -- Live: https://main--adobe-students--adobecom.hlx.live/ +## Developing +1. Install the [AEM CLI](https://github.com/adobe/helix-cli): `sudo npm install -g @adobe/aem-cli` +2. Run `aem up` this repo's folder. (opens your browser at `http://localhost:3000`) +3. Open this repo's folder in your favorite editor and start coding. -## Installation +## Testing Milo Changes on Adobe Students Pages +1. Run 'aem up' in this folder to ensure the adobe-students site is running locally. +2. Make changes in milo, and then from the milo folder, run `npm run libs`. +3. Milo will run at: +``` +http://localhost:6456 +``` +4. On your `localhost:3000/` or the `main--` versions of your site, add the URL params: `?milolibs=local` +5. You should see milo changes occurring on adobe-students pages. +6. When needing to test on a adobe-students page while making a PR for milo, add the URL params: `?milolibs=`to your test URLs. +## Creating New Blocks +When creating new blocks, first vet any requirements/author-experience in milo-community. There may be a way to achieve your goals with what currently exists in milo. + +## Testing ```sh -npm i +npm run test ``` +or: +```sh +npm run test:watch +``` +This will give you several options to debug tests. Note: coverage may not be accurate. ## Linting - +To run the linter run: ```sh npm run lint ``` - -## Local development - -1. Create a new repository based on the `aem-boilerplate` template and add a mountpoint in the `fstab.yaml` -1. Add the [AEM Code Sync GitHub App](https://github.com/apps/aem-code-sync) to the repository -1. Install the [AEM CLI](https://github.com/adobe/helix-cli): `npm install -g @adobe/aem-cli` -1. Start AEM Proxy: `aem up` (opens your browser at `http://localhost:3000`) -1. Open the `adobe-students` directory in your favorite IDE and start coding :) +To lint just js or css files, run +```sh +npm run lint:css +``` +or: +```sh +npm run lint:js +``` +If you need to lint just one file, you can run: +```sh +npx eslint file1.js +``` diff --git a/adobe-students/img/favicons/favicon-180.png b/adobe-students/img/favicons/favicon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..82a5b253a8e66c7b93ef45efbebf76819b569721 GIT binary patch literal 4768 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 S9nS?@Ko+JpCXGh;oBtP5$O5DQ literal 0 HcmV?d00001 diff --git a/adobe-students/img/favicons/favicon.ico b/adobe-students/img/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..406466e877e4a8d891996539ae4673f98704e52b GIT binary patch literal 9662 zcmeI1O=uHA6vrpFHK2!x&w5deU`0iRRuMfJyor~B6)A#L1o5f|QK}^s#DgFTf?tI@1MA2H*O~LhNS5sTc&Sk=Dq*>z1i-tyEP^u zKmGkiey=un)*7?i7_(lQ44FgHFkU|TDyH+hvjR<90peXv(`qC{yx$PBrLAiu5t#=& z@%_kHD?7wf7WPN#)L6X3oF`TB8fW5#qW>k7ul61|u8}LV{;xNp($F~D@7wRflhVkE|47VQyijRqobC7R zRgF~Hm-u-MKd$KxwN|5m#`o>UMiP;E;_Y?V!GAmA>(U`UEOD1DEoaF$<&q-eLww7k z_gm)h_~d>N4_owV@6+1;pnD?m1RF6JYjwi?GfK@K(fiauGprw+zmpj4o_X3K&qwj; zR@N})pc`-p_JlG=x8(TXm}j3-+vU0j+^|2TEmh_ia%6}86O}fci6<5MH$C*H75b=Q zvnmJiR)xM+dy_&N>}WSs{BS0I>X66h+Fp0i4Y&jQLt>VwYH-_2hm@Kr;lMLSz@@R; z=PK-_*uU!KcrSC>z3rGquU?*D{EftF_vleezEjGzPl(oQi(bHKv)cEHUddO8$%(OL zO8(t3IyTn0xreHpa3-FJ$vfep^B_hij?p$&5)Iv#BjSOWyaOtJ;x(dy+%`7Xxl5|t za3-D!<(~0~zZi;l<*es7D_Vmh ze*ODwxJJC266f2`eT49`K_E-Txp^1M!A=!Vdmx;bnC? zC%)1Yey3y|r_Kt*uK<@1V`^=dIiD&S1Dh6`Va}zCRhwoW&lHRa+pP3c@_3b|o`TD93(;0RD)3&0Yf0 \ No newline at end of file diff --git a/adobe-students/img/favicons/favicon.webmanifest b/adobe-students/img/favicons/favicon.webmanifest new file mode 100644 index 0000000..6b4c857 --- /dev/null +++ b/adobe-students/img/favicons/favicon.webmanifest @@ -0,0 +1,8 @@ +{ + "name": "Adobe Students", + "display": "standalone", + "icons": [ + { "src": "/img/favicons/favicon-192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/img/favicons/favicon-512.png", "sizes": "512x512", "type": "image/png" } + ] +} diff --git a/adobe-students/img/icons/3d-assets.svg b/adobe-students/img/icons/3d-assets.svg new file mode 100644 index 0000000..e091f2a --- /dev/null +++ b/adobe-students/img/icons/3d-assets.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/adobe-students/img/icons/designer.svg b/adobe-students/img/icons/designer.svg new file mode 100644 index 0000000..b82e38d --- /dev/null +++ b/adobe-students/img/icons/designer.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/adobe-students/img/icons/modeler.svg b/adobe-students/img/icons/modeler.svg new file mode 100644 index 0000000..16ae93c --- /dev/null +++ b/adobe-students/img/icons/modeler.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/adobe-students/img/icons/painter.svg b/adobe-students/img/icons/painter.svg new file mode 100644 index 0000000..5defd09 --- /dev/null +++ b/adobe-students/img/icons/painter.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/adobe-students/img/icons/sampler.svg b/adobe-students/img/icons/sampler.svg new file mode 100644 index 0000000..56da355 --- /dev/null +++ b/adobe-students/img/icons/sampler.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/adobe-students/img/icons/stager.svg b/adobe-students/img/icons/stager.svg new file mode 100644 index 0000000..dc6fe78 --- /dev/null +++ b/adobe-students/img/icons/stager.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/adobe-students/scripts/decorate.js b/adobe-students/scripts/decorate.js new file mode 100644 index 0000000..6725d03 --- /dev/null +++ b/adobe-students/scripts/decorate.js @@ -0,0 +1,25 @@ +import { getUrlParams } from './utils.js'; + +function goCartLinkAppend(link, paramsValue) { + try { + const url = new URL(link.getAttribute('href')); + const urlSearchParams = new URLSearchParams(url.search); + + Object.keys(paramsValue).forEach((key) => { + if (!urlSearchParams.has(key)) { + urlSearchParams.append(key, paramsValue[key]); + } + }); + + const searchParamsString = urlSearchParams.toString(); + link.setAttribute('href', `${url.origin}${url.pathname}?${searchParamsString}${url.hash}`); + } catch (error) { + console.log(`goCartLinkAppend: Could not append link for ${link}, invalid URL`); + } +} + +export function decorateButton() { + const buttons = document.querySelectorAll('a.con-button'); + const paramsValue = getUrlParams(); + buttons.forEach((button) => goCartLinkAppend(button, paramsValue)); +} diff --git a/adobe-students/scripts/fallback.js b/adobe-students/scripts/fallback.js new file mode 100644 index 0000000..f776029 --- /dev/null +++ b/adobe-students/scripts/fallback.js @@ -0,0 +1,46 @@ +/* eslint-disable */ +var div = document.createElement('div'); +div.style.width = '100%'; +div.style.position = 'absolute'; +div.style.display = 'block'; +div.style.minHeight = '80px'; +div.style.top = '0'; +div.style.zIndex = '9999'; +div.style.textAlign = 'center'; +div.style.background = '#fff'; +div.style.padding = '12px'; + +var locFallbackEntries = { + 'en': 'Your web browser is out of date. For more security, comfort and the best experience on this site, please update to or use a modern browser', + 'de': 'Ihr Browser ist veraltet. Für mehr Sicherheit, Komfort und die beste Erfahrung auf dieser Website, aktualisieren Sie bitte oder verwenden Sie einen modernen Browser', + 'it': 'Il tuo browser non è aggiornato. Per una maggiore sicurezza, comodità e la migliore esperienza su questo sito, si prega di aggiornare o utilizzare un browser moderno.', + 'zh-HK': '您的网络浏览器已过期。为了在本网站上获得更高的安全性、舒适性和最佳体验,请更新到或使用现代浏览器', + 'zh-TW': '您的網絡瀏覽器已過期。為了在本網站上獲得更高的安全性、舒適性和最佳體驗,請更新到或使用現代瀏覽器', + 'hi': 'आपका वेब ब्राउज़र पुराना हो चुका है। इस साइट पर अधिक सुरक्षा, आराम और सर्वोत्तम अनुभव के लिए, कृपया किसी आधुनिक ब्राउज़र को अपडेट करें या उसका उपयोग करें', + 'es': 'Su navegador web está desactualizado. Para mayor seguridad, comodidad y la mejor experiencia en este sitio, actualice o use un navegador moderno.', + 'fr': 'Votre navigateur Web est obsolète. Pour plus de sécurité, de confort et la meilleure expérience sur ce site, veuillez mettre à jour ou utiliser un navigateur moderne.', + 'ar': 'متصفحك غير محدثة. لمزيد من الأمان والراحة وأفضل تجربة على هذا الموقع ، يرجى التحديث إلى متصفح حديث أو استخدامه', + 'ru': 'Ваш веб-браузер устарел. Для большей безопасности, удобства и наилучшего взаимодействия с этим сайтом обновите или используйте современный браузер.', + 'pt': 'Seu navegador da web está desatualizado. Para mais segurança, conforto e a melhor experiência neste site, atualize ou use um navegador moderno.', + 'ko': '웹 브라우저가 오래되었습니다. 이 사이트에서 더 많은 보안, 편안함 및 최상의 경험을 위해 최신 브라우저로 업데이트하거나 사용하십시오.', +}; + +var userLocale = navigator.language || navigator.userLanguage; +var userLang = userLocale.split('-')[0]; + +var locFallbackText = locFallbackEntries[userLang] || locFallbackEntries[userLocale]; +if (!locFallbackText) { + locFallbackText = locFallbackEntries['en']; + userLang = 'en'; +} + +var span = document.createElement('span'); +span.textContent = locFallbackText +span.lang = userLang +div.appendChild(span); + +if(!document.body) { + document.body = document.createElement('body') +} +document.body.insertBefore(div, document.body.firstChild); +document.body.style.display = 'block'; diff --git a/adobe-students/scripts/goCart.js b/adobe-students/scripts/goCart.js new file mode 100644 index 0000000..b11ac66 --- /dev/null +++ b/adobe-students/scripts/goCart.js @@ -0,0 +1,31 @@ +export async function isTokenValid(miloLibs) { + const { default: getServiceConfig } = await import( + `${miloLibs}/utils/service-config.js` + ); + const urlParams = new URLSearchParams(window.location.search); + const gtoken = urlParams.get('gtoken'); + const gid = urlParams.get('gid'); + const serviceName = urlParams.get('serviceName') || 'adobe-students'; + const serviceConf = await getServiceConfig(window.location.origin); + + let formBody = []; + for (const [key, value] of Object.entries({ gid, gtoken })) { + formBody.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); + } + formBody = formBody.join('&'); + + try { + const opts = { + headers: { + 'content-type': 'application/x-www-form-urlencoded', + }, + body: formBody, + method: 'POST', + }; + + const response = await fetch(serviceConf[serviceName].url, opts); + return response.ok; + } catch (err) { + return false; + } +} diff --git a/adobe-students/scripts/scripts.js b/adobe-students/scripts/scripts.js index a76308b..4774561 100644 --- a/adobe-students/scripts/scripts.js +++ b/adobe-students/scripts/scripts.js @@ -1,132 +1,198 @@ -import { - buildBlock, - loadHeader, - loadFooter, - decorateButtons, - decorateIcons, - decorateSections, - decorateBlocks, - decorateTemplateAndTheme, - waitForFirstImage, - loadSection, - loadSections, - loadCSS, - sampleRUM, -} from './aem.js'; - -/** - * Builds hero block and prepends to main in a new section. - * @param {Element} main The container element +/* + * Copyright 2023 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. */ -function buildHeroBlock(main) { - const h1 = main.querySelector('h1'); - const picture = main.querySelector('picture'); - // eslint-disable-next-line no-bitwise - if (h1 && picture && (h1.compareDocumentPosition(picture) & Node.DOCUMENT_POSITION_PRECEDING)) { - const section = document.createElement('div'); - section.append(buildBlock('hero', { elems: [picture, h1] })); - main.prepend(section); - } -} -/** - * load fonts.css and set a session storage flag - */ -async function loadFonts() { - await loadCSS(`${window.hlx.codeBasePath}/styles/fonts.css`); - try { - if (!window.location.hostname.includes('localhost')) sessionStorage.setItem('fonts-loaded', 'true'); - } catch (e) { - // do nothing - } -} +import { + setLibs, + getUrlParams, +} from './utils.js'; -/** - * Builds all synthetic blocks in a container element. - * @param {Element} main The container element - */ -function buildAutoBlocks(main) { - try { - buildHeroBlock(main); - } catch (error) { - // eslint-disable-next-line no-console - console.error('Auto Blocking failed', error); - } -} +import { isTokenValid } from './goCart.js'; -/** - * Decorates the main element. - * @param {Element} main The main element - */ -// eslint-disable-next-line import/prefer-default-export -export function decorateMain(main) { - // hopefully forward compatible button decoration - decorateButtons(main); - decorateIcons(main); - buildAutoBlocks(main); - decorateSections(main); - decorateBlocks(main); -} +import { decorateButton } from './decorate.js'; +const STYLES = '/adobe-students/styles/styles.css'; -/** - * Loads everything needed to get to LCP. - * @param {Element} doc The container element - */ -async function loadEager(doc) { - document.documentElement.lang = 'en'; - decorateTemplateAndTheme(); - const main = doc.querySelector('main'); - if (main) { - decorateMain(main); - document.body.classList.add('appear'); - await loadSection(main.querySelector('.section'), waitForFirstImage); - } +// Use '/libs' if your live site maps '/libs' to milo's origin. +const LIBS = '/libs'; +const noRedirect = new URLSearchParams(window.location.search).get('noRedirect'); - sampleRUM.enhance(); +const locales = { + // Americas + ar: { ietf: 'es-AR', tk: 'oln4yqj.css' }, + br: { ietf: 'pt-BR', tk: 'inq1xob.css' }, + ca: { ietf: 'en-CA', tk: 'pps7abe.css' }, + ca_fr: { ietf: 'fr-CA', tk: 'vrk5vyv.css' }, + cl: { ietf: 'es-CL', tk: 'oln4yqj.css' }, + co: { ietf: 'es-CO', tk: 'oln4yqj.css' }, + la: { ietf: 'es-LA', tk: 'oln4yqj.css' }, + mx: { ietf: 'es-MX', tk: 'oln4yqj.css' }, + pe: { ietf: 'es-PE', tk: 'oln4yqj.css' }, + '': { ietf: 'en-US', tk: 'hah7vzn.css' }, + // EMEA + africa: { ietf: 'en', tk: 'pps7abe.css' }, + be_fr: { ietf: 'fr-BE', tk: 'vrk5vyv.css' }, + be_en: { ietf: 'en-BE', tk: 'pps7abe.css' }, + be_nl: { ietf: 'nl-BE', tk: 'cya6bri.css' }, + cy_en: { ietf: 'en-CY', tk: 'pps7abe.css' }, + dk: { ietf: 'da-DK', tk: 'aaz7dvd.css' }, + de: { ietf: 'de-DE', tk: 'vin7zsi.css' }, + ee: { ietf: 'et-EE', tk: 'aaz7dvd.css' }, + es: { ietf: 'es-ES', tk: 'oln4yqj.css' }, + fr: { ietf: 'fr-FR', tk: 'vrk5vyv.css' }, + gr_en: { ietf: 'en-GR', tk: 'pps7abe.css' }, + ie: { ietf: 'en-GB', tk: 'pps7abe.css' }, + il_en: { ietf: 'en-IL', tk: 'pps7abe.css' }, + it: { ietf: 'it-IT', tk: 'bbf5pok.css' }, + lv: { ietf: 'lv-LV', tk: 'aaz7dvd.css' }, + lt: { ietf: 'lt-LT', tk: 'aaz7dvd.css' }, + lu_de: { ietf: 'de-LU', tk: 'vin7zsi.css' }, + lu_en: { ietf: 'en-LU', tk: 'pps7abe.css' }, + lu_fr: { ietf: 'fr-LU', tk: 'vrk5vyv.css' }, + hu: { ietf: 'hu-HU', tk: 'aaz7dvd.css' }, + mt: { ietf: 'en-MT', tk: 'pps7abe.css' }, + mena_en: { ietf: 'en', tk: 'pps7abe.css' }, + nl: { ietf: 'nl-NL', tk: 'cya6bri.css' }, + no: { ietf: 'no-NO', tk: 'aaz7dvd.css' }, + pl: { ietf: 'pl-PL', tk: 'aaz7dvd.css' }, + pt: { ietf: 'pt-PT', tk: 'inq1xob.css' }, + ro: { ietf: 'ro-RO', tk: 'aaz7dvd.css' }, + sa_en: { ietf: 'en', tk: 'pps7abe.css' }, + ch_de: { ietf: 'de-CH', tk: 'vin7zsi.css' }, + si: { ietf: 'sl-SI', tk: 'aaz7dvd.css' }, + sk: { ietf: 'sk-SK', tk: 'aaz7dvd.css' }, + ch_fr: { ietf: 'fr-CH', tk: 'vrk5vyv.css' }, + fi: { ietf: 'fi-FI', tk: 'aaz7dvd.css' }, + se: { ietf: 'sv-SE', tk: 'fpk1pcd.css' }, + ch_it: { ietf: 'it-CH', tk: 'bbf5pok.css' }, + tr: { ietf: 'tr-TR', tk: 'aaz7dvd.css' }, + ae_en: { ietf: 'en', tk: 'pps7abe.css' }, + uk: { ietf: 'en-GB', tk: 'pps7abe.css' }, + at: { ietf: 'de-AT', tk: 'vin7zsi.css' }, + cz: { ietf: 'cs-CZ', tk: 'aaz7dvd.css' }, + bg: { ietf: 'bg-BG', tk: 'aaz7dvd.css' }, + ru: { ietf: 'ru-RU', tk: 'aaz7dvd.css' }, + ua: { ietf: 'uk-UA', tk: 'aaz7dvd.css' }, + il_he: { ietf: 'he', tk: 'nwq1mna.css', dir: 'rtl' }, + ae_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, + mena_ar: { ietf: 'ar', tk: 'dis2dpj.css', dir: 'rtl' }, + sa_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, + // Asia Pacific + au: { ietf: 'en-AU', tk: 'pps7abe.css' }, + hk_en: { ietf: 'en-HK', tk: 'pps7abe.css' }, + in: { ietf: 'en-GB', tk: 'pps7abe.css' }, + id_id: { ietf: 'id', tk: 'czc0mun.css' }, + id_en: { ietf: 'en', tk: 'pps7abe.css' }, + my_ms: { ietf: 'ms', tk: 'sxj4tvo.css' }, + my_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, + nz: { ietf: 'en-GB', tk: 'pps7abe.css' }, + ph_en: { ietf: 'en', tk: 'pps7abe.css' }, + ph_fil: { ietf: 'fil-PH', tk: 'ict8rmp.css' }, + sg: { ietf: 'en-SG', tk: 'pps7abe.css' }, + th_en: { ietf: 'en', tk: 'pps7abe.css' }, + in_hi: { ietf: 'hi', tk: 'aaa8deh.css' }, + th_th: { ietf: 'th', tk: 'aaz7dvd.css' }, + cn: { ietf: 'zh-CN', tk: 'puu3xkp' }, + hk_zh: { ietf: 'zh-HK', tk: 'jay0ecd' }, + tw: { ietf: 'zh-TW', tk: 'jay0ecd' }, + jp: { ietf: 'ja-JP', tk: 'dvg6awq' }, + kr: { ietf: 'ko-KR', tk: 'qjs5sfm' }, + // Langstore Support. + langstore: { ietf: 'en-US', tk: 'hah7vzn.css' }, + // geo expansion MWPW-125686 + za: { ietf: 'en-GB', tk: 'pps7abe.css' }, // South Africa (GB English) + ng: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Nigeria (GB English) + cr: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Costa Rica (Spanish Latin America) + ec: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Ecuador (Spanish Latin America) + pr: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Puerto Rico (Spanish Latin America) + gt: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Guatemala (Spanish Latin America) + eg_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Egypt (Arabic) + kw_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Kuwait (Arabic) + qa_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Qatar (Arabic) + eg_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Egypt (GB English) + kw_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Kuwait (GB English) + qa_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Qatar (GB English) + gr_el: { ietf: 'el', tk: 'fnx0rsr.css' }, // Greece (Greek) + vn_en: { ietf: 'en-GB', tk: 'hah7vzn.css' }, + vn_vi: { ietf: 'vi', tk: 'qxw8hzm.css' }, + cis_ru: { ietf: 'ru', tk: 'qxw8hzm.css' }, + cis_en: { ietf: 'en', tk: 'pps7abe.css' }, +}; - try { - /* if desktop (proxy for fast connection) or fonts already loaded, load fonts.css */ - if (window.innerWidth >= 900 || sessionStorage.getItem('fonts-loaded')) { - loadFonts(); - } - } catch (e) { - // do nothing - } -} +// Add any config options. +const CONFIG = { + contentRoot: '/students-shared', + codeRoot: '/adobe-students', + imsClientId: 'adobedotcom-cc', + locales, + geoRouting: 'on', + prodDomains: ['www.adobe.com', 'helpx.adobe.com', 'business.adobe.com', 'www.adobe-students.com'], + placeholders: getUrlParams(), + stage: { + marTechUrl: + 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-2c94beadc94f-development.min.js', + edgeConfigId: 'e065836d-be57-47ef-b8d1-999e1657e8fd', + pdfViewerClientId: '9f7f19a46bd542e2b8548411e51eb4d4', + pdfViewerReportSuite: 'adbadobenonacdcqa', + }, + prod: { + marTechUrl: 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-5dd5dd2177e6.min.js', + edgeConfigId: '2cba807b-7430-41ae-9aac-db2b0da742d5', + pdfViewerClientId: '409019ebd2d546c0be1a0b5a61fe65df', + pdfViewerReportSuite: 'adbadobenonacdcprod', + }, + jarvis: { + id: 'adobedotcom2', + version: '1.83', + onDemand: false, + }, +}; -/** - * Loads everything that doesn't need to be delayed. - * @param {Element} doc The container element +/* + * ------------------------------------------------------------ + * Edit below at your own risk + * ------------------------------------------------------------ */ -async function loadLazy(doc) { - const main = doc.querySelector('main'); - await loadSections(main); - const { hash } = window.location; - const element = hash ? doc.getElementById(hash.substring(1)) : false; - if (hash && element) element.scrollIntoView(); +const miloLibs = setLibs(LIBS); +const { loadArea, setConfig, loadLana } = await import( + `${miloLibs}/utils/utils.js` +); - loadHeader(doc.querySelector('header')); - loadFooter(doc.querySelector('footer')); +setConfig({ ...CONFIG, miloLibs }); - loadCSS(`${window.hlx.codeBasePath}/styles/lazy-styles.css`); - loadFonts(); +async function loadAdobeStudentsPage() { + loadLana({ clientId: 'adobe-students' }); + await loadArea(); + decorateButton(); } -/** - * Loads everything that happens a lot later, - * without impacting the user experience. - */ -function loadDelayed() { - // eslint-disable-next-line import/no-cycle - window.setTimeout(() => import('./delayed.js'), 3000); - // load anything that can be postponed to the latest here -} - -async function loadPage() { - await loadEager(document); - await loadLazy(document); - loadDelayed(); -} +(function loadStyles() { + const paths = [`${miloLibs}/styles/styles.css`]; + if (STYLES) { + paths.push(STYLES); + } + paths.forEach((path) => { + const link = document.createElement('link'); + link.setAttribute('rel', 'stylesheet'); + link.setAttribute('href', path); + document.head.appendChild(link); + }); +})(); -loadPage(); +(async function loadPage() { + const validate = document.head.querySelector(`meta[name="validate"]`); + if (validate?.content === 'on') { + if (await isTokenValid(miloLibs) || noRedirect) return loadAdobeStudentsPage(); + const defaultPage = document.head.querySelector(`meta[name="default-page"]`); + window.location.href = defaultPage?.content || 'https://www.adobe-students.com/'; + } + loadAdobeStudentsPage(); +})(); diff --git a/adobe-students/scripts/utils.js b/adobe-students/scripts/utils.js new file mode 100644 index 0000000..97d8e75 --- /dev/null +++ b/adobe-students/scripts/utils.js @@ -0,0 +1,101 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/* + * ------------------------------------------------------------ + * Edit below at your own risk + * ------------------------------------------------------------ + */ + +/** + * adobe-students pages param keys + */ +export const GOCART_PARAM_KEYS = ['gid', 'gtoken', 'sdid', 'cohortid', 'timer', 'gcsrc', 'gcprog', 'gcprogcat', 'gcpagetype', 'language', 'productname', 'daysremaining']; + +/** + * The decision engine for where to get Milo's libs from. + */ +export const [setLibs, getLibs] = (() => { + let libs; + return [ + (prodLibs, force = false) => { + if (force) { + libs = prodLibs; + return libs; + } + const { hostname } = window.location; + if ( + !hostname.includes('hlx.page') && + !hostname.includes('hlx.live') && + !hostname.includes('localhost') + ) { + libs = prodLibs; + return libs; + } + const branch = + new URLSearchParams(window.location.search).get('milolibs') || 'main'; + if (branch === 'local') { + libs = 'http://localhost:6456/libs'; + return libs; + } + if (branch.indexOf('--') > -1) { + libs = `https://${branch}.hlx.live/libs`; + return libs; + } + libs = `https://${branch}--milo--adobecom.hlx.live/libs`; + return libs; + }, + () => libs, + ]; +})(); + +const miloLibs = setLibs('/libs'); + +const { createTag, localizeLink } = await import(`${miloLibs}/utils/utils.js`); +export { createTag, localizeLink }; + +function getCountdown(timer) { + const timerDate = new Date(timer); + + if (isNaN(timerDate.getTime())) { + return 0; + } + + if (timer.endsWith('d')) { + const countdown = parseInt(timer, 10); + return isNaN(countdown) ? 0 : countdown; + } else { + const now = new Date(); + const daysRemaining = Math.round((timerDate - now) / (24 * 3600 * 1000)); + return Math.max(daysRemaining, 0); + } +} + +function getParamValue(val) { + let paramValue = (new URLSearchParams(window.location.search)).get(val); + if (val === 'timer' && paramValue ) { + paramValue = getCountdown(paramValue); + } + return paramValue; +} + +export function getUrlParams() { + const params = {}; + for (const key of GOCART_PARAM_KEYS) { + const paramValue = getParamValue(key); + if (paramValue) { + params[key] = paramValue; + } + } + return params; +} + diff --git a/adobe-students/sitemap-index.xml b/adobe-students/sitemap-index.xml new file mode 100644 index 0000000..a21f8cc --- /dev/null +++ b/adobe-students/sitemap-index.xml @@ -0,0 +1,276 @@ + + + + https://www.adobe-students.com/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ru/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/au/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/kr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/de/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/jp/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/fr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/es/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/it/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/hk_zh/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/tw/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/nl/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/pl/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/tr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/uk/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ca/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cn/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ae_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ae_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ca_fr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/be_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/be_fr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/at/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ch_de/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cl/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/gr_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ch_fr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ie/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/hk_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/in/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/il_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/lt/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/lu_de/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/lu_fr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/mena_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/lu_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/sa_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/nz/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/sa_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/th_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/th_th/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/africa/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/za/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/co/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ec/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/eg_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/gt/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/gr_el/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/id_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/eg_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/id_id/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/in_hi/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/kw_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/kw_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/my_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/pe/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ng/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/my_ms/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ph_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ph_fil/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/pr/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/qa_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/qa_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/vn_vi/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/vn_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/dk/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/fi/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/no/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/se/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/la/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/mx/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/be_nl/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/bg/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ch_it/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cz/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ee/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/hu/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/il_he/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/lv/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/mena_ar/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/pt/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ro/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/si/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/sk/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/ua/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/sg/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/br/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cis_en/students-shared/assets/sitemap.xml + + + https://www.adobe-students.com/cis_ru/students-shared/assets/sitemap.xml + + diff --git a/adobe-students/styles/styles.css b/adobe-students/styles/styles.css index 24425c9..0c979fa 100644 --- a/adobe-students/styles/styles.css +++ b/adobe-students/styles/styles.css @@ -1,257 +1,25 @@ -/* - * Copyright 2020 Adobe. All rights reserved. - * This file is licensed to you under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 +/* + * Put project specific base styles here. + * + * Note: The project does not load this file. + * You will need to load these using scripts.js. + * * - * Unless required by applicable law or agreed to in writing, software distributed under - * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. */ -:root { - /* colors */ - --background-color: white; - --light-color: #f8f8f8; - --dark-color: #505050; - --text-color: #131313; - --link-color: #3b63fb; - --link-hover-color: #1d3ecf; - - /* fonts */ - --body-font-family: roboto, roboto-fallback, sans-serif; - --heading-font-family: roboto-condensed, roboto-condensed-fallback, sans-serif; - - /* body sizes */ - --body-font-size-m: 22px; - --body-font-size-s: 19px; - --body-font-size-xs: 17px; - - /* heading sizes */ - --heading-font-size-xxl: 55px; - --heading-font-size-xl: 44px; - --heading-font-size-l: 34px; - --heading-font-size-m: 27px; - --heading-font-size-s: 24px; - --heading-font-size-xs: 22px; - - /* nav height */ - --nav-height: 64px; -} - -/* fallback fonts */ -@font-face { - font-family: roboto-condensed-fallback; - size-adjust: 88.82%; - src: local('Arial'); -} - -@font-face { - font-family: roboto-fallback; - size-adjust: 99.529%; - src: local('Arial'); -} - -@media (width >= 900px) { - :root { - /* body sizes */ - --body-font-size-m: 18px; - --body-font-size-s: 16px; - --body-font-size-xs: 14px; - - /* heading sizes */ - --heading-font-size-xxl: 45px; - --heading-font-size-xl: 36px; - --heading-font-size-l: 28px; - --heading-font-size-m: 22px; - --heading-font-size-s: 20px; - --heading-font-size-xs: 18px; - } -} - -body { - display: none; - margin: 0; - background-color: var(--background-color); - color: var(--text-color); - font-family: var(--body-font-family); - font-size: var(--body-font-size-m); - line-height: 1.6; -} - -body.appear { - display: block; -} - -header { - height: var(--nav-height); -} - -header .header, -footer .footer { - visibility: hidden; -} - -header .header[data-block-status="loaded"], -footer .footer[data-block-status="loaded"] { - visibility: visible; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 0.8em; - margin-bottom: 0.25em; - font-family: var(--heading-font-family); - font-weight: 600; - line-height: 1.25; - scroll-margin: 40px; -} - -h1 { font-size: var(--heading-font-size-xxl); } -h2 { font-size: var(--heading-font-size-xl); } -h3 { font-size: var(--heading-font-size-l); } -h4 { font-size: var(--heading-font-size-m); } -h5 { font-size: var(--heading-font-size-s); } -h6 { font-size: var(--heading-font-size-xs); } - -p, -dl, -ol, -ul, -pre, -blockquote { - margin-top: 0.8em; - margin-bottom: 0.25em; -} - -code, -pre { - font-size: var(--body-font-size-s); -} - -pre { - padding: 16px; - border-radius: 8px; - background-color: var(--light-color); - overflow-x: auto; - white-space: pre; -} - -main > div { - margin: 40px 16px; -} - -input, -textarea, -select, -button { - font: inherit; -} - -/* links */ -a:any-link { - color: var(--link-color); - text-decoration: none; - word-break: break-word; -} - -a:hover { - color: var(--link-hover-color); - text-decoration: underline; -} - -/* buttons */ -a.button:any-link, -button { - box-sizing: border-box; - display: inline-block; - max-width: 100%; - margin: 12px 0; - border: 2px solid transparent; - border-radius: 2.4em; - padding: 0.5em 1.2em; - font-family: var(--body-font-family); - font-style: normal; - font-weight: 500; - line-height: 1.25; - text-align: center; - text-decoration: none; - background-color: var(--link-color); - color: var(--background-color); - cursor: pointer; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -a.button:hover, -a.button:focus, -button:hover, -button:focus { - background-color: var(--link-hover-color); - cursor: pointer; -} - -button:disabled, -button:disabled:hover { - background-color: var(--light-color); - cursor: unset; -} - -a.button.secondary, -button.secondary { - background-color: unset; - border: 2px solid currentcolor; - color: var(--text-color); -} - -main img { - max-width: 100%; - width: auto; - height: auto; -} - -.icon { - display: inline-block; - height: 24px; - width: 24px; -} - -.icon img { - height: 100%; - width: 100%; -} - -/* sections */ -main > .section { - margin: 40px 0; -} - -main > .section > div { - max-width: 1200px; + .reading-width { + max-width: 600px; margin: auto; - padding: 0 24px; -} - -main > .section:first-of-type { - margin-top: 0; + padding: 20px; } -@media (width >= 900px) { - main > .section > div { - padding: 0 32px; - } + .reading-width-footer-tag { + max-width: 600px; + margin: -20px auto; + padding: 0 20px 20px; } -/* section metadata */ -main .section.light, -main .section.highlight { - background-color: var(--light-color); - margin: 0; - padding: 40px 0; + .reading-width-footer-tag > .content { + max-width: var(--grid-container-width); + margin: 0 auto; } diff --git a/fstab.yaml b/fstab.yaml index 8be3c4b..9e756ec 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,2 +1,2 @@ mountpoints: - /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/www/student-test \ No newline at end of file + /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/students/sandbox diff --git a/head.html b/head.html index 35c8a46..8526b4a 100644 --- a/head.html +++ b/head.html @@ -1,4 +1,5 @@ - - - + + + + diff --git a/helix-query.yaml b/helix-query.yaml index 3484b4f..1f11261 100644 --- a/helix-query.yaml +++ b/helix-query.yaml @@ -1,14 +1,1136 @@ version: 1 indices: - students: - include: - - /documents/** + def: &def exclude: - - /documents/snippets/** - target: /query-index.json + - '**/students-shared/**' + - '**/gnav**' + - '**/footer**' + - '**/drafts/**' + - '**/fragments/**' + include: + - /creativecloud/** + target: /students-shared/assets/query-index.xlsx + properties: + title: + select: head > meta[property="og:title"] + value: attribute(el, 'content') + date: + select: head > meta[name="publishdate"] + value: dateValue(attribute(el, 'content'), 'MM-DD-YYYY') + image: + select: head > meta[property="og:image"] + value: match(attribute(el, 'content'), 'https:\/\/[^/]+(\/.*)') + description: + select: head > meta[name="description"] + value: attribute(el, 'content') + lastModified: + select: none + value: parseTimestamp(headers['last-modified'], 'ddd, DD MMM YYYY hh:mm:ss GMT') + robots: + select: head > meta[name="robots"] + value: attribute(el, 'content') + + merch-cards: &merch-cards + include: + - /students-shared/fragments/merch/**/merch-card/** + target: /students-shared/assets/query-index-cards.xlsx properties: - author: - select: main > div:nth-of-type(3) > p:nth-of-type(1) - value: | - match(el, 'by (.*)') \ No newline at end of file + lastModified: + select: none + value: parseTimestamp(headers["last-modified"], "ddd, DD MMM YYYY hh:mm:ss GMT") + title: + select: head > meta[property="og:title"] + value: attribute(el, "content") + cardClasses: + select: main div.merch-card + value: attribute(el, "className") + cardContent: + select: main > div + value: innerHTML(el) + tags: + select: head > meta[property="article:tag"] + values: attribute(el, "content") + publicationDate: + select: none + value: parseTimestamp(headers["date"], "ddd, DD MMM YYYY hh:mm:ss GMT") + + creativecloud-au: + <<: *def + include: + - /au/creativecloud/** + target: /au/students-shared/assets/query-index.xlsx + + cards-au: + <<: *merch-cards + include: + - /au/students-shared/fragments/merch/**/merch-card/** + target: /au/students-shared/assets/query-index-cards.xlsx + + creativecloud-de: + <<: *def + include: + - /de/creativecloud/** + target: /de/students-shared/assets/query-index.xlsx + + cards-de: + <<: *merch-cards + include: + - /de/students-shared/fragments/merch/**/merch-card/** + target: /de/students-shared/assets/query-index-cards.xlsx + + creativecloud-es: + <<: *def + include: + - /es/creativecloud/** + target: /es/students-shared/assets/query-index.xlsx + + cards-es: + <<: *merch-cards + include: + - /es/students-shared/fragments/merch/**/merch-card/** + target: /es/students-shared/assets/query-index-cards.xlsx + + creativecloud-fr: + <<: *def + include: + - /fr/creativecloud/** + target: /fr/students-shared/assets/query-index.xlsx + + cards-fr: + <<: *merch-cards + include: + - /fr/students-shared/fragments/merch/**/merch-card/** + target: /fr/students-shared/assets/query-index-cards.xlsx + + creativecloud-it: + <<: *def + include: + - /it/creativecloud/** + target: /it/students-shared/assets/query-index.xlsx + + cards-it: + <<: *merch-cards + include: + - /it/students-shared/fragments/merch/**/merch-card/** + target: /it/students-shared/assets/query-index-cards.xlsx + + creativecloud-jp: + <<: *def + include: + - /jp/creativecloud/** + target: /jp/students-shared/assets/query-index.xlsx + + cards-jp: + <<: *merch-cards + include: + - /jp/students-shared/fragments/merch/**/merch-card/** + target: /jp/students-shared/assets/query-index-cards.xlsx + + creativecloud-kr: + <<: *def + include: + - /kr/creativecloud/** + target: /kr/students-shared/assets/query-index.xlsx + + cards-kr: + <<: *merch-cards + include: + - /kr/students-shared/fragments/merch/**/merch-card/** + target: /kr/students-shared/assets/query-index-cards.xlsx + + creativecloud-ru: + <<: *def + include: + - /ru/creativecloud/** + target: /ru/students-shared/assets/query-index.xlsx + + cards-ru: + <<: *merch-cards + include: + - /ru/students-shared/fragments/merch/**/merch-card/** + target: /ru/students-shared/assets/query-index-cards.xlsx + + creativecloud-hk_zh: + <<: *def + include: + - /hk_zh/creativecloud/** + target: /hk_zh/students-shared/assets/query-index.xlsx + + cards-hk_zh: + <<: *merch-cards + include: + - /hk_zh/students-shared/fragments/merch/**/merch-card/** + target: /hk_zh/students-shared/assets/query-index-cards.xlsx + + creativecloud-tw: + <<: *def + include: + - /tw/creativecloud/** + target: /tw/students-shared/assets/query-index.xlsx + + cards-tw: + <<: *merch-cards + include: + - /tw/students-shared/fragments/merch/**/merch-card/** + target: /tw/students-shared/assets/query-index-cards.xlsx + + creativecloud-nl: + <<: *def + include: + - /nl/creativecloud/** + target: /nl/students-shared/assets/query-index.xlsx + + cards-nl: + <<: *merch-cards + include: + - /nl/students-shared/fragments/merch/**/merch-card/** + target: /nl/students-shared/assets/query-index-cards.xlsx + + creativecloud-pl: + <<: *def + include: + - /pl/creativecloud/** + target: /pl/students-shared/assets/query-index.xlsx + + cards-pl: + <<: *merch-cards + include: + - /pl/students-shared/fragments/merch/**/merch-card/** + target: /pl/students-shared/assets/query-index-cards.xlsx + + creativecloud-tr: + <<: *def + include: + - /tr/creativecloud/** + target: /tr/students-shared/assets/query-index.xlsx + + cards-tr: + <<: *merch-cards + include: + - /tr/students-shared/fragments/merch/**/merch-card/** + target: /tr/students-shared/assets/query-index-cards.xlsx + + creativecloud-uk: + <<: *def + include: + - /uk/creativecloud/** + target: /uk/students-shared/assets/query-index.xlsx + + cards-uk: + <<: *merch-cards + include: + - /uk/students-shared/fragments/merch/**/merch-card/** + target: /uk/students-shared/assets/query-index-cards.xlsx + + creativecloud-ca: + <<: *def + include: + - /ca/creativecloud/** + target: /ca/students-shared/assets/query-index.xlsx + + cards-ca: + <<: *merch-cards + include: + - /ca/students-shared/fragments/merch/**/merch-card/** + target: /ca/students-shared/assets/query-index-cards.xlsx + + creativecloud-cn: + <<: *def + include: + - /cn/creativecloud/** + target: /cn/students-shared/assets/query-index.xlsx + + cards-cn: + <<: *merch-cards + include: + - /cn/students-shared/fragments/merch/**/merch-card/** + target: /cn/students-shared/assets/query-index-cards.xlsx + + creativecloud-ae_ar: + <<: *def + include: + - /ae_ar/creativecloud/** + target: /ae_ar/students-shared/assets/query-index.xlsx + + cards-ae_ar: + <<: *merch-cards + include: + - /ae_ar/students-shared/fragments/merch/**/merch-card/** + target: /ae_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-ae_en: + <<: *def + include: + - /ae_en/creativecloud/** + target: /ae_en/students-shared/assets/query-index.xlsx + + cards-ae_en: + <<: *merch-cards + include: + - /ae_en/students-shared/fragments/merch/**/merch-card/** + target: /ae_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-at: + <<: *def + include: + - /at/creativecloud/** + target: /at/students-shared/assets/query-index.xlsx + + cards-at: + <<: *merch-cards + include: + - /at/students-shared/fragments/merch/**/merch-card/** + target: /at/students-shared/assets/query-index-cards.xlsx + + creativecloud-be_en: + <<: *def + include: + - /be_en/creativecloud/** + target: /be_en/students-shared/assets/query-index.xlsx + + cards-be_en: + <<: *merch-cards + include: + - /be_en/students-shared/fragments/merch/**/merch-card/** + target: /be_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-be_fr: + <<: *def + include: + - /be_fr/creativecloud/** + target: /be_fr/students-shared/assets/query-index.xlsx + + cards-be_fr: + <<: *merch-cards + include: + - /be_fr/students-shared/fragments/merch/**/merch-card/** + target: /be_fr/students-shared/assets/query-index-cards.xlsx + + creativecloud-ca_fr: + <<: *def + include: + - /ca_fr/creativecloud/** + target: /ca_fr/students-shared/assets/query-index.xlsx + + cards-ca_fr: + <<: *merch-cards + include: + - /ca_fr/students-shared/fragments/merch/**/merch-card/** + target: /ca_fr/students-shared/assets/query-index-cards.xlsx + + creativecloud-ch_de: + <<: *def + include: + - /ch_de/creativecloud/** + target: /ch_de/students-shared/assets/query-index.xlsx + + cards-ch_de: + <<: *merch-cards + include: + - /ch_de/students-shared/fragments/merch/**/merch-card/** + target: /ch_de/students-shared/assets/query-index-cards.xlsx + + creativecloud-ch_fr: + <<: *def + include: + - /ch_fr/creativecloud/** + target: /ch_fr/students-shared/assets/query-index.xlsx + + cards-ch_fr: + <<: *merch-cards + include: + - /ch_fr/students-shared/fragments/merch/**/merch-card/** + target: /ch_fr/students-shared/assets/query-index-cards.xlsx + + creativecloud-cl: + <<: *def + include: + - /cl/creativecloud/** + target: /cl/students-shared/assets/query-index.xlsx + + cards-cl: + <<: *merch-cards + include: + - /cl/students-shared/fragments/merch/**/merch-card/** + target: /cl/students-shared/assets/query-index-cards.xlsx + + creativecloud-gr_en: + <<: *def + include: + - /gr_en/creativecloud/** + target: /gr_en/students-shared/assets/query-index.xlsx + + cards-gr_en: + <<: *merch-cards + include: + - /gr_en/students-shared/fragments/merch/**/merch-card/** + target: /gr_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-hk_en: + <<: *def + include: + - /hk_en/creativecloud/** + target: /hk_en/students-shared/assets/query-index.xlsx + + cards-hk_en: + <<: *merch-cards + include: + - /hk_en/students-shared/fragments/merch/**/merch-card/** + target: /hk_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-ie: + <<: *def + include: + - /ie/creativecloud/** + target: /ie/students-shared/assets/query-index.xlsx + + cards-ie: + <<: *merch-cards + include: + - /ie/students-shared/fragments/merch/**/merch-card/** + target: /ie/students-shared/assets/query-index-cards.xlsx + + creativecloud-il_en: + <<: *def + include: + - /il_en/creativecloud/** + target: /il_en/students-shared/assets/query-index.xlsx + + cards-il_en: + <<: *merch-cards + include: + - /il_en/students-shared/fragments/merch/**/merch-card/** + target: /il_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-in: + <<: *def + include: + - /in/creativecloud/** + target: /in/students-shared/assets/query-index.xlsx + + cards-in: + <<: *merch-cards + include: + - /in/students-shared/fragments/merch/**/merch-card/** + target: /in/students-shared/assets/query-index-cards.xlsx + + creativecloud-lt: + <<: *def + include: + - /lt/creativecloud/** + target: /lt/students-shared/assets/query-index.xlsx + + cards-lt: + <<: *merch-cards + include: + - /lt/students-shared/fragments/merch/**/merch-card/** + target: /lt/students-shared/assets/query-index-cards.xlsx + + creativecloud-lu_de: + <<: *def + include: + - /lu_de/creativecloud/** + target: /lu_de/students-shared/assets/query-index.xlsx + + cards-lu_de: + <<: *merch-cards + include: + - /lu_de/students-shared/fragments/merch/**/merch-card/** + target: /lu_de/students-shared/assets/query-index-cards.xlsx + + creativecloud-lu_en: + <<: *def + include: + - /lu_en/creativecloud/** + target: /lu_en/students-shared/assets/query-index.xlsx + + cards-lu_en: + <<: *merch-cards + include: + - /lu_en/students-shared/fragments/merch/**/merch-card/** + target: /lu_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-lu_fr: + <<: *def + include: + - /lu_fr/creativecloud/** + target: /lu_fr/students-shared/assets/query-index.xlsx + + cards-lu_fr: + <<: *merch-cards + include: + - /lu_fr/students-shared/fragments/merch/**/merch-card/** + target: /lu_fr/students-shared/assets/query-index-cards.xlsx + + creativecloud-mena_en: + <<: *def + include: + - /mena_en/creativecloud/** + target: /mena_en/students-shared/assets/query-index.xlsx + + cards-mena_en: + <<: *merch-cards + include: + - /mena_en/students-shared/fragments/merch/**/merch-card/** + target: /mena_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-nz: + <<: *def + include: + - /nz/creativecloud/** + target: /nz/students-shared/assets/query-index.xlsx + + cards-nz: + <<: *merch-cards + include: + - /nz/students-shared/fragments/merch/**/merch-card/** + target: /nz/students-shared/assets/query-index-cards.xlsx + + creativecloud-sa_ar: + <<: *def + include: + - /sa_ar/creativecloud/** + target: /sa_ar/students-shared/assets/query-index.xlsx + + cards-sa_ar: + <<: *merch-cards + include: + - /sa_ar/students-shared/fragments/merch/**/merch-card/** + target: /sa_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-sa_en: + <<: *def + include: + - /sa_en/creativecloud/** + target: /sa_en/students-shared/assets/query-index.xlsx + + cards-sa_en: + <<: *merch-cards + include: + - /sa_en/students-shared/fragments/merch/**/merch-card/** + target: /sa_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-th_en: + <<: *def + include: + - /th_en/creativecloud/** + target: /th_en/students-shared/assets/query-index.xlsx + + cards-th_en: + <<: *merch-cards + include: + - /th_en/students-shared/fragments/merch/**/merch-card/** + target: /th_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-th_th: + <<: *def + include: + - /th_th/creativecloud/** + target: /th_th/students-shared/assets/query-index.xlsx + + cards-th_th: + <<: *merch-cards + include: + - /th_th/students-shared/fragments/merch/**/merch-card/** + target: /th_th/students-shared/assets/query-index-cards.xlsx + + creativecloud-za: + <<: *def + include: + - /za/creativecloud/** + target: /za/students-shared/assets/query-index.xlsx + + cards-za: + <<: *merch-cards + include: + - /za/students-shared/fragments/merch/**/merch-card/** + target: /za/students-shared/assets/query-index-cards.xlsx + + creativecloud-africa: + <<: *def + include: + - /africa/creativecloud/** + target: /africa/students-shared/assets/query-index.xlsx + + cards-africa: + <<: *merch-cards + include: + - /africa/students-shared/fragments/merch/**/merch-card/** + target: /africa/students-shared/assets/query-index-cards.xlsx + + creativecloud-ar: + <<: *def + include: + - /ar/creativecloud/** + target: /ar/students-shared/assets/query-index.xlsx + + cards-ar: + <<: *merch-cards + include: + - /ar/students-shared/fragments/merch/**/merch-card/** + target: /ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-co: + <<: *def + include: + - /co/creativecloud/** + target: /co/students-shared/assets/query-index.xlsx + + cards-co: + <<: *merch-cards + include: + - /co/students-shared/fragments/merch/**/merch-card/** + target: /co/students-shared/assets/query-index-cards.xlsx + + creativecloud-cr: + <<: *def + include: + - /cr/creativecloud/** + target: /cr/students-shared/assets/query-index.xlsx + + cards-cr: + <<: *merch-cards + include: + - /cr/students-shared/fragments/merch/**/merch-card/** + target: /cr/students-shared/assets/query-index-cards.xlsx + + creativecloud-ec: + <<: *def + include: + - /ec/creativecloud/** + target: /ec/students-shared/assets/query-index.xlsx + + cards-ec: + <<: *merch-cards + include: + - /ec/students-shared/fragments/merch/**/merch-card/** + target: /ec/students-shared/assets/query-index-cards.xlsx + + creativecloud-eg_ar: + <<: *def + include: + - /eg_ar/creativecloud/** + target: /eg_ar/students-shared/assets/query-index.xlsx + + cards-eg_ar: + <<: *merch-cards + include: + - /eg_ar/students-shared/fragments/merch/**/merch-card/** + target: /eg_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-eg_en: + <<: *def + include: + - /eg_en/creativecloud/** + target: /eg_en/students-shared/assets/query-index.xlsx + + cards-eg_en: + <<: *merch-cards + include: + - /eg_en/students-shared/fragments/merch/**/merch-card/** + target: /eg_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-gr_el: + <<: *def + include: + - /gr_el/creativecloud/** + target: /gr_el/students-shared/assets/query-index.xlsx + + cards-gr_el: + <<: *merch-cards + include: + - /gr_el/students-shared/fragments/merch/**/merch-card/** + target: /gr_el/students-shared/assets/query-index-cards.xlsx + + creativecloud-gt: + <<: *def + include: + - /gt/creativecloud/** + target: /gt/students-shared/assets/query-index.xlsx + + cards-gt: + <<: *merch-cards + include: + - /gt/students-shared/fragments/merch/**/merch-card/** + target: /gt/students-shared/assets/query-index-cards.xlsx + + creativecloud-id_en: + <<: *def + include: + - /id_en/creativecloud/** + target: /id_en/students-shared/assets/query-index.xlsx + + cards-id_en: + <<: *merch-cards + include: + - /id_en/students-shared/fragments/merch/**/merch-card/** + target: /id_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-id_id: + <<: *def + include: + - /id_id/creativecloud/** + target: /id_id/students-shared/assets/query-index.xlsx + + cards-id_id: + <<: *merch-cards + include: + - /id_id/students-shared/fragments/merch/**/merch-card/** + target: /id_id/students-shared/assets/query-index-cards.xlsx + + creativecloud-in_hi: + <<: *def + include: + - /in_hi/creativecloud/** + target: /in_hi/students-shared/assets/query-index.xlsx + + cards-in_hi: + <<: *merch-cards + include: + - /in_hi/students-shared/fragments/merch/**/merch-card/** + target: /in_hi/students-shared/assets/query-index-cards.xlsx + + creativecloud-kw_ar: + <<: *def + include: + - /kw_ar/creativecloud/** + target: /kw_ar/students-shared/assets/query-index.xlsx + + cards-kw_ar: + <<: *merch-cards + include: + - /kw_ar/students-shared/fragments/merch/**/merch-card/** + target: /kw_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-kw_en: + <<: *def + include: + - /kw_en/creativecloud/** + target: /kw_en/students-shared/assets/query-index.xlsx + + cards-kw_en: + <<: *merch-cards + include: + - /kw_en/students-shared/fragments/merch/**/merch-card/** + target: /kw_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-my_en: + <<: *def + include: + - /my_en/creativecloud/** + target: /my_en/students-shared/assets/query-index.xlsx + + cards-my_en: + <<: *merch-cards + include: + - /my_en/students-shared/fragments/merch/**/merch-card/** + target: /my_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-my_ms: + <<: *def + include: + - /my_ms/creativecloud/** + target: /my_ms/students-shared/assets/query-index.xlsx + + cards-my_ms: + <<: *merch-cards + include: + - /my_ms/students-shared/fragments/merch/**/merch-card/** + target: /my_ms/students-shared/assets/query-index-cards.xlsx + + creativecloud-ng: + <<: *def + include: + - /ng/creativecloud/** + target: /ng/students-shared/assets/query-index.xlsx + + cards-ng: + <<: *merch-cards + include: + - /ng/students-shared/fragments/merch/**/merch-card/** + target: /ng/students-shared/assets/query-index-cards.xlsx + + creativecloud-pe: + <<: *def + include: + - /pe/creativecloud/** + target: /pe/students-shared/assets/query-index.xlsx + + cards-pe: + <<: *merch-cards + include: + - /pe/students-shared/fragments/merch/**/merch-card/** + target: /pe/students-shared/assets/query-index-cards.xlsx + + creativecloud-ph_en: + <<: *def + include: + - /ph_en/creativecloud/** + target: /ph_en/students-shared/assets/query-index.xlsx + + cards-ph_en: + <<: *merch-cards + include: + - /ph_en/students-shared/fragments/merch/**/merch-card/** + target: /ph_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-ph_fil: + <<: *def + include: + - /ph_fil/creativecloud/** + target: /ph_fil/students-shared/assets/query-index.xlsx + + cards-ph_fil: + <<: *merch-cards + include: + - /ph_fil/students-shared/fragments/merch/**/merch-card/** + target: /ph_fil/students-shared/assets/query-index-cards.xlsx + + creativecloud-pr: + <<: *def + include: + - /pr/creativecloud/** + target: /pr/students-shared/assets/query-index.xlsx + + cards-pr: + <<: *merch-cards + include: + - /pr/students-shared/fragments/merch/**/merch-card/** + target: /pr/students-shared/assets/query-index-cards.xlsx + + creativecloud-qa_ar: + <<: *def + include: + - /qa_ar/creativecloud/** + target: /qa_ar/students-shared/assets/query-index.xlsx + + cards-qa_ar: + <<: *merch-cards + include: + - /qa_ar/students-shared/fragments/merch/**/merch-card/** + target: /qa_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-qa_en: + <<: *def + include: + - /qa_en/creativecloud/** + target: /qa_en/students-shared/assets/query-index.xlsx + + cards-qa_en: + <<: *merch-cards + include: + - /qa_en/students-shared/fragments/merch/**/merch-card/** + target: /qa_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-vn_en: + <<: *def + include: + - /vn_en/creativecloud/** + target: /vn_en/students-shared/assets/query-index.xlsx + + cards-vn_en: + <<: *merch-cards + include: + - /vn_en/students-shared/fragments/merch/**/merch-card/** + target: /vn_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-vn_vi: + <<: *def + include: + - /vn_vi/creativecloud/** + target: /vn_vi/students-shared/assets/query-index.xlsx + + cards-vn_vi: + <<: *merch-cards + include: + - /vn_vi/students-shared/fragments/merch/**/merch-card/** + target: /vn_vi/students-shared/assets/query-index-cards.xlsx + + creativecloud-dk: + <<: *def + include: + - /dk/creativecloud/** + target: /dk/students-shared/assets/query-index.xlsx + + cards-dk: + <<: *merch-cards + include: + - /dk/students-shared/fragments/merch/**/merch-card/** + target: /dk/students-shared/assets/query-index-cards.xlsx + + creativecloud-fi: + <<: *def + include: + - /fi/creativecloud/** + target: /fi/students-shared/assets/query-index.xlsx + + cards-fi: + <<: *merch-cards + include: + - /fi/students-shared/fragments/merch/**/merch-card/** + target: /fi/students-shared/assets/query-index-cards.xlsx + + creativecloud-no: + <<: *def + include: + - /no/creativecloud/** + target: /no/students-shared/assets/query-index.xlsx + + cards-no: + <<: *merch-cards + include: + - /no/students-shared/fragments/merch/**/merch-card/** + target: /no/students-shared/assets/query-index-cards.xlsx + + creativecloud-se: + <<: *def + include: + - /se/creativecloud/** + target: /se/students-shared/assets/query-index.xlsx + + cards-se: + <<: *merch-cards + include: + - /se/students-shared/fragments/merch/**/merch-card/** + target: /se/students-shared/assets/query-index-cards.xlsx + + creativecloud-la: + <<: *def + include: + - /la/creativecloud/** + target: /la/students-shared/assets/query-index.xlsx + + cards-la: + <<: *merch-cards + include: + - /la/students-shared/fragments/merch/**/merch-card/** + target: /la/students-shared/assets/query-index-cards.xlsx + + creativecloud-mx: + <<: *def + include: + - /mx/creativecloud/** + target: /mx/students-shared/assets/query-index.xlsx + + cards-mx: + <<: *merch-cards + include: + - /mx/students-shared/fragments/merch/**/merch-card/** + target: /mx/students-shared/assets/query-index-cards.xlsx + + creativecloud-be_nl: + <<: *def + include: + - /be_nl/creativecloud/** + target: /be_nl/students-shared/assets/query-index.xlsx + + cards-be_nl: + <<: *merch-cards + include: + - /be_nl/students-shared/fragments/merch/**/merch-card/** + target: /be_nl/students-shared/assets/query-index-cards.xlsx + + creativecloud-bg: + <<: *def + include: + - /bg/creativecloud/** + target: /bg/students-shared/assets/query-index.xlsx + + cards-bg: + <<: *merch-cards + include: + - /bg/students-shared/fragments/merch/**/merch-card/** + target: /bg/students-shared/assets/query-index-cards.xlsx + + creativecloud-ch_it: + <<: *def + include: + - /ch_it/creativecloud/** + target: /ch_it/students-shared/assets/query-index.xlsx + + cards-ch_it: + <<: *merch-cards + include: + - /ch_it/students-shared/fragments/merch/**/merch-card/** + target: /ch_it/students-shared/assets/query-index-cards.xlsx + + creativecloud-cz: + <<: *def + include: + - /cz/creativecloud/** + target: /cz/students-shared/assets/query-index.xlsx + + cards-cz: + <<: *merch-cards + include: + - /cz/students-shared/fragments/merch/**/merch-card/** + target: /cz/students-shared/assets/query-index-cards.xlsx + + creativecloud-ee: + <<: *def + include: + - /ee/creativecloud/** + target: /ee/students-shared/assets/query-index.xlsx + + cards-ee: + <<: *merch-cards + include: + - /ee/students-shared/fragments/merch/**/merch-card/** + target: /ee/students-shared/assets/query-index-cards.xlsx + + creativecloud-hu: + <<: *def + include: + - /hu/creativecloud/** + target: /hu/students-shared/assets/query-index.xlsx + + cards-hu: + <<: *merch-cards + include: + - /hu/students-shared/fragments/merch/**/merch-card/** + target: /hu/students-shared/assets/query-index-cards.xlsx + + creativecloud-il_he: + <<: *def + include: + - /il_he/creativecloud/** + target: /il_he/students-shared/assets/query-index.xlsx + + cards-il_he: + <<: *merch-cards + include: + - /il_he/students-shared/fragments/merch/**/merch-card/** + target: /il_he/students-shared/assets/query-index-cards.xlsx + + creativecloud-lv: + <<: *def + include: + - /lv/creativecloud/** + target: /lv/students-shared/assets/query-index.xlsx + + cards-lv: + <<: *merch-cards + include: + - /lv/students-shared/fragments/merch/**/merch-card/** + target: /lv/students-shared/assets/query-index-cards.xlsx + + creativecloud-mena_ar: + <<: *def + include: + - /mena_ar/creativecloud/** + target: /mena_ar/students-shared/assets/query-index.xlsx + + cards-mena_ar: + <<: *merch-cards + include: + - /mena_ar/students-shared/fragments/merch/**/merch-card/** + target: /mena_ar/students-shared/assets/query-index-cards.xlsx + + creativecloud-pt: + <<: *def + include: + - /pt/creativecloud/** + target: /pt/students-shared/assets/query-index.xlsx + + cards-pt: + <<: *merch-cards + include: + - /pt/students-shared/fragments/merch/**/merch-card/** + target: /pt/students-shared/assets/query-index-cards.xlsx + + creativecloud-ro: + <<: *def + include: + - /ro/creativecloud/** + target: /ro/students-shared/assets/query-index.xlsx + + cards-ro: + <<: *merch-cards + include: + - /ro/students-shared/fragments/merch/**/merch-card/** + target: /ro/students-shared/assets/query-index-cards.xlsx + + creativecloud-si: + <<: *def + include: + - /si/creativecloud/** + target: /si/students-shared/assets/query-index.xlsx + + cards-si: + <<: *merch-cards + include: + - /si/students-shared/fragments/merch/**/merch-card/** + target: /si/students-shared/assets/query-index-cards.xlsx + + creativecloud-sk: + <<: *def + include: + - /sk/creativecloud/** + target: /sk/students-shared/assets/query-index.xlsx + + cards-sk: + <<: *merch-cards + include: + - /sk/students-shared/fragments/merch/**/merch-card/** + target: /sk/students-shared/assets/query-index-cards.xlsx + + creativecloud-ua: + <<: *def + include: + - /ua/creativecloud/** + target: /ua/students-shared/assets/query-index.xlsx + + cards-ua: + <<: *merch-cards + include: + - /ua/students-shared/fragments/merch/**/merch-card/** + target: /ua/students-shared/assets/query-index-cards.xlsx + + creativecloud-sg: + <<: *def + include: + - /sg/creativecloud/** + target: /sg/students-shared/assets/query-index.xlsx + + cards-sg: + <<: *merch-cards + include: + - /sg/students-shared/fragments/merch/**/merch-card/** + target: /sg/students-shared/assets/query-index-cards.xlsx + + creativecloud-br: + <<: *def + include: + - /br/creativecloud/** + target: /br/students-shared/assets/query-index.xlsx + + cards-br: + <<: *merch-cards + include: + - /br/students-shared/fragments/merch/**/merch-card/** + target: /br/students-shared/assets/query-index-cards.xlsx + + creativecloud-cis_en: + <<: *def + include: + - /cis_en/creativecloud/** + target: /cis_en/students-shared/assets/query-index.xlsx + + cards-cis_en: + <<: *merch-cards + include: + - /cis_en/students-shared/fragments/merch/**/merch-card/** + target: /cis_en/students-shared/assets/query-index-cards.xlsx + + creativecloud-cis_ru: + <<: *def + include: + - /cis_ru/creativecloud/** + target: /cis_ru/students-shared/assets/query-index.xlsx + + cards-cis_ru: + <<: *merch-cards + include: + - /cis_ru/students-shared/fragments/merch/**/merch-card/** + target: /cis_ru/students-shared/assets/query-index-cards.xlsx diff --git a/helix-sitemap.yaml b/helix-sitemap.yaml new file mode 100644 index 0000000..bc1cbb3 --- /dev/null +++ b/helix-sitemap.yaml @@ -0,0 +1,579 @@ +version: 1 + +sitemaps: + website: + origin: https://www.adobe-students.com + lastmod: YYYY-MM-DD + default: en-US + languages: + us: + source: /students-shared/assets/query-index.json + alternate: /{path}.html + destination: /students-shared/assets/sitemap.xml + hreflang: en-US + + au: + source: /au/students-shared/assets/query-index.json + alternate: /au/{path}.html + destination: /au/students-shared/assets/sitemap.xml + hreflang: en-AU + + de: + source: /de/students-shared/assets/query-index.json + alternate: /de/{path}.html + destination: /de/students-shared/assets/sitemap.xml + hreflang: de-DE + + es: + source: /es/students-shared/assets/query-index.json + alternate: /es/{path}.html + destination: /es/students-shared/assets/sitemap.xml + hreflang: es-ES + + fr: + source: /fr/students-shared/assets/query-index.json + alternate: /fr/{path}.html + destination: /fr/students-shared/assets/sitemap.xml + hreflang: fr-FR + + it: + source: /it/students-shared/assets/query-index.json + alternate: /it/{path}.html + destination: /it/students-shared/assets/sitemap.xml + hreflang: it-IT + + jp: + source: /jp/students-shared/assets/query-index.json + alternate: /jp/{path}.html + destination: /jp/students-shared/assets/sitemap.xml + hreflang: ja-JP + + kr: + source: /kr/students-shared/assets/query-index.json + alternate: /kr/{path}.html + destination: /kr/students-shared/assets/sitemap.xml + hreflang: ko-KR + + ru: + source: /ru/students-shared/assets/query-index.json + alternate: /ru/{path}.html + destination: /ru/students-shared/assets/sitemap.xml + hreflang: ru-RU + + hk_zh: + source: /hk_zh/students-shared/assets/query-index.json + alternate: /hk_zh/{path}.html + destination: /hk_zh/students-shared/assets/sitemap.xml + hreflang: zh-HK + + tw: + source: /tw/students-shared/assets/query-index.json + alternate: /tw/{path}.html + destination: /tw/students-shared/assets/sitemap.xml + hreflang: zh-TW + + nl: + source: /nl/students-shared/assets/query-index.json + alternate: /nl/{path}.html + destination: /nl/students-shared/assets/sitemap.xml + hreflang: nl-NL + + pl: + source: /pl/students-shared/assets/query-index.json + alternate: /pl/{path}.html + destination: /pl/students-shared/assets/sitemap.xml + hreflang: pl-PL + + tr: + source: /tr/students-shared/assets/query-index.json + alternate: /tr/{path}.html + destination: /tr/students-shared/assets/sitemap.xml + hreflang: tr-TR + + uk: + source: /uk/students-shared/assets/query-index.json + alternate: /uk/{path}.html + destination: /uk/students-shared/assets/sitemap.xml + hreflang: en-GB + + ca: + source: /ca/students-shared/assets/query-index.json + alternate: /ca/{path}.html + destination: /ca/students-shared/assets/sitemap.xml + hreflang: en-CA + + cn: + source: /cn/students-shared/assets/query-index.json + alternate: /cn/{path}.html + destination: /cn/students-shared/assets/sitemap.xml + hreflang: zh-CN + + ae_ar: + source: /ae_ar/students-shared/assets/query-index.json + alternate: /ae_ar/{path}.html + destination: /ae_ar/students-shared/assets/sitemap.xml + hreflang: ar-AE + + ae_en: + source: /ae_en/students-shared/assets/query-index.json + alternate: /ae_en/{path}.html + destination: /ae_en/students-shared/assets/sitemap.xml + hreflang: en-AE + + at: + source: /at/students-shared/assets/query-index.json + alternate: /at/{path}.html + destination: /at/students-shared/assets/sitemap.xml + hreflang: de-AT + + be_en: + source: /be_en/students-shared/assets/query-index.json + alternate: /be_en/{path}.html + destination: /be_en/students-shared/assets/sitemap.xml + hreflang: en-BE + + be_fr: + source: /be_fr/students-shared/assets/query-index.json + alternate: /be_fr/{path}.html + destination: /be_fr/students-shared/assets/sitemap.xml + hreflang: fr-BE + + ca_fr: + source: /ca_fr/students-shared/assets/query-index.json + alternate: /ca_fr/{path}.html + destination: /ca_fr/students-shared/assets/sitemap.xml + hreflang: fr-CA + + ch_de: + source: /ch_de/students-shared/assets/query-index.json + alternate: /ch_de/{path}.html + destination: /ch_de/students-shared/assets/sitemap.xml + hreflang: de-CH + + ch_fr: + source: /ch_fr/students-shared/assets/query-index.json + alternate: /ch_fr/{path}.html + destination: /ch_fr/students-shared/assets/sitemap.xml + hreflang: fr-CH + + cl: + source: /cl/students-shared/assets/query-index.json + alternate: /cl/{path}.html + destination: /cl/students-shared/assets/sitemap.xml + hreflang: es-CL + + cy_en: + source: /cy_en/students-shared/assets/query-index.json + alternate: /cy_en/{path}.html + destination: /cy_en/students-shared/assets/sitemap.xml + hreflang: en-CY + + gr_en: + source: /gr_en/students-shared/assets/query-index.json + alternate: /gr_en/{path}.html + destination: /gr_en/students-shared/assets/sitemap.xml + hreflang: en-GR + + hk_en: + source: /hk_en/students-shared/assets/query-index.json + alternate: /hk_en/{path}.html + destination: /hk_en/students-shared/assets/sitemap.xml + hreflang: en-HK + + ie: + source: /ie/students-shared/assets/query-index.json + alternate: /ie/{path}.html + destination: /ie/students-shared/assets/sitemap.xml + hreflang: en-IE + + il_en: + source: /il_en/students-shared/assets/query-index.json + alternate: /il_en/{path}.html + destination: /il_en/students-shared/assets/sitemap.xml + hreflang: en-IL + + in: + source: /in/students-shared/assets/query-index.json + alternate: /in/{path}.html + destination: /in/students-shared/assets/sitemap.xml + hreflang: en-IN + + lt: + source: /lt/students-shared/assets/query-index.json + alternate: /lt/{path}.html + destination: /lt/students-shared/assets/sitemap.xml + hreflang: lt-LT + + lu_de: + source: /lu_de/students-shared/assets/query-index.json + alternate: /lu_de/{path}.html + destination: /lu_de/students-shared/assets/sitemap.xml + hreflang: de-LU + + lu_en: + source: /lu_en/students-shared/assets/query-index.json + alternate: /lu_en/{path}.html + destination: /lu_en/students-shared/assets/sitemap.xml + hreflang: en-LU + + lu_fr: + source: /lu_fr/students-shared/assets/query-index.json + alternate: /lu_fr/{path}.html + destination: /lu_fr/students-shared/assets/sitemap.xml + hreflang: fr-LU + + mena_en: + source: /mena_en/students-shared/assets/query-index.json + alternate: /mena_en/{path}.html + destination: /mena_en/students-shared/assets/sitemap.xml + hreflang: en-DZ + + mt: + source: /mt/students-shared/assets/query-index.json + alternate: /mt/{path}.html + destination: /mt/students-shared/assets/sitemap.xml + hreflang: en-MT + + nz: + source: /nz/students-shared/assets/query-index.json + alternate: /nz/{path}.html + destination: /nz/students-shared/assets/sitemap.xml + hreflang: en-NZ + + sa_ar: + source: /sa_ar/students-shared/assets/query-index.json + alternate: /sa_ar/{path}.html + destination: /sa_ar/students-shared/assets/sitemap.xml + hreflang: ar-SA + + sa_en: + source: /sa_en/students-shared/assets/query-index.json + alternate: /sa_en/{path}.html + destination: /sa_en/students-shared/assets/sitemap.xml + hreflang: en-SA + + th_en: + source: /th_en/students-shared/assets/query-index.json + alternate: /th_en/{path}.html + destination: /th_en/students-shared/assets/sitemap.xml + hreflang: en-TH + + th_th: + source: /th_th/students-shared/assets/query-index.json + alternate: /th_th/{path}.html + destination: /th_th/students-shared/assets/sitemap.xml + hreflang: th-TH + + za: + source: /za/students-shared/assets/query-index.json + alternate: /za/{path}.html + destination: /za/students-shared/assets/sitemap.xml + hreflang: en-ZA + + africa: + source: /africa/students-shared/assets/query-index.json + alternate: /africa/{path}.html + destination: /africa/students-shared/assets/sitemap.xml + hreflang: + - en-BJ + - en-CM + - en-MA + - en-TG + - en-TN + + ar: + source: /ar/students-shared/assets/query-index.json + alternate: /ar/{path}.html + destination: /ar/students-shared/assets/sitemap.xml + hreflang: es-AR + + co: + source: /co/students-shared/assets/query-index.json + alternate: /co/{path}.html + destination: /co/students-shared/assets/sitemap.xml + hreflang: es-CO + + cr: + source: /cr/students-shared/assets/query-index.json + alternate: /cr/{path}.html + destination: /cr/students-shared/assets/sitemap.xml + hreflang: es-CR + + ec: + source: /ec/students-shared/assets/query-index.json + alternate: /ec/{path}.html + destination: /ec/students-shared/assets/sitemap.xml + hreflang: es-EC + + eg_ar: + source: /eg_ar/students-shared/assets/query-index.json + alternate: /eg_ar/{path}.html + destination: /eg_ar/students-shared/assets/sitemap.xml + hreflang: ar-EG + + eg_en: + source: /eg_en/students-shared/assets/query-index.json + alternate: /eg_en/{path}.html + destination: /eg_en/students-shared/assets/sitemap.xml + hreflang: en-EG + + gr_el: + source: /gr_el/students-shared/assets/query-index.json + alternate: /gr_el/{path}.html + destination: /gr_el/students-shared/assets/sitemap.xml + hreflang: el-GR + + gt: + source: /gt/students-shared/assets/query-index.json + alternate: /gt/{path}.html + destination: /gt/students-shared/assets/sitemap.xml + hreflang: es-GT + + id_en: + source: /id_en/students-shared/assets/query-index.json + alternate: /id_en/{path}.html + destination: /id_en/students-shared/assets/sitemap.xml + hreflang: en-ID + + id_id: + source: /id_id/students-shared/assets/query-index.json + alternate: /id_id/{path}.html + destination: /id_id/students-shared/assets/sitemap.xml + hreflang: id-ID + + in_hi: + source: /in_hi/students-shared/assets/query-index.json + alternate: /in_hi/{path}.html + destination: /in_hi/students-shared/assets/sitemap.xml + hreflang: hi-IN + + kw_ar: + source: /kw_ar/students-shared/assets/query-index.json + alternate: /kw_ar/{path}.html + destination: /kw_ar/students-shared/assets/sitemap.xml + hreflang: ar-KW + + kw_en: + source: /kw_en/students-shared/assets/query-index.json + alternate: /kw_en/{path}.html + destination: /kw_en/students-shared/assets/sitemap.xml + hreflang: en-KW + + my_en: + source: /my_en/students-shared/assets/query-index.json + alternate: /my_en/{path}.html + destination: /my_en/students-shared/assets/sitemap.xml + hreflang: en-MY + + my_ms: + source: /my_ms/students-shared/assets/query-index.json + alternate: /my_ms/{path}.html + destination: /my_ms/students-shared/assets/sitemap.xml + hreflang: ms-MY + + ng: + source: /ng/students-shared/assets/query-index.json + alternate: /ng/{path}.html + destination: /ng/students-shared/assets/sitemap.xml + hreflang: en-NG + + pe: + source: /pe/students-shared/assets/query-index.json + alternate: /pe/{path}.html + destination: /pe/students-shared/assets/sitemap.xml + hreflang: es-PE + + ph_en: + source: /ph_en/students-shared/assets/query-index.json + alternate: /ph_en/{path}.html + destination: /ph_en/students-shared/assets/sitemap.xml + hreflang: en-PH + + ph_fil: + source: /ph_fil/students-shared/assets/query-index.json + alternate: /ph_fil/{path}.html + destination: /ph_fil/students-shared/assets/sitemap.xml + hreflang: fil-PH + + pr: + source: /pr/students-shared/assets/query-index.json + alternate: /pr/{path}.html + destination: /pr/students-shared/assets/sitemap.xml + hreflang: es-PR + + qa_ar: + source: /qa_ar/students-shared/assets/query-index.json + alternate: /qa_ar/{path}.html + destination: /qa_ar/students-shared/assets/sitemap.xml + hreflang: ar-QA + + qa_en: + source: /qa_en/students-shared/assets/query-index.json + alternate: /qa_en/{path}.html + destination: /qa_en/students-shared/assets/sitemap.xml + hreflang: en-QA + + vn_en: + source: /vn_en/students-shared/assets/query-index.json + alternate: /vn_en/{path}.html + destination: /vn_en/students-shared/assets/sitemap.xml + hreflang: en-VN + + vn_vi: + source: /vn_vi/students-shared/assets/query-index.json + alternate: /vn_vi/{path}.html + destination: /vn_vi/students-shared/assets/sitemap.xml + hreflang: vi-VN + + dk: + source: /dk/students-shared/assets/query-index.json + alternate: /dk/{path}.html + destination: /dk/students-shared/assets/sitemap.xml + hreflang: da-DK + + fi: + source: /fi/students-shared/assets/query-index.json + alternate: /fi/{path}.html + destination: /fi/students-shared/assets/sitemap.xml + hreflang: fi-FI + + no: + source: /no/students-shared/assets/query-index.json + alternate: /no/{path}.html + destination: /no/students-shared/assets/sitemap.xml + hreflang: no-NO + + se: + source: /se/students-shared/assets/query-index.json + alternate: /se/{path}.html + destination: /se/students-shared/assets/sitemap.xml + hreflang: sv-SE + + la: + source: /la/students-shared/assets/query-index.json + alternate: /la/{path}.html + destination: /la/students-shared/assets/sitemap.xml + hreflang: + - es-PA + - es-SV + - es-VE + + mx: + source: /mx/students-shared/assets/query-index.json + alternate: /mx/{path}.html + destination: /mx/students-shared/assets/sitemap.xml + hreflang: es-MX + + be_nl: + source: /be_nl/students-shared/assets/query-index.json + alternate: /be_nl/{path}.html + destination: /be_nl/students-shared/assets/sitemap.xml + hreflang: nl-BE + + bg: + source: /bg/students-shared/assets/query-index.json + alternate: /bg/{path}.html + destination: /bg/students-shared/assets/sitemap.xml + hreflang: bg-BG + + ch_it: + source: /ch_it/students-shared/assets/query-index.json + alternate: /ch_it/{path}.html + destination: /ch_it/students-shared/assets/sitemap.xml + hreflang: it-CH + + cz: + source: /cz/students-shared/assets/query-index.json + alternate: /cz/{path}.html + destination: /cz/students-shared/assets/sitemap.xml + hreflang: cs-CZ + + ee: + source: /ee/students-shared/assets/query-index.json + alternate: /ee/{path}.html + destination: /ee/students-shared/assets/sitemap.xml + hreflang: et-EE + + hu: + source: /hu/students-shared/assets/query-index.json + alternate: /hu/{path}.html + destination: /hu/students-shared/assets/sitemap.xml + hreflang: hu-HU + + il_he: + source: /il_he/students-shared/assets/query-index.json + alternate: /il_he/{path}.html + destination: /il_he/students-shared/assets/sitemap.xml + hreflang: he-IL + + lv: + source: /lv/students-shared/assets/query-index.json + alternate: /lv/{path}.html + destination: /lv/students-shared/assets/sitemap.xml + hreflang: lv-LV + + mena_ar: + source: /mena_ar/students-shared/assets/query-index.json + alternate: /mena_ar/{path}.html + destination: /mena_ar/students-shared/assets/sitemap.xml + hreflang: + - ar-IL + - ar-IQ + - ar-JO + - ar-LB + - ar-MA + - ar-OM + + pt: + source: /pt/students-shared/assets/query-index.json + alternate: /pt/{path}.html + destination: /pt/students-shared/assets/sitemap.xml + hreflang: pt-PT + + ro: + source: /ro/students-shared/assets/query-index.json + alternate: /ro/{path}.html + destination: /ro/students-shared/assets/sitemap.xml + hreflang: ro-RO + + si: + source: /si/students-shared/assets/query-index.json + alternate: /si/{path}.html + destination: /si/students-shared/assets/sitemap.xml + hreflang: sl-SI + + sk: + source: /sk/students-shared/assets/query-index.json + alternate: /sk/{path}.html + destination: /sk/students-shared/assets/sitemap.xml + hreflang: sk-SK + + ua: + source: /ua/students-shared/assets/query-index.json + alternate: /ua/{path}.html + destination: /ua/students-shared/assets/sitemap.xml + hreflang: uk-UA + + sg: + source: /sg/students-shared/assets/query-index.json + alternate: /sg/{path}.html + destination: /sg/students-shared/assets/sitemap.xml + hreflang: en-SG + + br: + source: /br/students-shared/assets/query-index.json + alternate: /br/{path}.html + destination: /br/students-shared/assets/sitemap.xml + hreflang: pt-BR + + cis_en: + source: /cis_en/students-shared/assets/query-index.json + alternate: /cis_en/{path}.html + destination: /cis_en/students-shared/assets/sitemap.xml + hreflang: en-BY + + cis_ru: + source: /cis_ru/students-shared/assets/query-index.json + alternate: /cis_ru/{path}.html + destination: /cis_ru/students-shared/assets/sitemap.xml + hreflang: ru-BY diff --git a/helix-version.txt b/helix-version.txt new file mode 100644 index 0000000..02a819f --- /dev/null +++ b/helix-version.txt @@ -0,0 +1 @@ +v7 diff --git a/libs/deps/README b/libs/deps/README new file mode 100644 index 0000000..f75d7a7 --- /dev/null +++ b/libs/deps/README @@ -0,0 +1 @@ +this is only for loading lit only once on hlx.page and hlx.live diff --git a/libs/deps/lit-all.min.js b/libs/deps/lit-all.min.js new file mode 100644 index 0000000..8f0a8b3 --- /dev/null +++ b/libs/deps/lit-all.min.js @@ -0,0 +1,281 @@ +/* eslint-disable */ +/* Generated by Milo */ + +var Z=window,J=Z.ShadowRoot&&(Z.ShadyCSS===void 0||Z.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,ut=Symbol(),Tt=new WeakMap,I=class{constructor(t,e,i){if(this._$cssResult$=!0,i!==ut)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(J&&t===void 0){let i=e!==void 0&&e.length===1;i&&(t=Tt.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&Tt.set(e,t))}return t}toString(){return this.cssText}},Rt=s=>new I(typeof s=="string"?s:s+"",void 0,ut),le=(s,...t)=>{let e=s.length===1?s[0]:t.reduce((i,r,o)=>i+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+s[o+1],s[0]);return new I(e,s,ut)},pt=(s,t)=>{J?s.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet):t.forEach(e=>{let i=document.createElement("style"),r=Z.litNonce;r!==void 0&&i.setAttribute("nonce",r),i.textContent=e.cssText,s.appendChild(i)})},Q=J?s=>s:s=>s instanceof CSSStyleSheet?(t=>{let e="";for(let i of t.cssRules)e+=i.cssText;return Rt(e)})(s):s;var ft,X=window,Ut=X.trustedTypes,ae=Ut?Ut.emptyScript:"",kt=X.reactiveElementPolyfillSupport,vt={toAttribute(s,t){switch(t){case Boolean:s=s?ae:null;break;case Object:case Array:s=s==null?s:JSON.stringify(s)}return s},fromAttribute(s,t){let e=s;switch(t){case Boolean:e=s!==null;break;case Number:e=s===null?null:Number(s);break;case Object:case Array:try{e=JSON.parse(s)}catch{e=null}}return e}},Nt=(s,t)=>t!==s&&(t==t||s==s),mt={attribute:!0,type:String,converter:vt,reflect:!1,hasChanged:Nt},$t="finalized",C=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var e;this.finalize(),((e=this.h)!==null&&e!==void 0?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((e,i)=>{let r=this._$Ep(i,e);r!==void 0&&(this._$Ev.set(r,i),t.push(r))}),t}static createProperty(t,e=mt){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){let i=typeof t=="symbol"?Symbol():"__"+t,r=this.getPropertyDescriptor(t,i,e);r!==void 0&&Object.defineProperty(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(r){let o=this[t];this[e]=r,this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||mt}static finalize(){if(this.hasOwnProperty($t))return!1;this[$t]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let e=this.properties,i=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(let r of i)this.createProperty(r,e[r])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let i=new Set(t.flat(1/0).reverse());for(let r of i)e.unshift(Q(r))}else t!==void 0&&e.push(Q(t));return e}static _$Ep(t,e){let i=e.attribute;return i===!1?void 0:typeof i=="string"?i:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(e=>e(this))}addController(t){var e,i;((e=this._$ES)!==null&&e!==void 0?e:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((i=t.hostConnected)===null||i===void 0||i.call(t))}removeController(t){var e;(e=this._$ES)===null||e===void 0||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])})}createRenderRoot(){var t;let e=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return pt(e,this.constructor.elementStyles),e}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(e=>{var i;return(i=e.hostConnected)===null||i===void 0?void 0:i.call(e)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(e=>{var i;return(i=e.hostDisconnected)===null||i===void 0?void 0:i.call(e)})}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=mt){var r;let o=this.constructor._$Ep(t,i);if(o!==void 0&&i.reflect===!0){let n=(((r=i.converter)===null||r===void 0?void 0:r.toAttribute)!==void 0?i.converter:vt).toAttribute(e,i.type);this._$El=t,n==null?this.removeAttribute(o):this.setAttribute(o,n),this._$El=null}}_$AK(t,e){var i;let r=this.constructor,o=r._$Ev.get(t);if(o!==void 0&&this._$El!==o){let n=r.getPropertyOptions(o),a=typeof n.converter=="function"?{fromAttribute:n.converter}:((i=n.converter)===null||i===void 0?void 0:i.fromAttribute)!==void 0?n.converter:vt;this._$El=o,this[o]=a.fromAttribute(e,n.type),this._$El=null}}requestUpdate(t,e,i){let r=!0;t!==void 0&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||Nt)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),i.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,i))):r=!1),!this.isUpdatePending&&r&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((r,o)=>this[o]=r),this._$Ei=void 0);let e=!1,i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var o;return(o=r.hostUpdate)===null||o===void 0?void 0:o.call(r)}),this.update(i)):this._$Ek()}catch(r){throw e=!1,this._$Ek(),r}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;(e=this._$ES)===null||e===void 0||e.forEach(i=>{var r;return(r=i.hostUpdated)===null||r===void 0?void 0:r.call(i)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((e,i)=>this._$EO(i,this[i],e)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};C[$t]=!0,C.elementProperties=new Map,C.elementStyles=[],C.shadowRootOptions={mode:"open"},kt?.({ReactiveElement:C}),((ft=X.reactiveElementVersions)!==null&&ft!==void 0?ft:X.reactiveElementVersions=[]).push("1.6.3");var _t,F=window,O=F.trustedTypes,Ht=O?O.createPolicy("lit-html",{createHTML:s=>s}):void 0,tt="$lit$",b=`lit$${(Math.random()+"").slice(9)}$`,At="?"+b,ce=`<${At}>`,U=document,j=()=>U.createComment(""),q=s=>s===null||typeof s!="object"&&typeof s!="function",Bt=Array.isArray,jt=s=>Bt(s)||typeof s?.[Symbol.iterator]=="function",yt=`[ +\f\r]`,B=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ot=/-->/g,Mt=/>/g,T=RegExp(`>|${yt}(?:([^\\s"'>=/]+)(${yt}*=${yt}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),Dt=/'/g,Lt=/"/g,qt=/^(?:script|style|textarea|title)$/i,Gt=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),Se=Gt(1),be=Gt(2),p=Symbol.for("lit-noChange"),u=Symbol.for("lit-nothing"),Vt=new WeakMap,R=U.createTreeWalker(U,129,null,!1);function zt(s,t){if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ht!==void 0?Ht.createHTML(t):t}var Kt=(s,t)=>{let e=s.length-1,i=[],r,o=t===2?"":"",n=B;for(let a=0;a"?(n=r??B,m=-1):d[1]===void 0?m=-2:(m=n.lastIndex-d[2].length,c=d[1],n=d[3]===void 0?T:d[3]==='"'?Lt:Dt):n===Lt||n===Dt?n=T:n===Ot||n===Mt?n=B:(n=T,r=void 0);let v=n===T&&s[a+1].startsWith("/>")?" ":"";o+=n===B?l+ce:m>=0?(i.push(c),l.slice(0,m)+tt+l.slice(m)+b+v):l+b+(m===-2?(i.push(void 0),a):v)}return[zt(s,o+(s[e]||"")+(t===2?"":"")),i]},G=class s{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let o=0,n=0,a=t.length-1,l=this.parts,[c,d]=Kt(t,e);if(this.el=s.createElement(c,i),R.currentNode=this.el.content,e===2){let m=this.el.content,h=m.firstChild;h.remove(),m.append(...h.childNodes)}for(;(r=R.nextNode())!==null&&l.length0){r.textContent=O?O.emptyScript:"";for(let v=0;v2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=u}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,r){let o=this.strings,n=!1;if(o===void 0)t=k(this,t,e,0),n=!q(t)||t!==this._$AH&&t!==p,n&&(this._$AH=t);else{let a=t,l,c;for(t=o[0],l=0;l{var i,r;let o=(i=e?.renderBefore)!==null&&i!==void 0?i:t,n=o._$litPart$;if(n===void 0){let a=(r=e?.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=n=new M(t.insertBefore(j(),a),a,void 0,e??{})}return n._$AI(s),n};var gt,xt,Re=C,D=class extends C{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;let i=super.createRenderRoot();return(t=(e=this.renderOptions).renderBefore)!==null&&t!==void 0||(e.renderBefore=i.firstChild),i}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=nt(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!1)}render(){return p}};D.finalized=!0,D._$litElement$=!0,(gt=globalThis.litElementHydrateSupport)===null||gt===void 0||gt.call(globalThis,{LitElement:D});var Yt=globalThis.litElementPolyfillSupport;Yt?.({LitElement:D});var Ue={_$AK:(s,t,e)=>{s._$AK(t,e)},_$AL:s=>s._$AL};((xt=globalThis.litElementVersions)!==null&&xt!==void 0?xt:globalThis.litElementVersions=[]).push("3.3.3");var Oe=!1;var{I:de}=Wt,Jt=s=>s===null||typeof s!="object"&&typeof s!="function",qe={HTML:1,SVG:2},Ct=(s,t)=>t===void 0?s?._$litType$!==void 0:s?._$litType$===t,Qt=s=>{var t;return((t=s?._$litType$)===null||t===void 0?void 0:t.h)!=null},Ge=s=>s?._$litDirective$!==void 0,ze=s=>s?._$litDirective$,lt=s=>s.strings===void 0,Zt=()=>document.createComment(""),x=(s,t,e)=>{var i;let r=s._$AA.parentNode,o=t===void 0?s._$AB:t._$AA;if(e===void 0){let n=r.insertBefore(Zt(),o),a=r.insertBefore(Zt(),o);e=new de(n,a,s,s.options)}else{let n=e._$AB.nextSibling,a=e._$AM,l=a!==s;if(l){let c;(i=e._$AQ)===null||i===void 0||i.call(e,s),e._$AM=s,e._$AP!==void 0&&(c=s._$AU)!==a._$AU&&e._$AP(c)}if(n!==o||l){let c=e._$AA;for(;c!==n;){let d=c.nextSibling;r.insertBefore(c,o),c=d}}}return e},E=(s,t,e=s)=>(s._$AI(t,e),s),ue={},w=(s,t=ue)=>s._$AH=t,z=s=>s._$AH,at=s=>{var t;(t=s._$AP)===null||t===void 0||t.call(s,!1,!0);let e=s._$AA,i=s._$AB.nextSibling;for(;e!==i;){let r=e.nextSibling;e.remove(),e=r}},ct=s=>{s._$AR()};var _={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},f=s=>(...t)=>({_$litDirective$:s,values:t}),$=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var K=(s,t)=>{var e,i;let r=s._$AN;if(r===void 0)return!1;for(let o of r)(i=(e=o)._$AO)===null||i===void 0||i.call(e,t,!1),K(o,t);return!0},ht=s=>{let t,e;do{if((t=s._$AM)===void 0)break;e=t._$AN,e.delete(s),s=t}while(e?.size===0)},Xt=s=>{for(let t;t=s._$AM;s=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(s))break;e.add(s),me(t)}};function pe(s){this._$AN!==void 0?(ht(this),this._$AM=s,Xt(this)):this._$AM=s}function fe(s,t=!1,e=0){let i=this._$AH,r=this._$AN;if(r!==void 0&&r.size!==0)if(t)if(Array.isArray(i))for(let o=e;o{var t,e,i,r;s.type==_.CHILD&&((t=(i=s)._$AP)!==null&&t!==void 0||(i._$AP=fe),(e=(r=s)._$AQ)!==null&&e!==void 0||(r._$AQ=pe))},P=class extends ${constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),Xt(this),this.isConnected=t._$AU}_$AO(t,e=!0){var i,r;t!==this.isConnected&&(this.isConnected=t,t?(i=this.reconnected)===null||i===void 0||i.call(this):(r=this.disconnected)===null||r===void 0||r.call(this)),e&&(K(this,t),ht(this))}setValue(t){if(lt(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ft=async(s,t)=>{for await(let e of s)if(await t(e)===!1)return},L=class{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}},V=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){var t;(t=this.Y)!==null&&t!==void 0||(this.Y=new Promise(e=>this.Z=e))}resume(){var t;(t=this.Z)===null||t===void 0||t.call(this),this.Y=this.Z=void 0}};var W=class extends P{constructor(){super(...arguments),this._$Cq=new L(this),this._$CK=new V}render(t,e){return p}update(t,[e,i]){if(this.isConnected||this.disconnected(),e===this._$CX)return;this._$CX=e;let r=0,{_$Cq:o,_$CK:n}=this;return Ft(e,async a=>{for(;n.get();)await n.get();let l=o.deref();if(l!==void 0){if(l._$CX!==e)return!1;i!==void 0&&(a=i(a,r)),l.commitValue(a,r),r++}return!0}),p}commitValue(t,e){this.setValue(t)}disconnected(){this._$Cq.disconnect(),this._$CK.pause()}reconnected(){this._$Cq.reconnect(this),this._$CK.resume()}},cs=f(W);var fs=f(class extends W{constructor(s){if(super(s),s.type!==_.CHILD)throw Error("asyncAppend can only be used in child expressions")}update(s,t){return this._$CJ=s,super.update(s,t)}commitValue(s,t){t===0&&ct(this._$CJ);let e=x(this._$CJ);E(e,s)}});var te=s=>Qt(s)?s._$litType$.h:s.strings,Es=f(class extends ${constructor(s){super(s),this.tt=new WeakMap}render(s){return[s]}update(s,[t]){let e=Ct(this.et)?te(this.et):null,i=Ct(t)?te(t):null;if(e!==null&&(i===null||e!==i)){let r=z(s).pop(),o=this.tt.get(e);if(o===void 0){let n=document.createDocumentFragment();o=nt(u,n),o.setConnected(!1),this.tt.set(e,o)}w(o,[r]),x(o,void 0,r)}if(i!==null){if(e===null||e!==i){let r=this.tt.get(i);if(r!==void 0){let o=z(r).pop();ct(s),x(s,void 0,o),w(s,[o])}}this.et=t}else this.et=void 0;return this.render(t)}});var Ts=(s,t,e)=>{for(let i of t)if(i[0]===s)return(0,i[1])();return e?.()};var Os=f(class extends ${constructor(s){var t;if(super(s),s.type!==_.ATTRIBUTE||s.name!=="class"||((t=s.strings)===null||t===void 0?void 0:t.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(s){return" "+Object.keys(s).filter(t=>s[t]).join(" ")+" "}update(s,[t]){var e,i;if(this.it===void 0){this.it=new Set,s.strings!==void 0&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(let o in t)t[o]&&!(!((e=this.nt)===null||e===void 0)&&e.has(o))&&this.it.add(o);return this.render(t)}let r=s.element.classList;this.it.forEach(o=>{o in t||(r.remove(o),this.it.delete(o))});for(let o in t){let n=!!t[o];n===this.it.has(o)||!((i=this.nt)===null||i===void 0)&&i.has(o)||(n?(r.add(o),this.it.add(o)):(r.remove(o),this.it.delete(o)))}return p}});var ve={},js=f(class extends ${constructor(){super(...arguments),this.st=ve}render(s,t){return t()}update(s,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.st)&&this.st.length===t.length&&t.every((i,r)=>i===this.st[r]))return p}else if(this.st===t)return p;return this.st=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});var Ys=s=>s??u;function*Xs(s,t){let e=typeof t=="function";if(s!==void 0){let i=-1;for(let r of s)i>-1&&(yield e?t(i):t),i++,yield r}}var oi=f(class extends ${constructor(){super(...arguments),this.key=u}render(s,t){return this.key=s,t}update(s,[t,e]){return t!==this.key&&(w(s),this.key=t),e}});var pi=f(class extends ${constructor(s){if(super(s),s.type!==_.PROPERTY&&s.type!==_.ATTRIBUTE&&s.type!==_.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!lt(s))throw Error("`live` bindings can only contain a single expression")}render(s){return s}update(s,[t]){if(t===p||t===u)return t;let e=s.element,i=s.name;if(s.type===_.PROPERTY){if(t===e[i])return p}else if(s.type===_.BOOLEAN_ATTRIBUTE){if(!!t===e.hasAttribute(i))return p}else if(s.type===_.ATTRIBUTE&&e.getAttribute(i)===t+"")return p;return w(s),t}});function*_i(s,t){if(s!==void 0){let e=0;for(let i of s)yield t(i,e++)}}function*xi(s,t,e=1){let i=t===void 0?0:s;t!=null||(t=s);for(let r=i;e>0?rnew St,St=class{},Et=new WeakMap,Ri=f(class extends P{render(s){return u}update(s,[t]){var e;let i=t!==this.G;return i&&this.G!==void 0&&this.ot(void 0),(i||this.rt!==this.lt)&&(this.G=t,this.dt=(e=s.options)===null||e===void 0?void 0:e.host,this.ot(this.lt=s.element)),u}ot(s){var t;if(typeof this.G=="function"){let e=(t=this.dt)!==null&&t!==void 0?t:globalThis,i=Et.get(e);i===void 0&&(i=new WeakMap,Et.set(e,i)),i.get(this.G)!==void 0&&this.G.call(this.dt,void 0),i.set(this.G,s),s!==void 0&&this.G.call(this.dt,s)}else this.G.value=s}get rt(){var s,t,e;return typeof this.G=="function"?(t=Et.get((s=this.dt)!==null&&s!==void 0?s:globalThis))===null||t===void 0?void 0:t.get(this.G):(e=this.G)===null||e===void 0?void 0:e.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});var ee=(s,t,e)=>{let i=new Map;for(let r=t;r<=e;r++)i.set(s[r],r);return i},Li=f(class extends ${constructor(s){if(super(s),s.type!==_.CHILD)throw Error("repeat() can only be used in text expressions")}ct(s,t,e){let i;e===void 0?e=t:t!==void 0&&(i=t);let r=[],o=[],n=0;for(let a of s)r[n]=i?i(a,n):n,o[n]=e(a,n),n++;return{values:o,keys:r}}render(s,t,e){return this.ct(s,t,e).values}update(s,[t,e,i]){var r;let o=z(s),{values:n,keys:a}=this.ct(t,e,i);if(!Array.isArray(o))return this.ut=a,n;let l=(r=this.ut)!==null&&r!==void 0?r:this.ut=[],c=[],d,m,h=0,v=o.length-1,y=0,A=n.length-1;for(;h<=v&&y<=A;)if(o[h]===null)h++;else if(o[v]===null)v--;else if(l[h]===a[y])c[y]=E(o[h],n[y]),h++,y++;else if(l[v]===a[A])c[A]=E(o[v],n[A]),v--,A--;else if(l[h]===a[A])c[A]=E(o[h],n[A]),x(s,c[A+1],o[h]),h++,A--;else if(l[v]===a[y])c[y]=E(o[v],n[y]),x(s,o[h],o[v]),v--,y++;else if(d===void 0&&(d=ee(a,y,A),m=ee(l,h,v)),d.has(l[h]))if(d.has(l[v])){let S=m.get(a[y]),dt=S!==void 0?o[S]:null;if(dt===null){let Pt=x(s,o[h]);E(Pt,n[y]),c[y]=Pt}else c[y]=E(dt,n[y]),x(s,o[h],dt),o[S]=null;y++}else at(o[v]),v--;else at(o[h]),h++;for(;y<=A;){let S=x(s,c[A+1]);E(S,n[y]),c[y++]=S}for(;h<=v;){let S=o[h++];S!==null&&at(S)}return this.ut=a,w(s,c),p}});var se="important",$e=" !"+se,zi=f(class extends ${constructor(s){var t;if(super(s),s.type!==_.ATTRIBUTE||s.name!=="style"||((t=s.strings)===null||t===void 0?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(s){return Object.keys(s).reduce((t,e)=>{let i=s[e];return i==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${i};`},"")}update(s,[t]){let{style:e}=s.element;if(this.ht===void 0){this.ht=new Set;for(let i in t)this.ht.add(i);return this.render(t)}this.ht.forEach(i=>{t[i]==null&&(this.ht.delete(i),i.includes("-")?e.removeProperty(i):e[i]="")});for(let i in t){let r=t[i];if(r!=null){this.ht.add(i);let o=typeof r=="string"&&r.endsWith($e);i.includes("-")||o?e.setProperty(i,o?r.slice(0,-11):r,o?se:""):e[i]=r}}return p}});var Xi=f(class extends ${constructor(s){if(super(s),s.type!==_.CHILD)throw Error("templateContent can only be used in child bindings")}render(s){return this.vt===s?p:(this.vt=s,document.importNode(s.content,!0))}});var H=class extends ${constructor(t){if(super(t),this.et=u,t.type!==_.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===u||t==null)return this.ft=void 0,this.et=t;if(t===p)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;let e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}};H.directiveName="unsafeHTML",H.resultType=1;var or=f(H);var Y=class extends H{};Y.directiveName="unsafeSVG",Y.resultType=2;var dr=f(Y);var ie=s=>!Jt(s)&&typeof s.then=="function",re=1073741823,bt=class extends P{constructor(){super(...arguments),this._$C_t=re,this._$Cwt=[],this._$Cq=new L(this),this._$CK=new V}render(...t){var e;return(e=t.find(i=>!ie(i)))!==null&&e!==void 0?e:p}update(t,e){let i=this._$Cwt,r=i.length;this._$Cwt=e;let o=this._$Cq,n=this._$CK;this.isConnected||this.disconnected();for(let a=0;athis._$C_t);a++){let l=e[a];if(!ie(l))return this._$C_t=a,l;a{for(;n.get();)await n.get();let d=o.deref();if(d!==void 0){let m=d._$Cwt.indexOf(l);m>-1&&mt=>typeof t=="function"?((e,i)=>(customElements.define(e,i),i))(s,t):((e,i)=>{let{kind:r,elements:o}=i;return{kind:r,elements:o,finisher(n){customElements.define(e,n)}}})(s,t);var _e=(s,t)=>t.kind==="method"&&t.descriptor&&!("value"in t.descriptor)?{...t,finisher(e){e.createProperty(t.key,s)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:t.key,initializer(){typeof t.initializer=="function"&&(this[t.key]=t.initializer.call(this))},finisher(e){e.createProperty(t.key,s)}},ye=(s,t,e)=>{t.constructor.createProperty(e,s)};function oe(s){return(t,e)=>e!==void 0?ye(s,t,e):_e(s,t)}function kr(s){return oe({...s,state:!0})}var g=({finisher:s,descriptor:t})=>(e,i)=>{var r;if(i===void 0){let o=(r=e.originalKey)!==null&&r!==void 0?r:e.key,n=t!=null?{kind:"method",placement:"prototype",key:o,descriptor:t(e.key)}:{...e,key:o};return s!=null&&(n.finisher=function(a){s(a,o)}),n}{let o=e.constructor;t!==void 0&&Object.defineProperty(e,i,t(i)),s?.(o,i)}};function Mr(s){return g({finisher:(t,e)=>{Object.assign(t.prototype[e],s)}})}function Vr(s,t){return g({descriptor:e=>{let i={get(){var r,o;return(o=(r=this.renderRoot)===null||r===void 0?void 0:r.querySelector(s))!==null&&o!==void 0?o:null},enumerable:!0,configurable:!0};if(t){let r=typeof e=="symbol"?Symbol():"__"+e;i.get=function(){var o,n;return this[r]===void 0&&(this[r]=(n=(o=this.renderRoot)===null||o===void 0?void 0:o.querySelector(s))!==null&&n!==void 0?n:null),this[r]}}return i}})}function jr(s){return g({descriptor:t=>({get(){var e,i;return(i=(e=this.renderRoot)===null||e===void 0?void 0:e.querySelectorAll(s))!==null&&i!==void 0?i:[]},enumerable:!0,configurable:!0})})}function zr(s){return g({descriptor:t=>({async get(){var e;return await this.updateComplete,(e=this.renderRoot)===null||e===void 0?void 0:e.querySelector(s)},enumerable:!0,configurable:!0})})}var wt,Ae=((wt=window.HTMLSlotElement)===null||wt===void 0?void 0:wt.prototype.assignedElements)!=null?(s,t)=>s.assignedElements(t):(s,t)=>s.assignedNodes(t).filter(e=>e.nodeType===Node.ELEMENT_NODE);function ne(s){let{slot:t,selector:e}=s??{};return g({descriptor:i=>({get(){var r;let o="slot"+(t?`[name=${t}]`:":not([name])"),n=(r=this.renderRoot)===null||r===void 0?void 0:r.querySelector(o),a=n!=null?Ae(n,s):[];return e?a.filter(l=>l.matches(e)):a},enumerable:!0,configurable:!0})})}function Qr(s,t,e){let i,r=s;return typeof s=="object"?(r=s.slot,i=s):i={flatten:t},e?ne({slot:r,flatten:t,selector:e}):g({descriptor:o=>({get(){var n,a;let l="slot"+(r?`[name=${r}]`:":not([name])"),c=(n=this.renderRoot)===null||n===void 0?void 0:n.querySelector(l);return(a=c?.assignedNodes(i))!==null&&a!==void 0?a:[]},enumerable:!0,configurable:!0})})}export{P as AsyncDirective,W as AsyncReplaceDirective,I as CSSResult,$ as Directive,D as LitElement,_ as PartType,C as ReactiveElement,qe as TemplateResultType,H as UnsafeHTMLDirective,bt as UntilDirective,Re as UpdatingElement,Ue as _$LE,Wt as _$LH,pt as adoptStyles,fs as asyncAppend,cs as asyncReplace,Es as cache,Ts as choose,Os as classMap,ct as clearPart,Ti as createRef,le as css,Pr as customElement,vt as defaultConverter,f as directive,Mr as eventOptions,z as getCommittedValue,Q as getCompatibleStyle,ze as getDirectiveClass,js as guard,Se as html,Ys as ifDefined,x as insertPart,Qt as isCompiledTemplateResult,Ge as isDirectiveResult,Jt as isPrimitive,Oe as isServer,lt as isSingleExpression,Ct as isTemplateResult,Xs as join,oi as keyed,pi as live,_i as map,p as noChange,Nt as notEqual,u as nothing,oe as property,Vr as query,jr as queryAll,ne as queryAssignedElements,Qr as queryAssignedNodes,zr as queryAsync,xi as range,Ri as ref,at as removePart,nt as render,Li as repeat,E as setChildPartValue,w as setCommittedValue,kr as state,zi as styleMap,J as supportsAdoptingStyleSheets,be as svg,Xi as templateContent,Rt as unsafeCSS,or as unsafeHTML,dr as unsafeSVG,Ar as until,Er as when}; +/*! Bundled license information: + +@lit/reactive-element/css-tag.js: + (** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/reactive-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/lit-html.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-element/lit-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/is-server.js: + (** + * @license + * Copyright 2022 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directive-helpers.js: + (** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directive.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/async-directive.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/private-async-helpers.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/async-replace.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/async-append.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/cache.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/choose.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/class-map.js: + (** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/guard.js: + (** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/if-defined.js: + (** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/join.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/keyed.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/live.js: + (** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/map.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/range.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/ref.js: + (** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/repeat.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/style-map.js: + (** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/template-content.js: + (** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/unsafe-html.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/unsafe-svg.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/until.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +lit-html/directives/when.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/custom-element.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/property.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/state.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/base.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/event-options.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-all.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-async.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-elements.js: + (** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) + +@lit/reactive-element/decorators/query-assigned-nodes.js: + (** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + *) +*/ diff --git a/package-lock.json b/package-lock.json index 163115c..6e2f6bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,42 @@ { - "name": "@adobe/aem-boilerplate", - "version": "1.3.0", + "name": "@adobecom/adobe-students", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@adobe/aem-boilerplate", - "version": "1.3.0", + "name": "@adobecom/adobe-students", + "version": "1.0.0", "license": "Apache License 2.0", + "dependencies": { + "@adobecom/milo": "github:adobecom/milo#main" + }, "devDependencies": { - "@babel/eslint-parser": "7.24.8", - "eslint": "8.57.0", + "@babel/core": "7.17.7", + "@babel/eslint-parser": "7.17.0", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/dev-server-import-maps": "^0.0.6", + "@web/test-runner": "0.13.27", + "@web/test-runner-commands": "0.6.1", + "@web/test-runner-mocha": "^0.9.0", + "chai": "4.3.6", + "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.29.1", - "stylelint": "16.7.0", - "stylelint-config-standard": "36.0.1" + "eslint-plugin-chai-friendly": "^0.7.2", + "eslint-plugin-import": "2.25.4", + "sinon": "13.0.1", + "stylelint": "14.6.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + } + }, + "node_modules/@adobecom/milo": { + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/adobecom/milo.git#5401829a0fee8805d13f27ae71a1879b25da9f3a", + "dependencies": { + "@preact/signals": "1.0.4", + "htm": "^3.1.1", + "preact": "^10.11.0" } }, "node_modules/@ampproject/remapping": { @@ -22,7 +44,6 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -45,37 +66,35 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz", + "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.7", + "@babel/parser": "^7.17.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "json5": "^2.1.2", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -86,32 +105,30 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", - "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", "dev": true, - "license": "MIT", "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" + "semver": "^6.3.0" }, "engines": { "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -121,15 +138,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, - "peer": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -137,52 +153,11 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, - "peer": true, "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -192,17 +167,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -216,7 +189,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "peer": true, "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -225,25 +197,11 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -258,24 +216,22 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, - "peer": true, "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -297,11 +253,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, - "peer": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -310,35 +268,30 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -347,13 +300,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -361,150 +313,15 @@ "node": ">=6.9.0" } }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", - "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^2.4.1" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", - "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", - "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", - "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.13" - } - }, - "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", + "espree": "^9.4.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -534,46 +351,59 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@esm-bundle/chai": { + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" + "@types/chai": "^4.2.12" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, - "engines": { - "node": ">=12.22" + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "engines": { + "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@import-maps/resolve": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", + "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", "dev": true }, "node_modules/@jridgewell/gen-mapping": { @@ -581,7 +411,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -596,7 +425,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -606,38 +434,26 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -673,110 +489,1500 @@ "node": ">= 8" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "node_modules/@preact/signals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-1.0.4.tgz", + "integrity": "sha512-x3CCzVFQDj/BPg67R7fBegtF9/R9/AHNSiKI457Wd8YjVtFeemIdXRrDXEt3RDoALpFDJUqdlFBv7adlFIdbNA==", + "dependencies": { + "@preact/signals-core": "^1.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "preact": "10.x" + } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@preact/signals-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz", + "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">=0.4.0" + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "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" + "type-detect": "4.0.8" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" - }, + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.6.tgz", + "integrity": "sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.17", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.17.tgz", + "integrity": "sha512-zmZ21EWzR71B4Sscphjief5djsLre50M6lI622OSySTmn9DB3j+C3kWroHfBQWXbOBwbgg/M8CG/hUxDLIloow==", + "dev": true + }, + "node_modules/@types/co-body": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.3.tgz", + "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", + "dev": true + }, + "node_modules/@types/convert-source-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.3.tgz", + "integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==", + "dev": true + }, + "node_modules/@types/cookies": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", + "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debounce": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", + "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-assert": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", + "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keygrip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", + "dev": true + }, + "node_modules/@types/koa": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", + "dev": true, + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", + "dev": true, + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", + "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "dev": true, + "dependencies": { + "undici-types": "~6.13.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@web/browser-logs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", + "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", + "dev": true, + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", + "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", + "dev": true, + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/dev-server": { + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", + "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.1.3", + "@web/dev-server-core": "^0.4.1", + "@web/dev-server-rollup": "^0.4.1", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "ip": "^1.1.5", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.2.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^4.0.6", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/dev-server-core/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@web/dev-server-import-maps": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@web/dev-server-import-maps/-/dev-server-import-maps-0.0.6.tgz", + "integrity": "sha512-dDlaJa5oIT6rhFJfJhDQZOL549yQ+rKpLdSnktDzEYSOJDJ7Um6v6tIulkd3nKPIUDlXf5dwq6sHI/fgBX955w==", + "dev": true, + "dependencies": { + "@import-maps/resolve": "^1.0.1", + "@types/parse5": "^6.0.1", + "@web/dev-server-core": "^0.3.3", + "@web/parse5-utils": "^1.3.0", + "parse5": "^6.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-rollup": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", + "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", + "dev": true, + "dependencies": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.4.1", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^2.67.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/dev-server-rollup/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@web/dev-server/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@web/dev-server/node_modules/command-line-usage": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", + "dev": true, + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/@web/dev-server/node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@web/dev-server/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/dev-server/node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", + "dev": true, + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@web/dev-server/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "dev": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@web/dev-server/node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "dev": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@web/dev-server/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@web/parse5-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", + "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner": { + "version": "0.13.27", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.27.tgz", + "integrity": "sha512-yVhXK9sPJE2VQs1/KPTIeQvUxh+02OZkn+tgcr0+W8ovvrFD4ucF2X26cpeOTuD+Y67ERUi/EopIze3aelw6sg==", + "dev": true, + "dependencies": { + "@web/browser-logs": "^0.2.2", + "@web/config-loader": "^0.1.3", + "@web/dev-server": "^0.1.24", + "@web/test-runner-chrome": "^0.10.7", + "@web/test-runner-commands": "^0.6.0", + "@web/test-runner-core": "^0.10.22", + "@web/test-runner-mocha": "^0.7.5", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "convert-source-map": "^1.7.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.28", + "source-map": "^0.7.3" + }, + "bin": { + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-chrome": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.7.tgz", + "integrity": "sha512-DKJVHhHh3e/b6/erfKOy0a4kGfZ47qMoQRgROxi9T4F9lavEY3E5/MQ7hapHFM2lBF4vDrm+EWjtBdOL8o42tw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.4.8", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^13.1.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-commands": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.1.tgz", + "integrity": "sha512-P4aQqp0duumeGdGxQ8TwLnplkrXzpLqb47eSEEqBRS//C1H7s6VskaqEng+k0dbk+cSpEa4RuZGY/G5k8aTjTw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-core": { + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", + "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^2.0.0", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.2.6", + "@web/dev-server-core": "^0.4.1", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^2.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "ip": "^1.1.5", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@web/test-runner-core/node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@web/test-runner-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/test-runner-core/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", + "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "istanbul-lib-coverage": "^3.0.0", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^8.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-mocha": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.13.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/@web/browser-logs": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", + "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", + "dev": true, + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/@web/dev-server-core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.2.tgz", + "integrity": "sha512-Q/0jpF13Ipk+qGGQ+Yx/FW1TQBYazpkfgYHHo96HBE7qv4V4KKHqHglZcSUxti/zd4bToxX1cFTz8dmbTlb8JA==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.1.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^8.0.4", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/@web/parse5-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", + "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/@web/test-runner-core": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.3.tgz", + "integrity": "sha512-ilDqF/v2sj0sD69FNSIDT7uw4M1yTVedLBt32/lXy3MMi6suCM7m/ZlhsBy8PXhf879WMvzBOl/vhJBpEMB9vA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^2.0.0", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.4.0", + "@web/dev-server-core": "^0.7.2", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^2.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "internal-ip": "^6.2.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@web/test-runner-mocha/node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@web/test-runner-mocha/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@web/test-runner/node_modules/@web/test-runner-mocha": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", + "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", + "dev": true, + "dependencies": { + "@types/mocha": "^8.2.0", + "@web/test-runner-core": "^0.10.20" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "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/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, "engines": { - "node": ">=4" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, - "node_modules/array-buffer-byte-length": { + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-content-type": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "mime-types": "^2.1.18", + "ylru": "^1.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6.0.0" } }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "set-function-length": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -785,239 +1991,319 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" }, "engines": { - "node": ">= 0.4" + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "chalk": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/chalk-template/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/chalk-template/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/chalk-template/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk-template/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/chalk-template/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk-template/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, "dependencies": { - "fill-range": "^7.1.1" + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" }, "bin": { - "browserslist": "cli.js" + "print-chrome-path": "bin/print-chrome-path.js" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=12.13.0" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/callsites": { + "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, "engines": { "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001628", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz", - "integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/co-body": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz", + "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@hapi/bourne": "^3.0.0", + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" }, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, "node_modules/color-convert": { @@ -1041,6 +2327,54 @@ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1053,37 +2387,69 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, - "peer": true + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { @@ -1109,19 +2475,6 @@ "node": ">=12 || >=16" } }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1185,10 +2538,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1202,12 +2561,94 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -1225,6 +2666,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -1242,6 +2692,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1266,12 +2765,17 @@ "node": ">=6.0.0" } }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, "node_modules/electron-to-chromium": { - "version": "1.4.790", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.790.tgz", - "integrity": "sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A==", - "dev": true, - "peer": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -1279,13 +2783,22 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { - "node": ">=6" + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" } }, "node_modules/error-ex": { @@ -1297,6 +2810,12 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/errorstacks": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.1.tgz", + "integrity": "sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==", + "dev": true + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -1378,6 +2897,12 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", @@ -1435,11 +2960,16 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "peer": true, "engines": { "node": ">=6" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1450,49 +2980,46 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", "ignore": "^5.2.0", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" @@ -1569,29 +3096,37 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-chai-friendly": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.7.4.tgz", + "integrity": "sha512-PGPjJ8diYgX1mjLxGJqRop2rrGwZRKImoEOwUOgoIhg0p80MkTaqvmFLe5TF7/iagZHggasvIfQlUyHIhK/PYg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } + }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" }, "engines": { "node": ">=4" @@ -1601,12 +3136,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.0.0" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -1621,6 +3156,12 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -1634,6 +3175,24 @@ "node": ">=8.0.0" } }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -1741,6 +3300,18 @@ "node": ">=4.0" } }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -1777,6 +3348,18 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -1807,9 +3390,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -1857,6 +3440,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -1866,6 +3455,85 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1888,18 +3556,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "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", @@ -1912,6 +3568,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -1930,6 +3592,15 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -1954,20 +3625,29 @@ "node": ">=8" } }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/flat-cache": { @@ -1999,12 +3679,41 @@ "is-callable": "^1.1.3" } }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -2032,6 +3741,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -2046,11 +3761,19 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -2070,6 +3793,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -2109,15 +3856,15 @@ } }, "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, "node_modules/global-modules": { @@ -2163,7 +3910,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -2222,11 +3968,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } }, "node_modules/has-bigints": { "version": "1.0.2", @@ -2309,6 +4067,47 @@ "node": ">= 0.4" } }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/htm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", + "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -2321,6 +4120,98 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -2346,6 +4237,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2355,6 +4255,24 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2378,6 +4296,24 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "node_modules/internal-ip": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", + "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", + "dev": true, + "dependencies": { + "default-gateway": "^6.0.0", + "ipaddr.js": "^1.9.1", + "is-ip": "^3.1.0", + "p-event": "^4.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" + } + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -2392,6 +4328,30 @@ "node": ">= 0.4" } }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -2426,6 +4386,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -2442,6 +4414,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -2455,12 +4442,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2496,6 +4486,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2514,6 +4519,21 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2526,6 +4546,24 @@ "node": ">=0.10.0" } }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dev": true, + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -2562,13 +4600,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-plain-object": { @@ -2596,6 +4634,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", @@ -2611,6 +4658,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -2668,18 +4727,99 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2703,7 +4843,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -2740,7 +4879,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -2748,6 +4886,24 @@ "node": ">=6" } }, + "node_modules/just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -2767,11 +4923,108 @@ } }, "node_modules/known-css-properties": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", - "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.24.0.tgz", + "integrity": "sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==", + "dev": true + }, + "node_modules/koa": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", + "dev": true, + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-etag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", + "dev": true, + "dependencies": { + "etag": "^1.8.1" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT" + "dependencies": { + "ms": "^2.1.1" + } }, "node_modules/levn": { "version": "0.4.1", @@ -2786,6 +5039,31 @@ "node": ">= 0.8.0" } }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -2793,20 +5071,35 @@ "dev": true }, "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -2819,16 +5112,87 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "peer": true, "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -2839,24 +5203,59 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "engines": { - "node": ">=18" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2879,6 +5278,45 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2900,12 +5338,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/nanocolors": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", + "dev": true + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -2930,12 +5406,129 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nise": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" + } + }, + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "peer": true + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -2946,11 +5539,32 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2996,15 +5610,14 @@ "node": ">= 0.4" } }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" }, "engines": { @@ -3014,91 +5627,152 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { - "wrappy": "1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/parent-module": { @@ -3131,6 +5805,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -3164,6 +5853,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "dev": true + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -3173,6 +5868,21 @@ "node": ">=8" } }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", @@ -3191,6 +5901,53 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -3201,9 +5958,9 @@ } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -3219,7 +5976,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.1", @@ -3229,94 +5985,374 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.4.tgz", + "integrity": "sha512-R6vHqZWgVnTAPq0C+xjyHfEZqfIYboCBVSy24MjxEDm+tIh1BU4O6o7DP7AA7kHzf136d+Qc5duI4tlpHjixDw==", "dev": true }, "node_modules/postcss-safe-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", - "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/preact": { + "version": "10.23.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.23.1.tgz", + "integrity": "sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "consulting", + "url": "https://feross.org/support" } - ], + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": ">=8" } }, - "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.10.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "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==", + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">=6" + } }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -3336,6 +6372,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -3371,6 +6419,68 @@ "node": ">=4" } }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "dev": true, + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -3397,6 +6507,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3438,6 +6563,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -3455,6 +6600,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -3496,6 +6647,12 @@ "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3536,15 +6693,49 @@ } }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sinon": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.1.tgz", + "integrity": "sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ==", + "deprecated": "16.1.1", "dev": true, - "engines": { - "node": ">=14" + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.0.0", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/slash": { @@ -3606,6 +6797,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -3615,6 +6815,65 @@ "node": ">=0.10.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true + }, + "node_modules/specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true, + "bin": { + "specificity": "bin/specificity" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3699,6 +6958,27 @@ "node": ">=4" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3711,192 +6991,123 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, "node_modules/stylelint": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.7.0.tgz", - "integrity": "sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.0.tgz", + "integrity": "sha512-Xk2sqXYPi9nXgq70nBiZkbQm/QOOKd83NBTaBE1fXEWAEeRlgHnKC/E7kJFlT6K0SaNDOK5yIvR7GFPGsNLuOg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1", - "@csstools/media-query-list-parser": "^2.1.13", - "@csstools/selector-specificity": "^3.1.1", - "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.2", - "css-tree": "^2.3.1", - "debug": "^4.3.5", - "fast-glob": "^3.3.2", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.0.1", + "debug": "^4.3.3", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^5.3.1", + "html-tags": "^3.1.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.34.0", + "known-css-properties": "^0.24.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.7", + "meow": "^9.0.0", + "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "picocolors": "^1.0.1", - "postcss": "^8.4.39", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^7.1.0", - "supports-hyperlinks": "^3.0.0", - "svg-tags": "^1.0.0", - "table": "^6.8.2", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", - "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.1.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", - "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "dependencies": { - "stylelint-config-recommended": "^14.0.1" + "normalize-selector": "^0.2.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" }, "engines": { - "node": ">=18.12.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "stylelint": "^16.1.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" } }, - "node_modules/stylelint/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", "dev": true, - "license": "MIT", + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, "engines": { - "node": ">=12" + "node": ">= 12" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "peerDependencies": { + "stylelint": ">=11.0.0" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", - "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", + "node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^5.0.0" - }, - "engines": { - "node": ">=18" + "peerDependencies": { + "stylelint": "^14.4.0" } }, - "node_modules/stylelint/node_modules/flat-cache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", - "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "node_modules/stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.3.1", - "keyv": "^4.5.4" + "stylelint-config-recommended": "^7.0.0" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "stylelint": "^14.4.0" } }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/stylelint/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -3910,16 +7121,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { @@ -3977,16 +7188,49 @@ "node": ">=10.0.0" } }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/table/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3999,18 +7243,51 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -4027,6 +7304,36 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -4051,6 +7358,15 @@ "json5": "lib/cli.js" } }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -4063,10 +7379,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -4075,6 +7400,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", @@ -4148,6 +7486,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -4163,10 +7510,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici-types": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -4182,7 +7554,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -4209,6 +7580,67 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4268,6 +7700,75 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4275,35 +7776,80 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" + "signal-exit": "^3.0.7" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "peer": true + "engines": { + "node": ">= 6" + } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "dev": true, + "engines": { + "node": ">= 4.0.0" } } } diff --git a/package.json b/package.json index 0c2353d..8576b41 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,47 @@ { - "name": "@adobe/aem-boilerplate", + "name": "@adobecom/adobe-students", "private": true, - "version": "1.3.0", - "description": "Starter project for Adobe Helix", + "version": "1.0.0", + "description": "Website foundation technology.", "scripts": { + "test": "wtr --config ./web-test-runner.config.mjs \"./test/**/*.test.(js|html)\" --node-resolve --port=2000 --coverage", + "test:watch": "npm test -- --watch", + "wtr": "wtr --config ./web-test-runner.config.mjs \"./test/**/*.test.(js|html)\" --node-resolve --port=2000 --coverage --concurrent-browsers 4", + "wtr:watch": "npm run wtr -- --watch", + "lcov": "lcov -a coverage/jest/lcov.info -a coverage/wtr/lcov.info -o coverage/lcov.info", + "lint": "npm run lint:js && npm run lint:css", "lint:js": "eslint .", - "lint:css": "stylelint blocks/**/*.css styles/*.css", - "lint": "npm run lint:js && npm run lint:css" + "lint:css": "stylelint 'adobe-students/blocks/**/*.css' 'adobe-students/styles/*.css'" }, "repository": { "type": "git", - "url": "git+https://github.com/adobe/aem-boilerplate.git" + "url": "git+https://github.com/adobecom/adobe-students.git" }, "author": "Adobe", "license": "Apache License 2.0", "bugs": { - "url": "https://github.com/adobe/aem-boilerplate/issues" + "url": "https://github.com/adobecom/adobe-students/issues" }, - "homepage": "https://github.com/adobe/aem-boilerplate#readme", + "homepage": "https://github.com/adobecom/adobe-students#readme", "devDependencies": { - "@babel/eslint-parser": "7.24.8", - "eslint": "8.57.0", + "@babel/core": "7.17.7", + "@babel/eslint-parser": "7.17.0", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/dev-server-import-maps": "^0.0.6", + "@web/test-runner": "0.13.27", + "@web/test-runner-commands": "0.6.1", + "@web/test-runner-mocha": "^0.9.0", + "chai": "4.3.6", + "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.29.1", - "stylelint": "16.7.0", - "stylelint-config-standard": "36.0.1" + "eslint-plugin-chai-friendly": "^0.7.2", + "eslint-plugin-import": "2.25.4", + "sinon": "13.0.1", + "stylelint": "14.6.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + }, + "dependencies": { + "@adobecom/milo": "github:adobecom/milo#main" } } diff --git a/test/scripts/mocks/body.html b/test/scripts/mocks/body.html new file mode 100644 index 0000000..34c7f09 --- /dev/null +++ b/test/scripts/mocks/body.html @@ -0,0 +1,23 @@ +
+
+
+ +
+
+ + + + + + +
+
+

You have one or more unlicensed Adobe apps on your device.

+

Unlicensed apps may contain malware that expose your files and personal data to security risks. Adobe provides a 10-day grace period to resolve this issue with exclusive discounts on replacement apps. 41N1AXBDMG

+

Your ID: c034592b-e547-43aa-82d5-9d42736566e4

+

Learn About Shop Offers

+
+
+
+
+
diff --git a/test/scripts/mocks/head-off.html b/test/scripts/mocks/head-off.html new file mode 100644 index 0000000..c18a548 --- /dev/null +++ b/test/scripts/mocks/head-off.html @@ -0,0 +1,23 @@ + + You have one or more unlicensed Adobe apps on your device. + + + + + + + + + + + + + + + + + + + + + diff --git a/test/scripts/mocks/head-on.html b/test/scripts/mocks/head-on.html new file mode 100644 index 0000000..b490e84 --- /dev/null +++ b/test/scripts/mocks/head-on.html @@ -0,0 +1,24 @@ + + You have one or more unlicensed Adobe apps on your device. + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/scripts/scripts.test.js b/test/scripts/scripts.test.js new file mode 100644 index 0000000..a699a30 --- /dev/null +++ b/test/scripts/scripts.test.js @@ -0,0 +1,39 @@ +import { readFile } from '@web/test-runner-commands'; +import { expect } from '@esm-bundle/chai'; +import { stub } from 'sinon'; + +export const mockRes = ({ payload, status = 200, ok = true } = {}) => new Promise((resolve) => { + resolve({ + status, + ok, + json: () => payload, + text: () => payload, + }); +}); + +export const mockFetch = (payload) => stub().callsFake(() => mockRes(payload)); +window.fetch = mockFetch({ payload: { data: '' } }); + + +function delay(ms) { + return new Promise((res) => { setTimeout(() => { res(); }, ms); }); +} + +document.head.innerHTML = await readFile({ path: './mocks/head-off.html' }); +document.body.innerHTML = await readFile({ path: './mocks/body.html' }); + +describe('Scripts', () => { + before(async () => { + await import('../../adobe-students/scripts/scripts.js'); + delay(200); + }); + + it('Makes validation call when validate meta tag is on', () => { + expect(document.querySelector('meta[name="validate"]').content).to.equal('off'); + }); + + it('Loads adobe-students page when validate meta tag is off', async () => { + document.head.innerHTML = await readFile({ path: './mocks/head-off.html' }); + expect(document.querySelector('meta[name="validate"]').content).to.equal('off'); + }); +}); diff --git a/tools/sidekick/config.json b/tools/sidekick/config.json new file mode 100644 index 0000000..1f879a0 --- /dev/null +++ b/tools/sidekick/config.json @@ -0,0 +1,140 @@ +{ + "project": "Adobe Students", + "plugins": [ + { + "id": "library", + "title": "Library", + "environments": [ "edit" ], + "isPalette": true, + "paletteRect": "top: auto; bottom: 20px; left: 20px; height: 398px; width: 360px;", + "url": "https://milo.adobe.com/tools/library", + "includePaths": [ "**.docx**" ] + }, + { + "id": "tools", + "title": "Tools", + "isContainer": true + }, + { + "containerId": "tools", + "id": "localize", + "title": "Localize", + "environments": [ "edit" ], + "url": "https://main--milo--adobecom.hlx.page/tools/loc/index.html?project=adobe-students--adobecom", + "passReferrer": true, + "includePaths": [ "**/:x**" ] + }, + { + "containerId": "tools", + "id": "localize-2", + "title": "Localize (V2)", + "environments": [ "edit" ], + "url": "https://main--adobe-students--adobecom.hlx.page/tools/loc?milolibs=locui", + "passReferrer": true, + "passConfig": true, + "includePaths": [ "**.xlsx**" ] + }, + { + "containerId": "tools", + "id": "floodgate", + "title": "Floodgate", + "environments": [ "edit" ], + "url": "https://main--adobe-students--adobecom.hlx.page/tools/floodgate?milolibs=floodgateui", + "passReferrer": true, + "passConfig": true, + "includePaths": [ "**/:x**" ] + }, + { + "containerId": "tools", + "title": "Send to CaaS", + "id": "sendtocaas", + "environments": ["dev","preview", "live", "prod"], + "event": "send-to-caas", + "excludePaths": ["https://milo.adobe.com/tools/caas**", "*.json"] + }, + { + "containerId": "tools", + "title": "Check Schema", + "id": "checkschema", + "environments": ["prod"], + "event": "check-schema", + "excludePaths": ["/tools**", "*.json"] + }, + { + "containerId": "tools", + "title": "Preflight", + "id": "preflight", + "environments": ["dev", "preview", "live"], + "event": "preflight" + }, + { + "containerId": "tools", + "id": "offerpreview", + "title": "Offer preview", + "environments": [ "edit" ], + "isPalette": true, + "paletteRect": "top: auto; bottom: 25px; left: 75px; height: 388px; width: 360px;", + "url": "https://milo.adobe.com/tools/commerce", + "includePaths": [ "**.docx**" ] + }, + { + "containerId": "tools", + "id": "ost", + "title": "Use offer", + "environments": [ "edit", "dev", "preview" ], + "url": "https://milo.adobe.com/tools/ost", + "includePaths": [ "**.docx**" ] + }, + { + "containerId": "tools", + "id": "version-history", + "title": "Version History", + "environments": [ "edit" ], + "url": "https://milo.adobe.com/tools/version-history", + "isPalette": true, + "passReferrer": true, + "passConfig": true, + "paletteRect": "top: auto; bottom: 20px; left: 20px; height: 498px; width: 460px;", + "includePaths": [ "**.docx**", "**.xlsx**" ] + }, + { + "containerId": "tools", + "id": "locales", + "title": "Locales", + "environments": [ "edit", "dev", "preview", "live" ], + "isPalette": true, + "passConfig": true, + "passReferrer": true, + "paletteRect": "top: auto; bottom: 25px; left: 75px; height: 388px; width: 360px;", + "url": "https://milo.adobe.com/tools/locale-nav", + "includePaths": [ "**.docx**" ] + }, + { + "containerId": "tools", + "title": "Tag Selector", + "id": "tag-selector", + "environments": ["edit"], + "url": "https://milo.adobe.com/tools/tag-selector", + "isPalette": true, + "paletteRect": "top: 100px; left: 7%; height: 675px; width: 85vw;" + }, + { + "containerId": "tools", + "id": "caas-configurator", + "title": "CaaS Configurator", + "environments": [ "edit", "preview", "dev" ], + "url": "https://milo.adobe.com/tools/caas", + "isPalette": false, + "includePaths": [ "**.docx**"] + }, + { + "containerId": "tools", + "id": "faas-configurator", + "title": "FaaS Configurator", + "environments": [ "edit", "preview", "dev" ], + "url": "https://milo.adobe.com/tools/faas", + "isPalette": false, + "includePaths": [ "**.docx**"] + } + ] +} diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs new file mode 100644 index 0000000..002a22a --- /dev/null +++ b/web-test-runner.config.mjs @@ -0,0 +1,47 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { importMapsPlugin } from '@web/dev-server-import-maps'; + +async function enableCORS(context, next) { + await next(); + context.set('Access-Control-Allow-Credentials', true); + context.set('Access-Control-Allow-Origin', context.request.headers.origin); +} + +const swcImportMaps = Object.fromEntries([ + 'theme.js', + 'search.js', + 'checkbox.js', + 'dialog.js', + 'base.js', + 'reactive-controllers.js', + 'shared.js', + 'textfield.js', + 'button.js', + 'icons-workflow.js', + 'icons-ui.js', + 'checkmark.js', + 'dash.js', + 'divider.js', + 'button-group.js', + 'alert-dialog.js', + 'underlay.js', + 'help-text.js', + 'icon.js', + 'icons/checkmark.js', + 'icons/dash.js', +].map((file) => [`/libs/features/spectrum-web-components/dist/${file}`, `/node_modules/@adobecom/milo/libs/features/spectrum-web-components/dist/${file}`])); + +export default { + coverageConfig: { + include: ['adobe-students/scripts/scripts.js'], + exclude: ['test/mocks/**', 'test/**', '**/node_modules/**'], + }, + debug: false, + files: ['test/**/*.test.(js|html)'], + nodeResolve: true, + middlewares: [enableCORS], + plugins: [importMapsPlugin({ inject: { importMap: { imports: { ...swcImportMaps } } } })], + port: 2000, + browserLogs: false, + global: { window: { location: { search: '?param1=value1¶m2=value2' } } }, +}; diff --git a/wtr b/wtr new file mode 100644 index 0000000..e69de29 From 0afb4b4525f21901a7bd2735ad06404ec20a6b18 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Wed, 4 Sep 2024 02:52:55 +0530 Subject: [PATCH 03/11] chore: removed genuine codes & added cc codes --- .github/pull_request_template.md | 4 +- .hlxignore | 4 + CODEOWNERS | 2 +- adobe-students/scripts/aem.js | 698 ----------------------------- adobe-students/scripts/decorate.js | 33 +- adobe-students/scripts/delayed.js | 1 - adobe-students/scripts/goCart.js | 31 -- adobe-students/scripts/scripts.js | 56 +-- adobe-students/scripts/utils.js | 111 ++--- adobe-students/styles/styles.css | 9 - codecov.yaml | 10 + fstab.yaml | 5 + test/scripts/scripts.test.js | 1 - tools/sidekick/config.json | 7 + web-test-runner.config.mjs | 5 +- 15 files changed, 123 insertions(+), 854 deletions(-) delete mode 100644 adobe-students/scripts/aem.js delete mode 100644 adobe-students/scripts/delayed.js delete mode 100644 adobe-students/scripts/goCart.js create mode 100644 codecov.yaml diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a3dabef..f815bee 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,5 +3,5 @@ Resolves: [MWPW-NUMBER](https://jira.corp.adobe.com/browse/MWPW-NUMBER) **Test URLs:** -- Before: https://main--cc--adobecom.hlx.page/?martech=off -- After: https://--cc--adobecom.hlx.page/?martech=off +- Before: https://main--adobe-students--adobecom.hlx.live/?martech=off +- After: https://--adobe-students--adobecom.hlx.live/?martech=off diff --git a/.hlxignore b/.hlxignore index 7cbf3cd..3e3e045 100644 --- a/.hlxignore +++ b/.hlxignore @@ -1,5 +1,9 @@ +*.json +!*/**/*.json .* *.md LICENSE test/* +web-test-runner.config.mjs +codecov.yaml !tools/sidekick/config.json diff --git a/CODEOWNERS b/CODEOWNERS index e6a8d5c..e77a798 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @salonijain3 @bandana147 @amitbikram @raga-adbe-gh +* @adobecom/cc-code-owners @salonijain3 @bandana147 @amitbikram @raga-adbe-gh diff --git a/adobe-students/scripts/aem.js b/adobe-students/scripts/aem.js deleted file mode 100644 index de8a279..0000000 --- a/adobe-students/scripts/aem.js +++ /dev/null @@ -1,698 +0,0 @@ -/* - * Copyright 2024 Adobe. All rights reserved. - * This file is licensed to you under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under - * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -/* eslint-env browser */ -function sampleRUM(checkpoint, data) { - // eslint-disable-next-line max-len - const timeShift = () => (window.performance ? window.performance.now() : Date.now() - window.hlx.rum.firstReadTime); - try { - window.hlx = window.hlx || {}; - sampleRUM.enhance = () => {}; - if (!window.hlx.rum) { - const weight = new URLSearchParams(window.location.search).get('rum') === 'on' ? 1 : 100; - const id = Math.random().toString(36).slice(-4); - const isSelected = Math.random() * weight < 1; - // eslint-disable-next-line object-curly-newline, max-len - window.hlx.rum = { - weight, - id, - isSelected, - firstReadTime: window.performance ? window.performance.timeOrigin : Date.now(), - sampleRUM, - queue: [], - collector: (...args) => window.hlx.rum.queue.push(args), - }; - if (isSelected) { - ['error', 'unhandledrejection'].forEach((event) => { - window.addEventListener(event, ({ reason, error }) => { - const errData = { source: 'undefined error' }; - try { - errData.target = (reason || error).toString(); - errData.source = (reason || error).stack - .split('\n') - .filter((line) => line.match(/https?:\/\//)) - .shift() - .replace(/at ([^ ]+) \((.+)\)/, '$1@$2') - .trim(); - } catch (err) { - /* error structure was not as expected */ - } - sampleRUM('error', errData); - }); - }); - sampleRUM.baseURL = sampleRUM.baseURL || new URL(window.RUM_BASE || '/', new URL('https://rum.hlx.page')); - sampleRUM.collectBaseURL = sampleRUM.collectBaseURL || sampleRUM.baseURL; - sampleRUM.sendPing = (ck, time, pingData = {}) => { - // eslint-disable-next-line max-len, object-curly-newline - const rumData = JSON.stringify({ - weight, - id, - referer: window.location.href, - checkpoint: ck, - t: time, - ...pingData, - }); - const { href: url, origin } = new URL(`.rum/${weight}`, sampleRUM.collectBaseURL); - const body = origin === window.location.origin - ? new Blob([rumData], { type: 'application/json' }) - : rumData; - navigator.sendBeacon(url, body); - // eslint-disable-next-line no-console - console.debug(`ping:${ck}`, pingData); - }; - sampleRUM.sendPing('top', timeShift()); - - sampleRUM.enhance = () => { - const script = document.createElement('script'); - script.src = new URL( - '.rum/@adobe/helix-rum-enhancer@^2/src/index.js', - sampleRUM.baseURL, - ).href; - document.head.appendChild(script); - }; - if (!window.hlx.RUM_MANUAL_ENHANCE) { - sampleRUM.enhance(); - } - } - } - if (window.hlx.rum && window.hlx.rum.isSelected && checkpoint) { - window.hlx.rum.collector(checkpoint, data, timeShift()); - } - document.dispatchEvent(new CustomEvent('rum', { detail: { checkpoint, data } })); - } catch (error) { - // something went wrong - } -} - -/** - * Setup block utils. - */ -function setup() { - window.hlx = window.hlx || {}; - window.hlx.RUM_MASK_URL = 'full'; - window.hlx.RUM_MANUAL_ENHANCE = true; - window.hlx.codeBasePath = ''; - window.hlx.lighthouse = new URLSearchParams(window.location.search).get('lighthouse') === 'on'; - - const scriptEl = document.querySelector('script[src$="/scripts/scripts.js"]'); - if (scriptEl) { - try { - [window.hlx.codeBasePath] = new URL(scriptEl.src).pathname.split('/scripts/scripts.js'); - } catch (error) { - // eslint-disable-next-line no-console - console.log(error); - } - } -} - -/** - * Auto initializiation. - */ - -function init() { - setup(); - sampleRUM(); -} - -/** - * Sanitizes a string for use as class name. - * @param {string} name The unsanitized string - * @returns {string} The class name - */ -function toClassName(name) { - return typeof name === 'string' - ? name - .toLowerCase() - .replace(/[^0-9a-z]/gi, '-') - .replace(/-+/g, '-') - .replace(/^-|-$/g, '') - : ''; -} - -/** - * Sanitizes a string for use as a js property name. - * @param {string} name The unsanitized string - * @returns {string} The camelCased name - */ -function toCamelCase(name) { - return toClassName(name).replace(/-([a-z])/g, (g) => g[1].toUpperCase()); -} - -/** - * Extracts the config from a block. - * @param {Element} block The block element - * @returns {object} The block config - */ -// eslint-disable-next-line import/prefer-default-export -function readBlockConfig(block) { - const config = {}; - block.querySelectorAll(':scope > div').forEach((row) => { - if (row.children) { - const cols = [...row.children]; - if (cols[1]) { - const col = cols[1]; - const name = toClassName(cols[0].textContent); - let value = ''; - if (col.querySelector('a')) { - const as = [...col.querySelectorAll('a')]; - if (as.length === 1) { - value = as[0].href; - } else { - value = as.map((a) => a.href); - } - } else if (col.querySelector('img')) { - const imgs = [...col.querySelectorAll('img')]; - if (imgs.length === 1) { - value = imgs[0].src; - } else { - value = imgs.map((img) => img.src); - } - } else if (col.querySelector('p')) { - const ps = [...col.querySelectorAll('p')]; - if (ps.length === 1) { - value = ps[0].textContent; - } else { - value = ps.map((p) => p.textContent); - } - } else value = row.children[1].textContent; - config[name] = value; - } - } - }); - return config; -} - -/** - * Loads a CSS file. - * @param {string} href URL to the CSS file - */ -async function loadCSS(href) { - return new Promise((resolve, reject) => { - if (!document.querySelector(`head > link[href="${href}"]`)) { - const link = document.createElement('link'); - link.rel = 'stylesheet'; - link.href = href; - link.onload = resolve; - link.onerror = reject; - document.head.append(link); - } else { - resolve(); - } - }); -} - -/** - * Loads a non module JS file. - * @param {string} src URL to the JS file - * @param {Object} attrs additional optional attributes - */ -async function loadScript(src, attrs) { - return new Promise((resolve, reject) => { - if (!document.querySelector(`head > script[src="${src}"]`)) { - const script = document.createElement('script'); - script.src = src; - if (attrs) { - // eslint-disable-next-line no-restricted-syntax, guard-for-in - for (const attr in attrs) { - script.setAttribute(attr, attrs[attr]); - } - } - script.onload = resolve; - script.onerror = reject; - document.head.append(script); - } else { - resolve(); - } - }); -} - -/** - * Retrieves the content of metadata tags. - * @param {string} name The metadata name (or property) - * @param {Document} doc Document object to query for metadata. Defaults to the window's document - * @returns {string} The metadata value(s) - */ -function getMetadata(name, doc = document) { - const attr = name && name.includes(':') ? 'property' : 'name'; - const meta = [...doc.head.querySelectorAll(`meta[${attr}="${name}"]`)] - .map((m) => m.content) - .join(', '); - return meta || ''; -} - -/** - * Returns a picture element with webp and fallbacks - * @param {string} src The image URL - * @param {string} [alt] The image alternative text - * @param {boolean} [eager] Set loading attribute to eager - * @param {Array} [breakpoints] Breakpoints and corresponding params (eg. width) - * @returns {Element} The picture element - */ -function createOptimizedPicture( - src, - alt = '', - eager = false, - breakpoints = [{ media: '(min-width: 600px)', width: '2000' }, { width: '750' }], -) { - const url = new URL(src, window.location.href); - const picture = document.createElement('picture'); - const { pathname } = url; - const ext = pathname.substring(pathname.lastIndexOf('.') + 1); - - // webp - breakpoints.forEach((br) => { - const source = document.createElement('source'); - if (br.media) source.setAttribute('media', br.media); - source.setAttribute('type', 'image/webp'); - source.setAttribute('srcset', `${pathname}?width=${br.width}&format=webply&optimize=medium`); - picture.appendChild(source); - }); - - // fallback - breakpoints.forEach((br, i) => { - if (i < breakpoints.length - 1) { - const source = document.createElement('source'); - if (br.media) source.setAttribute('media', br.media); - source.setAttribute('srcset', `${pathname}?width=${br.width}&format=${ext}&optimize=medium`); - picture.appendChild(source); - } else { - const img = document.createElement('img'); - img.setAttribute('loading', eager ? 'eager' : 'lazy'); - img.setAttribute('alt', alt); - picture.appendChild(img); - img.setAttribute('src', `${pathname}?width=${br.width}&format=${ext}&optimize=medium`); - } - }); - - return picture; -} - -/** - * Set template (page structure) and theme (page styles). - */ -function decorateTemplateAndTheme() { - const addClasses = (element, classes) => { - classes.split(',').forEach((c) => { - element.classList.add(toClassName(c.trim())); - }); - }; - const template = getMetadata('template'); - if (template) addClasses(document.body, template); - const theme = getMetadata('theme'); - if (theme) addClasses(document.body, theme); -} - -/** - * Wrap inline text content of block cells within a

tag. - * @param {Element} block the block element - */ -function wrapTextNodes(block) { - const validWrappers = [ - 'P', - 'PRE', - 'UL', - 'OL', - 'PICTURE', - 'TABLE', - 'H1', - 'H2', - 'H3', - 'H4', - 'H5', - 'H6', - ]; - - const wrap = (el) => { - const wrapper = document.createElement('p'); - wrapper.append(...el.childNodes); - el.append(wrapper); - }; - - block.querySelectorAll(':scope > div > div').forEach((blockColumn) => { - if (blockColumn.hasChildNodes()) { - const hasWrapper = !!blockColumn.firstElementChild - && validWrappers.some((tagName) => blockColumn.firstElementChild.tagName === tagName); - if (!hasWrapper) { - wrap(blockColumn); - } else if ( - blockColumn.firstElementChild.tagName === 'PICTURE' - && (blockColumn.children.length > 1 || !!blockColumn.textContent.trim()) - ) { - wrap(blockColumn); - } - } - }); -} - -/** - * Decorates paragraphs containing a single link as buttons. - * @param {Element} element container element - */ -function decorateButtons(element) { - element.querySelectorAll('a').forEach((a) => { - a.title = a.title || a.textContent; - if (a.href !== a.textContent) { - const up = a.parentElement; - const twoup = a.parentElement.parentElement; - if (!a.querySelector('img')) { - if (up.childNodes.length === 1 && (up.tagName === 'P' || up.tagName === 'DIV')) { - a.className = 'button'; // default - up.classList.add('button-container'); - } - if ( - up.childNodes.length === 1 - && up.tagName === 'STRONG' - && twoup.childNodes.length === 1 - && twoup.tagName === 'P' - ) { - a.className = 'button primary'; - twoup.classList.add('button-container'); - } - if ( - up.childNodes.length === 1 - && up.tagName === 'EM' - && twoup.childNodes.length === 1 - && twoup.tagName === 'P' - ) { - a.className = 'button secondary'; - twoup.classList.add('button-container'); - } - } - } - }); -} - -/** - * Add for icon, prefixed with codeBasePath and optional prefix. - * @param {Element} [span] span element with icon classes - * @param {string} [prefix] prefix to be added to icon src - * @param {string} [alt] alt text to be added to icon - */ -function decorateIcon(span, prefix = '', alt = '') { - const iconName = Array.from(span.classList) - .find((c) => c.startsWith('icon-')) - .substring(5); - const img = document.createElement('img'); - img.dataset.iconName = iconName; - img.src = `${window.hlx.codeBasePath}${prefix}/icons/${iconName}.svg`; - img.alt = alt; - img.loading = 'lazy'; - span.append(img); -} - -/** - * Add for icons, prefixed with codeBasePath and optional prefix. - * @param {Element} [element] Element containing icons - * @param {string} [prefix] prefix to be added to icon the src - */ -function decorateIcons(element, prefix = '') { - const icons = [...element.querySelectorAll('span.icon')]; - icons.forEach((span) => { - decorateIcon(span, prefix); - }); -} - -/** - * Decorates all sections in a container element. - * @param {Element} main The container element - */ -function decorateSections(main) { - main.querySelectorAll(':scope > div').forEach((section) => { - const wrappers = []; - let defaultContent = false; - [...section.children].forEach((e) => { - if (e.tagName === 'DIV' || !defaultContent) { - const wrapper = document.createElement('div'); - wrappers.push(wrapper); - defaultContent = e.tagName !== 'DIV'; - if (defaultContent) wrapper.classList.add('default-content-wrapper'); - } - wrappers[wrappers.length - 1].append(e); - }); - wrappers.forEach((wrapper) => section.append(wrapper)); - section.classList.add('section'); - section.dataset.sectionStatus = 'initialized'; - section.style.display = 'none'; - - // Process section metadata - const sectionMeta = section.querySelector('div.section-metadata'); - if (sectionMeta) { - const meta = readBlockConfig(sectionMeta); - Object.keys(meta).forEach((key) => { - if (key === 'style') { - const styles = meta.style - .split(',') - .filter((style) => style) - .map((style) => toClassName(style.trim())); - styles.forEach((style) => section.classList.add(style)); - } else { - section.dataset[toCamelCase(key)] = meta[key]; - } - }); - sectionMeta.parentNode.remove(); - } - }); -} - -/** - * Gets placeholders object. - * @param {string} [prefix] Location of placeholders - * @returns {object} Window placeholders object - */ -// eslint-disable-next-line import/prefer-default-export -async function fetchPlaceholders(prefix = 'default') { - window.placeholders = window.placeholders || {}; - if (!window.placeholders[prefix]) { - window.placeholders[prefix] = new Promise((resolve) => { - fetch(`${prefix === 'default' ? '' : prefix}/placeholders.json`) - .then((resp) => { - if (resp.ok) { - return resp.json(); - } - return {}; - }) - .then((json) => { - const placeholders = {}; - json.data - .filter((placeholder) => placeholder.Key) - .forEach((placeholder) => { - placeholders[toCamelCase(placeholder.Key)] = placeholder.Text; - }); - window.placeholders[prefix] = placeholders; - resolve(window.placeholders[prefix]); - }) - .catch(() => { - // error loading placeholders - window.placeholders[prefix] = {}; - resolve(window.placeholders[prefix]); - }); - }); - } - return window.placeholders[`${prefix}`]; -} - -/** - * Builds a block DOM Element from a two dimensional array, string, or object - * @param {string} blockName name of the block - * @param {*} content two dimensional array or string or object of content - */ -function buildBlock(blockName, content) { - const table = Array.isArray(content) ? content : [[content]]; - const blockEl = document.createElement('div'); - // build image block nested div structure - blockEl.classList.add(blockName); - table.forEach((row) => { - const rowEl = document.createElement('div'); - row.forEach((col) => { - const colEl = document.createElement('div'); - const vals = col.elems ? col.elems : [col]; - vals.forEach((val) => { - if (val) { - if (typeof val === 'string') { - colEl.innerHTML += val; - } else { - colEl.appendChild(val); - } - } - }); - rowEl.appendChild(colEl); - }); - blockEl.appendChild(rowEl); - }); - return blockEl; -} - -/** - * Loads JS and CSS for a block. - * @param {Element} block The block element - */ -async function loadBlock(block) { - const status = block.dataset.blockStatus; - if (status !== 'loading' && status !== 'loaded') { - block.dataset.blockStatus = 'loading'; - const { blockName } = block.dataset; - try { - const cssLoaded = loadCSS(`${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.css`); - const decorationComplete = new Promise((resolve) => { - (async () => { - try { - const mod = await import( - `${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.js` - ); - if (mod.default) { - await mod.default(block); - } - } catch (error) { - // eslint-disable-next-line no-console - console.log(`failed to load module for ${blockName}`, error); - } - resolve(); - })(); - }); - await Promise.all([cssLoaded, decorationComplete]); - } catch (error) { - // eslint-disable-next-line no-console - console.log(`failed to load block ${blockName}`, error); - } - block.dataset.blockStatus = 'loaded'; - } - return block; -} - -/** - * Decorates a block. - * @param {Element} block The block element - */ -function decorateBlock(block) { - const shortBlockName = block.classList[0]; - if (shortBlockName) { - block.classList.add('block'); - block.dataset.blockName = shortBlockName; - block.dataset.blockStatus = 'initialized'; - wrapTextNodes(block); - const blockWrapper = block.parentElement; - blockWrapper.classList.add(`${shortBlockName}-wrapper`); - const section = block.closest('.section'); - if (section) section.classList.add(`${shortBlockName}-container`); - } -} - -/** - * Decorates all blocks in a container element. - * @param {Element} main The container element - */ -function decorateBlocks(main) { - main.querySelectorAll('div.section > div > div').forEach(decorateBlock); -} - -/** - * Loads a block named 'header' into header - * @param {Element} header header element - * @returns {Promise} - */ -async function loadHeader(header) { - const headerBlock = buildBlock('header', ''); - header.append(headerBlock); - decorateBlock(headerBlock); - return loadBlock(headerBlock); -} - -/** - * Loads a block named 'footer' into footer - * @param footer footer element - * @returns {Promise} - */ -async function loadFooter(footer) { - const footerBlock = buildBlock('footer', ''); - footer.append(footerBlock); - decorateBlock(footerBlock); - return loadBlock(footerBlock); -} - -/** - * Wait for Image. - * @param {Element} section section element - */ -async function waitForFirstImage(section) { - const lcpCandidate = section.querySelector('img'); - await new Promise((resolve) => { - if (lcpCandidate && !lcpCandidate.complete) { - lcpCandidate.setAttribute('loading', 'eager'); - lcpCandidate.addEventListener('load', resolve); - lcpCandidate.addEventListener('error', resolve); - } else { - resolve(); - } - }); -} - -/** - * Loads all blocks in a section. - * @param {Element} section The section element - */ - -async function loadSection(section, loadCallback) { - const status = section.dataset.sectionStatus; - if (!status || status === 'initialized') { - section.dataset.sectionStatus = 'loading'; - const blocks = [...section.querySelectorAll('div.block')]; - for (let i = 0; i < blocks.length; i += 1) { - // eslint-disable-next-line no-await-in-loop - await loadBlock(blocks[i]); - } - if (loadCallback) await loadCallback(section); - section.dataset.sectionStatus = 'loaded'; - section.style.display = null; - } -} - -/** - * Loads all sections. - * @param {Element} element The parent element of sections to load - */ - -async function loadSections(element) { - const sections = [...element.querySelectorAll('div.section')]; - for (let i = 0; i < sections.length; i += 1) { - // eslint-disable-next-line no-await-in-loop - await loadSection(sections[i]); - } -} - -init(); - -export { - buildBlock, - createOptimizedPicture, - decorateBlock, - decorateBlocks, - decorateButtons, - decorateIcons, - decorateSections, - decorateTemplateAndTheme, - fetchPlaceholders, - getMetadata, - loadBlock, - loadCSS, - loadFooter, - loadHeader, - loadScript, - loadSection, - loadSections, - readBlockConfig, - sampleRUM, - setup, - toCamelCase, - toClassName, - waitForFirstImage, - wrapTextNodes, -}; diff --git a/adobe-students/scripts/decorate.js b/adobe-students/scripts/decorate.js index 6725d03..79f1c3d 100644 --- a/adobe-students/scripts/decorate.js +++ b/adobe-students/scripts/decorate.js @@ -1,25 +1,12 @@ -import { getUrlParams } from './utils.js'; - -function goCartLinkAppend(link, paramsValue) { - try { - const url = new URL(link.getAttribute('href')); - const urlSearchParams = new URLSearchParams(url.search); - - Object.keys(paramsValue).forEach((key) => { - if (!urlSearchParams.has(key)) { - urlSearchParams.append(key, paramsValue[key]); - } - }); - - const searchParamsString = urlSearchParams.toString(); - link.setAttribute('href', `${url.origin}${url.pathname}?${searchParamsString}${url.hash}`); - } catch (error) { - console.log(`goCartLinkAppend: Could not append link for ${link}, invalid URL`); +export default function defineDeviceByScreenSize() { + const DESKTOP_SIZE = 1200; + const MOBILE_SIZE = 600; + const screenWidth = window.innerWidth; + if (screenWidth >= DESKTOP_SIZE) { + return 'DESKTOP'; } -} - -export function decorateButton() { - const buttons = document.querySelectorAll('a.con-button'); - const paramsValue = getUrlParams(); - buttons.forEach((button) => goCartLinkAppend(button, paramsValue)); + if (screenWidth <= MOBILE_SIZE) { + return 'MOBILE'; + } + return 'TABLET'; } diff --git a/adobe-students/scripts/delayed.js b/adobe-students/scripts/delayed.js deleted file mode 100644 index 28fa26c..0000000 --- a/adobe-students/scripts/delayed.js +++ /dev/null @@ -1 +0,0 @@ -// add delayed functionality here diff --git a/adobe-students/scripts/goCart.js b/adobe-students/scripts/goCart.js deleted file mode 100644 index b11ac66..0000000 --- a/adobe-students/scripts/goCart.js +++ /dev/null @@ -1,31 +0,0 @@ -export async function isTokenValid(miloLibs) { - const { default: getServiceConfig } = await import( - `${miloLibs}/utils/service-config.js` - ); - const urlParams = new URLSearchParams(window.location.search); - const gtoken = urlParams.get('gtoken'); - const gid = urlParams.get('gid'); - const serviceName = urlParams.get('serviceName') || 'adobe-students'; - const serviceConf = await getServiceConfig(window.location.origin); - - let formBody = []; - for (const [key, value] of Object.entries({ gid, gtoken })) { - formBody.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); - } - formBody = formBody.join('&'); - - try { - const opts = { - headers: { - 'content-type': 'application/x-www-form-urlencoded', - }, - body: formBody, - method: 'POST', - }; - - const response = await fetch(serviceConf[serviceName].url, opts); - return response.ok; - } catch (err) { - return false; - } -} diff --git a/adobe-students/scripts/scripts.js b/adobe-students/scripts/scripts.js index 4774561..7767b1e 100644 --- a/adobe-students/scripts/scripts.js +++ b/adobe-students/scripts/scripts.js @@ -10,19 +10,13 @@ * governing permissions and limitations under the License. */ -import { - setLibs, - getUrlParams, -} from './utils.js'; +import { setLibs, decorateArea } from './utils.js'; -import { isTokenValid } from './goCart.js'; - -import { decorateButton } from './decorate.js'; +// Add project-wide style path here. const STYLES = '/adobe-students/styles/styles.css'; // Use '/libs' if your live site maps '/libs' to milo's origin. const LIBS = '/libs'; -const noRedirect = new URLSearchParams(window.location.search).get('noRedirect'); const locales = { // Americas @@ -134,25 +128,34 @@ const CONFIG = { locales, geoRouting: 'on', prodDomains: ['www.adobe.com', 'helpx.adobe.com', 'business.adobe.com', 'www.adobe-students.com'], - placeholders: getUrlParams(), + decorateArea, stage: { - marTechUrl: - 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-2c94beadc94f-development.min.js', - edgeConfigId: 'e065836d-be57-47ef-b8d1-999e1657e8fd', + marTechUrl: 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-2c94beadc94f-development.min.js', + edgeConfigId: '8d2805dd-85bf-4748-82eb-f99fdad117a6', pdfViewerClientId: '9f7f19a46bd542e2b8548411e51eb4d4', pdfViewerReportSuite: 'adbadobenonacdcqa', + psUrl: 'https://stage.photoshop.adobe.com', + }, + live: { + pdfViewerClientId: 'a26c77a2effb4c4aaa71e7c46385e0ed', + pdfViewerReportSuite: 'adbadobenonacdcqa', }, prod: { marTechUrl: 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-5dd5dd2177e6.min.js', edgeConfigId: '2cba807b-7430-41ae-9aac-db2b0da742d5', pdfViewerClientId: '409019ebd2d546c0be1a0b5a61fe65df', pdfViewerReportSuite: 'adbadobenonacdcprod', + psUrl: 'https://photoshop.adobe.com', }, jarvis: { id: 'adobedotcom2', version: '1.83', onDemand: false, }, + htmlExclude: [ + /www\.adobe\.com\/(\w\w(_\w\w)?\/)?express(\/.*)?/, + /www\.adobe\.com\/(\w\w(_\w\w)?\/)?go(\/.*)?/, + ], }; /* @@ -162,37 +165,22 @@ const CONFIG = { */ const miloLibs = setLibs(LIBS); -const { loadArea, setConfig, loadLana } = await import( - `${miloLibs}/utils/utils.js` -); - +const { loadArea, setConfig, loadLana } = await import(`${miloLibs}/utils/utils.js`); setConfig({ ...CONFIG, miloLibs }); - -async function loadAdobeStudentsPage() { - loadLana({ clientId: 'adobe-students' }); - await loadArea(); - decorateButton(); -} +decorateArea(); (function loadStyles() { const paths = [`${miloLibs}/styles/styles.css`]; - if (STYLES) { - paths.push(STYLES); - } + if (STYLES) paths.push(STYLES); paths.forEach((path) => { const link = document.createElement('link'); link.setAttribute('rel', 'stylesheet'); link.setAttribute('href', path); document.head.appendChild(link); }); -})(); +}()); (async function loadPage() { - const validate = document.head.querySelector(`meta[name="validate"]`); - if (validate?.content === 'on') { - if (await isTokenValid(miloLibs) || noRedirect) return loadAdobeStudentsPage(); - const defaultPage = document.head.querySelector(`meta[name="default-page"]`); - window.location.href = defaultPage?.content || 'https://www.adobe-students.com/'; - } - loadAdobeStudentsPage(); -})(); + loadLana({ clientId: 'adobe-students' }); + await loadArea(); +}()); diff --git a/adobe-students/scripts/utils.js b/adobe-students/scripts/utils.js index 97d8e75..e4e7526 100644 --- a/adobe-students/scripts/utils.js +++ b/adobe-students/scripts/utils.js @@ -16,11 +16,6 @@ * ------------------------------------------------------------ */ -/** - * adobe-students pages param keys - */ -export const GOCART_PARAM_KEYS = ['gid', 'gtoken', 'sdid', 'cohortid', 'timer', 'gcsrc', 'gcprog', 'gcprogcat', 'gcpagetype', 'language', 'productname', 'daysremaining']; - /** * The decision engine for where to get Milo's libs from. */ @@ -34,68 +29,82 @@ export const [setLibs, getLibs] = (() => { } const { hostname } = window.location; if ( - !hostname.includes('hlx.page') && - !hostname.includes('hlx.live') && - !hostname.includes('localhost') - ) { + !hostname.includes('hlx.page') + && !hostname.includes('hlx.live') + && !hostname.includes('localhost')) { libs = prodLibs; return libs; } - const branch = - new URLSearchParams(window.location.search).get('milolibs') || 'main'; - if (branch === 'local') { - libs = 'http://localhost:6456/libs'; - return libs; - } - if (branch.indexOf('--') > -1) { - libs = `https://${branch}.hlx.live/libs`; - return libs; - } + const branch = new URLSearchParams(window.location.search).get('milolibs') || 'main'; + if (branch === 'local') { libs = 'http://localhost:6456/libs'; return libs; } + if (branch.indexOf('--') > -1) { libs = `https://${branch}.hlx.live/libs`; return libs; } libs = `https://${branch}--milo--adobecom.hlx.live/libs`; return libs; - }, - () => libs, + }, () => libs, ]; })(); const miloLibs = setLibs('/libs'); -const { createTag, localizeLink } = await import(`${miloLibs}/utils/utils.js`); -export { createTag, localizeLink }; +const { createTag, localizeLink, getConfig, loadStyle, createIntersectionObserver } = await import(`${miloLibs}/utils/utils.js`); +export { createTag, loadStyle, localizeLink, createIntersectionObserver, getConfig }; -function getCountdown(timer) { - const timerDate = new Date(timer); +function getDecorateAreaFn() { + let lcpImgSet = false; - if (isNaN(timerDate.getTime())) { - return 0; - } + // Load LCP image immediately + const eagerLoad = (lcpImg) => { + lcpImg?.setAttribute('loading', 'eager'); + lcpImg?.setAttribute('fetchpriority', 'high'); + if (lcpImg) lcpImgSet = true; + }; - if (timer.endsWith('d')) { - const countdown = parseInt(timer, 10); - return isNaN(countdown) ? 0 : countdown; - } else { - const now = new Date(); - const daysRemaining = Math.round((timerDate - now) / (24 * 3600 * 1000)); - return Math.max(daysRemaining, 0); + function replaceDotMedia(area = document) { + const currUrl = new URL(window.location); + const pathSeg = currUrl.pathname.split('/').length; + if (pathSeg >= 3) return; + const resetAttributeBase = (tag, attr) => { + area.querySelectorAll(`${tag}[${attr}^="./media_"]`).forEach((el) => { + el[attr] = `${new URL(`${getConfig().contentRoot}${el.getAttribute(attr).substring(1)}`, window.location).href}`; + }); + }; + resetAttributeBase('img', 'src'); + resetAttributeBase('source', 'srcset'); } -} -function getParamValue(val) { - let paramValue = (new URLSearchParams(window.location.search)).get(val); - if (val === 'timer' && paramValue ) { - paramValue = getCountdown(paramValue); - } - return paramValue; -} - -export function getUrlParams() { - const params = {}; - for (const key of GOCART_PARAM_KEYS) { - const paramValue = getParamValue(key); - if (paramValue) { - params[key] = paramValue; + async function loadLCPImage(area = document, { fragmentLink = null } = {}) { + const firstBlock = area.querySelector('body > main > div > div'); + let fgDivs = null; + switch (true) { + case firstBlock?.classList.contains('changebg'): { + firstBlock.querySelector(':scope > div:nth-child(1)').querySelectorAll('img').forEach(eagerLoad); + import(`${getConfig().codeRoot}/deps/interactive-marquee-changebg/changeBgMarquee.js`); + break; + } + case firstBlock?.classList.contains('marquee'): + firstBlock.querySelectorAll('img').forEach(eagerLoad); + break; + case firstBlock?.classList.contains('interactive-marquee'): + firstBlock.querySelector(':scope > div:nth-child(1)').querySelectorAll('img').forEach(eagerLoad); + fgDivs = firstBlock.querySelector(':scope > div:nth-child(2)').querySelectorAll('div:not(:first-child)'); + fgDivs.forEach((d) => eagerLoad(d.querySelector('img'))); + if (!firstBlock.classList.contains('changebg')) loadStyle('/adobe-students/blocks/interactive-marquee/milo-marquee.css'); + break; + case !!fragmentLink: + if (window.document.querySelector('a.fragment') === fragmentLink && !window.document.querySelector('img[loading="eager"]')) { + eagerLoad(area.querySelector('img')); + } + break; + default: + if (!fragmentLink) eagerLoad(area.querySelector('img')); + break; } } - return params; + + return (area, options) => { + replaceDotMedia(); + if (!lcpImgSet) loadLCPImage(area, options); + }; } +export const decorateArea = getDecorateAreaFn(); diff --git a/adobe-students/styles/styles.css b/adobe-students/styles/styles.css index 0c979fa..974debf 100644 --- a/adobe-students/styles/styles.css +++ b/adobe-students/styles/styles.css @@ -1,12 +1,3 @@ -/* - * Put project specific base styles here. - * - * Note: The project does not load this file. - * You will need to load these using scripts.js. - * - * - */ - .reading-width { max-width: 600px; margin: auto; diff --git a/codecov.yaml b/codecov.yaml new file mode 100644 index 0000000..2b010ad --- /dev/null +++ b/codecov.yaml @@ -0,0 +1,10 @@ +coverage: + status: + patch: + default: + target: 100% + threshold: 0.1% + project: + default: + target: auto + threshold: 0.1% diff --git a/fstab.yaml b/fstab.yaml index 9e756ec..593ffb3 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,2 +1,7 @@ +# Notes: +# +# 1. The URL should be human readable as a path. It should not be a hash. +# 2. Google Drive is no longer allowed for production Adobe projects. + mountpoints: /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/students/sandbox diff --git a/test/scripts/scripts.test.js b/test/scripts/scripts.test.js index a699a30..131e8f2 100644 --- a/test/scripts/scripts.test.js +++ b/test/scripts/scripts.test.js @@ -14,7 +14,6 @@ export const mockRes = ({ payload, status = 200, ok = true } = {}) => new Promis export const mockFetch = (payload) => stub().callsFake(() => mockRes(payload)); window.fetch = mockFetch({ payload: { data: '' } }); - function delay(ms) { return new Promise((res) => { setTimeout(() => { res(); }, ms); }); } diff --git a/tools/sidekick/config.json b/tools/sidekick/config.json index 1f879a0..b313887 100644 --- a/tools/sidekick/config.json +++ b/tools/sidekick/config.json @@ -135,6 +135,13 @@ "url": "https://milo.adobe.com/tools/faas", "isPalette": false, "includePaths": [ "**.docx**"] + }, + { + "containerId": "tools", + "id": "bulk", + "title": "Bulk operations", + "environments": [ "edit", "dev", "preview", "live" ], + "url": "https://main--adobe-students--adobecom.hlx.page/tools/bulk-publish" } ] } diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs index 002a22a..6c9fe67 100644 --- a/web-test-runner.config.mjs +++ b/web-test-runner.config.mjs @@ -33,8 +33,8 @@ const swcImportMaps = Object.fromEntries([ export default { coverageConfig: { - include: ['adobe-students/scripts/scripts.js'], - exclude: ['test/mocks/**', 'test/**', '**/node_modules/**'], + include: ['adobe-students/**'], + exclude: ['test/mocks/**', 'test/**', '**/node_modules/**', 'adobe-students/deps/**'], }, debug: false, files: ['test/**/*.test.(js|html)'], @@ -43,5 +43,4 @@ export default { plugins: [importMapsPlugin({ inject: { importMap: { imports: { ...swcImportMaps } } } })], port: 2000, browserLogs: false, - global: { window: { location: { search: '?param1=value1¶m2=value2' } } }, }; From 8bbeb993b77369b25a886ef67424f357c08cead2 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Mon, 9 Sep 2024 14:02:34 +0530 Subject: [PATCH 04/11] chore: removed unwanted files --- .github/codeql/codeql-config.yml | 4 - .github/workflows/codeql.yml | 67 -- .github/workflows/run-tests.yaml | 43 - .kodiak/config.yaml | 9 +- .renovaterc.json | 3 - .vscode/extensions.json | 1 - CODEOWNERS | 2 +- adobe-students/img/icons/3d-assets.svg | 27 - adobe-students/img/icons/designer.svg | 25 - adobe-students/img/icons/modeler.svg | 30 - adobe-students/img/icons/painter.svg | 44 - adobe-students/img/icons/sampler.svg | 44 - adobe-students/img/icons/stager.svg | 63 -- adobe-students/scripts/decorate.js | 12 - adobe-students/scripts/scripts.js | 126 +-- adobe-students/scripts/utils.js | 73 +- adobe-students/sitemap-index.xml | 270 ------ adobe-students/styles/fonts.css | 36 - adobe-students/styles/lazy-styles.css | 1 - adobe-students/styles/styles.css | 16 - codecov.yaml | 10 - helix-query.yaml | 1136 ------------------------ helix-sitemap.yaml | 566 ------------ test/scripts/mocks/body.html | 23 - test/scripts/mocks/head-off.html | 23 - test/scripts/mocks/head-on.html | 24 - test/scripts/scripts.test.js | 38 - test/scripts/utils.test.js | 45 + 28 files changed, 69 insertions(+), 2692 deletions(-) delete mode 100644 .github/codeql/codeql-config.yml delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .github/workflows/run-tests.yaml delete mode 100644 .renovaterc.json delete mode 100644 adobe-students/img/icons/3d-assets.svg delete mode 100644 adobe-students/img/icons/designer.svg delete mode 100644 adobe-students/img/icons/modeler.svg delete mode 100644 adobe-students/img/icons/painter.svg delete mode 100644 adobe-students/img/icons/sampler.svg delete mode 100644 adobe-students/img/icons/stager.svg delete mode 100644 adobe-students/scripts/decorate.js delete mode 100644 adobe-students/styles/fonts.css delete mode 100644 adobe-students/styles/lazy-styles.css delete mode 100644 adobe-students/styles/styles.css delete mode 100644 codecov.yaml delete mode 100644 helix-query.yaml delete mode 100644 test/scripts/mocks/body.html delete mode 100644 test/scripts/mocks/head-off.html delete mode 100644 test/scripts/mocks/head-on.html delete mode 100644 test/scripts/scripts.test.js create mode 100644 test/scripts/utils.test.js diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml deleted file mode 100644 index 559e097..0000000 --- a/.github/codeql/codeql-config.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: "CC CodeQL Config" - -paths-ignore: - - node_modules diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 9aac6cf..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,67 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ "stage", "main" ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ "stage", "main" ] - schedule: - # Scheduled to run at 06:18 every Friday - - cron: '18 6 * * 5' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - config-file: ./.github/codeql/codeql-config.yml - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml deleted file mode 100644 index bd1a8b0..0000000 --- a/.github/workflows/run-tests.yaml +++ /dev/null @@ -1,43 +0,0 @@ -name: Unit Tests -on: - push: - branches: - - stage - - main - pull_request: - types: [opened, synchronize, reopened, edited] - branches: - - stage - - main -jobs: - run-tests: - name: Running tests - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [18.x] - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - fetch-depth: 2 - - - name: Set up Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Install XVFB - run: sudo apt-get install xvfb - - - name: Install dependencies - run: npm install - - - name: Run the tests - run: xvfb-run -a npm test - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v2 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: coverage/lcov.info diff --git a/.kodiak/config.yaml b/.kodiak/config.yaml index 2e216ae..75e7f74 100644 --- a/.kodiak/config.yaml +++ b/.kodiak/config.yaml @@ -1,7 +1,7 @@ version: 1.0 snow: - - id: 546348 # Milo Genuine https://adobe.service-now.com/service_registry_portal.do#/service/546348 + - id: 545562 # Milo CC notifications: jira: @@ -12,12 +12,17 @@ notifications: risk_rating: R5 fields: assignee: - name: blaishram + name: sumanh customfield_11800: MWPW-140779 #epic link + customfield_12900: + value: Brahmos watchers: - casalino - jmichnow - mauchley + - saljain + - mathuria + - dstrong labels: - "OriginatingProcess=Kodiak" - "security" diff --git a/.renovaterc.json b/.renovaterc.json deleted file mode 100644 index 231dbf8..0000000 --- a/.renovaterc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["config:recommended"] -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 78cfea6..c809ba0 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,6 +5,5 @@ "editorconfig.editorconfig", "ryanluker.vscode-coverage-gutters", "eamodio.gitlens", - "virtual-comments.virtual-comments" ] } diff --git a/CODEOWNERS b/CODEOWNERS index e77a798..6b737ed 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @adobecom/cc-code-owners @salonijain3 @bandana147 @amitbikram @raga-adbe-gh +* @adobecom/cc-code-owners @salonijain3 @aishwaryamathuria @suhjainadobe @drashti1712 diff --git a/adobe-students/img/icons/3d-assets.svg b/adobe-students/img/icons/3d-assets.svg deleted file mode 100644 index e091f2a..0000000 --- a/adobe-students/img/icons/3d-assets.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/adobe-students/img/icons/designer.svg b/adobe-students/img/icons/designer.svg deleted file mode 100644 index b82e38d..0000000 --- a/adobe-students/img/icons/designer.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/adobe-students/img/icons/modeler.svg b/adobe-students/img/icons/modeler.svg deleted file mode 100644 index 16ae93c..0000000 --- a/adobe-students/img/icons/modeler.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/adobe-students/img/icons/painter.svg b/adobe-students/img/icons/painter.svg deleted file mode 100644 index 5defd09..0000000 --- a/adobe-students/img/icons/painter.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/adobe-students/img/icons/sampler.svg b/adobe-students/img/icons/sampler.svg deleted file mode 100644 index 56da355..0000000 --- a/adobe-students/img/icons/sampler.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/adobe-students/img/icons/stager.svg b/adobe-students/img/icons/stager.svg deleted file mode 100644 index dc6fe78..0000000 --- a/adobe-students/img/icons/stager.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/adobe-students/scripts/decorate.js b/adobe-students/scripts/decorate.js deleted file mode 100644 index 79f1c3d..0000000 --- a/adobe-students/scripts/decorate.js +++ /dev/null @@ -1,12 +0,0 @@ -export default function defineDeviceByScreenSize() { - const DESKTOP_SIZE = 1200; - const MOBILE_SIZE = 600; - const screenWidth = window.innerWidth; - if (screenWidth >= DESKTOP_SIZE) { - return 'DESKTOP'; - } - if (screenWidth <= MOBILE_SIZE) { - return 'MOBILE'; - } - return 'TABLET'; -} diff --git a/adobe-students/scripts/scripts.js b/adobe-students/scripts/scripts.js index 7767b1e..7b81ad0 100644 --- a/adobe-students/scripts/scripts.js +++ b/adobe-students/scripts/scripts.js @@ -13,112 +13,12 @@ import { setLibs, decorateArea } from './utils.js'; // Add project-wide style path here. -const STYLES = '/adobe-students/styles/styles.css'; +const STYLES = ''; // Use '/libs' if your live site maps '/libs' to milo's origin. const LIBS = '/libs'; -const locales = { - // Americas - ar: { ietf: 'es-AR', tk: 'oln4yqj.css' }, - br: { ietf: 'pt-BR', tk: 'inq1xob.css' }, - ca: { ietf: 'en-CA', tk: 'pps7abe.css' }, - ca_fr: { ietf: 'fr-CA', tk: 'vrk5vyv.css' }, - cl: { ietf: 'es-CL', tk: 'oln4yqj.css' }, - co: { ietf: 'es-CO', tk: 'oln4yqj.css' }, - la: { ietf: 'es-LA', tk: 'oln4yqj.css' }, - mx: { ietf: 'es-MX', tk: 'oln4yqj.css' }, - pe: { ietf: 'es-PE', tk: 'oln4yqj.css' }, - '': { ietf: 'en-US', tk: 'hah7vzn.css' }, - // EMEA - africa: { ietf: 'en', tk: 'pps7abe.css' }, - be_fr: { ietf: 'fr-BE', tk: 'vrk5vyv.css' }, - be_en: { ietf: 'en-BE', tk: 'pps7abe.css' }, - be_nl: { ietf: 'nl-BE', tk: 'cya6bri.css' }, - cy_en: { ietf: 'en-CY', tk: 'pps7abe.css' }, - dk: { ietf: 'da-DK', tk: 'aaz7dvd.css' }, - de: { ietf: 'de-DE', tk: 'vin7zsi.css' }, - ee: { ietf: 'et-EE', tk: 'aaz7dvd.css' }, - es: { ietf: 'es-ES', tk: 'oln4yqj.css' }, - fr: { ietf: 'fr-FR', tk: 'vrk5vyv.css' }, - gr_en: { ietf: 'en-GR', tk: 'pps7abe.css' }, - ie: { ietf: 'en-GB', tk: 'pps7abe.css' }, - il_en: { ietf: 'en-IL', tk: 'pps7abe.css' }, - it: { ietf: 'it-IT', tk: 'bbf5pok.css' }, - lv: { ietf: 'lv-LV', tk: 'aaz7dvd.css' }, - lt: { ietf: 'lt-LT', tk: 'aaz7dvd.css' }, - lu_de: { ietf: 'de-LU', tk: 'vin7zsi.css' }, - lu_en: { ietf: 'en-LU', tk: 'pps7abe.css' }, - lu_fr: { ietf: 'fr-LU', tk: 'vrk5vyv.css' }, - hu: { ietf: 'hu-HU', tk: 'aaz7dvd.css' }, - mt: { ietf: 'en-MT', tk: 'pps7abe.css' }, - mena_en: { ietf: 'en', tk: 'pps7abe.css' }, - nl: { ietf: 'nl-NL', tk: 'cya6bri.css' }, - no: { ietf: 'no-NO', tk: 'aaz7dvd.css' }, - pl: { ietf: 'pl-PL', tk: 'aaz7dvd.css' }, - pt: { ietf: 'pt-PT', tk: 'inq1xob.css' }, - ro: { ietf: 'ro-RO', tk: 'aaz7dvd.css' }, - sa_en: { ietf: 'en', tk: 'pps7abe.css' }, - ch_de: { ietf: 'de-CH', tk: 'vin7zsi.css' }, - si: { ietf: 'sl-SI', tk: 'aaz7dvd.css' }, - sk: { ietf: 'sk-SK', tk: 'aaz7dvd.css' }, - ch_fr: { ietf: 'fr-CH', tk: 'vrk5vyv.css' }, - fi: { ietf: 'fi-FI', tk: 'aaz7dvd.css' }, - se: { ietf: 'sv-SE', tk: 'fpk1pcd.css' }, - ch_it: { ietf: 'it-CH', tk: 'bbf5pok.css' }, - tr: { ietf: 'tr-TR', tk: 'aaz7dvd.css' }, - ae_en: { ietf: 'en', tk: 'pps7abe.css' }, - uk: { ietf: 'en-GB', tk: 'pps7abe.css' }, - at: { ietf: 'de-AT', tk: 'vin7zsi.css' }, - cz: { ietf: 'cs-CZ', tk: 'aaz7dvd.css' }, - bg: { ietf: 'bg-BG', tk: 'aaz7dvd.css' }, - ru: { ietf: 'ru-RU', tk: 'aaz7dvd.css' }, - ua: { ietf: 'uk-UA', tk: 'aaz7dvd.css' }, - il_he: { ietf: 'he', tk: 'nwq1mna.css', dir: 'rtl' }, - ae_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, - mena_ar: { ietf: 'ar', tk: 'dis2dpj.css', dir: 'rtl' }, - sa_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, - // Asia Pacific - au: { ietf: 'en-AU', tk: 'pps7abe.css' }, - hk_en: { ietf: 'en-HK', tk: 'pps7abe.css' }, - in: { ietf: 'en-GB', tk: 'pps7abe.css' }, - id_id: { ietf: 'id', tk: 'czc0mun.css' }, - id_en: { ietf: 'en', tk: 'pps7abe.css' }, - my_ms: { ietf: 'ms', tk: 'sxj4tvo.css' }, - my_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, - nz: { ietf: 'en-GB', tk: 'pps7abe.css' }, - ph_en: { ietf: 'en', tk: 'pps7abe.css' }, - ph_fil: { ietf: 'fil-PH', tk: 'ict8rmp.css' }, - sg: { ietf: 'en-SG', tk: 'pps7abe.css' }, - th_en: { ietf: 'en', tk: 'pps7abe.css' }, - in_hi: { ietf: 'hi', tk: 'aaa8deh.css' }, - th_th: { ietf: 'th', tk: 'aaz7dvd.css' }, - cn: { ietf: 'zh-CN', tk: 'puu3xkp' }, - hk_zh: { ietf: 'zh-HK', tk: 'jay0ecd' }, - tw: { ietf: 'zh-TW', tk: 'jay0ecd' }, - jp: { ietf: 'ja-JP', tk: 'dvg6awq' }, - kr: { ietf: 'ko-KR', tk: 'qjs5sfm' }, - // Langstore Support. - langstore: { ietf: 'en-US', tk: 'hah7vzn.css' }, - // geo expansion MWPW-125686 - za: { ietf: 'en-GB', tk: 'pps7abe.css' }, // South Africa (GB English) - ng: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Nigeria (GB English) - cr: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Costa Rica (Spanish Latin America) - ec: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Ecuador (Spanish Latin America) - pr: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Puerto Rico (Spanish Latin America) - gt: { ietf: 'es-419', tk: 'oln4yqj.css' }, // Guatemala (Spanish Latin America) - eg_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Egypt (Arabic) - kw_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Kuwait (Arabic) - qa_ar: { ietf: 'ar', tk: 'nwq1mna.css', dir: 'rtl' }, // Qatar (Arabic) - eg_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Egypt (GB English) - kw_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Kuwait (GB English) - qa_en: { ietf: 'en-GB', tk: 'pps7abe.css' }, // Qatar (GB English) - gr_el: { ietf: 'el', tk: 'fnx0rsr.css' }, // Greece (Greek) - vn_en: { ietf: 'en-GB', tk: 'hah7vzn.css' }, - vn_vi: { ietf: 'vi', tk: 'qxw8hzm.css' }, - cis_ru: { ietf: 'ru', tk: 'qxw8hzm.css' }, - cis_en: { ietf: 'en', tk: 'pps7abe.css' }, -}; +const locales = { '': { ietf: 'en-US', tk: 'hah7vzn.css' } }; // Add any config options. const CONFIG = { @@ -129,33 +29,11 @@ const CONFIG = { geoRouting: 'on', prodDomains: ['www.adobe.com', 'helpx.adobe.com', 'business.adobe.com', 'www.adobe-students.com'], decorateArea, - stage: { - marTechUrl: 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-2c94beadc94f-development.min.js', - edgeConfigId: '8d2805dd-85bf-4748-82eb-f99fdad117a6', - pdfViewerClientId: '9f7f19a46bd542e2b8548411e51eb4d4', - pdfViewerReportSuite: 'adbadobenonacdcqa', - psUrl: 'https://stage.photoshop.adobe.com', - }, - live: { - pdfViewerClientId: 'a26c77a2effb4c4aaa71e7c46385e0ed', - pdfViewerReportSuite: 'adbadobenonacdcqa', - }, - prod: { - marTechUrl: 'https://assets.adobedtm.com/d4d114c60e50/a0e989131fd5/launch-5dd5dd2177e6.min.js', - edgeConfigId: '2cba807b-7430-41ae-9aac-db2b0da742d5', - pdfViewerClientId: '409019ebd2d546c0be1a0b5a61fe65df', - pdfViewerReportSuite: 'adbadobenonacdcprod', - psUrl: 'https://photoshop.adobe.com', - }, jarvis: { id: 'adobedotcom2', version: '1.83', onDemand: false, }, - htmlExclude: [ - /www\.adobe\.com\/(\w\w(_\w\w)?\/)?express(\/.*)?/, - /www\.adobe\.com\/(\w\w(_\w\w)?\/)?go(\/.*)?/, - ], }; /* diff --git a/adobe-students/scripts/utils.js b/adobe-students/scripts/utils.js index e4e7526..6a31706 100644 --- a/adobe-students/scripts/utils.js +++ b/adobe-students/scripts/utils.js @@ -44,67 +44,22 @@ export const [setLibs, getLibs] = (() => { ]; })(); -const miloLibs = setLibs('/libs'); - -const { createTag, localizeLink, getConfig, loadStyle, createIntersectionObserver } = await import(`${miloLibs}/utils/utils.js`); -export { createTag, loadStyle, localizeLink, createIntersectionObserver, getConfig }; - -function getDecorateAreaFn() { - let lcpImgSet = false; - - // Load LCP image immediately - const eagerLoad = (lcpImg) => { - lcpImg?.setAttribute('loading', 'eager'); - lcpImg?.setAttribute('fetchpriority', 'high'); - if (lcpImg) lcpImgSet = true; +export function decorateArea(area = document) { + const eagerLoad = (parent, selector) => { + const img = parent.querySelector(selector); + img?.removeAttribute('loading'); }; - function replaceDotMedia(area = document) { - const currUrl = new URL(window.location); - const pathSeg = currUrl.pathname.split('/').length; - if (pathSeg >= 3) return; - const resetAttributeBase = (tag, attr) => { - area.querySelectorAll(`${tag}[${attr}^="./media_"]`).forEach((el) => { - el[attr] = `${new URL(`${getConfig().contentRoot}${el.getAttribute(attr).substring(1)}`, window.location).href}`; - }); - }; - resetAttributeBase('img', 'src'); - resetAttributeBase('source', 'srcset'); - } - - async function loadLCPImage(area = document, { fragmentLink = null } = {}) { - const firstBlock = area.querySelector('body > main > div > div'); - let fgDivs = null; - switch (true) { - case firstBlock?.classList.contains('changebg'): { - firstBlock.querySelector(':scope > div:nth-child(1)').querySelectorAll('img').forEach(eagerLoad); - import(`${getConfig().codeRoot}/deps/interactive-marquee-changebg/changeBgMarquee.js`); - break; - } - case firstBlock?.classList.contains('marquee'): - firstBlock.querySelectorAll('img').forEach(eagerLoad); - break; - case firstBlock?.classList.contains('interactive-marquee'): - firstBlock.querySelector(':scope > div:nth-child(1)').querySelectorAll('img').forEach(eagerLoad); - fgDivs = firstBlock.querySelector(':scope > div:nth-child(2)').querySelectorAll('div:not(:first-child)'); - fgDivs.forEach((d) => eagerLoad(d.querySelector('img'))); - if (!firstBlock.classList.contains('changebg')) loadStyle('/adobe-students/blocks/interactive-marquee/milo-marquee.css'); - break; - case !!fragmentLink: - if (window.document.querySelector('a.fragment') === fragmentLink && !window.document.querySelector('img[loading="eager"]')) { - eagerLoad(area.querySelector('img')); - } - break; - default: - if (!fragmentLink) eagerLoad(area.querySelector('img')); - break; + (async function loadLCPImage() { + const marquee = area.querySelector('.marquee'); + if (!marquee) { + eagerLoad(area, 'img'); + return; } - } - return (area, options) => { - replaceDotMedia(); - if (!lcpImgSet) loadLCPImage(area, options); - }; + // First image of first row + eagerLoad(marquee, 'div:first-child img'); + // Last image of last column of last row + eagerLoad(marquee, 'div:last-child > div:last-child img'); + }()); } - -export const decorateArea = getDecorateAreaFn(); diff --git a/adobe-students/sitemap-index.xml b/adobe-students/sitemap-index.xml index a21f8cc..02211e5 100644 --- a/adobe-students/sitemap-index.xml +++ b/adobe-students/sitemap-index.xml @@ -3,274 +3,4 @@ https://www.adobe-students.com/students-shared/assets/sitemap.xml - - https://www.adobe-students.com/ru/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/au/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/kr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/de/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/jp/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/fr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/es/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/it/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/hk_zh/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/tw/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/nl/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/pl/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/tr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/uk/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ca/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cn/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ae_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ae_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ca_fr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/be_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/be_fr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/at/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ch_de/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cl/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/gr_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ch_fr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ie/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/hk_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/in/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/il_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/lt/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/lu_de/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/lu_fr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/mena_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/lu_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/sa_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/nz/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/sa_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/th_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/th_th/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/africa/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/za/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/co/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ec/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/eg_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/gt/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/gr_el/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/id_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/eg_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/id_id/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/in_hi/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/kw_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/kw_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/my_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/pe/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ng/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/my_ms/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ph_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ph_fil/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/pr/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/qa_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/qa_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/vn_vi/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/vn_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/dk/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/fi/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/no/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/se/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/la/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/mx/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/be_nl/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/bg/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ch_it/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cz/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ee/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/hu/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/il_he/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/lv/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/mena_ar/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/pt/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ro/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/si/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/sk/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/ua/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/sg/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/br/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cis_en/students-shared/assets/sitemap.xml - - - https://www.adobe-students.com/cis_ru/students-shared/assets/sitemap.xml - diff --git a/adobe-students/styles/fonts.css b/adobe-students/styles/fonts.css deleted file mode 100644 index 319c400..0000000 --- a/adobe-students/styles/fonts.css +++ /dev/null @@ -1,36 +0,0 @@ -/* stylelint-disable max-line-length */ -@font-face { - font-family: roboto-condensed; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url('../fonts/roboto-condensed-bold.woff2') format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - -@font-face { - font-family: roboto; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url('../fonts/roboto-bold.woff2') format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - -@font-face { - font-family: roboto; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url('../fonts/roboto-medium.woff2') format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - -@font-face { - font-family: roboto; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url('../fonts/roboto-regular.woff2') format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} diff --git a/adobe-students/styles/lazy-styles.css b/adobe-students/styles/lazy-styles.css deleted file mode 100644 index 84e7d6c..0000000 --- a/adobe-students/styles/lazy-styles.css +++ /dev/null @@ -1 +0,0 @@ -/* add global styles that can be loaded post LCP here */ diff --git a/adobe-students/styles/styles.css b/adobe-students/styles/styles.css deleted file mode 100644 index 974debf..0000000 --- a/adobe-students/styles/styles.css +++ /dev/null @@ -1,16 +0,0 @@ - .reading-width { - max-width: 600px; - margin: auto; - padding: 20px; -} - - .reading-width-footer-tag { - max-width: 600px; - margin: -20px auto; - padding: 0 20px 20px; -} - - .reading-width-footer-tag > .content { - max-width: var(--grid-container-width); - margin: 0 auto; -} diff --git a/codecov.yaml b/codecov.yaml deleted file mode 100644 index 2b010ad..0000000 --- a/codecov.yaml +++ /dev/null @@ -1,10 +0,0 @@ -coverage: - status: - patch: - default: - target: 100% - threshold: 0.1% - project: - default: - target: auto - threshold: 0.1% diff --git a/helix-query.yaml b/helix-query.yaml deleted file mode 100644 index 1f11261..0000000 --- a/helix-query.yaml +++ /dev/null @@ -1,1136 +0,0 @@ -version: 1 - -indices: - def: &def - exclude: - - '**/students-shared/**' - - '**/gnav**' - - '**/footer**' - - '**/drafts/**' - - '**/fragments/**' - include: - - /creativecloud/** - target: /students-shared/assets/query-index.xlsx - properties: - title: - select: head > meta[property="og:title"] - value: attribute(el, 'content') - date: - select: head > meta[name="publishdate"] - value: dateValue(attribute(el, 'content'), 'MM-DD-YYYY') - image: - select: head > meta[property="og:image"] - value: match(attribute(el, 'content'), 'https:\/\/[^/]+(\/.*)') - description: - select: head > meta[name="description"] - value: attribute(el, 'content') - lastModified: - select: none - value: parseTimestamp(headers['last-modified'], 'ddd, DD MMM YYYY hh:mm:ss GMT') - robots: - select: head > meta[name="robots"] - value: attribute(el, 'content') - - merch-cards: &merch-cards - include: - - /students-shared/fragments/merch/**/merch-card/** - target: /students-shared/assets/query-index-cards.xlsx - properties: - lastModified: - select: none - value: parseTimestamp(headers["last-modified"], "ddd, DD MMM YYYY hh:mm:ss GMT") - title: - select: head > meta[property="og:title"] - value: attribute(el, "content") - cardClasses: - select: main div.merch-card - value: attribute(el, "className") - cardContent: - select: main > div - value: innerHTML(el) - tags: - select: head > meta[property="article:tag"] - values: attribute(el, "content") - publicationDate: - select: none - value: parseTimestamp(headers["date"], "ddd, DD MMM YYYY hh:mm:ss GMT") - - creativecloud-au: - <<: *def - include: - - /au/creativecloud/** - target: /au/students-shared/assets/query-index.xlsx - - cards-au: - <<: *merch-cards - include: - - /au/students-shared/fragments/merch/**/merch-card/** - target: /au/students-shared/assets/query-index-cards.xlsx - - creativecloud-de: - <<: *def - include: - - /de/creativecloud/** - target: /de/students-shared/assets/query-index.xlsx - - cards-de: - <<: *merch-cards - include: - - /de/students-shared/fragments/merch/**/merch-card/** - target: /de/students-shared/assets/query-index-cards.xlsx - - creativecloud-es: - <<: *def - include: - - /es/creativecloud/** - target: /es/students-shared/assets/query-index.xlsx - - cards-es: - <<: *merch-cards - include: - - /es/students-shared/fragments/merch/**/merch-card/** - target: /es/students-shared/assets/query-index-cards.xlsx - - creativecloud-fr: - <<: *def - include: - - /fr/creativecloud/** - target: /fr/students-shared/assets/query-index.xlsx - - cards-fr: - <<: *merch-cards - include: - - /fr/students-shared/fragments/merch/**/merch-card/** - target: /fr/students-shared/assets/query-index-cards.xlsx - - creativecloud-it: - <<: *def - include: - - /it/creativecloud/** - target: /it/students-shared/assets/query-index.xlsx - - cards-it: - <<: *merch-cards - include: - - /it/students-shared/fragments/merch/**/merch-card/** - target: /it/students-shared/assets/query-index-cards.xlsx - - creativecloud-jp: - <<: *def - include: - - /jp/creativecloud/** - target: /jp/students-shared/assets/query-index.xlsx - - cards-jp: - <<: *merch-cards - include: - - /jp/students-shared/fragments/merch/**/merch-card/** - target: /jp/students-shared/assets/query-index-cards.xlsx - - creativecloud-kr: - <<: *def - include: - - /kr/creativecloud/** - target: /kr/students-shared/assets/query-index.xlsx - - cards-kr: - <<: *merch-cards - include: - - /kr/students-shared/fragments/merch/**/merch-card/** - target: /kr/students-shared/assets/query-index-cards.xlsx - - creativecloud-ru: - <<: *def - include: - - /ru/creativecloud/** - target: /ru/students-shared/assets/query-index.xlsx - - cards-ru: - <<: *merch-cards - include: - - /ru/students-shared/fragments/merch/**/merch-card/** - target: /ru/students-shared/assets/query-index-cards.xlsx - - creativecloud-hk_zh: - <<: *def - include: - - /hk_zh/creativecloud/** - target: /hk_zh/students-shared/assets/query-index.xlsx - - cards-hk_zh: - <<: *merch-cards - include: - - /hk_zh/students-shared/fragments/merch/**/merch-card/** - target: /hk_zh/students-shared/assets/query-index-cards.xlsx - - creativecloud-tw: - <<: *def - include: - - /tw/creativecloud/** - target: /tw/students-shared/assets/query-index.xlsx - - cards-tw: - <<: *merch-cards - include: - - /tw/students-shared/fragments/merch/**/merch-card/** - target: /tw/students-shared/assets/query-index-cards.xlsx - - creativecloud-nl: - <<: *def - include: - - /nl/creativecloud/** - target: /nl/students-shared/assets/query-index.xlsx - - cards-nl: - <<: *merch-cards - include: - - /nl/students-shared/fragments/merch/**/merch-card/** - target: /nl/students-shared/assets/query-index-cards.xlsx - - creativecloud-pl: - <<: *def - include: - - /pl/creativecloud/** - target: /pl/students-shared/assets/query-index.xlsx - - cards-pl: - <<: *merch-cards - include: - - /pl/students-shared/fragments/merch/**/merch-card/** - target: /pl/students-shared/assets/query-index-cards.xlsx - - creativecloud-tr: - <<: *def - include: - - /tr/creativecloud/** - target: /tr/students-shared/assets/query-index.xlsx - - cards-tr: - <<: *merch-cards - include: - - /tr/students-shared/fragments/merch/**/merch-card/** - target: /tr/students-shared/assets/query-index-cards.xlsx - - creativecloud-uk: - <<: *def - include: - - /uk/creativecloud/** - target: /uk/students-shared/assets/query-index.xlsx - - cards-uk: - <<: *merch-cards - include: - - /uk/students-shared/fragments/merch/**/merch-card/** - target: /uk/students-shared/assets/query-index-cards.xlsx - - creativecloud-ca: - <<: *def - include: - - /ca/creativecloud/** - target: /ca/students-shared/assets/query-index.xlsx - - cards-ca: - <<: *merch-cards - include: - - /ca/students-shared/fragments/merch/**/merch-card/** - target: /ca/students-shared/assets/query-index-cards.xlsx - - creativecloud-cn: - <<: *def - include: - - /cn/creativecloud/** - target: /cn/students-shared/assets/query-index.xlsx - - cards-cn: - <<: *merch-cards - include: - - /cn/students-shared/fragments/merch/**/merch-card/** - target: /cn/students-shared/assets/query-index-cards.xlsx - - creativecloud-ae_ar: - <<: *def - include: - - /ae_ar/creativecloud/** - target: /ae_ar/students-shared/assets/query-index.xlsx - - cards-ae_ar: - <<: *merch-cards - include: - - /ae_ar/students-shared/fragments/merch/**/merch-card/** - target: /ae_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-ae_en: - <<: *def - include: - - /ae_en/creativecloud/** - target: /ae_en/students-shared/assets/query-index.xlsx - - cards-ae_en: - <<: *merch-cards - include: - - /ae_en/students-shared/fragments/merch/**/merch-card/** - target: /ae_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-at: - <<: *def - include: - - /at/creativecloud/** - target: /at/students-shared/assets/query-index.xlsx - - cards-at: - <<: *merch-cards - include: - - /at/students-shared/fragments/merch/**/merch-card/** - target: /at/students-shared/assets/query-index-cards.xlsx - - creativecloud-be_en: - <<: *def - include: - - /be_en/creativecloud/** - target: /be_en/students-shared/assets/query-index.xlsx - - cards-be_en: - <<: *merch-cards - include: - - /be_en/students-shared/fragments/merch/**/merch-card/** - target: /be_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-be_fr: - <<: *def - include: - - /be_fr/creativecloud/** - target: /be_fr/students-shared/assets/query-index.xlsx - - cards-be_fr: - <<: *merch-cards - include: - - /be_fr/students-shared/fragments/merch/**/merch-card/** - target: /be_fr/students-shared/assets/query-index-cards.xlsx - - creativecloud-ca_fr: - <<: *def - include: - - /ca_fr/creativecloud/** - target: /ca_fr/students-shared/assets/query-index.xlsx - - cards-ca_fr: - <<: *merch-cards - include: - - /ca_fr/students-shared/fragments/merch/**/merch-card/** - target: /ca_fr/students-shared/assets/query-index-cards.xlsx - - creativecloud-ch_de: - <<: *def - include: - - /ch_de/creativecloud/** - target: /ch_de/students-shared/assets/query-index.xlsx - - cards-ch_de: - <<: *merch-cards - include: - - /ch_de/students-shared/fragments/merch/**/merch-card/** - target: /ch_de/students-shared/assets/query-index-cards.xlsx - - creativecloud-ch_fr: - <<: *def - include: - - /ch_fr/creativecloud/** - target: /ch_fr/students-shared/assets/query-index.xlsx - - cards-ch_fr: - <<: *merch-cards - include: - - /ch_fr/students-shared/fragments/merch/**/merch-card/** - target: /ch_fr/students-shared/assets/query-index-cards.xlsx - - creativecloud-cl: - <<: *def - include: - - /cl/creativecloud/** - target: /cl/students-shared/assets/query-index.xlsx - - cards-cl: - <<: *merch-cards - include: - - /cl/students-shared/fragments/merch/**/merch-card/** - target: /cl/students-shared/assets/query-index-cards.xlsx - - creativecloud-gr_en: - <<: *def - include: - - /gr_en/creativecloud/** - target: /gr_en/students-shared/assets/query-index.xlsx - - cards-gr_en: - <<: *merch-cards - include: - - /gr_en/students-shared/fragments/merch/**/merch-card/** - target: /gr_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-hk_en: - <<: *def - include: - - /hk_en/creativecloud/** - target: /hk_en/students-shared/assets/query-index.xlsx - - cards-hk_en: - <<: *merch-cards - include: - - /hk_en/students-shared/fragments/merch/**/merch-card/** - target: /hk_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-ie: - <<: *def - include: - - /ie/creativecloud/** - target: /ie/students-shared/assets/query-index.xlsx - - cards-ie: - <<: *merch-cards - include: - - /ie/students-shared/fragments/merch/**/merch-card/** - target: /ie/students-shared/assets/query-index-cards.xlsx - - creativecloud-il_en: - <<: *def - include: - - /il_en/creativecloud/** - target: /il_en/students-shared/assets/query-index.xlsx - - cards-il_en: - <<: *merch-cards - include: - - /il_en/students-shared/fragments/merch/**/merch-card/** - target: /il_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-in: - <<: *def - include: - - /in/creativecloud/** - target: /in/students-shared/assets/query-index.xlsx - - cards-in: - <<: *merch-cards - include: - - /in/students-shared/fragments/merch/**/merch-card/** - target: /in/students-shared/assets/query-index-cards.xlsx - - creativecloud-lt: - <<: *def - include: - - /lt/creativecloud/** - target: /lt/students-shared/assets/query-index.xlsx - - cards-lt: - <<: *merch-cards - include: - - /lt/students-shared/fragments/merch/**/merch-card/** - target: /lt/students-shared/assets/query-index-cards.xlsx - - creativecloud-lu_de: - <<: *def - include: - - /lu_de/creativecloud/** - target: /lu_de/students-shared/assets/query-index.xlsx - - cards-lu_de: - <<: *merch-cards - include: - - /lu_de/students-shared/fragments/merch/**/merch-card/** - target: /lu_de/students-shared/assets/query-index-cards.xlsx - - creativecloud-lu_en: - <<: *def - include: - - /lu_en/creativecloud/** - target: /lu_en/students-shared/assets/query-index.xlsx - - cards-lu_en: - <<: *merch-cards - include: - - /lu_en/students-shared/fragments/merch/**/merch-card/** - target: /lu_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-lu_fr: - <<: *def - include: - - /lu_fr/creativecloud/** - target: /lu_fr/students-shared/assets/query-index.xlsx - - cards-lu_fr: - <<: *merch-cards - include: - - /lu_fr/students-shared/fragments/merch/**/merch-card/** - target: /lu_fr/students-shared/assets/query-index-cards.xlsx - - creativecloud-mena_en: - <<: *def - include: - - /mena_en/creativecloud/** - target: /mena_en/students-shared/assets/query-index.xlsx - - cards-mena_en: - <<: *merch-cards - include: - - /mena_en/students-shared/fragments/merch/**/merch-card/** - target: /mena_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-nz: - <<: *def - include: - - /nz/creativecloud/** - target: /nz/students-shared/assets/query-index.xlsx - - cards-nz: - <<: *merch-cards - include: - - /nz/students-shared/fragments/merch/**/merch-card/** - target: /nz/students-shared/assets/query-index-cards.xlsx - - creativecloud-sa_ar: - <<: *def - include: - - /sa_ar/creativecloud/** - target: /sa_ar/students-shared/assets/query-index.xlsx - - cards-sa_ar: - <<: *merch-cards - include: - - /sa_ar/students-shared/fragments/merch/**/merch-card/** - target: /sa_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-sa_en: - <<: *def - include: - - /sa_en/creativecloud/** - target: /sa_en/students-shared/assets/query-index.xlsx - - cards-sa_en: - <<: *merch-cards - include: - - /sa_en/students-shared/fragments/merch/**/merch-card/** - target: /sa_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-th_en: - <<: *def - include: - - /th_en/creativecloud/** - target: /th_en/students-shared/assets/query-index.xlsx - - cards-th_en: - <<: *merch-cards - include: - - /th_en/students-shared/fragments/merch/**/merch-card/** - target: /th_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-th_th: - <<: *def - include: - - /th_th/creativecloud/** - target: /th_th/students-shared/assets/query-index.xlsx - - cards-th_th: - <<: *merch-cards - include: - - /th_th/students-shared/fragments/merch/**/merch-card/** - target: /th_th/students-shared/assets/query-index-cards.xlsx - - creativecloud-za: - <<: *def - include: - - /za/creativecloud/** - target: /za/students-shared/assets/query-index.xlsx - - cards-za: - <<: *merch-cards - include: - - /za/students-shared/fragments/merch/**/merch-card/** - target: /za/students-shared/assets/query-index-cards.xlsx - - creativecloud-africa: - <<: *def - include: - - /africa/creativecloud/** - target: /africa/students-shared/assets/query-index.xlsx - - cards-africa: - <<: *merch-cards - include: - - /africa/students-shared/fragments/merch/**/merch-card/** - target: /africa/students-shared/assets/query-index-cards.xlsx - - creativecloud-ar: - <<: *def - include: - - /ar/creativecloud/** - target: /ar/students-shared/assets/query-index.xlsx - - cards-ar: - <<: *merch-cards - include: - - /ar/students-shared/fragments/merch/**/merch-card/** - target: /ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-co: - <<: *def - include: - - /co/creativecloud/** - target: /co/students-shared/assets/query-index.xlsx - - cards-co: - <<: *merch-cards - include: - - /co/students-shared/fragments/merch/**/merch-card/** - target: /co/students-shared/assets/query-index-cards.xlsx - - creativecloud-cr: - <<: *def - include: - - /cr/creativecloud/** - target: /cr/students-shared/assets/query-index.xlsx - - cards-cr: - <<: *merch-cards - include: - - /cr/students-shared/fragments/merch/**/merch-card/** - target: /cr/students-shared/assets/query-index-cards.xlsx - - creativecloud-ec: - <<: *def - include: - - /ec/creativecloud/** - target: /ec/students-shared/assets/query-index.xlsx - - cards-ec: - <<: *merch-cards - include: - - /ec/students-shared/fragments/merch/**/merch-card/** - target: /ec/students-shared/assets/query-index-cards.xlsx - - creativecloud-eg_ar: - <<: *def - include: - - /eg_ar/creativecloud/** - target: /eg_ar/students-shared/assets/query-index.xlsx - - cards-eg_ar: - <<: *merch-cards - include: - - /eg_ar/students-shared/fragments/merch/**/merch-card/** - target: /eg_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-eg_en: - <<: *def - include: - - /eg_en/creativecloud/** - target: /eg_en/students-shared/assets/query-index.xlsx - - cards-eg_en: - <<: *merch-cards - include: - - /eg_en/students-shared/fragments/merch/**/merch-card/** - target: /eg_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-gr_el: - <<: *def - include: - - /gr_el/creativecloud/** - target: /gr_el/students-shared/assets/query-index.xlsx - - cards-gr_el: - <<: *merch-cards - include: - - /gr_el/students-shared/fragments/merch/**/merch-card/** - target: /gr_el/students-shared/assets/query-index-cards.xlsx - - creativecloud-gt: - <<: *def - include: - - /gt/creativecloud/** - target: /gt/students-shared/assets/query-index.xlsx - - cards-gt: - <<: *merch-cards - include: - - /gt/students-shared/fragments/merch/**/merch-card/** - target: /gt/students-shared/assets/query-index-cards.xlsx - - creativecloud-id_en: - <<: *def - include: - - /id_en/creativecloud/** - target: /id_en/students-shared/assets/query-index.xlsx - - cards-id_en: - <<: *merch-cards - include: - - /id_en/students-shared/fragments/merch/**/merch-card/** - target: /id_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-id_id: - <<: *def - include: - - /id_id/creativecloud/** - target: /id_id/students-shared/assets/query-index.xlsx - - cards-id_id: - <<: *merch-cards - include: - - /id_id/students-shared/fragments/merch/**/merch-card/** - target: /id_id/students-shared/assets/query-index-cards.xlsx - - creativecloud-in_hi: - <<: *def - include: - - /in_hi/creativecloud/** - target: /in_hi/students-shared/assets/query-index.xlsx - - cards-in_hi: - <<: *merch-cards - include: - - /in_hi/students-shared/fragments/merch/**/merch-card/** - target: /in_hi/students-shared/assets/query-index-cards.xlsx - - creativecloud-kw_ar: - <<: *def - include: - - /kw_ar/creativecloud/** - target: /kw_ar/students-shared/assets/query-index.xlsx - - cards-kw_ar: - <<: *merch-cards - include: - - /kw_ar/students-shared/fragments/merch/**/merch-card/** - target: /kw_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-kw_en: - <<: *def - include: - - /kw_en/creativecloud/** - target: /kw_en/students-shared/assets/query-index.xlsx - - cards-kw_en: - <<: *merch-cards - include: - - /kw_en/students-shared/fragments/merch/**/merch-card/** - target: /kw_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-my_en: - <<: *def - include: - - /my_en/creativecloud/** - target: /my_en/students-shared/assets/query-index.xlsx - - cards-my_en: - <<: *merch-cards - include: - - /my_en/students-shared/fragments/merch/**/merch-card/** - target: /my_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-my_ms: - <<: *def - include: - - /my_ms/creativecloud/** - target: /my_ms/students-shared/assets/query-index.xlsx - - cards-my_ms: - <<: *merch-cards - include: - - /my_ms/students-shared/fragments/merch/**/merch-card/** - target: /my_ms/students-shared/assets/query-index-cards.xlsx - - creativecloud-ng: - <<: *def - include: - - /ng/creativecloud/** - target: /ng/students-shared/assets/query-index.xlsx - - cards-ng: - <<: *merch-cards - include: - - /ng/students-shared/fragments/merch/**/merch-card/** - target: /ng/students-shared/assets/query-index-cards.xlsx - - creativecloud-pe: - <<: *def - include: - - /pe/creativecloud/** - target: /pe/students-shared/assets/query-index.xlsx - - cards-pe: - <<: *merch-cards - include: - - /pe/students-shared/fragments/merch/**/merch-card/** - target: /pe/students-shared/assets/query-index-cards.xlsx - - creativecloud-ph_en: - <<: *def - include: - - /ph_en/creativecloud/** - target: /ph_en/students-shared/assets/query-index.xlsx - - cards-ph_en: - <<: *merch-cards - include: - - /ph_en/students-shared/fragments/merch/**/merch-card/** - target: /ph_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-ph_fil: - <<: *def - include: - - /ph_fil/creativecloud/** - target: /ph_fil/students-shared/assets/query-index.xlsx - - cards-ph_fil: - <<: *merch-cards - include: - - /ph_fil/students-shared/fragments/merch/**/merch-card/** - target: /ph_fil/students-shared/assets/query-index-cards.xlsx - - creativecloud-pr: - <<: *def - include: - - /pr/creativecloud/** - target: /pr/students-shared/assets/query-index.xlsx - - cards-pr: - <<: *merch-cards - include: - - /pr/students-shared/fragments/merch/**/merch-card/** - target: /pr/students-shared/assets/query-index-cards.xlsx - - creativecloud-qa_ar: - <<: *def - include: - - /qa_ar/creativecloud/** - target: /qa_ar/students-shared/assets/query-index.xlsx - - cards-qa_ar: - <<: *merch-cards - include: - - /qa_ar/students-shared/fragments/merch/**/merch-card/** - target: /qa_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-qa_en: - <<: *def - include: - - /qa_en/creativecloud/** - target: /qa_en/students-shared/assets/query-index.xlsx - - cards-qa_en: - <<: *merch-cards - include: - - /qa_en/students-shared/fragments/merch/**/merch-card/** - target: /qa_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-vn_en: - <<: *def - include: - - /vn_en/creativecloud/** - target: /vn_en/students-shared/assets/query-index.xlsx - - cards-vn_en: - <<: *merch-cards - include: - - /vn_en/students-shared/fragments/merch/**/merch-card/** - target: /vn_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-vn_vi: - <<: *def - include: - - /vn_vi/creativecloud/** - target: /vn_vi/students-shared/assets/query-index.xlsx - - cards-vn_vi: - <<: *merch-cards - include: - - /vn_vi/students-shared/fragments/merch/**/merch-card/** - target: /vn_vi/students-shared/assets/query-index-cards.xlsx - - creativecloud-dk: - <<: *def - include: - - /dk/creativecloud/** - target: /dk/students-shared/assets/query-index.xlsx - - cards-dk: - <<: *merch-cards - include: - - /dk/students-shared/fragments/merch/**/merch-card/** - target: /dk/students-shared/assets/query-index-cards.xlsx - - creativecloud-fi: - <<: *def - include: - - /fi/creativecloud/** - target: /fi/students-shared/assets/query-index.xlsx - - cards-fi: - <<: *merch-cards - include: - - /fi/students-shared/fragments/merch/**/merch-card/** - target: /fi/students-shared/assets/query-index-cards.xlsx - - creativecloud-no: - <<: *def - include: - - /no/creativecloud/** - target: /no/students-shared/assets/query-index.xlsx - - cards-no: - <<: *merch-cards - include: - - /no/students-shared/fragments/merch/**/merch-card/** - target: /no/students-shared/assets/query-index-cards.xlsx - - creativecloud-se: - <<: *def - include: - - /se/creativecloud/** - target: /se/students-shared/assets/query-index.xlsx - - cards-se: - <<: *merch-cards - include: - - /se/students-shared/fragments/merch/**/merch-card/** - target: /se/students-shared/assets/query-index-cards.xlsx - - creativecloud-la: - <<: *def - include: - - /la/creativecloud/** - target: /la/students-shared/assets/query-index.xlsx - - cards-la: - <<: *merch-cards - include: - - /la/students-shared/fragments/merch/**/merch-card/** - target: /la/students-shared/assets/query-index-cards.xlsx - - creativecloud-mx: - <<: *def - include: - - /mx/creativecloud/** - target: /mx/students-shared/assets/query-index.xlsx - - cards-mx: - <<: *merch-cards - include: - - /mx/students-shared/fragments/merch/**/merch-card/** - target: /mx/students-shared/assets/query-index-cards.xlsx - - creativecloud-be_nl: - <<: *def - include: - - /be_nl/creativecloud/** - target: /be_nl/students-shared/assets/query-index.xlsx - - cards-be_nl: - <<: *merch-cards - include: - - /be_nl/students-shared/fragments/merch/**/merch-card/** - target: /be_nl/students-shared/assets/query-index-cards.xlsx - - creativecloud-bg: - <<: *def - include: - - /bg/creativecloud/** - target: /bg/students-shared/assets/query-index.xlsx - - cards-bg: - <<: *merch-cards - include: - - /bg/students-shared/fragments/merch/**/merch-card/** - target: /bg/students-shared/assets/query-index-cards.xlsx - - creativecloud-ch_it: - <<: *def - include: - - /ch_it/creativecloud/** - target: /ch_it/students-shared/assets/query-index.xlsx - - cards-ch_it: - <<: *merch-cards - include: - - /ch_it/students-shared/fragments/merch/**/merch-card/** - target: /ch_it/students-shared/assets/query-index-cards.xlsx - - creativecloud-cz: - <<: *def - include: - - /cz/creativecloud/** - target: /cz/students-shared/assets/query-index.xlsx - - cards-cz: - <<: *merch-cards - include: - - /cz/students-shared/fragments/merch/**/merch-card/** - target: /cz/students-shared/assets/query-index-cards.xlsx - - creativecloud-ee: - <<: *def - include: - - /ee/creativecloud/** - target: /ee/students-shared/assets/query-index.xlsx - - cards-ee: - <<: *merch-cards - include: - - /ee/students-shared/fragments/merch/**/merch-card/** - target: /ee/students-shared/assets/query-index-cards.xlsx - - creativecloud-hu: - <<: *def - include: - - /hu/creativecloud/** - target: /hu/students-shared/assets/query-index.xlsx - - cards-hu: - <<: *merch-cards - include: - - /hu/students-shared/fragments/merch/**/merch-card/** - target: /hu/students-shared/assets/query-index-cards.xlsx - - creativecloud-il_he: - <<: *def - include: - - /il_he/creativecloud/** - target: /il_he/students-shared/assets/query-index.xlsx - - cards-il_he: - <<: *merch-cards - include: - - /il_he/students-shared/fragments/merch/**/merch-card/** - target: /il_he/students-shared/assets/query-index-cards.xlsx - - creativecloud-lv: - <<: *def - include: - - /lv/creativecloud/** - target: /lv/students-shared/assets/query-index.xlsx - - cards-lv: - <<: *merch-cards - include: - - /lv/students-shared/fragments/merch/**/merch-card/** - target: /lv/students-shared/assets/query-index-cards.xlsx - - creativecloud-mena_ar: - <<: *def - include: - - /mena_ar/creativecloud/** - target: /mena_ar/students-shared/assets/query-index.xlsx - - cards-mena_ar: - <<: *merch-cards - include: - - /mena_ar/students-shared/fragments/merch/**/merch-card/** - target: /mena_ar/students-shared/assets/query-index-cards.xlsx - - creativecloud-pt: - <<: *def - include: - - /pt/creativecloud/** - target: /pt/students-shared/assets/query-index.xlsx - - cards-pt: - <<: *merch-cards - include: - - /pt/students-shared/fragments/merch/**/merch-card/** - target: /pt/students-shared/assets/query-index-cards.xlsx - - creativecloud-ro: - <<: *def - include: - - /ro/creativecloud/** - target: /ro/students-shared/assets/query-index.xlsx - - cards-ro: - <<: *merch-cards - include: - - /ro/students-shared/fragments/merch/**/merch-card/** - target: /ro/students-shared/assets/query-index-cards.xlsx - - creativecloud-si: - <<: *def - include: - - /si/creativecloud/** - target: /si/students-shared/assets/query-index.xlsx - - cards-si: - <<: *merch-cards - include: - - /si/students-shared/fragments/merch/**/merch-card/** - target: /si/students-shared/assets/query-index-cards.xlsx - - creativecloud-sk: - <<: *def - include: - - /sk/creativecloud/** - target: /sk/students-shared/assets/query-index.xlsx - - cards-sk: - <<: *merch-cards - include: - - /sk/students-shared/fragments/merch/**/merch-card/** - target: /sk/students-shared/assets/query-index-cards.xlsx - - creativecloud-ua: - <<: *def - include: - - /ua/creativecloud/** - target: /ua/students-shared/assets/query-index.xlsx - - cards-ua: - <<: *merch-cards - include: - - /ua/students-shared/fragments/merch/**/merch-card/** - target: /ua/students-shared/assets/query-index-cards.xlsx - - creativecloud-sg: - <<: *def - include: - - /sg/creativecloud/** - target: /sg/students-shared/assets/query-index.xlsx - - cards-sg: - <<: *merch-cards - include: - - /sg/students-shared/fragments/merch/**/merch-card/** - target: /sg/students-shared/assets/query-index-cards.xlsx - - creativecloud-br: - <<: *def - include: - - /br/creativecloud/** - target: /br/students-shared/assets/query-index.xlsx - - cards-br: - <<: *merch-cards - include: - - /br/students-shared/fragments/merch/**/merch-card/** - target: /br/students-shared/assets/query-index-cards.xlsx - - creativecloud-cis_en: - <<: *def - include: - - /cis_en/creativecloud/** - target: /cis_en/students-shared/assets/query-index.xlsx - - cards-cis_en: - <<: *merch-cards - include: - - /cis_en/students-shared/fragments/merch/**/merch-card/** - target: /cis_en/students-shared/assets/query-index-cards.xlsx - - creativecloud-cis_ru: - <<: *def - include: - - /cis_ru/creativecloud/** - target: /cis_ru/students-shared/assets/query-index.xlsx - - cards-cis_ru: - <<: *merch-cards - include: - - /cis_ru/students-shared/fragments/merch/**/merch-card/** - target: /cis_ru/students-shared/assets/query-index-cards.xlsx diff --git a/helix-sitemap.yaml b/helix-sitemap.yaml index bc1cbb3..ec82297 100644 --- a/helix-sitemap.yaml +++ b/helix-sitemap.yaml @@ -11,569 +11,3 @@ sitemaps: alternate: /{path}.html destination: /students-shared/assets/sitemap.xml hreflang: en-US - - au: - source: /au/students-shared/assets/query-index.json - alternate: /au/{path}.html - destination: /au/students-shared/assets/sitemap.xml - hreflang: en-AU - - de: - source: /de/students-shared/assets/query-index.json - alternate: /de/{path}.html - destination: /de/students-shared/assets/sitemap.xml - hreflang: de-DE - - es: - source: /es/students-shared/assets/query-index.json - alternate: /es/{path}.html - destination: /es/students-shared/assets/sitemap.xml - hreflang: es-ES - - fr: - source: /fr/students-shared/assets/query-index.json - alternate: /fr/{path}.html - destination: /fr/students-shared/assets/sitemap.xml - hreflang: fr-FR - - it: - source: /it/students-shared/assets/query-index.json - alternate: /it/{path}.html - destination: /it/students-shared/assets/sitemap.xml - hreflang: it-IT - - jp: - source: /jp/students-shared/assets/query-index.json - alternate: /jp/{path}.html - destination: /jp/students-shared/assets/sitemap.xml - hreflang: ja-JP - - kr: - source: /kr/students-shared/assets/query-index.json - alternate: /kr/{path}.html - destination: /kr/students-shared/assets/sitemap.xml - hreflang: ko-KR - - ru: - source: /ru/students-shared/assets/query-index.json - alternate: /ru/{path}.html - destination: /ru/students-shared/assets/sitemap.xml - hreflang: ru-RU - - hk_zh: - source: /hk_zh/students-shared/assets/query-index.json - alternate: /hk_zh/{path}.html - destination: /hk_zh/students-shared/assets/sitemap.xml - hreflang: zh-HK - - tw: - source: /tw/students-shared/assets/query-index.json - alternate: /tw/{path}.html - destination: /tw/students-shared/assets/sitemap.xml - hreflang: zh-TW - - nl: - source: /nl/students-shared/assets/query-index.json - alternate: /nl/{path}.html - destination: /nl/students-shared/assets/sitemap.xml - hreflang: nl-NL - - pl: - source: /pl/students-shared/assets/query-index.json - alternate: /pl/{path}.html - destination: /pl/students-shared/assets/sitemap.xml - hreflang: pl-PL - - tr: - source: /tr/students-shared/assets/query-index.json - alternate: /tr/{path}.html - destination: /tr/students-shared/assets/sitemap.xml - hreflang: tr-TR - - uk: - source: /uk/students-shared/assets/query-index.json - alternate: /uk/{path}.html - destination: /uk/students-shared/assets/sitemap.xml - hreflang: en-GB - - ca: - source: /ca/students-shared/assets/query-index.json - alternate: /ca/{path}.html - destination: /ca/students-shared/assets/sitemap.xml - hreflang: en-CA - - cn: - source: /cn/students-shared/assets/query-index.json - alternate: /cn/{path}.html - destination: /cn/students-shared/assets/sitemap.xml - hreflang: zh-CN - - ae_ar: - source: /ae_ar/students-shared/assets/query-index.json - alternate: /ae_ar/{path}.html - destination: /ae_ar/students-shared/assets/sitemap.xml - hreflang: ar-AE - - ae_en: - source: /ae_en/students-shared/assets/query-index.json - alternate: /ae_en/{path}.html - destination: /ae_en/students-shared/assets/sitemap.xml - hreflang: en-AE - - at: - source: /at/students-shared/assets/query-index.json - alternate: /at/{path}.html - destination: /at/students-shared/assets/sitemap.xml - hreflang: de-AT - - be_en: - source: /be_en/students-shared/assets/query-index.json - alternate: /be_en/{path}.html - destination: /be_en/students-shared/assets/sitemap.xml - hreflang: en-BE - - be_fr: - source: /be_fr/students-shared/assets/query-index.json - alternate: /be_fr/{path}.html - destination: /be_fr/students-shared/assets/sitemap.xml - hreflang: fr-BE - - ca_fr: - source: /ca_fr/students-shared/assets/query-index.json - alternate: /ca_fr/{path}.html - destination: /ca_fr/students-shared/assets/sitemap.xml - hreflang: fr-CA - - ch_de: - source: /ch_de/students-shared/assets/query-index.json - alternate: /ch_de/{path}.html - destination: /ch_de/students-shared/assets/sitemap.xml - hreflang: de-CH - - ch_fr: - source: /ch_fr/students-shared/assets/query-index.json - alternate: /ch_fr/{path}.html - destination: /ch_fr/students-shared/assets/sitemap.xml - hreflang: fr-CH - - cl: - source: /cl/students-shared/assets/query-index.json - alternate: /cl/{path}.html - destination: /cl/students-shared/assets/sitemap.xml - hreflang: es-CL - - cy_en: - source: /cy_en/students-shared/assets/query-index.json - alternate: /cy_en/{path}.html - destination: /cy_en/students-shared/assets/sitemap.xml - hreflang: en-CY - - gr_en: - source: /gr_en/students-shared/assets/query-index.json - alternate: /gr_en/{path}.html - destination: /gr_en/students-shared/assets/sitemap.xml - hreflang: en-GR - - hk_en: - source: /hk_en/students-shared/assets/query-index.json - alternate: /hk_en/{path}.html - destination: /hk_en/students-shared/assets/sitemap.xml - hreflang: en-HK - - ie: - source: /ie/students-shared/assets/query-index.json - alternate: /ie/{path}.html - destination: /ie/students-shared/assets/sitemap.xml - hreflang: en-IE - - il_en: - source: /il_en/students-shared/assets/query-index.json - alternate: /il_en/{path}.html - destination: /il_en/students-shared/assets/sitemap.xml - hreflang: en-IL - - in: - source: /in/students-shared/assets/query-index.json - alternate: /in/{path}.html - destination: /in/students-shared/assets/sitemap.xml - hreflang: en-IN - - lt: - source: /lt/students-shared/assets/query-index.json - alternate: /lt/{path}.html - destination: /lt/students-shared/assets/sitemap.xml - hreflang: lt-LT - - lu_de: - source: /lu_de/students-shared/assets/query-index.json - alternate: /lu_de/{path}.html - destination: /lu_de/students-shared/assets/sitemap.xml - hreflang: de-LU - - lu_en: - source: /lu_en/students-shared/assets/query-index.json - alternate: /lu_en/{path}.html - destination: /lu_en/students-shared/assets/sitemap.xml - hreflang: en-LU - - lu_fr: - source: /lu_fr/students-shared/assets/query-index.json - alternate: /lu_fr/{path}.html - destination: /lu_fr/students-shared/assets/sitemap.xml - hreflang: fr-LU - - mena_en: - source: /mena_en/students-shared/assets/query-index.json - alternate: /mena_en/{path}.html - destination: /mena_en/students-shared/assets/sitemap.xml - hreflang: en-DZ - - mt: - source: /mt/students-shared/assets/query-index.json - alternate: /mt/{path}.html - destination: /mt/students-shared/assets/sitemap.xml - hreflang: en-MT - - nz: - source: /nz/students-shared/assets/query-index.json - alternate: /nz/{path}.html - destination: /nz/students-shared/assets/sitemap.xml - hreflang: en-NZ - - sa_ar: - source: /sa_ar/students-shared/assets/query-index.json - alternate: /sa_ar/{path}.html - destination: /sa_ar/students-shared/assets/sitemap.xml - hreflang: ar-SA - - sa_en: - source: /sa_en/students-shared/assets/query-index.json - alternate: /sa_en/{path}.html - destination: /sa_en/students-shared/assets/sitemap.xml - hreflang: en-SA - - th_en: - source: /th_en/students-shared/assets/query-index.json - alternate: /th_en/{path}.html - destination: /th_en/students-shared/assets/sitemap.xml - hreflang: en-TH - - th_th: - source: /th_th/students-shared/assets/query-index.json - alternate: /th_th/{path}.html - destination: /th_th/students-shared/assets/sitemap.xml - hreflang: th-TH - - za: - source: /za/students-shared/assets/query-index.json - alternate: /za/{path}.html - destination: /za/students-shared/assets/sitemap.xml - hreflang: en-ZA - - africa: - source: /africa/students-shared/assets/query-index.json - alternate: /africa/{path}.html - destination: /africa/students-shared/assets/sitemap.xml - hreflang: - - en-BJ - - en-CM - - en-MA - - en-TG - - en-TN - - ar: - source: /ar/students-shared/assets/query-index.json - alternate: /ar/{path}.html - destination: /ar/students-shared/assets/sitemap.xml - hreflang: es-AR - - co: - source: /co/students-shared/assets/query-index.json - alternate: /co/{path}.html - destination: /co/students-shared/assets/sitemap.xml - hreflang: es-CO - - cr: - source: /cr/students-shared/assets/query-index.json - alternate: /cr/{path}.html - destination: /cr/students-shared/assets/sitemap.xml - hreflang: es-CR - - ec: - source: /ec/students-shared/assets/query-index.json - alternate: /ec/{path}.html - destination: /ec/students-shared/assets/sitemap.xml - hreflang: es-EC - - eg_ar: - source: /eg_ar/students-shared/assets/query-index.json - alternate: /eg_ar/{path}.html - destination: /eg_ar/students-shared/assets/sitemap.xml - hreflang: ar-EG - - eg_en: - source: /eg_en/students-shared/assets/query-index.json - alternate: /eg_en/{path}.html - destination: /eg_en/students-shared/assets/sitemap.xml - hreflang: en-EG - - gr_el: - source: /gr_el/students-shared/assets/query-index.json - alternate: /gr_el/{path}.html - destination: /gr_el/students-shared/assets/sitemap.xml - hreflang: el-GR - - gt: - source: /gt/students-shared/assets/query-index.json - alternate: /gt/{path}.html - destination: /gt/students-shared/assets/sitemap.xml - hreflang: es-GT - - id_en: - source: /id_en/students-shared/assets/query-index.json - alternate: /id_en/{path}.html - destination: /id_en/students-shared/assets/sitemap.xml - hreflang: en-ID - - id_id: - source: /id_id/students-shared/assets/query-index.json - alternate: /id_id/{path}.html - destination: /id_id/students-shared/assets/sitemap.xml - hreflang: id-ID - - in_hi: - source: /in_hi/students-shared/assets/query-index.json - alternate: /in_hi/{path}.html - destination: /in_hi/students-shared/assets/sitemap.xml - hreflang: hi-IN - - kw_ar: - source: /kw_ar/students-shared/assets/query-index.json - alternate: /kw_ar/{path}.html - destination: /kw_ar/students-shared/assets/sitemap.xml - hreflang: ar-KW - - kw_en: - source: /kw_en/students-shared/assets/query-index.json - alternate: /kw_en/{path}.html - destination: /kw_en/students-shared/assets/sitemap.xml - hreflang: en-KW - - my_en: - source: /my_en/students-shared/assets/query-index.json - alternate: /my_en/{path}.html - destination: /my_en/students-shared/assets/sitemap.xml - hreflang: en-MY - - my_ms: - source: /my_ms/students-shared/assets/query-index.json - alternate: /my_ms/{path}.html - destination: /my_ms/students-shared/assets/sitemap.xml - hreflang: ms-MY - - ng: - source: /ng/students-shared/assets/query-index.json - alternate: /ng/{path}.html - destination: /ng/students-shared/assets/sitemap.xml - hreflang: en-NG - - pe: - source: /pe/students-shared/assets/query-index.json - alternate: /pe/{path}.html - destination: /pe/students-shared/assets/sitemap.xml - hreflang: es-PE - - ph_en: - source: /ph_en/students-shared/assets/query-index.json - alternate: /ph_en/{path}.html - destination: /ph_en/students-shared/assets/sitemap.xml - hreflang: en-PH - - ph_fil: - source: /ph_fil/students-shared/assets/query-index.json - alternate: /ph_fil/{path}.html - destination: /ph_fil/students-shared/assets/sitemap.xml - hreflang: fil-PH - - pr: - source: /pr/students-shared/assets/query-index.json - alternate: /pr/{path}.html - destination: /pr/students-shared/assets/sitemap.xml - hreflang: es-PR - - qa_ar: - source: /qa_ar/students-shared/assets/query-index.json - alternate: /qa_ar/{path}.html - destination: /qa_ar/students-shared/assets/sitemap.xml - hreflang: ar-QA - - qa_en: - source: /qa_en/students-shared/assets/query-index.json - alternate: /qa_en/{path}.html - destination: /qa_en/students-shared/assets/sitemap.xml - hreflang: en-QA - - vn_en: - source: /vn_en/students-shared/assets/query-index.json - alternate: /vn_en/{path}.html - destination: /vn_en/students-shared/assets/sitemap.xml - hreflang: en-VN - - vn_vi: - source: /vn_vi/students-shared/assets/query-index.json - alternate: /vn_vi/{path}.html - destination: /vn_vi/students-shared/assets/sitemap.xml - hreflang: vi-VN - - dk: - source: /dk/students-shared/assets/query-index.json - alternate: /dk/{path}.html - destination: /dk/students-shared/assets/sitemap.xml - hreflang: da-DK - - fi: - source: /fi/students-shared/assets/query-index.json - alternate: /fi/{path}.html - destination: /fi/students-shared/assets/sitemap.xml - hreflang: fi-FI - - no: - source: /no/students-shared/assets/query-index.json - alternate: /no/{path}.html - destination: /no/students-shared/assets/sitemap.xml - hreflang: no-NO - - se: - source: /se/students-shared/assets/query-index.json - alternate: /se/{path}.html - destination: /se/students-shared/assets/sitemap.xml - hreflang: sv-SE - - la: - source: /la/students-shared/assets/query-index.json - alternate: /la/{path}.html - destination: /la/students-shared/assets/sitemap.xml - hreflang: - - es-PA - - es-SV - - es-VE - - mx: - source: /mx/students-shared/assets/query-index.json - alternate: /mx/{path}.html - destination: /mx/students-shared/assets/sitemap.xml - hreflang: es-MX - - be_nl: - source: /be_nl/students-shared/assets/query-index.json - alternate: /be_nl/{path}.html - destination: /be_nl/students-shared/assets/sitemap.xml - hreflang: nl-BE - - bg: - source: /bg/students-shared/assets/query-index.json - alternate: /bg/{path}.html - destination: /bg/students-shared/assets/sitemap.xml - hreflang: bg-BG - - ch_it: - source: /ch_it/students-shared/assets/query-index.json - alternate: /ch_it/{path}.html - destination: /ch_it/students-shared/assets/sitemap.xml - hreflang: it-CH - - cz: - source: /cz/students-shared/assets/query-index.json - alternate: /cz/{path}.html - destination: /cz/students-shared/assets/sitemap.xml - hreflang: cs-CZ - - ee: - source: /ee/students-shared/assets/query-index.json - alternate: /ee/{path}.html - destination: /ee/students-shared/assets/sitemap.xml - hreflang: et-EE - - hu: - source: /hu/students-shared/assets/query-index.json - alternate: /hu/{path}.html - destination: /hu/students-shared/assets/sitemap.xml - hreflang: hu-HU - - il_he: - source: /il_he/students-shared/assets/query-index.json - alternate: /il_he/{path}.html - destination: /il_he/students-shared/assets/sitemap.xml - hreflang: he-IL - - lv: - source: /lv/students-shared/assets/query-index.json - alternate: /lv/{path}.html - destination: /lv/students-shared/assets/sitemap.xml - hreflang: lv-LV - - mena_ar: - source: /mena_ar/students-shared/assets/query-index.json - alternate: /mena_ar/{path}.html - destination: /mena_ar/students-shared/assets/sitemap.xml - hreflang: - - ar-IL - - ar-IQ - - ar-JO - - ar-LB - - ar-MA - - ar-OM - - pt: - source: /pt/students-shared/assets/query-index.json - alternate: /pt/{path}.html - destination: /pt/students-shared/assets/sitemap.xml - hreflang: pt-PT - - ro: - source: /ro/students-shared/assets/query-index.json - alternate: /ro/{path}.html - destination: /ro/students-shared/assets/sitemap.xml - hreflang: ro-RO - - si: - source: /si/students-shared/assets/query-index.json - alternate: /si/{path}.html - destination: /si/students-shared/assets/sitemap.xml - hreflang: sl-SI - - sk: - source: /sk/students-shared/assets/query-index.json - alternate: /sk/{path}.html - destination: /sk/students-shared/assets/sitemap.xml - hreflang: sk-SK - - ua: - source: /ua/students-shared/assets/query-index.json - alternate: /ua/{path}.html - destination: /ua/students-shared/assets/sitemap.xml - hreflang: uk-UA - - sg: - source: /sg/students-shared/assets/query-index.json - alternate: /sg/{path}.html - destination: /sg/students-shared/assets/sitemap.xml - hreflang: en-SG - - br: - source: /br/students-shared/assets/query-index.json - alternate: /br/{path}.html - destination: /br/students-shared/assets/sitemap.xml - hreflang: pt-BR - - cis_en: - source: /cis_en/students-shared/assets/query-index.json - alternate: /cis_en/{path}.html - destination: /cis_en/students-shared/assets/sitemap.xml - hreflang: en-BY - - cis_ru: - source: /cis_ru/students-shared/assets/query-index.json - alternate: /cis_ru/{path}.html - destination: /cis_ru/students-shared/assets/sitemap.xml - hreflang: ru-BY diff --git a/test/scripts/mocks/body.html b/test/scripts/mocks/body.html deleted file mode 100644 index 34c7f09..0000000 --- a/test/scripts/mocks/body.html +++ /dev/null @@ -1,23 +0,0 @@ -

-
-
- -
-
- - - - - - -
-
-

You have one or more unlicensed Adobe apps on your device.

-

Unlicensed apps may contain malware that expose your files and personal data to security risks. Adobe provides a 10-day grace period to resolve this issue with exclusive discounts on replacement apps. 41N1AXBDMG

-

Your ID: c034592b-e547-43aa-82d5-9d42736566e4

-

Learn About Shop Offers

-
-
-
-
-
diff --git a/test/scripts/mocks/head-off.html b/test/scripts/mocks/head-off.html deleted file mode 100644 index c18a548..0000000 --- a/test/scripts/mocks/head-off.html +++ /dev/null @@ -1,23 +0,0 @@ - - You have one or more unlicensed Adobe apps on your device. - - - - - - - - - - - - - - - - - - - - - diff --git a/test/scripts/mocks/head-on.html b/test/scripts/mocks/head-on.html deleted file mode 100644 index b490e84..0000000 --- a/test/scripts/mocks/head-on.html +++ /dev/null @@ -1,24 +0,0 @@ - - You have one or more unlicensed Adobe apps on your device. - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/scripts/scripts.test.js b/test/scripts/scripts.test.js deleted file mode 100644 index 131e8f2..0000000 --- a/test/scripts/scripts.test.js +++ /dev/null @@ -1,38 +0,0 @@ -import { readFile } from '@web/test-runner-commands'; -import { expect } from '@esm-bundle/chai'; -import { stub } from 'sinon'; - -export const mockRes = ({ payload, status = 200, ok = true } = {}) => new Promise((resolve) => { - resolve({ - status, - ok, - json: () => payload, - text: () => payload, - }); -}); - -export const mockFetch = (payload) => stub().callsFake(() => mockRes(payload)); -window.fetch = mockFetch({ payload: { data: '' } }); - -function delay(ms) { - return new Promise((res) => { setTimeout(() => { res(); }, ms); }); -} - -document.head.innerHTML = await readFile({ path: './mocks/head-off.html' }); -document.body.innerHTML = await readFile({ path: './mocks/body.html' }); - -describe('Scripts', () => { - before(async () => { - await import('../../adobe-students/scripts/scripts.js'); - delay(200); - }); - - it('Makes validation call when validate meta tag is on', () => { - expect(document.querySelector('meta[name="validate"]').content).to.equal('off'); - }); - - it('Loads adobe-students page when validate meta tag is off', async () => { - document.head.innerHTML = await readFile({ path: './mocks/head-off.html' }); - expect(document.querySelector('meta[name="validate"]').content).to.equal('off'); - }); -}); diff --git a/test/scripts/utils.test.js b/test/scripts/utils.test.js new file mode 100644 index 0000000..634bb08 --- /dev/null +++ b/test/scripts/utils.test.js @@ -0,0 +1,45 @@ +import { expect } from '@esm-bundle/chai'; +import { setLibs } from '../../adobe-students/scripts/utils.js'; + +describe('Libs', () => { + it('Default Libs', () => { + const libs = setLibs('/libs'); + expect(libs).to.equal('https://main--milo--adobecom.hlx.live/libs'); + }); + + it('Does not support milolibs query param on prod', () => { + const location = { + hostname: 'business.adobe.com', + search: '?milolibs=foo', + }; + const libs = setLibs('/libs', location); + expect(libs).to.equal('/libs'); + }); + + it('Supports milolibs query param', () => { + const location = { + hostname: 'localhost', + search: '?milolibs=foo', + }; + const libs = setLibs('/libs', location); + expect(libs).to.equal('https://foo--milo--adobecom.hlx.live/libs'); + }); + + it('Supports local milolibs query param', () => { + const location = { + hostname: 'localhost', + search: '?milolibs=local', + }; + const libs = setLibs('/libs', location); + expect(libs).to.equal('http://localhost:6456/libs'); + }); + + it('Supports forked milolibs query param', () => { + const location = { + hostname: 'localhost', + search: '?milolibs=awesome--milo--forkedowner', + }; + const libs = setLibs('/libs', location); + expect(libs).to.equal('https://awesome--milo--forkedowner.hlx.live/libs'); + }); +}); From 49efd2a77cc92deb3d82ccbf6e6182cf6fcff57c Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Tue, 10 Sep 2024 10:45:58 +0530 Subject: [PATCH 05/11] query index added --- helix-query.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 helix-query.yaml diff --git a/helix-query.yaml b/helix-query.yaml new file mode 100644 index 0000000..f99595e --- /dev/null +++ b/helix-query.yaml @@ -0,0 +1,18 @@ +version: 1 + +indices: + students: + include: + - /creativecloud/** + exclude: + - '**/students-shared/**' + - '**/gnav**' + - '**/footer**' + - '**/drafts/**' + - '**/fragments/**' + target: /students-shared/assets/query-index.xlsx + properties: + author: + select: main > div:nth-of-type(3) > p:nth-of-type(1) + value: | + match(el, 'by (.*)') From 6a7bb2e83a06f8a3991124cb631c1356f32b4133 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Tue, 10 Sep 2024 12:16:45 +0530 Subject: [PATCH 06/11] chore: fixing cc namings --- .github/workflows/run-nala.yaml | 60 ++++++++++++++++----------------- CODEOWNERS | 2 +- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/run-nala.yaml b/.github/workflows/run-nala.yaml index e19b75a..1ed054e 100644 --- a/.github/workflows/run-nala.yaml +++ b/.github/workflows/run-nala.yaml @@ -1,30 +1,30 @@ -name: Nala Tests - -on: - pull_request: - types: [ labeled, opened, synchronize, reopened ] - -jobs: - action: - name: Running E2E & IT - if: contains(github.event.pull_request.labels.*.name, 'run-nala') - runs-on: ubuntu-latest - - steps: - - name: Check out repository - uses: actions/checkout@v3 - - name: Run Nala - uses: adobecom/nala@main - env: - WORKFLOW_NAME: 'CC-PR-RUN' - PR_RUN: 'true' - labels: ${{ join(github.event.pull_request.labels.*.name, ' ') }} - branch: ${{ github.event.pull_request.head.ref }} - repoName: ${{ github.repository }} - prUrl: ${{ github.event.pull_request.head.repo.html_url }} - prOrg: ${{ github.event.pull_request.head.repo.owner.login }} - prRepo: ${{ github.event.pull_request.head.repo.name }} - prBranch: ${{ github.event.pull_request.head.ref }} - prBaseBranch: ${{ github.event.pull_request.base.ref }} - IMS_EMAIL: ${{ secrets.IMS_EMAIL }} - IMS_PASS: ${{ secrets.IMS_PASS }} +name: Nala Tests + +on: + pull_request: + types: [ labeled, opened, synchronize, reopened ] + +jobs: + action: + name: Running E2E & IT + if: contains(github.event.pull_request.labels.*.name, 'run-nala') + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v3 + - name: Run Nala + uses: adobecom/nala@main + env: + WORKFLOW_NAME: 'STUDENTS-PR-RUN' + PR_RUN: 'true' + labels: ${{ join(github.event.pull_request.labels.*.name, ' ') }} + branch: ${{ github.event.pull_request.head.ref }} + repoName: ${{ github.repository }} + prUrl: ${{ github.event.pull_request.head.repo.html_url }} + prOrg: ${{ github.event.pull_request.head.repo.owner.login }} + prRepo: ${{ github.event.pull_request.head.repo.name }} + prBranch: ${{ github.event.pull_request.head.ref }} + prBaseBranch: ${{ github.event.pull_request.base.ref }} + IMS_EMAIL: ${{ secrets.IMS_EMAIL }} + IMS_PASS: ${{ secrets.IMS_PASS }} diff --git a/CODEOWNERS b/CODEOWNERS index 6b737ed..450c87c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @adobecom/cc-code-owners @salonijain3 @aishwaryamathuria @suhjainadobe @drashti1712 +* @salonijain3 @aishwaryamathuria @suhjainadobe @drashti1712 From 118403e6f0bdea10eafe06a1b889aaa5a8fb87ac Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Thu, 12 Sep 2024 11:55:02 +0530 Subject: [PATCH 07/11] fix(stylelint): fixed stylelint exception --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8576b41..79c44a4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "lcov": "lcov -a coverage/jest/lcov.info -a coverage/wtr/lcov.info -o coverage/lcov.info", "lint": "npm run lint:js && npm run lint:css", "lint:js": "eslint .", - "lint:css": "stylelint 'adobe-students/blocks/**/*.css' 'adobe-students/styles/*.css'" + "lint:css": "stylelint 'adobe-students/blocks/**/*.css' 'adobe-students/styles/*.css' --allow-empty-input" }, "repository": { "type": "git", From 8a4977ab03f1f249bbc39a335307f38eb6a0f049 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Wed, 18 Sep 2024 11:15:17 +0530 Subject: [PATCH 08/11] chore: fixed review suggestion --- .kodiak/config.yaml | 6 +- adobe-students/scripts/scripts.js | 21 --- adobe-students/scripts/utils.js | 23 --- fstab.yaml | 5 - libs/deps/README | 1 - libs/deps/lit-all.min.js | 281 ------------------------------ 6 files changed, 1 insertion(+), 336 deletions(-) delete mode 100644 libs/deps/README delete mode 100644 libs/deps/lit-all.min.js diff --git a/.kodiak/config.yaml b/.kodiak/config.yaml index 75e7f74..b5dcfdb 100644 --- a/.kodiak/config.yaml +++ b/.kodiak/config.yaml @@ -12,17 +12,13 @@ notifications: risk_rating: R5 fields: assignee: - name: sumanh + name: saljain customfield_11800: MWPW-140779 #epic link customfield_12900: value: Brahmos watchers: - - casalino - - jmichnow - - mauchley - saljain - mathuria - - dstrong labels: - "OriginatingProcess=Kodiak" - "security" diff --git a/adobe-students/scripts/scripts.js b/adobe-students/scripts/scripts.js index 7b81ad0..92d9b2c 100644 --- a/adobe-students/scripts/scripts.js +++ b/adobe-students/scripts/scripts.js @@ -1,26 +1,11 @@ -/* - * Copyright 2023 Adobe. All rights reserved. - * This file is licensed to you under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under - * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - import { setLibs, decorateArea } from './utils.js'; -// Add project-wide style path here. const STYLES = ''; -// Use '/libs' if your live site maps '/libs' to milo's origin. const LIBS = '/libs'; const locales = { '': { ietf: 'en-US', tk: 'hah7vzn.css' } }; -// Add any config options. const CONFIG = { contentRoot: '/students-shared', codeRoot: '/adobe-students', @@ -36,12 +21,6 @@ const CONFIG = { }, }; -/* - * ------------------------------------------------------------ - * Edit below at your own risk - * ------------------------------------------------------------ - */ - const miloLibs = setLibs(LIBS); const { loadArea, setConfig, loadLana } = await import(`${miloLibs}/utils/utils.js`); setConfig({ ...CONFIG, miloLibs }); diff --git a/adobe-students/scripts/utils.js b/adobe-students/scripts/utils.js index 6a31706..1d832b7 100644 --- a/adobe-students/scripts/utils.js +++ b/adobe-students/scripts/utils.js @@ -1,24 +1,3 @@ -/* - * Copyright 2022 Adobe. All rights reserved. - * This file is licensed to you under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. You may obtain a copy - * of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under - * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS - * OF ANY KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ - -/* - * ------------------------------------------------------------ - * Edit below at your own risk - * ------------------------------------------------------------ - */ - -/** - * The decision engine for where to get Milo's libs from. - */ export const [setLibs, getLibs] = (() => { let libs; return [ @@ -57,9 +36,7 @@ export function decorateArea(area = document) { return; } - // First image of first row eagerLoad(marquee, 'div:first-child img'); - // Last image of last column of last row eagerLoad(marquee, 'div:last-child > div:last-child img'); }()); } diff --git a/fstab.yaml b/fstab.yaml index 593ffb3..9e756ec 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,7 +1,2 @@ -# Notes: -# -# 1. The URL should be human readable as a path. It should not be a hash. -# 2. Google Drive is no longer allowed for production Adobe projects. - mountpoints: /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/students/sandbox diff --git a/libs/deps/README b/libs/deps/README deleted file mode 100644 index f75d7a7..0000000 --- a/libs/deps/README +++ /dev/null @@ -1 +0,0 @@ -this is only for loading lit only once on hlx.page and hlx.live diff --git a/libs/deps/lit-all.min.js b/libs/deps/lit-all.min.js deleted file mode 100644 index 8f0a8b3..0000000 --- a/libs/deps/lit-all.min.js +++ /dev/null @@ -1,281 +0,0 @@ -/* eslint-disable */ -/* Generated by Milo */ - -var Z=window,J=Z.ShadowRoot&&(Z.ShadyCSS===void 0||Z.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,ut=Symbol(),Tt=new WeakMap,I=class{constructor(t,e,i){if(this._$cssResult$=!0,i!==ut)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(J&&t===void 0){let i=e!==void 0&&e.length===1;i&&(t=Tt.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&Tt.set(e,t))}return t}toString(){return this.cssText}},Rt=s=>new I(typeof s=="string"?s:s+"",void 0,ut),le=(s,...t)=>{let e=s.length===1?s[0]:t.reduce((i,r,o)=>i+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+s[o+1],s[0]);return new I(e,s,ut)},pt=(s,t)=>{J?s.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet):t.forEach(e=>{let i=document.createElement("style"),r=Z.litNonce;r!==void 0&&i.setAttribute("nonce",r),i.textContent=e.cssText,s.appendChild(i)})},Q=J?s=>s:s=>s instanceof CSSStyleSheet?(t=>{let e="";for(let i of t.cssRules)e+=i.cssText;return Rt(e)})(s):s;var ft,X=window,Ut=X.trustedTypes,ae=Ut?Ut.emptyScript:"",kt=X.reactiveElementPolyfillSupport,vt={toAttribute(s,t){switch(t){case Boolean:s=s?ae:null;break;case Object:case Array:s=s==null?s:JSON.stringify(s)}return s},fromAttribute(s,t){let e=s;switch(t){case Boolean:e=s!==null;break;case Number:e=s===null?null:Number(s);break;case Object:case Array:try{e=JSON.parse(s)}catch{e=null}}return e}},Nt=(s,t)=>t!==s&&(t==t||s==s),mt={attribute:!0,type:String,converter:vt,reflect:!1,hasChanged:Nt},$t="finalized",C=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var e;this.finalize(),((e=this.h)!==null&&e!==void 0?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((e,i)=>{let r=this._$Ep(i,e);r!==void 0&&(this._$Ev.set(r,i),t.push(r))}),t}static createProperty(t,e=mt){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){let i=typeof t=="symbol"?Symbol():"__"+t,r=this.getPropertyDescriptor(t,i,e);r!==void 0&&Object.defineProperty(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(r){let o=this[t];this[e]=r,this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||mt}static finalize(){if(this.hasOwnProperty($t))return!1;this[$t]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let e=this.properties,i=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(let r of i)this.createProperty(r,e[r])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let i=new Set(t.flat(1/0).reverse());for(let r of i)e.unshift(Q(r))}else t!==void 0&&e.push(Q(t));return e}static _$Ep(t,e){let i=e.attribute;return i===!1?void 0:typeof i=="string"?i:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(e=>e(this))}addController(t){var e,i;((e=this._$ES)!==null&&e!==void 0?e:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((i=t.hostConnected)===null||i===void 0||i.call(t))}removeController(t){var e;(e=this._$ES)===null||e===void 0||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])})}createRenderRoot(){var t;let e=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return pt(e,this.constructor.elementStyles),e}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(e=>{var i;return(i=e.hostConnected)===null||i===void 0?void 0:i.call(e)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(e=>{var i;return(i=e.hostDisconnected)===null||i===void 0?void 0:i.call(e)})}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=mt){var r;let o=this.constructor._$Ep(t,i);if(o!==void 0&&i.reflect===!0){let n=(((r=i.converter)===null||r===void 0?void 0:r.toAttribute)!==void 0?i.converter:vt).toAttribute(e,i.type);this._$El=t,n==null?this.removeAttribute(o):this.setAttribute(o,n),this._$El=null}}_$AK(t,e){var i;let r=this.constructor,o=r._$Ev.get(t);if(o!==void 0&&this._$El!==o){let n=r.getPropertyOptions(o),a=typeof n.converter=="function"?{fromAttribute:n.converter}:((i=n.converter)===null||i===void 0?void 0:i.fromAttribute)!==void 0?n.converter:vt;this._$El=o,this[o]=a.fromAttribute(e,n.type),this._$El=null}}requestUpdate(t,e,i){let r=!0;t!==void 0&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||Nt)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),i.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,i))):r=!1),!this.isUpdatePending&&r&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((r,o)=>this[o]=r),this._$Ei=void 0);let e=!1,i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var o;return(o=r.hostUpdate)===null||o===void 0?void 0:o.call(r)}),this.update(i)):this._$Ek()}catch(r){throw e=!1,this._$Ek(),r}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;(e=this._$ES)===null||e===void 0||e.forEach(i=>{var r;return(r=i.hostUpdated)===null||r===void 0?void 0:r.call(i)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((e,i)=>this._$EO(i,this[i],e)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};C[$t]=!0,C.elementProperties=new Map,C.elementStyles=[],C.shadowRootOptions={mode:"open"},kt?.({ReactiveElement:C}),((ft=X.reactiveElementVersions)!==null&&ft!==void 0?ft:X.reactiveElementVersions=[]).push("1.6.3");var _t,F=window,O=F.trustedTypes,Ht=O?O.createPolicy("lit-html",{createHTML:s=>s}):void 0,tt="$lit$",b=`lit$${(Math.random()+"").slice(9)}$`,At="?"+b,ce=`<${At}>`,U=document,j=()=>U.createComment(""),q=s=>s===null||typeof s!="object"&&typeof s!="function",Bt=Array.isArray,jt=s=>Bt(s)||typeof s?.[Symbol.iterator]=="function",yt=`[ -\f\r]`,B=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ot=/-->/g,Mt=/>/g,T=RegExp(`>|${yt}(?:([^\\s"'>=/]+)(${yt}*=${yt}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),Dt=/'/g,Lt=/"/g,qt=/^(?:script|style|textarea|title)$/i,Gt=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),Se=Gt(1),be=Gt(2),p=Symbol.for("lit-noChange"),u=Symbol.for("lit-nothing"),Vt=new WeakMap,R=U.createTreeWalker(U,129,null,!1);function zt(s,t){if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ht!==void 0?Ht.createHTML(t):t}var Kt=(s,t)=>{let e=s.length-1,i=[],r,o=t===2?"":"",n=B;for(let a=0;a"?(n=r??B,m=-1):d[1]===void 0?m=-2:(m=n.lastIndex-d[2].length,c=d[1],n=d[3]===void 0?T:d[3]==='"'?Lt:Dt):n===Lt||n===Dt?n=T:n===Ot||n===Mt?n=B:(n=T,r=void 0);let v=n===T&&s[a+1].startsWith("/>")?" ":"";o+=n===B?l+ce:m>=0?(i.push(c),l.slice(0,m)+tt+l.slice(m)+b+v):l+b+(m===-2?(i.push(void 0),a):v)}return[zt(s,o+(s[e]||"")+(t===2?"":"")),i]},G=class s{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let o=0,n=0,a=t.length-1,l=this.parts,[c,d]=Kt(t,e);if(this.el=s.createElement(c,i),R.currentNode=this.el.content,e===2){let m=this.el.content,h=m.firstChild;h.remove(),m.append(...h.childNodes)}for(;(r=R.nextNode())!==null&&l.length0){r.textContent=O?O.emptyScript:"";for(let v=0;v2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=u}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,r){let o=this.strings,n=!1;if(o===void 0)t=k(this,t,e,0),n=!q(t)||t!==this._$AH&&t!==p,n&&(this._$AH=t);else{let a=t,l,c;for(t=o[0],l=0;l{var i,r;let o=(i=e?.renderBefore)!==null&&i!==void 0?i:t,n=o._$litPart$;if(n===void 0){let a=(r=e?.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=n=new M(t.insertBefore(j(),a),a,void 0,e??{})}return n._$AI(s),n};var gt,xt,Re=C,D=class extends C{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;let i=super.createRenderRoot();return(t=(e=this.renderOptions).renderBefore)!==null&&t!==void 0||(e.renderBefore=i.firstChild),i}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=nt(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!1)}render(){return p}};D.finalized=!0,D._$litElement$=!0,(gt=globalThis.litElementHydrateSupport)===null||gt===void 0||gt.call(globalThis,{LitElement:D});var Yt=globalThis.litElementPolyfillSupport;Yt?.({LitElement:D});var Ue={_$AK:(s,t,e)=>{s._$AK(t,e)},_$AL:s=>s._$AL};((xt=globalThis.litElementVersions)!==null&&xt!==void 0?xt:globalThis.litElementVersions=[]).push("3.3.3");var Oe=!1;var{I:de}=Wt,Jt=s=>s===null||typeof s!="object"&&typeof s!="function",qe={HTML:1,SVG:2},Ct=(s,t)=>t===void 0?s?._$litType$!==void 0:s?._$litType$===t,Qt=s=>{var t;return((t=s?._$litType$)===null||t===void 0?void 0:t.h)!=null},Ge=s=>s?._$litDirective$!==void 0,ze=s=>s?._$litDirective$,lt=s=>s.strings===void 0,Zt=()=>document.createComment(""),x=(s,t,e)=>{var i;let r=s._$AA.parentNode,o=t===void 0?s._$AB:t._$AA;if(e===void 0){let n=r.insertBefore(Zt(),o),a=r.insertBefore(Zt(),o);e=new de(n,a,s,s.options)}else{let n=e._$AB.nextSibling,a=e._$AM,l=a!==s;if(l){let c;(i=e._$AQ)===null||i===void 0||i.call(e,s),e._$AM=s,e._$AP!==void 0&&(c=s._$AU)!==a._$AU&&e._$AP(c)}if(n!==o||l){let c=e._$AA;for(;c!==n;){let d=c.nextSibling;r.insertBefore(c,o),c=d}}}return e},E=(s,t,e=s)=>(s._$AI(t,e),s),ue={},w=(s,t=ue)=>s._$AH=t,z=s=>s._$AH,at=s=>{var t;(t=s._$AP)===null||t===void 0||t.call(s,!1,!0);let e=s._$AA,i=s._$AB.nextSibling;for(;e!==i;){let r=e.nextSibling;e.remove(),e=r}},ct=s=>{s._$AR()};var _={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},f=s=>(...t)=>({_$litDirective$:s,values:t}),$=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var K=(s,t)=>{var e,i;let r=s._$AN;if(r===void 0)return!1;for(let o of r)(i=(e=o)._$AO)===null||i===void 0||i.call(e,t,!1),K(o,t);return!0},ht=s=>{let t,e;do{if((t=s._$AM)===void 0)break;e=t._$AN,e.delete(s),s=t}while(e?.size===0)},Xt=s=>{for(let t;t=s._$AM;s=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(s))break;e.add(s),me(t)}};function pe(s){this._$AN!==void 0?(ht(this),this._$AM=s,Xt(this)):this._$AM=s}function fe(s,t=!1,e=0){let i=this._$AH,r=this._$AN;if(r!==void 0&&r.size!==0)if(t)if(Array.isArray(i))for(let o=e;o{var t,e,i,r;s.type==_.CHILD&&((t=(i=s)._$AP)!==null&&t!==void 0||(i._$AP=fe),(e=(r=s)._$AQ)!==null&&e!==void 0||(r._$AQ=pe))},P=class extends ${constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),Xt(this),this.isConnected=t._$AU}_$AO(t,e=!0){var i,r;t!==this.isConnected&&(this.isConnected=t,t?(i=this.reconnected)===null||i===void 0||i.call(this):(r=this.disconnected)===null||r===void 0||r.call(this)),e&&(K(this,t),ht(this))}setValue(t){if(lt(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ft=async(s,t)=>{for await(let e of s)if(await t(e)===!1)return},L=class{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}},V=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){var t;(t=this.Y)!==null&&t!==void 0||(this.Y=new Promise(e=>this.Z=e))}resume(){var t;(t=this.Z)===null||t===void 0||t.call(this),this.Y=this.Z=void 0}};var W=class extends P{constructor(){super(...arguments),this._$Cq=new L(this),this._$CK=new V}render(t,e){return p}update(t,[e,i]){if(this.isConnected||this.disconnected(),e===this._$CX)return;this._$CX=e;let r=0,{_$Cq:o,_$CK:n}=this;return Ft(e,async a=>{for(;n.get();)await n.get();let l=o.deref();if(l!==void 0){if(l._$CX!==e)return!1;i!==void 0&&(a=i(a,r)),l.commitValue(a,r),r++}return!0}),p}commitValue(t,e){this.setValue(t)}disconnected(){this._$Cq.disconnect(),this._$CK.pause()}reconnected(){this._$Cq.reconnect(this),this._$CK.resume()}},cs=f(W);var fs=f(class extends W{constructor(s){if(super(s),s.type!==_.CHILD)throw Error("asyncAppend can only be used in child expressions")}update(s,t){return this._$CJ=s,super.update(s,t)}commitValue(s,t){t===0&&ct(this._$CJ);let e=x(this._$CJ);E(e,s)}});var te=s=>Qt(s)?s._$litType$.h:s.strings,Es=f(class extends ${constructor(s){super(s),this.tt=new WeakMap}render(s){return[s]}update(s,[t]){let e=Ct(this.et)?te(this.et):null,i=Ct(t)?te(t):null;if(e!==null&&(i===null||e!==i)){let r=z(s).pop(),o=this.tt.get(e);if(o===void 0){let n=document.createDocumentFragment();o=nt(u,n),o.setConnected(!1),this.tt.set(e,o)}w(o,[r]),x(o,void 0,r)}if(i!==null){if(e===null||e!==i){let r=this.tt.get(i);if(r!==void 0){let o=z(r).pop();ct(s),x(s,void 0,o),w(s,[o])}}this.et=t}else this.et=void 0;return this.render(t)}});var Ts=(s,t,e)=>{for(let i of t)if(i[0]===s)return(0,i[1])();return e?.()};var Os=f(class extends ${constructor(s){var t;if(super(s),s.type!==_.ATTRIBUTE||s.name!=="class"||((t=s.strings)===null||t===void 0?void 0:t.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(s){return" "+Object.keys(s).filter(t=>s[t]).join(" ")+" "}update(s,[t]){var e,i;if(this.it===void 0){this.it=new Set,s.strings!==void 0&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(let o in t)t[o]&&!(!((e=this.nt)===null||e===void 0)&&e.has(o))&&this.it.add(o);return this.render(t)}let r=s.element.classList;this.it.forEach(o=>{o in t||(r.remove(o),this.it.delete(o))});for(let o in t){let n=!!t[o];n===this.it.has(o)||!((i=this.nt)===null||i===void 0)&&i.has(o)||(n?(r.add(o),this.it.add(o)):(r.remove(o),this.it.delete(o)))}return p}});var ve={},js=f(class extends ${constructor(){super(...arguments),this.st=ve}render(s,t){return t()}update(s,[t,e]){if(Array.isArray(t)){if(Array.isArray(this.st)&&this.st.length===t.length&&t.every((i,r)=>i===this.st[r]))return p}else if(this.st===t)return p;return this.st=Array.isArray(t)?Array.from(t):t,this.render(t,e)}});var Ys=s=>s??u;function*Xs(s,t){let e=typeof t=="function";if(s!==void 0){let i=-1;for(let r of s)i>-1&&(yield e?t(i):t),i++,yield r}}var oi=f(class extends ${constructor(){super(...arguments),this.key=u}render(s,t){return this.key=s,t}update(s,[t,e]){return t!==this.key&&(w(s),this.key=t),e}});var pi=f(class extends ${constructor(s){if(super(s),s.type!==_.PROPERTY&&s.type!==_.ATTRIBUTE&&s.type!==_.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!lt(s))throw Error("`live` bindings can only contain a single expression")}render(s){return s}update(s,[t]){if(t===p||t===u)return t;let e=s.element,i=s.name;if(s.type===_.PROPERTY){if(t===e[i])return p}else if(s.type===_.BOOLEAN_ATTRIBUTE){if(!!t===e.hasAttribute(i))return p}else if(s.type===_.ATTRIBUTE&&e.getAttribute(i)===t+"")return p;return w(s),t}});function*_i(s,t){if(s!==void 0){let e=0;for(let i of s)yield t(i,e++)}}function*xi(s,t,e=1){let i=t===void 0?0:s;t!=null||(t=s);for(let r=i;e>0?rnew St,St=class{},Et=new WeakMap,Ri=f(class extends P{render(s){return u}update(s,[t]){var e;let i=t!==this.G;return i&&this.G!==void 0&&this.ot(void 0),(i||this.rt!==this.lt)&&(this.G=t,this.dt=(e=s.options)===null||e===void 0?void 0:e.host,this.ot(this.lt=s.element)),u}ot(s){var t;if(typeof this.G=="function"){let e=(t=this.dt)!==null&&t!==void 0?t:globalThis,i=Et.get(e);i===void 0&&(i=new WeakMap,Et.set(e,i)),i.get(this.G)!==void 0&&this.G.call(this.dt,void 0),i.set(this.G,s),s!==void 0&&this.G.call(this.dt,s)}else this.G.value=s}get rt(){var s,t,e;return typeof this.G=="function"?(t=Et.get((s=this.dt)!==null&&s!==void 0?s:globalThis))===null||t===void 0?void 0:t.get(this.G):(e=this.G)===null||e===void 0?void 0:e.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});var ee=(s,t,e)=>{let i=new Map;for(let r=t;r<=e;r++)i.set(s[r],r);return i},Li=f(class extends ${constructor(s){if(super(s),s.type!==_.CHILD)throw Error("repeat() can only be used in text expressions")}ct(s,t,e){let i;e===void 0?e=t:t!==void 0&&(i=t);let r=[],o=[],n=0;for(let a of s)r[n]=i?i(a,n):n,o[n]=e(a,n),n++;return{values:o,keys:r}}render(s,t,e){return this.ct(s,t,e).values}update(s,[t,e,i]){var r;let o=z(s),{values:n,keys:a}=this.ct(t,e,i);if(!Array.isArray(o))return this.ut=a,n;let l=(r=this.ut)!==null&&r!==void 0?r:this.ut=[],c=[],d,m,h=0,v=o.length-1,y=0,A=n.length-1;for(;h<=v&&y<=A;)if(o[h]===null)h++;else if(o[v]===null)v--;else if(l[h]===a[y])c[y]=E(o[h],n[y]),h++,y++;else if(l[v]===a[A])c[A]=E(o[v],n[A]),v--,A--;else if(l[h]===a[A])c[A]=E(o[h],n[A]),x(s,c[A+1],o[h]),h++,A--;else if(l[v]===a[y])c[y]=E(o[v],n[y]),x(s,o[h],o[v]),v--,y++;else if(d===void 0&&(d=ee(a,y,A),m=ee(l,h,v)),d.has(l[h]))if(d.has(l[v])){let S=m.get(a[y]),dt=S!==void 0?o[S]:null;if(dt===null){let Pt=x(s,o[h]);E(Pt,n[y]),c[y]=Pt}else c[y]=E(dt,n[y]),x(s,o[h],dt),o[S]=null;y++}else at(o[v]),v--;else at(o[h]),h++;for(;y<=A;){let S=x(s,c[A+1]);E(S,n[y]),c[y++]=S}for(;h<=v;){let S=o[h++];S!==null&&at(S)}return this.ut=a,w(s,c),p}});var se="important",$e=" !"+se,zi=f(class extends ${constructor(s){var t;if(super(s),s.type!==_.ATTRIBUTE||s.name!=="style"||((t=s.strings)===null||t===void 0?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(s){return Object.keys(s).reduce((t,e)=>{let i=s[e];return i==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${i};`},"")}update(s,[t]){let{style:e}=s.element;if(this.ht===void 0){this.ht=new Set;for(let i in t)this.ht.add(i);return this.render(t)}this.ht.forEach(i=>{t[i]==null&&(this.ht.delete(i),i.includes("-")?e.removeProperty(i):e[i]="")});for(let i in t){let r=t[i];if(r!=null){this.ht.add(i);let o=typeof r=="string"&&r.endsWith($e);i.includes("-")||o?e.setProperty(i,o?r.slice(0,-11):r,o?se:""):e[i]=r}}return p}});var Xi=f(class extends ${constructor(s){if(super(s),s.type!==_.CHILD)throw Error("templateContent can only be used in child bindings")}render(s){return this.vt===s?p:(this.vt=s,document.importNode(s.content,!0))}});var H=class extends ${constructor(t){if(super(t),this.et=u,t.type!==_.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===u||t==null)return this.ft=void 0,this.et=t;if(t===p)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;let e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}};H.directiveName="unsafeHTML",H.resultType=1;var or=f(H);var Y=class extends H{};Y.directiveName="unsafeSVG",Y.resultType=2;var dr=f(Y);var ie=s=>!Jt(s)&&typeof s.then=="function",re=1073741823,bt=class extends P{constructor(){super(...arguments),this._$C_t=re,this._$Cwt=[],this._$Cq=new L(this),this._$CK=new V}render(...t){var e;return(e=t.find(i=>!ie(i)))!==null&&e!==void 0?e:p}update(t,e){let i=this._$Cwt,r=i.length;this._$Cwt=e;let o=this._$Cq,n=this._$CK;this.isConnected||this.disconnected();for(let a=0;athis._$C_t);a++){let l=e[a];if(!ie(l))return this._$C_t=a,l;a{for(;n.get();)await n.get();let d=o.deref();if(d!==void 0){let m=d._$Cwt.indexOf(l);m>-1&&mt=>typeof t=="function"?((e,i)=>(customElements.define(e,i),i))(s,t):((e,i)=>{let{kind:r,elements:o}=i;return{kind:r,elements:o,finisher(n){customElements.define(e,n)}}})(s,t);var _e=(s,t)=>t.kind==="method"&&t.descriptor&&!("value"in t.descriptor)?{...t,finisher(e){e.createProperty(t.key,s)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:t.key,initializer(){typeof t.initializer=="function"&&(this[t.key]=t.initializer.call(this))},finisher(e){e.createProperty(t.key,s)}},ye=(s,t,e)=>{t.constructor.createProperty(e,s)};function oe(s){return(t,e)=>e!==void 0?ye(s,t,e):_e(s,t)}function kr(s){return oe({...s,state:!0})}var g=({finisher:s,descriptor:t})=>(e,i)=>{var r;if(i===void 0){let o=(r=e.originalKey)!==null&&r!==void 0?r:e.key,n=t!=null?{kind:"method",placement:"prototype",key:o,descriptor:t(e.key)}:{...e,key:o};return s!=null&&(n.finisher=function(a){s(a,o)}),n}{let o=e.constructor;t!==void 0&&Object.defineProperty(e,i,t(i)),s?.(o,i)}};function Mr(s){return g({finisher:(t,e)=>{Object.assign(t.prototype[e],s)}})}function Vr(s,t){return g({descriptor:e=>{let i={get(){var r,o;return(o=(r=this.renderRoot)===null||r===void 0?void 0:r.querySelector(s))!==null&&o!==void 0?o:null},enumerable:!0,configurable:!0};if(t){let r=typeof e=="symbol"?Symbol():"__"+e;i.get=function(){var o,n;return this[r]===void 0&&(this[r]=(n=(o=this.renderRoot)===null||o===void 0?void 0:o.querySelector(s))!==null&&n!==void 0?n:null),this[r]}}return i}})}function jr(s){return g({descriptor:t=>({get(){var e,i;return(i=(e=this.renderRoot)===null||e===void 0?void 0:e.querySelectorAll(s))!==null&&i!==void 0?i:[]},enumerable:!0,configurable:!0})})}function zr(s){return g({descriptor:t=>({async get(){var e;return await this.updateComplete,(e=this.renderRoot)===null||e===void 0?void 0:e.querySelector(s)},enumerable:!0,configurable:!0})})}var wt,Ae=((wt=window.HTMLSlotElement)===null||wt===void 0?void 0:wt.prototype.assignedElements)!=null?(s,t)=>s.assignedElements(t):(s,t)=>s.assignedNodes(t).filter(e=>e.nodeType===Node.ELEMENT_NODE);function ne(s){let{slot:t,selector:e}=s??{};return g({descriptor:i=>({get(){var r;let o="slot"+(t?`[name=${t}]`:":not([name])"),n=(r=this.renderRoot)===null||r===void 0?void 0:r.querySelector(o),a=n!=null?Ae(n,s):[];return e?a.filter(l=>l.matches(e)):a},enumerable:!0,configurable:!0})})}function Qr(s,t,e){let i,r=s;return typeof s=="object"?(r=s.slot,i=s):i={flatten:t},e?ne({slot:r,flatten:t,selector:e}):g({descriptor:o=>({get(){var n,a;let l="slot"+(r?`[name=${r}]`:":not([name])"),c=(n=this.renderRoot)===null||n===void 0?void 0:n.querySelector(l);return(a=c?.assignedNodes(i))!==null&&a!==void 0?a:[]},enumerable:!0,configurable:!0})})}export{P as AsyncDirective,W as AsyncReplaceDirective,I as CSSResult,$ as Directive,D as LitElement,_ as PartType,C as ReactiveElement,qe as TemplateResultType,H as UnsafeHTMLDirective,bt as UntilDirective,Re as UpdatingElement,Ue as _$LE,Wt as _$LH,pt as adoptStyles,fs as asyncAppend,cs as asyncReplace,Es as cache,Ts as choose,Os as classMap,ct as clearPart,Ti as createRef,le as css,Pr as customElement,vt as defaultConverter,f as directive,Mr as eventOptions,z as getCommittedValue,Q as getCompatibleStyle,ze as getDirectiveClass,js as guard,Se as html,Ys as ifDefined,x as insertPart,Qt as isCompiledTemplateResult,Ge as isDirectiveResult,Jt as isPrimitive,Oe as isServer,lt as isSingleExpression,Ct as isTemplateResult,Xs as join,oi as keyed,pi as live,_i as map,p as noChange,Nt as notEqual,u as nothing,oe as property,Vr as query,jr as queryAll,ne as queryAssignedElements,Qr as queryAssignedNodes,zr as queryAsync,xi as range,Ri as ref,at as removePart,nt as render,Li as repeat,E as setChildPartValue,w as setCommittedValue,kr as state,zi as styleMap,J as supportsAdoptingStyleSheets,be as svg,Xi as templateContent,Rt as unsafeCSS,or as unsafeHTML,dr as unsafeSVG,Ar as until,Er as when}; -/*! Bundled license information: - -@lit/reactive-element/css-tag.js: - (** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/reactive-element.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/lit-html.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-element/lit-element.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/is-server.js: - (** - * @license - * Copyright 2022 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directive-helpers.js: - (** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directive.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/async-directive.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/private-async-helpers.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/async-replace.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/async-append.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/cache.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/choose.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/class-map.js: - (** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/guard.js: - (** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/if-defined.js: - (** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/join.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/keyed.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/live.js: - (** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/map.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/range.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/ref.js: - (** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/repeat.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/style-map.js: - (** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/template-content.js: - (** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/unsafe-html.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/unsafe-svg.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/until.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -lit-html/directives/when.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/custom-element.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/property.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/state.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/base.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/event-options.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/query.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/query-all.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/query-async.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/query-assigned-elements.js: - (** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) - -@lit/reactive-element/decorators/query-assigned-nodes.js: - (** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *) -*/ From 3ae4dbb5f3cc5136ddb97808444dcd7227d597d2 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Mon, 23 Sep 2024 14:48:45 +0530 Subject: [PATCH 09/11] fix(fstab): mount url pointed to students --- fstab.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fstab.yaml b/fstab.yaml index 9e756ec..99399aa 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,2 +1,2 @@ mountpoints: - /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/students/sandbox + /: https://adobe.sharepoint.com/:f:/r/sites/adobecom/CC/students From 31b6ee3db0d3838783a5bf3c26526439d92c2412 Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Wed, 25 Sep 2024 14:18:39 +0530 Subject: [PATCH 10/11] update(doc): updated readme,pr-template md --- .github/pull_request_template.md | 2 +- README.md | 12 ++++++++++++ wtr | 0 3 files changed, 13 insertions(+), 1 deletion(-) delete mode 100644 wtr diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f815bee..b80b7f4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,4 +4,4 @@ Resolves: [MWPW-NUMBER](https://jira.corp.adobe.com/browse/MWPW-NUMBER) **Test URLs:** - Before: https://main--adobe-students--adobecom.hlx.live/?martech=off -- After: https://--adobe-students--adobecom.hlx.live/?martech=off +- After: https://feat-branch--adobe-students--adobecom.hlx.live/?martech=off diff --git a/README.md b/README.md index f664252..6116b41 100644 --- a/README.md +++ b/README.md @@ -47,3 +47,15 @@ If you need to lint just one file, you can run: ```sh npx eslint file1.js ``` + +## Documentations that might help + Development Process on Adobe Students Milo [wiki](https://github.com/adobecom/adobe-students/wiki) + + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started. + +Please adhere to this project's `code of conduct`. + +## GitHub Discussions + Join the conversation in our [GitHub Discussions](https://github.com/orgs/adobecom/discussions). diff --git a/wtr b/wtr deleted file mode 100644 index e69de29..0000000 From fc8e11e25f01fb213ddd7346141cabe6d66c307a Mon Sep 17 00:00:00 2001 From: sivasadobe Date: Wed, 25 Sep 2024 14:23:13 +0530 Subject: [PATCH 11/11] fix: fixed readme.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6116b41..3fa5769 100644 --- a/README.md +++ b/README.md @@ -51,11 +51,10 @@ npx eslint file1.js ## Documentations that might help Development Process on Adobe Students Milo [wiki](https://github.com/adobecom/adobe-students/wiki) +## GitHub Discussions + Join the conversation on [GitHub Discussions](https://github.com/orgs/adobecom/discussions). ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started. Please adhere to this project's `code of conduct`. - -## GitHub Discussions - Join the conversation in our [GitHub Discussions](https://github.com/orgs/adobecom/discussions).