diff --git a/.gitignore b/.gitignore
index 4a0603c6053..e5b88ccc215 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,7 @@ scripts/check-releases.html
# TypeScript output
tsconfig.build.tsbuildinfo
+
+# API docs generated files
+api-docs/dist
+api-docs/content/elements
diff --git a/api-docs/.eleventy.js b/api-docs/.eleventy.js
new file mode 100644
index 00000000000..13d7b121805
--- /dev/null
+++ b/api-docs/.eleventy.js
@@ -0,0 +1,75 @@
+import syntaxHighlightPlugin from '@11ty/eleventy-plugin-syntaxhighlight';
+import markdownIt from 'markdown-it';
+import markdownItAnchor from 'markdown-it-anchor';
+import { parse } from 'node-html-parser';
+
+export default function (config) {
+ // See https://www.11ty.dev/docs/config/
+ config.setInputDirectory('content');
+ config.setOutputDirectory('dist');
+ config.setDataDirectory('../_data');
+ config.setIncludesDirectory('../_includes');
+
+ // See https://www.11ty.dev/docs/languages/markdown/
+ config.setLibrary(
+ 'md',
+ markdownIt({
+ html: true,
+ linkify: true,
+ }).use(markdownItAnchor, {
+ slugify: config.getFilter('slugify'),
+ level: [1, 2, 3, 4],
+ permalink: markdownItAnchor.permalink.ariaHidden({
+ placement: 'after',
+ class: 'anchor-link',
+ symbol: '#',
+ }),
+ }),
+ );
+
+ config.addPlugin(syntaxHighlightPlugin, {
+ preAttributes: {
+ class: ({ language }) => `code-block language-${language}`,
+ },
+ });
+
+ config.addPassthroughCopy('css');
+ config.addPassthroughCopy('js');
+ config.addPassthroughCopy({ img: '/' });
+
+ // Copy markdown files for "view as MD"
+ config.addPassthroughCopy({ 'content/elements': 'markdown' });
+
+ config.addCollection('elements', (api) => {
+ return api.getFilteredByGlob('./content/elements/*.md').sort((a, b) => {
+ return a.data.title.localeCompare(b.data.title);
+ });
+ });
+
+ // Table of contents
+ config.addFilter('toc', (content) => {
+ const html = parse(content);
+ const headings = html.querySelectorAll('h1, h2, h3, h4');
+ const toc = headings.map((heading) => {
+ // Remove anchor links
+ heading.querySelectorAll('[aria-hidden=true]').forEach((el) => el.remove());
+
+ const id = heading.attributes.id;
+ const text = heading.innerText;
+ const level = parseInt(heading.tagName.replace('H', ''), 10);
+
+ return { id, text, level };
+ });
+
+ // The page title already uses an h1, so it's recommended to start with h2
+ // in the content. If the first heading is an h2 or higher, we'll adjust the
+ // levels to start with level 1 to avoid unnecessary indentation in the TOC.
+ const minLevel = Math.min(...toc.map((item) => item.level));
+ if (minLevel > 1)
+ toc.forEach((item) => {
+ item.level -= minLevel - 1;
+ });
+
+ return toc;
+ });
+}
diff --git a/api-docs/_data/metadata.json b/api-docs/_data/metadata.json
new file mode 100644
index 00000000000..bac63c92e33
--- /dev/null
+++ b/api-docs/_data/metadata.json
@@ -0,0 +1,4 @@
+{
+ "title": "Vaadin WC API reference",
+ "description": "Vaadin web components API documentation"
+}
diff --git a/api-docs/_includes/layout.njk b/api-docs/_includes/layout.njk
new file mode 100644
index 00000000000..0e987be9216
--- /dev/null
+++ b/api-docs/_includes/layout.njk
@@ -0,0 +1,57 @@
+---
+toc: true
+---
+
+
+
+
+
+
+
+ {{ title or metadata.title }}
+
+
+
+
+
+
+
+ {% include "partials/header.njk" %}
+
+
+ {% include "partials/navigation.njk" %}
+
+
+
+
+
+
+
+
+ {{ content | safe }}
+
+
+
+
+ {% if toc %}
+
+ {% include 'partials/toc.njk' %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
diff --git a/api-docs/_includes/partials/actions.njk b/api-docs/_includes/partials/actions.njk
new file mode 100644
index 00000000000..67ca38e3101
--- /dev/null
+++ b/api-docs/_includes/partials/actions.njk
@@ -0,0 +1,20 @@
+
diff --git a/api-docs/_includes/partials/header.njk b/api-docs/_includes/partials/header.njk
new file mode 100644
index 00000000000..ef941ac39f8
--- /dev/null
+++ b/api-docs/_includes/partials/header.njk
@@ -0,0 +1,12 @@
+
diff --git a/api-docs/_includes/partials/navigation.njk b/api-docs/_includes/partials/navigation.njk
new file mode 100644
index 00000000000..dd9da68471b
--- /dev/null
+++ b/api-docs/_includes/partials/navigation.njk
@@ -0,0 +1,21 @@
+
+
+
diff --git a/api-docs/_includes/partials/toc.njk b/api-docs/_includes/partials/toc.njk
new file mode 100644
index 00000000000..e39ae1c0501
--- /dev/null
+++ b/api-docs/_includes/partials/toc.njk
@@ -0,0 +1,19 @@
+
diff --git a/api-docs/content/content.json b/api-docs/content/content.json
new file mode 100644
index 00000000000..5a0f24f82df
--- /dev/null
+++ b/api-docs/content/content.json
@@ -0,0 +1,3 @@
+{
+ "layout": "layout.njk"
+}
diff --git a/api-docs/content/index.md b/api-docs/content/index.md
new file mode 100644
index 00000000000..4cb1220f6c1
--- /dev/null
+++ b/api-docs/content/index.md
@@ -0,0 +1,13 @@
+---
+title: Vaadin WC API Reference
+permalink: /
+toc: false
+---
+
+This is the API reference for the Vaadin Web Components. It contains information about the elements, their properties, methods, and events.
+
+This reference is intended for developers using either the plain Web Components, or their React wrappers, with either Javascript or TypeScript.
+
+The API documentation is generated from JSDoc annotations in the components source files. If you want to contribute to the documentation, please check corresponding packages.
+
+For the full component documentation, including examples and guides, please refer to the [Vaadin Components documentation](https://vaadin.com/docs/latest/components).
diff --git a/api-docs/css/index.css b/api-docs/css/index.css
new file mode 100644
index 00000000000..69bd88c2c6a
--- /dev/null
+++ b/api-docs/css/index.css
@@ -0,0 +1,813 @@
+:root {
+ --font-family-default:
+ ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Roboto', 'Segoe UI', Helvetica, Arial, sans-serif,
+ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
+ --font-family-mono:
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
+ --font-size-xs: 0.75rem;
+ --font-size-sm: 0.875rem;
+ --font-size-fluid-x2: clamp(0.79rem, calc(0.76rem + 0.17vw), 0.89rem);
+ --font-size-fluid-x1: clamp(0.89rem, calc(0.85rem + 0.19vw), 1rem);
+ --font-size-fluid-0: clamp(1rem, calc(0.96rem + 0.22vw), 1.13rem);
+ --font-size-fluid-1: clamp(1.13rem, calc(1.08rem + 0.24vw), 1.27rem);
+ --font-size-fluid-2: clamp(1.27rem, calc(1.21rem + 0.28vw), 1.42rem);
+ --font-size-fluid-3: clamp(1.42rem, calc(1.36rem + 0.31vw), 1.6rem);
+ --font-size-fluid-4: clamp(1.6rem, calc(1.53rem + 0.35vw), 1.8rem);
+ --font-size-fluid-5: clamp(1.8rem, calc(1.72rem + 0.39vw), 2.03rem);
+ --radius-sm: 4px;
+ --radius-lg: 8px;
+ --space-1: 4px;
+ --space-2: 8px;
+ --space-3: 12px;
+ --space-4: 16px;
+ --space-5: 24px;
+ --space-6: 36px;
+ --space-7: 48px;
+ --color-backdrop: var(--light, #00000040) var(--dark, #00000080);
+ --color-background: var(--light, #fff) var(--dark, #111113);
+ --color-surface: var(--light, #fff) var(--dark, #111113);
+ --color-primary-bg: var(--light, #e1f6fd) var(--dark, #112840);
+ --color-primary-bg-hover: var(--light, #d1f0fa) var(--dark, #113555);
+ --color-primary-bg-active: var(--light, #bee7f5) var(--dark, #154467);
+ --color-primary-text: var(--light, #1a81fa) var(--dark, #75c7f0);
+ --color-neutral-bg-subtle: var(--light, #f9f9fb) var(--dark, #18191b);
+ --color-neutral-bg: var(--light, #f0f0f3) var(--dark, #212225);
+ --color-neutral-bg-hover: var(--light, #e8e8ec) var(--dark, #272a2d);
+ --color-neutral-bg-active: var(--light, #e0e1e6) var(--dark, #2e3135);
+ --color-neutral-line-weak: var(--light, #e0e1e6) var(--dark, #2e3135);
+ --color-neutral-line: var(--light, #d9d9e0) var(--dark, #363a3f);
+ --color-neutral-border: var(--light, #cdced6) var(--dark, #43484e);
+ --color-neutral-text: var(--light, #60646c) var(--dark, #b0b4ba);
+ --color-neutral-text-contrast: var(--light, #1c2024) var(--dark, #edeef0);
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ color-scheme: dark;
+ --light: ;
+ --dark: initial;
+ }
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color-scheme: light;
+ --light: initial;
+ --dark: ;
+ }
+}
+
+*,
+::before,
+::after {
+ box-sizing: border-box;
+}
+
+* {
+ margin: 0;
+}
+
+body {
+ background-color: var(--color-background);
+ color: var(--color-neutral-text-contrast);
+ font-family: var(--font-family-default);
+ -webkit-font-smoothing: antialiased;
+ line-height: 1.5;
+}
+
+input,
+button {
+ font: inherit;
+}
+
+p,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ overflow-wrap: break-word;
+ scroll-margin-block-start: 6rem;
+}
+
+small {
+ color: var(--color-neutral-text);
+ font-weight: 400;
+ font-size: var(--font-size-fluid-x1);
+}
+
+:where(ul[role]) {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+hr {
+ background-color: var(--color-neutral-border);
+ border: none;
+ block-size: 1px;
+ margin: 0;
+}
+
+/* Drawer toggle */
+.icon-btn {
+ padding: var(--space-2);
+ border-radius: var(--rounded-full);
+ color: var(--color-primary-text);
+ cursor: pointer;
+ background: none;
+ border: 0;
+ flex-shrink: 0;
+ justify-content: center;
+ align-items: center;
+ margin: 0;
+ transition: all 0.3s;
+ display: none;
+}
+
+.icon-btn:hover,
+.icon-btn:focus-visible {
+ background-color: var(--color-neutral-bg-hover);
+}
+
+.icon-btn:active {
+ background-color: var(--color-neutral-bg-active);
+}
+
+/* Header */
+.app-header {
+ z-index: 3;
+ gap: var(--space-3);
+ block-size: 4rem;
+ padding-block: var(--space-2);
+ padding-inline: var(--space-4);
+ border-block-end: 1px solid var(--color-neutral-line);
+ background-color: var(--color-surface);
+ align-items: center;
+ transition: box-shadow 0.2s ease-in-out;
+ display: flex;
+ position: sticky;
+ inset-block-start: 0;
+}
+
+.app-header > :not(.app-header__title) {
+ flex-shrink: 0;
+}
+
+.app-header__title {
+ margin-inline: var(--space-3) auto;
+ outline-offset: var(--space-2);
+ color: var(--color-neutral-text-contrast);
+ font-size: var(--font-size-fluid-0);
+ font-weight: 700;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ text-decoration: none;
+ overflow: hidden;
+}
+
+.app-header__title:hover {
+ color: var(--color-primary-text);
+}
+
+/* Main layout */
+.app-layout__wrapper {
+ display: grid;
+ grid-template-columns: 250px minmax(0, 1fr);
+}
+
+.app-layout__sidebar {
+ background-color: var(--color-backdrop);
+ z-index: 2;
+ inset: 4rem 0 0;
+ block-size: calc(100vh - 4rem);
+ overflow: hidden;
+ position: sticky;
+}
+
+.app-layout__sidebar-inner {
+ min-block-size: 100%;
+ inline-size: 100%;
+ padding-block: var(--space-4);
+ background-color: var(--color-surface);
+ box-shadow:
+ 0 4px 12px #64646426,
+ 0 0 0 1px #0000000d;
+ max-inline-size: 250px;
+ overflow: auto;
+ overscroll-behavior: contain;
+ height: 100%;
+}
+
+@media (max-width: 1199px) {
+ .icon-btn {
+ display: flex;
+ }
+
+ .app-layout__wrapper {
+ display: block;
+ }
+
+ .app-layout__sidebar {
+ display: none;
+ }
+
+ #navigation:checked + .app-layout__sidebar {
+ display: block;
+ position: fixed;
+ }
+}
+
+.page__main {
+ max-inline-size: 100%;
+ padding-inline: var(--space-4);
+ padding-block: var(--space-6);
+ margin-inline: auto;
+ scroll-margin-block-start: 6rem;
+}
+
+.page__panel {
+ padding-block: var(--space-6);
+ padding-inline: var(--space-3);
+ overflow: auto;
+ overscroll-behavior: contain;
+}
+
+.page__header {
+ margin-block-end: var(--space-6);
+}
+
+.page__title {
+ font-size: var(--font-size-fluid-5);
+ line-height: 1.3;
+ margin-block-end: var(--space-3);
+}
+
+.page__description {
+ font-size: var(--font-size-fluid-1);
+ margin-block-end: var(--space-6);
+ line-height: 1.3;
+}
+
+@media (min-width: 1024px) {
+ .page {
+ grid-template-columns: minmax(0, 1fr) 350px;
+ display: grid;
+ }
+
+ .page__main {
+ inline-size: 72ch;
+ }
+
+ .page__header {
+ display: flex;
+ justify-content: space-between;
+ align-items: baseline;
+ }
+
+ .page__title {
+ margin-block-end: 0;
+ }
+
+ .page__panel {
+ z-index: 1;
+ block-size: calc(100vh - 4rem);
+ position: sticky;
+ inset: 0;
+ inset-block-start: 4rem;
+ }
+}
+
+/* Page actions */
+.actions {
+ display: flex;
+ gap: var(--space-4);
+ align-items: center;
+ font-size: var(--font-size-sm);
+}
+
+.actions__btn {
+ display: flex;
+ align-items: center;
+ padding: var(--space-1);
+ gap: var(--space-1);
+ border-radius: var(--radius-sm);
+ cursor: pointer;
+ color: var(--color-primary-text);
+ background: none;
+ border: none;
+ text-decoration: none;
+}
+
+.actions__btn:hover {
+ background: var(--color-neutral-bg-hover);
+}
+
+/* Content */
+.article > * + * {
+ margin-block: var(--flow-space, 1.5em) 0;
+}
+
+.article h1 + *,
+.article h2 + *,
+.article h3 + *,
+.article h4 + *,
+.article h5 + *,
+.article h6 + *,
+.article p + ul,
+.article p + ol {
+ --flow-space: 0.75em;
+}
+
+.article p {
+ line-height: 1.6;
+}
+
+.article ul {
+ list-style-type: disc;
+}
+
+.article ul,
+.article ol {
+ padding-inline-start: var(--space-4);
+}
+
+.article ul ul,
+.article ul ol,
+.article ol ul,
+.article ol ol {
+ margin-block-start: 0.3em;
+}
+
+.article ul[data-link-list] a:not(:hover),
+.article ol[data-link-list] a:not(:hover) {
+ text-decoration: none;
+}
+
+.article li + li {
+ margin-block-start: 0.3em;
+}
+
+.article h1 {
+ font-size: var(--font-size-fluid-4);
+}
+
+.article h2 {
+ font-size: var(--font-size-fluid-3);
+}
+
+.article h3 {
+ font-size: var(--font-size-fluid-2);
+}
+
+.article h4 {
+ font-size: var(--font-size-fluid-1);
+}
+
+.article h5 {
+ font-size: var(--font-size-fluid-0);
+}
+
+.article h6 {
+ font-size: var(--font-size-fluid-x2);
+ text-transform: uppercase;
+ letter-spacing: 0.01em;
+}
+
+.article h1,
+.article h2,
+.article h3,
+.article h4,
+.article h5,
+.article h6 {
+ line-height: 1.25;
+}
+
+.article a {
+ color: var(--color-primary-text);
+ text-underline-offset: 5px;
+ text-decoration-style: dashed;
+ text-decoration-thickness: 1px;
+}
+
+.article a:hover {
+ text-decoration-style: solid;
+}
+
+.article table {
+ border-block-start: 1px solid var(--color-neutral-border);
+ border-collapse: collapse;
+ inline-size: 100%;
+}
+
+.article table td,
+.article table th {
+ border-bottom: 1px solid var(--color-neutral-border);
+ padding-inline: var(--space-1);
+}
+
+.article table td {
+ padding-block: var(--space-3);
+}
+
+.article table th {
+ padding-block: var(--space-2);
+ font-size: var(--font-size-xs);
+ font-weight: 700;
+ text-transform: uppercase;
+ letter-spacing: 0.01em;
+}
+
+.article blockquote {
+ border-inline-start: 3px solid var(--color-neutral-line);
+ padding-inline-start: var(--space-4);
+}
+
+.article blockquote p {
+ color: var(--color-neutral-text);
+ font-style: italic;
+}
+
+.article pre,
+.article code {
+ font-family: var(--font-family-mono);
+ line-height: 1.5;
+}
+
+.article pre {
+ text-align: start;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ tab-size: 2;
+ hyphens: none;
+ border-radius: var(--radius-lg);
+ background-color: var(--color-neutral-bg-subtle);
+ direction: ltr;
+ padding: 1em;
+ font-size: 14px;
+ line-height: 1.375;
+ overflow: auto;
+ box-shadow: 1px 1px #0000000d;
+}
+
+.article code {
+ border-radius: var(--radius-sm);
+ background-color: var(--color-neutral-bg);
+ padding: 0.2em 0.3em;
+ font-size: 0.9em;
+}
+
+.article pre code {
+ font-size: inherit;
+ word-break: break-all;
+ padding: 0;
+ background-color: #0000 !important;
+}
+
+.article .anchor-link {
+ outline-offset: 4px;
+ color: #0000;
+ margin-inline-start: 0.1em;
+ text-decoration: none;
+ transition: color 0.3s;
+}
+
+.article :hover > .anchor-link,
+.article .anchor-link:focus {
+ color: var(--color-neutral-text);
+}
+
+/* Navigation */
+.nav-list__link-with-toggle {
+ grid-template-columns: minmax(0, 1fr);
+ display: grid;
+}
+
+.nav-list__link-with-toggle > * {
+ grid-area: 1 / 1;
+}
+
+.nav-list__toggle {
+ appearance: none;
+ cursor: pointer;
+ background: none;
+ border: 0;
+ inline-size: 100%;
+}
+
+.nav-list__toggle:hover {
+ background-color: var(--color-neutral-bg);
+}
+
+.nav-list__toggle svg {
+ opacity: 0.75;
+ margin-inline-start: auto;
+}
+
+.nav-list__toggle[aria-expanded='true'] svg {
+ transform: rotate(90deg);
+}
+
+.nav-list__link {
+ gap: var(--space-2);
+ padding-block: var(--space-2);
+ padding-inline: calc(var(--space-3) + var(--nav-list-level, 0) * var(--space-4)) var(--space-3);
+ border-radius: var(--radius-lg);
+ color: var(--color-neutral-text);
+ align-items: center;
+ text-decoration: none;
+ display: flex;
+}
+
+.nav-list__link + .nav-list__toggle {
+ justify-self: end;
+ inline-size: auto;
+}
+
+.nav-list__link:hover {
+ background-color: var(--color-neutral-bg);
+}
+
+.nav-list__link[aria-current='page'] {
+ background-color: var(--color-primary-bg);
+}
+
+.nav-list__link[aria-current='page'] + .nav-list__toggle:hover {
+ background-color: var(--color-primary-bg-hover);
+}
+
+.nav-list__link span {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.nav-list__link svg {
+ opacity: 0.8;
+ stroke-width: 1.75px;
+}
+
+.nav-section {
+ padding-inline: var(--space-4);
+ margin-block-start: var(--space-7);
+}
+
+.nav-section:first-of-type,
+.nav-section.nav-section--continued {
+ margin-block-start: var(--space-4);
+}
+
+.nav-section:last-of-type {
+ margin-block-end: var(--space-4);
+}
+
+.nav-section__title {
+ font-size: var(--font-size-sm);
+ font-weight: 700;
+ color: var(--color-neutral-text);
+ text-transform: uppercase;
+ letter-spacing: 0.02em;
+ margin-block-end: var(--space-2);
+ margin-inline-start: var(--space-3);
+}
+
+/* TOC */
+.toc__label {
+ color: var(--color-neutral-text);
+ font-size: var(--font-size-sm);
+ font-weight: 700;
+ margin: 0;
+ margin-block-end: var(--space-2);
+}
+
+.toc__list {
+ padding-inline-start: var(--space-4);
+ position: relative;
+}
+
+.toc__list::before {
+ content: '';
+ position: absolute;
+ inset-inline-start: 0;
+ background: var(--color-neutral-line-weak);
+ inline-size: 1px;
+ inset-block: 0;
+}
+
+.toc__item {
+ margin-inline-start: calc((var(--level, 1) - 1) * var(--space-4));
+}
+
+.toc__link {
+ padding-block: var(--space-1);
+ color: var(--color-neutral-text);
+ font-size: var(--font-size-sm);
+ font-weight: 400;
+ text-underline-offset: 5px;
+ text-decoration: none;
+ display: inline-block;
+}
+
+.toc__link:hover {
+ text-decoration: underline;
+}
+
+/* Drawer toggle checkbox */
+.visually-hidden {
+ white-space: nowrap;
+ position: absolute;
+ clip: rect(1px, 1px, 1px, 1px) !important;
+ clip-path: inset(50%) !important;
+ border: 0 !important;
+ block-size: 1px !important;
+ inline-size: 1px !important;
+ margin: -1px !important;
+ padding: 0 !important;
+ overflow: hidden !important;
+}
+
+/* Prism theme */
+code[class*='language-'],
+pre[class*='language-'] {
+ background: var(--color-neutral-bg-subtle);
+ color: var(--color-neutral-text);
+ font-family: var(--font-family-mono);
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ line-height: 1.5;
+ tab-size: 2;
+ hyphens: none;
+}
+
+/* Selection */
+code[class*='language-']::selection,
+code[class*='language-'] *::selection,
+pre[class*='language-'] *::selection {
+ background: hsl(230, 1%, 90%);
+ color: inherit;
+}
+
+.token.comment,
+.token.prolog,
+.token.cdata {
+ color: hsl(230, 4%, 64%);
+}
+
+.token.doctype,
+.token.punctuation,
+.token.entity {
+ color: hsl(230, 8%, 24%);
+}
+
+.token.attr-name,
+.token.class-name,
+.token.boolean,
+.token.constant,
+.token.number,
+.token.atrule {
+ color: hsl(35, 99%, 36%);
+}
+
+.token.keyword {
+ color: hsl(301, 63%, 40%);
+}
+
+.token.property,
+.token.tag,
+.token.symbol,
+.token.deleted,
+.token.important {
+ color: hsl(5, 74%, 59%);
+}
+
+.token.selector,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted,
+.token.regex,
+.token.attr-value,
+.token.attr-value > .token.punctuation {
+ color: hsl(119, 34%, 47%);
+}
+
+.token.variable,
+.token.operator,
+.token.function {
+ color: hsl(221, 87%, 60%);
+}
+
+.token.url {
+ color: hsl(198, 99%, 37%);
+}
+
+.token.attr-value > .token.punctuation.attr-equals,
+.token.special-attr > .token.attr-value > .token.value.css {
+ color: hsl(230, 8%, 24%);
+}
+
+.language-css .token.selector {
+ color: hsl(5, 74%, 59%);
+}
+
+.language-css .token.property {
+ color: hsl(230, 8%, 24%);
+}
+
+.language-css .token.function,
+.language-css .token.url > .token.function {
+ color: hsl(198, 99%, 37%);
+}
+
+.language-css .token.url > .token.string.url {
+ color: hsl(119, 34%, 47%);
+}
+
+.language-css .token.important,
+.language-css .token.atrule .token.rule {
+ color: hsl(301, 63%, 40%);
+}
+
+.language-javascript .token.operator {
+ color: hsl(301, 63%, 40%);
+}
+
+.language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation {
+ color: hsl(344, 84%, 43%);
+}
+
+.language-json .token.operator {
+ color: hsl(230, 8%, 24%);
+}
+
+.language-json .token.null.keyword {
+ color: hsl(35, 99%, 36%);
+}
+
+.token.bold {
+ font-weight: bold;
+}
+
+.token.comment,
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.namespace {
+ opacity: 0.8;
+}
+
+/* Copy code */
+.code-block {
+ position: relative;
+}
+
+.code-block__copy {
+ position: absolute;
+ inset-block-start: var(--space-2);
+ inset-inline-end: var(--space-2);
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: none;
+ padding: var(--space-2);
+ border-radius: var(--radius-lg);
+ background: var(--color-neutral-bg-subtle);
+ color: var(--color-neutral-text);
+ cursor: pointer;
+ transition: all 300ms ease;
+}
+
+.code-block:not(:hover) .code-block__copy:not(:focus) {
+ opacity: 0;
+}
+
+.code-block__copy:hover,
+.code-block__copy:focus {
+ background-color: var(--color-neutral-bg);
+}
+
+.code-block__copy svg {
+ width: 1.125em;
+ height: 1.125em;
+}
+
+.code-block__copy:not(.copied) svg:first-child,
+.code-block__copy.copied svg:last-child {
+ display: block;
+}
+
+.code-block__copy:not(.copied) svg:last-child,
+.code-block__copy.copied svg:first-child {
+ display: none;
+}
diff --git a/api-docs/generate.ts b/api-docs/generate.ts
new file mode 100644
index 00000000000..f46e59dc47d
--- /dev/null
+++ b/api-docs/generate.ts
@@ -0,0 +1,167 @@
+import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
+import { join, resolve } from 'path';
+import { TypeContext } from './types.ts';
+
+function sortByName(items: any[]) {
+ return items.sort((a, b) => a.name.localeCompare(b.name));
+}
+
+function filterPublicApi(items: any[]) {
+ return sortByName(items.filter((item) => item.privacy === 'public'));
+}
+
+function sanitizeDescription(description: string) {
+ // Fix links to other elements
+ description = description.replace(/#\/elements\//gu, '/elements/');
+ // Fix links to properties (e.g. #property-dataProvider to #dataprovider)
+ description = description.replace(/#property-([a-zA-Z]+)/gu, (_, name) => `#${name.toLowerCase()}`);
+ // Fix links to methods (e.g. #method-updateConfiguration to #updateconfiguration)
+ description = description.replace(/#method-([a-zA-Z]+)/gu, (_, name) => `#${name.toLowerCase()}`);
+
+ return description;
+}
+
+function renderRelatedTypes(typeContext: TypeContext, typeString: string) {
+ const relatedTypes = typeContext.findRelatedTypes(typeString);
+
+ if (relatedTypes.length > 0) {
+ const typeNames = relatedTypes.map((type) => `[${type.name}](#${type.name.toLowerCase()})`).join(', ');
+ return `See also: ${typeNames}\n\n`;
+ }
+
+ return '';
+}
+
+function renderElement(element: any) {
+ const typeContext = new TypeContext(element);
+
+ let mdContent = '';
+
+ // Front matter
+ mdContent += `---\n`;
+ mdContent += `title: ${element.name}\n`;
+ mdContent += `description: ${element.name}\n`;
+ mdContent += `element: ${element.tagname}\n`;
+ mdContent += `---\n\n`;
+
+ // Description
+ if (element.description) {
+ mdContent += `## Description\n\n`;
+ mdContent += `${sanitizeDescription(element.description)}\n\n`;
+ }
+
+ // Properties
+ const publicProperties = filterPublicApi(element.properties);
+ if (publicProperties.length > 0) {
+ mdContent += `## Properties\n\n`;
+
+ publicProperties.forEach((prop: any) => {
+ const propertyType = typeContext.getMemberType(prop.name);
+ mdContent += `### ${prop.name}\n\n`;
+ mdContent += `**Type:** \`${propertyType}\`\n\n`;
+ mdContent += `${sanitizeDescription(prop.description)}\n\n`;
+ mdContent += renderRelatedTypes(typeContext, propertyType);
+ });
+ }
+
+ // Methods
+ const publicMethods = filterPublicApi(element.methods);
+ if (publicMethods.length > 0) {
+ mdContent += `## Methods\n\n`;
+
+ publicMethods.forEach((method: any) => {
+ const methodType = typeContext.getMemberType(method.name);
+ mdContent += `### ${method.name}\n\n`;
+ mdContent += `**Type:** \`${methodType}\`\n\n`;
+ mdContent += `${sanitizeDescription(method.description)}\n\n`;
+ });
+ }
+
+ // Static methods
+ const publicStaticMethods = filterPublicApi(element.staticMethods);
+ if (publicStaticMethods.length > 0) {
+ mdContent += `## Static Methods\n\n`;
+
+ publicStaticMethods.forEach((method: any) => {
+ const methodType = typeContext.getMemberType(method.name);
+ mdContent += `### ${method.name}\n\n`;
+ mdContent += `**Type:** \`${methodType}\`\n\n`;
+ mdContent += `${sanitizeDescription(method.description)}\n\n`;
+ });
+ }
+
+ // Events
+ if (element.events && element.events.length > 0) {
+ mdContent += `## Events\n\n`;
+
+ // Custom events
+ sortByName(element.events).forEach((event: any) => {
+ const eventType = typeContext.findEventType(event.name);
+ const eventTypeString = eventType ? `[${eventType.name}](#${eventType.name.toLowerCase()})` : '`CustomEvent`';
+ mdContent += `### ${event.name}\n\n`;
+ mdContent += `**Type:** ${eventTypeString}\n\n`;
+ mdContent += `${sanitizeDescription(event.description)}\n\n`;
+ });
+ }
+
+ // Related types
+ const relatedTypes = typeContext.getRelatedTypes();
+ if (relatedTypes.length > 0) {
+ mdContent += `## Types\n\n`;
+ sortByName(relatedTypes).forEach((type) => {
+ mdContent += `### ${type.name}\n\n`;
+ mdContent += '```ts\n';
+ mdContent += `${type.declarationText.trim()}\n`;
+ mdContent += '```\n\n';
+ });
+ mdContent += '\n';
+ }
+
+ return mdContent;
+}
+
+function generate() {
+ const schemaFilePath = process.argv[2];
+ if (!schemaFilePath) {
+ console.error('Usage: node generate.ts ');
+ process.exit(1);
+ }
+
+ const absoluteSchemaPath = resolve(schemaFilePath);
+ let schema;
+ try {
+ const schemaFileContent = readFileSync(absoluteSchemaPath, 'utf-8');
+ schema = JSON.parse(schemaFileContent);
+ } catch (error) {
+ console.error(`Error reading or parsing schema file ${absoluteSchemaPath}:`, error);
+ process.exit(1);
+ }
+
+ const docsPath = resolve(process.cwd(), 'content', 'elements');
+ if (!existsSync(docsPath)) {
+ try {
+ mkdirSync(docsPath, { recursive: true });
+ } catch (error) {
+ console.error(`Error creating directory ${docsPath}:`, error);
+ process.exit(1);
+ }
+ }
+
+ const publicElements = filterPublicApi(schema.elements);
+ publicElements.forEach((element: any) => {
+ const docFile = join(docsPath, `${element.tagname}.md`);
+ const mdContent = renderElement(element);
+
+ try {
+ writeFileSync(docFile, mdContent, 'utf-8');
+
+ console.log(`Generated: ${docFile}`);
+ } catch (error) {
+ console.error(`Error writing markdown file ${docFile}:`, error);
+ }
+ });
+
+ console.log('Markdown generation complete.');
+}
+
+generate();
diff --git a/api-docs/img/favicon.ico b/api-docs/img/favicon.ico
new file mode 100644
index 00000000000..35d364d3e21
Binary files /dev/null and b/api-docs/img/favicon.ico differ
diff --git a/api-docs/js/copy-code.js b/api-docs/js/copy-code.js
new file mode 100644
index 00000000000..abd56b8061d
--- /dev/null
+++ b/api-docs/js/copy-code.js
@@ -0,0 +1,28 @@
+(() => {
+ const code = document.querySelectorAll('.code-block');
+ code.forEach((pre) => {
+ const button = document.createElement('button');
+ button.classList.add('code-block__copy');
+ button.title = 'Copy to clipboard';
+ button.innerHTML = `
+
+
+ `;
+
+ button.addEventListener('click', () => {
+ navigator.clipboard.writeText(pre.textContent.trim());
+ button.classList.add('copied');
+
+ setTimeout(() => {
+ button.classList.remove('copied');
+ }, 1000);
+ });
+
+ pre.appendChild(button);
+ });
+})();
diff --git a/api-docs/js/copy-markdown.js b/api-docs/js/copy-markdown.js
new file mode 100644
index 00000000000..73dc3eec0e0
--- /dev/null
+++ b/api-docs/js/copy-markdown.js
@@ -0,0 +1,26 @@
+(() => {
+ const copyButton = document.getElementById('copy-markdown');
+ copyButton?.addEventListener('click', () => {
+ const currentUrl = window.location.href;
+ const plainTextUrl = `${currentUrl.replace('elements', 'markdown').replace(/\/$/u, '')}.md`;
+
+ fetch(plainTextUrl)
+ .then((res) => res.text())
+ .then((text) => {
+ navigator.clipboard
+ .writeText(text)
+ .then(() => {
+ copyButton.querySelector('span').textContent = 'Copied!';
+ setTimeout(() => {
+ copyButton.querySelector('span').textContent = 'Copy as MD';
+ }, 2000);
+ })
+ .catch((err) => {
+ console.error('Failed to copy text: ', err);
+ });
+ })
+ .catch((err) => {
+ console.error('Failed to fetch text: ', err);
+ });
+ });
+})();
diff --git a/api-docs/package.json b/api-docs/package.json
new file mode 100644
index 00000000000..1c960c54dd8
--- /dev/null
+++ b/api-docs/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "api-docs",
+ "version": "25.0.0-alpha14",
+ "private": true,
+ "description": "Documentation site for Vaadin web components API",
+ "license": "Apache-2.0",
+ "author": "Vaadin Ltd",
+ "type": "module",
+ "scripts": {
+ "start": "eleventy --serve",
+ "build": "eleventy",
+ "generate": "tsx generate.ts"
+ },
+ "dependencies": {
+ "@11ty/eleventy": "^3.1.2",
+ "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
+ "markdown-it": "^14.1.0",
+ "markdown-it-anchor": "^9.2.0",
+ "node-html-parser": "^7.0.1",
+ "tsx": "^4.20.3"
+ }
+}
diff --git a/api-docs/types.ts b/api-docs/types.ts
new file mode 100644
index 00000000000..9e1ec55a8b3
--- /dev/null
+++ b/api-docs/types.ts
@@ -0,0 +1,206 @@
+import * as ts from 'typescript';
+
+function findPropertyAccessForMember(node: ts.Node, memberName: string): ts.PropertyAccessExpression | undefined {
+ if (ts.isPropertyAccessExpression(node) && node.name.text === memberName) {
+ return node;
+ }
+ let found: ts.PropertyAccessExpression | undefined;
+ ts.forEachChild(node, (child) => {
+ if (!found) {
+ found = findPropertyAccessForMember(child, memberName);
+ }
+ });
+ return found;
+}
+
+type RelatedTypeDeclaration = ts.ClassDeclaration | ts.InterfaceDeclaration | ts.TypeAliasDeclaration;
+
+interface RelatedTypeInfo {
+ name: string;
+ declarationText: string;
+}
+
+export class TypeContext {
+ private program: ts.Program;
+ private sourceFile: ts.SourceFile;
+ private checker: ts.TypeChecker;
+ private relatedTypes = new Map();
+ private elementSchema: any;
+
+ constructor(elementSchema: any) {
+ this.elementSchema = elementSchema;
+
+ const modulePath = `../${elementSchema.path}`;
+ const className = elementSchema.name;
+ const configPath = ts.findConfigFile('../', ts.sys.fileExists, 'tsconfig.json');
+ if (!configPath) throw new Error('tsconfig.json not found');
+
+ const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
+ const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, './');
+
+ // Generate and compile a small TS program that just accesses all members of the element class,
+ // which makes retrieving their types easier.
+ const accessExpressions: string[] = [];
+
+ elementSchema.properties.forEach((property: any) => {
+ accessExpressions.push(`({} as ${className}).${property.name}`);
+ });
+ elementSchema.methods.forEach((method: any) => {
+ accessExpressions.push(`({} as ${className}).${method.name}`);
+ });
+ elementSchema.staticMethods.forEach((method: any) => {
+ accessExpressions.push(`${className}.${method.name}`);
+ });
+
+ const compilerHost = ts.createCompilerHost({});
+ const originalGetSourceFile = compilerHost.getSourceFile;
+ compilerHost.getSourceFile = (fileName: any, languageVersion: any) => {
+ if (fileName === 'test.ts') {
+ return ts.createSourceFile(
+ fileName,
+ `
+ import { ${className} } from '${modulePath}';
+ ${accessExpressions.join(';\n')}
+ `,
+ languageVersion,
+ true,
+ ts.ScriptKind.TS,
+ );
+ }
+ // For all other files, delegate to the original method to load from disk
+ return originalGetSourceFile.call(compilerHost, fileName, languageVersion);
+ };
+ this.program = ts.createProgram({
+ rootNames: ['test.ts'],
+ options: parsed.options,
+ host: compilerHost,
+ });
+
+ const sourceFile = this.program.getSourceFile('test.ts');
+ if (!sourceFile) {
+ throw new Error(`Source file 'test.ts' not found in the program.`);
+ }
+ this.sourceFile = sourceFile;
+ this.checker = this.program.getTypeChecker();
+ }
+
+ getMemberType(memberName: string): string {
+ const accessExpression = findPropertyAccessForMember(this.sourceFile, memberName);
+ if (!accessExpression) {
+ throw new Error(`Property access for member '${memberName}' not found.`);
+ }
+ const type = this.checker.getTypeAtLocation(accessExpression);
+ return this.checker.typeToString(type);
+ }
+
+ private findDeclaration(typeName: string): RelatedTypeDeclaration | undefined {
+ // Only consider declaration files in monorepo packages
+ const relatedSourceFiles = this.program
+ .getSourceFiles()
+ .filter((file) => file.fileName.includes(`/packages/`))
+ .filter((file) => file.isDeclarationFile);
+
+ for (const sourceFile of relatedSourceFiles) {
+ for (const statement of sourceFile.statements) {
+ // Check for exported class
+ if (
+ ts.isClassDeclaration(statement) &&
+ statement.name &&
+ statement.name.text === typeName &&
+ statement.modifiers &&
+ statement.modifiers.some((mod) => mod.kind === ts.SyntaxKind.ExportKeyword)
+ ) {
+ return statement;
+ }
+ // Check for exported interface
+ if (
+ ts.isInterfaceDeclaration(statement) &&
+ statement.name.text === typeName &&
+ statement.modifiers &&
+ statement.modifiers.some((mod) => mod.kind === ts.SyntaxKind.ExportKeyword)
+ ) {
+ return statement;
+ }
+ // Check for exported type alias
+ if (
+ ts.isTypeAliasDeclaration(statement) &&
+ statement.name.text === typeName &&
+ statement.modifiers &&
+ statement.modifiers.some((mod) => mod.kind === ts.SyntaxKind.ExportKeyword)
+ ) {
+ return statement;
+ }
+ }
+ }
+ return undefined;
+ }
+
+ findRelatedTypes(typeString: string): RelatedTypeInfo[] {
+ // Naive approach to extract possible type names from the type string
+ const typeNames = typeString
+ .replace(/[^a-zA-Z0-9_]/gu, ' ')
+ .split(' ')
+ .map((type) => type.trim())
+ .filter((type) => !!type);
+
+ // Filter out some basic types, as well as mixins
+ const basicTypes = new Set([
+ 'string',
+ 'number',
+ 'boolean',
+ 'void',
+ 'any',
+ 'unknown',
+ 'null',
+ 'undefined',
+ 'object',
+ 'Array',
+ 'Promise',
+ 'Function',
+ 'Date',
+ 'RegExp',
+ ]);
+ const customTypeNames = typeNames
+ .filter((type) => !basicTypes.has(type))
+ .filter((type) => !type.endsWith('Mixin') && !type.endsWith('MixinClass'));
+
+ // Skip types already found
+ const unknownTypeNames = customTypeNames.filter((type) => !this.relatedTypes.has(type));
+ const foundTypeInfos = unknownTypeNames
+ .map((name) => this.findDeclaration(name))
+ .filter((declaration) => !!declaration);
+
+ // Store found results as related types
+ foundTypeInfos.forEach((declaration) => {
+ if (!this.relatedTypes.has(declaration.name!.text)) {
+ const sourceFile = declaration.getSourceFile();
+ const text = sourceFile.text.substring(declaration.pos, declaration.end);
+ const relatedType: RelatedTypeInfo = {
+ name: declaration.name!.text,
+ declarationText: text,
+ };
+ this.relatedTypes.set(declaration.name!.text, relatedType);
+
+ // Scan the declaration for nested type usages
+ this.findRelatedTypes(text);
+ }
+ });
+
+ return Array.from(this.relatedTypes.values().filter((type) => typeNames.includes(type.name)));
+ }
+
+ findEventType(eventName: string): RelatedTypeInfo | undefined {
+ // kebab-case to upper camel case conversion
+ let typeName = eventName
+ .split('-')
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
+ .join('');
+ typeName = `${this.elementSchema.name}${typeName}Event`;
+
+ return this.findRelatedTypes(typeName)[0];
+ }
+
+ getRelatedTypes(): RelatedTypeInfo[] {
+ return Array.from(this.relatedTypes.values());
+ }
+}
diff --git a/eslint.config.js b/eslint.config.js
index 51b4da09d6f..b5240cae9de 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -45,6 +45,7 @@ export default [
ignores: [
'coverage/**/*.js',
'dist/**/*.js',
+ 'api-docs/dist/**/*.js',
'packages/**/vendor/*.js',
'packages/**/dist/*.js',
'packages/**/test/dom/__snapshots__/*.snap.js',
@@ -115,7 +116,7 @@ export default [
},
},
{
- files: ['packages/**/*', 'test/integration/**', 'dev/**/*'],
+ files: ['packages/**/*', 'test/integration/**', 'dev/**/*', 'api-docs/js/**'],
languageOptions: {
globals: {
...globals.browser,
@@ -172,7 +173,14 @@ export default [
},
},
{
- files: ['scripts/**/*.js', '*.config.js', 'wtr-utils.js', 'custom-rules/**/*.js', 'packages/**/gulpfile.js'],
+ files: [
+ 'scripts/**/*.js',
+ '*.config.js',
+ 'wtr-utils.js',
+ 'custom-rules/**/*.js',
+ 'packages/**/gulpfile.js',
+ 'api-docs/.eleventy.js',
+ ],
languageOptions: {
globals: {
...globals.node,
diff --git a/lerna.json b/lerna.json
index c88844c4931..e859461f24c 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "packages": ["test/*", "packages/*"],
+ "packages": ["test/*", "packages/*", "api-docs"],
"npmClient": "yarn",
"version": "25.0.0-alpha14"
}
diff --git a/package.json b/package.json
index ddd4bbed710..a399b03c6a8 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,8 @@
"type": "module",
"scripts": {
"analyze": "polymer analyze packages/**/vaadin-*.js > analysis.json && node scripts/prepareDocs.js && node scripts/buildWebtypes.js && node scripts/generateLumoAutoCompleteCss.js",
+ "api-docs:start": "yarn analyze && yarn workspace api-docs generate ../analysis.json && yarn workspace api-docs start",
+ "api-docs:build": "yarn analyze && yarn workspace api-docs generate ../analysis.json && yarn workspace api-docs build",
"debug": "yarn test --watch",
"debug:it": "yarn test --watch --config web-test-runner-it.config.js",
"dist": "rimraf dist && yarn analyze && rollup -c rollup.config.js && cp analysis.json dist",
@@ -94,6 +96,7 @@
},
"workspaces": [
"test/*",
- "packages/*"
+ "packages/*",
+ "api-docs"
]
}
diff --git a/yarn.lock b/yarn.lock
index 0dc5da97f49..dfdd745d096 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,126 @@
# yarn lockfile v1
+"@11ty/dependency-tree-esm@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.0.tgz#5d13f0ec64ca13d4f948d54a262faf4c1cab8508"
+ integrity sha512-+4ySOON4aEAiyAGuH6XQJtxpGSpo6nibfG01krgix00sqjhman2+UaDUopq6Ksv8/jBB3hqkhsHe3fDE4z8rbA==
+ dependencies:
+ "@11ty/eleventy-utils" "^2.0.1"
+ acorn "^8.14.0"
+ dependency-graph "^1.0.0"
+ normalize-path "^3.0.0"
+
+"@11ty/dependency-tree@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@11ty/dependency-tree/-/dependency-tree-4.0.0.tgz#4dd02685ed26ff9f4efae150b1a77155f73f640c"
+ integrity sha512-PTOnwM8Xt+GdJmwRKg4pZ8EKAgGoK7pedZBfNSOChXu8MYk2FdEsxdJYecX4t62owpGw3xK60q9TQv/5JI59jw==
+ dependencies:
+ "@11ty/eleventy-utils" "^2.0.1"
+
+"@11ty/eleventy-dev-server@^2.0.8":
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz#0986a33416fdf95aa21f98ce1608137ce3f15c05"
+ integrity sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==
+ dependencies:
+ "@11ty/eleventy-utils" "^2.0.1"
+ chokidar "^3.6.0"
+ debug "^4.4.0"
+ finalhandler "^1.3.1"
+ mime "^3.0.0"
+ minimist "^1.2.8"
+ morphdom "^2.7.4"
+ please-upgrade-node "^3.2.0"
+ send "^1.1.0"
+ ssri "^11.0.0"
+ urlpattern-polyfill "^10.0.0"
+ ws "^8.18.1"
+
+"@11ty/eleventy-plugin-bundle@^3.0.6":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.6.tgz#b8a92e9b0357ab0f26e5434abe5c33ebb31bed10"
+ integrity sha512-wlEIMa1SEe6HE6ZyREEnPQiTw72337a2MPkyn0D1IzrqHrKU9euB17mv27LnnnyKvMJamCCqtU0985F5yyDL8g==
+ dependencies:
+ "@11ty/eleventy-utils" "^2.0.2"
+ debug "^4.4.0"
+ posthtml-match-helper "^2.0.3"
+
+"@11ty/eleventy-plugin-syntaxhighlight@^5.0.2":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.2.tgz#22688060cb05cc25ce1a51cce0f87033aa8b2477"
+ integrity sha512-T6xVVRDJuHlrFMHbUiZkHjj5o1IlLzZW+1IL9eUsyXFU7rY2ztcYhZew/64vmceFFpQwzuSfxQOXxTJYmKkQ+A==
+ dependencies:
+ prismjs "^1.30.0"
+
+"@11ty/eleventy-utils@^2.0.1", "@11ty/eleventy-utils@^2.0.2", "@11ty/eleventy-utils@^2.0.7":
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz#40fa604864d64e98412f4f068a34379b471beddd"
+ integrity sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==
+
+"@11ty/eleventy@^3.1.2":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@11ty/eleventy/-/eleventy-3.1.2.tgz#a3b400babd31e0244ae9284bb60c811d773dca5d"
+ integrity sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==
+ dependencies:
+ "@11ty/dependency-tree" "^4.0.0"
+ "@11ty/dependency-tree-esm" "^2.0.0"
+ "@11ty/eleventy-dev-server" "^2.0.8"
+ "@11ty/eleventy-plugin-bundle" "^3.0.6"
+ "@11ty/eleventy-utils" "^2.0.7"
+ "@11ty/lodash-custom" "^4.17.21"
+ "@11ty/posthtml-urls" "^1.0.1"
+ "@11ty/recursive-copy" "^4.0.2"
+ "@sindresorhus/slugify" "^2.2.1"
+ bcp-47-normalize "^2.3.0"
+ chokidar "^3.6.0"
+ debug "^4.4.1"
+ dependency-graph "^1.0.0"
+ entities "^6.0.1"
+ filesize "^10.1.6"
+ gray-matter "^4.0.3"
+ iso-639-1 "^3.1.5"
+ js-yaml "^4.1.0"
+ kleur "^4.1.5"
+ liquidjs "^10.21.1"
+ luxon "^3.6.1"
+ markdown-it "^14.1.0"
+ minimist "^1.2.8"
+ moo "^0.5.2"
+ node-retrieve-globals "^6.0.1"
+ nunjucks "^3.2.4"
+ picomatch "^4.0.2"
+ please-upgrade-node "^3.2.0"
+ posthtml "^0.16.6"
+ posthtml-match-helper "^2.0.3"
+ semver "^7.7.2"
+ slugify "^1.6.6"
+ tinyglobby "^0.2.14"
+
+"@11ty/lodash-custom@^4.17.21":
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz#a8d2e25a47ee3bb58b71cde4edc2ae8dd3d1b269"
+ integrity sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==
+
+"@11ty/posthtml-urls@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@11ty/posthtml-urls/-/posthtml-urls-1.0.1.tgz#3e0680c0ea96d25e24b4afd0f2b156467c2323c8"
+ integrity sha512-6EFN/yYSxC/OzYXpq4gXDyDMlX/W+2MgCvvoxf11X1z76bqkqFJ8eep5RiBWfGT5j0323a1pwpelcJJdR46MCw==
+ dependencies:
+ evaluate-value "^2.0.0"
+ http-equiv-refresh "^2.0.1"
+ list-to-array "^1.1.0"
+ parse-srcset "^1.0.2"
+
+"@11ty/recursive-copy@^4.0.2":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@11ty/recursive-copy/-/recursive-copy-4.0.2.tgz#6349f2e0a38c7229ff32773ba164e8e9eb2e3fc6"
+ integrity sha512-174nFXxL/6KcYbLYpra+q3nDbfKxLxRTNVY1atq2M1pYYiPfHse++3IFNl8mjPFsd7y2qQjxLORzIjHMjL3NDQ==
+ dependencies:
+ errno "^1.0.0"
+ junk "^3.1.0"
+ maximatch "^0.1.0"
+ slash "^3.0.0"
+
"@75lb/deep-merge@^1.1.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@75lb/deep-merge/-/deep-merge-1.1.2.tgz#6aa53d9730e64a159075da65d3bd057abfe1dde0"
@@ -130,11 +250,11 @@
"@babel/types" "^7.27.3"
"@babel/parser@^7.16.2", "@babel/parser@^7.27.2", "@babel/parser@^7.27.3":
- version "7.27.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.3.tgz#1b7533f0d908ad2ac545c4d05cbe2fb6dc8cfaaf"
- integrity sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.0.tgz#979829fbab51a29e13901e5a80713dbcb840825e"
+ integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==
dependencies:
- "@babel/types" "^7.27.3"
+ "@babel/types" "^7.28.0"
"@babel/template@^7.27.2":
version "7.27.2"
@@ -158,10 +278,10 @@
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.27.1", "@babel/types@^7.27.3":
- version "7.27.3"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.3.tgz#c0257bedf33aad6aad1f406d35c44758321eb3ec"
- integrity sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==
+"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.0":
+ version "7.28.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b"
+ integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==
dependencies:
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.27.1"
@@ -208,9 +328,9 @@
tslib "^2.4.0"
"@emnapi/runtime@^1.1.0", "@emnapi/runtime@^1.4.3":
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d"
- integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.5.tgz#c67710d0661070f38418b6474584f159de38aba9"
+ integrity sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==
dependencies:
tslib "^2.4.0"
@@ -509,9 +629,9 @@
"@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+ version "1.5.4"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz#7358043433b2e5da569aa02cbc4c121da3af27d7"
+ integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.25"
@@ -1464,6 +1584,21 @@
resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958"
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
+"@sindresorhus/slugify@^2.2.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-2.2.1.tgz#fa2e2e25d6e1e74a2eeb5e2c37f5ccc516ed2c4b"
+ integrity sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==
+ dependencies:
+ "@sindresorhus/transliterate" "^1.0.0"
+ escape-string-regexp "^5.0.0"
+
+"@sindresorhus/transliterate@^1.0.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz#2309fff65a868047e6d2dd70dec747c5b36a8327"
+ integrity sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==
+ dependencies:
+ escape-string-regexp "^5.0.0"
+
"@sinonjs/commons@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3"
@@ -2427,6 +2562,11 @@ JSONStream@^1.3.5:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
+a-sync-waterfall@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7"
+ integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==
+
abbrev@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
@@ -2452,7 +2592,14 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn@^8.15.0, acorn@^8.8.2:
+acorn-walk@^8.3.4:
+ version "8.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
+ integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
+ dependencies:
+ acorn "^8.11.0"
+
+acorn@^8.11.0, acorn@^8.14.0, acorn@^8.14.1, acorn@^8.15.0, acorn@^8.8.2:
version "8.15.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
@@ -2644,6 +2791,11 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2:
call-bound "^1.0.3"
is-array-buffer "^3.0.5"
+array-differ@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
+ integrity sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==
+
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
@@ -2676,11 +2828,23 @@ array-slice@^1.0.0:
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==
+ dependencies:
+ array-uniq "^1.0.1"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
+
array.prototype.findlast@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904"
@@ -2737,7 +2901,7 @@ arraybuffer.prototype.slice@^1.0.4:
get-intrinsic "^1.2.6"
is-array-buffer "^3.0.4"
-arrify@^1.0.1:
+arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==
@@ -2747,6 +2911,11 @@ arrify@^2.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+asap@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
+
assertion-error@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7"
@@ -2910,6 +3079,28 @@ basic-ftp@^5.0.2:
resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0"
integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==
+bcp-47-match@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/bcp-47-match/-/bcp-47-match-2.0.3.tgz#603226f6e5d3914a581408be33b28a53144b09d0"
+ integrity sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==
+
+bcp-47-normalize@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz#00f7de9dfdd0f6901c048083be5ac60903bf4f7a"
+ integrity sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==
+ dependencies:
+ bcp-47 "^2.0.0"
+ bcp-47-match "^2.0.0"
+
+bcp-47@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/bcp-47/-/bcp-47-2.1.0.tgz#7e80734c3338fe8320894981dccf4968c3092df6"
+ integrity sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==
+ dependencies:
+ is-alphabetical "^2.0.0"
+ is-alphanumerical "^2.0.0"
+ is-decimal "^2.0.0"
+
before-after-hook@^2.2.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
@@ -3316,7 +3507,7 @@ cheerio@^1.0.0, cheerio@^1.0.0-rc.12:
undici "^6.19.5"
whatwg-mimetype "^4.0.0"
-chokidar@^3.5.3:
+chokidar@^3.5.3, chokidar@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@@ -3367,9 +3558,9 @@ ci-info@^3.2.0, ci-info@^3.7.0:
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
ci-info@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2"
- integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.0.tgz#c39b1013f8fdbd28cd78e62318357d02da160cd7"
+ integrity sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==
clean-css@~5.3.2:
version "5.3.2"
@@ -3599,6 +3790,11 @@ commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
@@ -3990,6 +4186,13 @@ debounce@^1.2.0:
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
+debug@2.6.9, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.0, debug@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
@@ -3997,13 +4200,6 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, d
dependencies:
ms "^2.1.3"
-debug@^2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
debug@^3.1.0, debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -4154,6 +4350,11 @@ dependency-graph@^0.11.0:
resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27"
integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==
+dependency-graph@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-1.0.0.tgz#bb5e85aec1310bc13b22dbd76e3196c4ee4c10d2"
+ integrity sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==
+
deprecation@^2.0.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
@@ -4226,7 +4427,7 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
-domhandler@^4.2.0, domhandler@^4.3.1:
+domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
@@ -4408,6 +4609,11 @@ encodeurl@^1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+encodeurl@^2.0.0, encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
encoding-sniffer@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5"
@@ -4442,15 +4648,20 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+entities@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4"
+ integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
+
entities@^4.2.0, entities@^4.4.0, entities@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-entities@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51"
- integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==
+entities@^6.0.0, entities@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694"
+ integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
env-paths@^2.2.0, env-paths@^2.2.1:
version "2.2.1"
@@ -4472,6 +4683,13 @@ err-code@^2.0.2:
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+errno@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-1.0.0.tgz#0ea47d701864accf996412f09e29b4dc2cf3856d"
+ integrity sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==
+ dependencies:
+ prr "~1.0.1"
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -4614,7 +4832,7 @@ es-to-primitive@^1.3.0:
is-date-object "^1.0.5"
is-symbol "^1.0.4"
-esbuild@^0.25.0:
+esbuild@^0.25.0, esbuild@~0.25.0:
version "0.25.1"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f"
integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==
@@ -4650,7 +4868,7 @@ escalade@^3.1.1, escalade@^3.2.0:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-escape-html@^1.0.3:
+escape-html@^1.0.3, escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
@@ -4665,6 +4883,11 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+escape-string-regexp@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
+ integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+
escodegen@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
@@ -4939,6 +5162,13 @@ eslint@^9.29.0:
natural-compare "^1.4.0"
optionator "^0.9.3"
+esm-import-transformer@^3.0.3:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz#ad66aa1bd94e85fc655f1f354978846af173e107"
+ integrity sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==
+ dependencies:
+ acorn "^8.15.0"
+
espree@^10.0.1, espree@^10.4.0:
version "10.4.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
@@ -4992,6 +5222,11 @@ etag@^1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+evaluate-value@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/evaluate-value/-/evaluate-value-2.0.0.tgz#bb7169ab4a49fb76b7ab5631c7d327797fd8e65f"
+ integrity sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==
+
event-target-shim@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
@@ -5069,6 +5304,13 @@ exponential-backoff@^3.1.1:
resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
+ dependencies:
+ is-extendable "^0.1.0"
+
extend-shallow@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
@@ -5244,6 +5486,11 @@ filelist@^1.0.4:
dependencies:
minimatch "^5.0.1"
+filesize@^10.1.6:
+ version "10.1.6"
+ resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.6.tgz#31194da825ac58689c0bce3948f33ce83aabd361"
+ integrity sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==
+
fill-range@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
@@ -5256,6 +5503,19 @@ filter-obj@^1.1.0:
resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
+finalhandler@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
+ integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~2.0.0"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
find-replace@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
@@ -5401,6 +5661,11 @@ formdata-polyfill@^4.0.10:
dependencies:
fetch-blob "^3.1.2"
+fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4"
+ integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
+
fresh@~0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
@@ -5464,11 +5729,16 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@2.3.2, fsevents@~2.3.2:
+fsevents@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+fsevents@~2.3.2, fsevents@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
@@ -5632,7 +5902,7 @@ get-symbol-description@^1.1.0:
es-errors "^1.3.0"
get-intrinsic "^1.2.6"
-get-tsconfig@^4.10.1:
+get-tsconfig@^4.10.1, get-tsconfig@^4.7.5:
version "4.10.1"
resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.1.tgz#d34c1c01f47d65a606c37aa7a177bc3e56ab4b2e"
integrity sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==
@@ -5910,6 +6180,16 @@ graphemer@^1.4.0:
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+gray-matter@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798"
+ integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==
+ dependencies:
+ js-yaml "^3.13.1"
+ kind-of "^6.0.2"
+ section-matter "^1.0.0"
+ strip-bom-string "^1.0.0"
+
gulp-cli@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-3.1.0.tgz#92590e9b209142b176c95ad5c7066d2592017268"
@@ -6121,6 +6401,11 @@ hasown@^2.0.2:
dependencies:
function-bind "^1.1.2"
+he@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
header-case@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063"
@@ -6203,6 +6488,16 @@ htmlparser2@^10.0.0:
domutils "^3.2.1"
entities "^6.0.0"
+htmlparser2@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5"
+ integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.2.2"
+ domutils "^2.8.0"
+ entities "^3.0.1"
+
htmlparser2@^8.0.0:
version "8.0.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21"
@@ -6236,7 +6531,12 @@ http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1:
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
-http-errors@2.0.0:
+http-equiv-refresh@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz#2816aee5ccce42734a13ecfe79dacc0db29c39b1"
+ integrity sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==
+
+http-errors@2.0.0, http-errors@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
@@ -6539,6 +6839,19 @@ is-absolute@^1.0.0:
is-relative "^1.0.0"
is-windows "^1.0.1"
+is-alphabetical@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b"
+ integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==
+
+is-alphanumerical@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875"
+ integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==
+ dependencies:
+ is-alphabetical "^2.0.0"
+ is-decimal "^2.0.0"
+
is-array-buffer@^3.0.4, is-array-buffer@^3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280"
@@ -6636,11 +6949,21 @@ is-date-object@^1.0.5, is-date-object@^1.1.0:
call-bound "^1.0.2"
has-tostringtag "^1.0.2"
+is-decimal@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7"
+ integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==
+
is-docker@^2.0.0, is-docker@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+is-extendable@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
+
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
@@ -6714,6 +7037,11 @@ is-ip@^3.1.0:
dependencies:
ip-regex "^4.0.0"
+is-json@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff"
+ integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==
+
is-lambda@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
@@ -6947,6 +7275,11 @@ isexe@^3.1.1:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d"
integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==
+iso-639-1@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/iso-639-1/-/iso-639-1-3.1.5.tgz#e8205aceeeea0f64d6b12f5fac6a943b0d5b452c"
+ integrity sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==
+
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
@@ -7156,6 +7489,11 @@ jszip@^3.10.1:
readable-stream "~2.3.6"
setimmediate "^1.0.5"
+junk@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
+ integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
+
junk@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed"
@@ -7197,7 +7535,7 @@ keyv@^5.4.0:
dependencies:
"@keyv/serialize" "^1.1.0"
-kind-of@^6.0.2, kind-of@^6.0.3:
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -7209,6 +7547,11 @@ klaw-sync@^6.0.0:
dependencies:
graceful-fs "^4.1.11"
+kleur@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+ integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
known-css-properties@^0.37.0:
version "0.37.0"
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.37.0.tgz#10ebe49b9dbb6638860ff8a002fb65a053f4aec5"
@@ -7478,6 +7821,13 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+linkify-it@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421"
+ integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
+ dependencies:
+ uc.micro "^2.0.0"
+
lint-staged@^15.2.9:
version "15.2.9"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.9.tgz#bf70d40b6b192df6ad756fb89822211615e0f4da"
@@ -7494,6 +7844,18 @@ lint-staged@^15.2.9:
string-argv "~0.3.2"
yaml "~2.5.0"
+liquidjs@^10.21.1:
+ version "10.21.1"
+ resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.21.1.tgz#5867dac16f1a74552e1ca5fdc976c0fa4bcdf527"
+ integrity sha512-NZXmCwv3RG5nire3fmIn9HsOyJX3vo+ptp0yaXUHAMzSNBhx74Hm+dAGJvscUA6lNqbLuYfXgNavRQ9UbUJhQQ==
+ dependencies:
+ commander "^10.0.0"
+
+list-to-array@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/list-to-array/-/list-to-array-1.1.0.tgz#ca7dff640606433cac75cbe8446acd864b15bf6f"
+ integrity sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==
+
listr2@~8.2.4:
version "8.2.4"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.4.tgz#486b51cbdb41889108cb7e2c90eeb44519f5a77f"
@@ -7721,6 +8083,11 @@ lru-cache@^8.0.4:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-8.0.5.tgz#983fe337f3e176667f8e567cfcce7cb064ea214e"
integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==
+luxon@^3.6.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.1.tgz#9bd09aa84a56afb00c57ea78a8ec5bd16eb24ec0"
+ integrity sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==
+
make-dir@4.0.0, make-dir@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e"
@@ -7769,6 +8136,23 @@ map-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
+markdown-it-anchor@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-9.2.0.tgz#89375d9a2a79336403ab7c4fd36b1965cc45e5c8"
+ integrity sha512-sa2ErMQ6kKOA4l31gLGYliFQrMKkqSO0ZJgGhDHKijPf0pNFM9vghjAh3gn26pS4JDRs7Iwa9S36gxm3vgZTzg==
+
+markdown-it@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45"
+ integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==
+ dependencies:
+ argparse "^2.0.1"
+ entities "^4.4.0"
+ linkify-it "^5.0.0"
+ mdurl "^2.0.0"
+ punycode.js "^2.3.1"
+ uc.micro "^2.1.0"
+
marked@^15.0.11:
version "15.0.11"
resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.11.tgz#08a8d12c285e16259e44287b89ce0d871c9d55e8"
@@ -7794,6 +8178,16 @@ mathml-tag-names@^2.1.3:
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
+maximatch@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2"
+ integrity sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==
+ dependencies:
+ array-differ "^1.0.0"
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ minimatch "^3.0.0"
+
mdn-data@2.0.14:
version "2.0.14"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
@@ -7804,6 +8198,11 @@ mdn-data@2.12.2:
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf"
integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==
+mdurl@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0"
+ integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -7864,6 +8263,11 @@ mime-db@1.52.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+mime-db@^1.54.0:
+ version "1.54.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
+ integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
+
mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
@@ -7871,6 +8275,18 @@ mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24,
dependencies:
mime-db "1.52.0"
+mime-types@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce"
+ integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==
+ dependencies:
+ mime-db "^1.54.0"
+
+mime@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
+ integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
+
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -7927,7 +8343,7 @@ minimatch@^10.0.0, "minimatch@^9.0.3 || ^10.0.1":
dependencies:
brace-expansion "^2.0.1"
-minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
+minimatch@^3.0.0, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -7964,10 +8380,10 @@ minimist-options@4.1.0:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"
-minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
- integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
minipass-collect@^2.0.1:
version "2.0.1"
@@ -8060,6 +8476,16 @@ modify-values@^1.0.1:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
+moo@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c"
+ integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==
+
+morphdom@^2.7.4:
+ version "2.7.7"
+ resolved "https://registry.yarnpkg.com/morphdom/-/morphdom-2.7.7.tgz#72559af781357a4eb2169a0a578acb76ff7e8abf"
+ integrity sha512-04GmsiBcalrSCNmzfo+UjU8tt3PhZJKzcOy+r1FlGA7/zri8wre3I1WkYN9PT3sIeIKfW9bpyElA+VzOg2E24g==
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -8210,6 +8636,14 @@ node-gyp@^10.0.0, node-gyp@^10.2.0:
tar "^6.2.1"
which "^4.0.0"
+node-html-parser@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-7.0.1.tgz#e3056550bae48517ebf161a0b0638f4b0123dfe3"
+ integrity sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==
+ dependencies:
+ css-select "^5.1.0"
+ he "1.2.0"
+
node-machine-id@1.1.12:
version "1.1.12"
resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267"
@@ -8220,6 +8654,15 @@ node-releases@^2.0.19:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
+node-retrieve-globals@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz#7c2559304c292d627646bc4494cdcece5c55879e"
+ integrity sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==
+ dependencies:
+ acorn "^8.14.1"
+ acorn-walk "^8.3.4"
+ esm-import-transformer "^3.0.3"
+
nopt@^7.0.0, nopt@^7.2.1:
version "7.2.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7"
@@ -8379,6 +8822,15 @@ nth-check@^2.0.1:
dependencies:
boolbase "^1.0.0"
+nunjucks@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.4.tgz#f0878eef528ce7b0aa35d67cc6898635fd74649e"
+ integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==
+ dependencies:
+ a-sync-waterfall "^1.0.0"
+ asap "^2.0.3"
+ commander "^5.1.0"
+
"nx@>=17.1.2 < 21":
version "20.8.1"
resolved "https://registry.yarnpkg.com/nx/-/nx-20.8.1.tgz#f63136b3f7c5a33a3ed1d6145e8507d9bcc77bc0"
@@ -8515,7 +8967,7 @@ ol@10.6.0:
pbf "4.0.1"
rbush "^4.0.0"
-on-finished@^2.3.0:
+on-finished@2.4.1, on-finished@^2.3.0, on-finished@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
@@ -8885,6 +9337,11 @@ parse-path@^7.0.0:
dependencies:
protocols "^2.0.0"
+parse-srcset@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1"
+ integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==
+
parse-url@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d"
@@ -8926,7 +9383,7 @@ parse5@^7.0.0, parse5@^7.1.2:
dependencies:
entities "^4.5.0"
-parseurl@^1.3.2:
+parseurl@^1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
@@ -9147,6 +9604,13 @@ playwright@^1.53.0:
optionalDependencies:
fsevents "2.3.2"
+please-upgrade-node@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
+ integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
+ dependencies:
+ semver-compare "^1.0.0"
+
plexer@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/plexer/-/plexer-2.0.0.tgz#d5ff402f7fb79cce592101c193807d0b085ea41f"
@@ -9261,6 +9725,33 @@ postcss@^8.5.0, postcss@^8.5.6:
picocolors "^1.1.1"
source-map-js "^1.2.1"
+posthtml-match-helper@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz#04afcadd3a3306bf0445b6d6ead79d4e4083c6d6"
+ integrity sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==
+
+posthtml-parser@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a"
+ integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==
+ dependencies:
+ htmlparser2 "^7.1.1"
+
+posthtml-render@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205"
+ integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==
+ dependencies:
+ is-json "^2.0.1"
+
+posthtml@^0.16.6:
+ version "0.16.6"
+ resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59"
+ integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==
+ dependencies:
+ posthtml-parser "^0.11.0"
+ posthtml-render "^3.0.0"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -9292,7 +9783,7 @@ pretty-format@^29.7.0:
ansi-styles "^5.0.0"
react-is "^18.0.0"
-prismjs@^1.11.0:
+prismjs@^1.11.0, prismjs@^1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9"
integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==
@@ -9390,6 +9881,11 @@ proxy-from-env@^1.1.0:
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+ integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -9398,6 +9894,11 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+punycode.js@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7"
+ integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
+
punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
@@ -9469,6 +9970,11 @@ randombytes@^2.1.0:
dependencies:
safe-buffer "^5.1.0"
+range-parser@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
raw-body@^2.3.3:
version "2.5.1"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
@@ -9957,6 +10463,19 @@ sax@^1.4.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
+section-matter@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
+ integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
+ dependencies:
+ extend-shallow "^2.0.1"
+ kind-of "^6.0.0"
+
+semver-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+ integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==
+
semver-greatest-satisfied-range@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz#4b62942a7a1ccbdb252e5329677c003bac546fe7"
@@ -9979,6 +10498,23 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
+send@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-1.2.0.tgz#32a7554fb777b831dfa828370f773a3808d37212"
+ integrity sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==
+ dependencies:
+ debug "^4.3.5"
+ encodeurl "^2.0.0"
+ escape-html "^1.0.3"
+ etag "^1.8.1"
+ fresh "^2.0.0"
+ http-errors "^2.0.0"
+ mime-types "^3.0.1"
+ ms "^2.1.3"
+ on-finished "^2.4.1"
+ range-parser "^1.2.1"
+ statuses "^2.0.1"
+
sentence-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f"
@@ -10208,6 +10744,11 @@ slice-ansi@^7.1.0:
ansi-styles "^6.2.1"
is-fullwidth-code-point "^5.0.0"
+slugify@^1.6.6:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b"
+ integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==
+
smart-buffer@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
@@ -10269,9 +10810,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@^0.7.3:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
- integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02"
+ integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==
spacetrim@0.11.59:
version "0.11.59"
@@ -10350,6 +10891,13 @@ ssri@^10.0.0, ssri@^10.0.6:
dependencies:
minipass "^7.0.3"
+ssri@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-11.0.0.tgz#ab39fc4382264839d1803ee7c53d00e5fa467739"
+ integrity sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==
+ dependencies:
+ minipass "^7.0.3"
+
stable-hash@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.5.tgz#94e8837aaeac5b4d0f631d2972adef2924b40269"
@@ -10370,6 +10918,11 @@ statuses@2.0.1:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+statuses@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
+ integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
+
stop-iteration-iterator@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad"
@@ -10575,6 +11128,11 @@ strip-ansi@^7.0.1, strip-ansi@^7.1.0:
dependencies:
ansi-regex "^6.0.1"
+strip-bom-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
+ integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
+
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -11024,6 +11582,16 @@ tsscmp@1.0.6:
resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
+tsx@^4.20.3:
+ version "4.20.3"
+ resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.20.3.tgz#f913e4911d59ad177c1bcee19d1035ef8dd6e2fb"
+ integrity sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==
+ dependencies:
+ esbuild "~0.25.0"
+ get-tsconfig "^4.7.5"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
ttf2eot@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ttf2eot/-/ttf2eot-3.1.0.tgz#c8971af7c68c5b996d8cfdb8847cdadfbf195e05"
@@ -11209,6 +11777,11 @@ ua-parser-js@^1.0.33:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f"
integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==
+uc.micro@^2.0.0, uc.micro@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee"
+ integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
+
uglify-js@^3.1.4:
version "3.17.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
@@ -11288,7 +11861,7 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unpipe@1.0.0:
+unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==