+ );
+ }
+
diff --git a/components/sponsors/GoldSponsorsList.js b/components/sponsors/GoldSponsorsList.js
new file mode 100644
index 00000000000..bf037925cc8
--- /dev/null
+++ b/components/sponsors/GoldSponsorsList.js
@@ -0,0 +1,8 @@
+export const goldSponsors = [
+ {
+ name: 'Red Hat',
+ imageSrc: '/img/sponsors/redhat.svg',
+ website: 'https://www.redhat.com/',
+ },
+
+];
\ No newline at end of file
diff --git a/components/sponsors/SilverSponsors.js b/components/sponsors/SilverSponsors.js
new file mode 100644
index 00000000000..51aff2d17f7
--- /dev/null
+++ b/components/sponsors/SilverSponsors.js
@@ -0,0 +1,27 @@
+import { Silversponsors } from "./SilverSponsorsList";
+export default function SilverSponsors({ className = '', showSupportBanner = true }) {
+ return (
+
+ );
+ }
+
\ No newline at end of file
diff --git a/components/sponsors/SilverSponsorsList.js b/components/sponsors/SilverSponsorsList.js
new file mode 100644
index 00000000000..ced66590032
--- /dev/null
+++ b/components/sponsors/SilverSponsorsList.js
@@ -0,0 +1,8 @@
+export const Silversponsors = [
+ {
+ name: 'Bump.sh',
+ url: 'https://bump.sh/asyncapi?utm_source=asyncapi&utm_medium=referral&utm_campaign=sponsor',
+ image: '/img/sponsors/bumpsh.svg'
+ },
+
+ ];
\ No newline at end of file
diff --git a/components/sponsors/Sponsors.js b/components/sponsors/Sponsors.js
new file mode 100644
index 00000000000..5777bcea274
--- /dev/null
+++ b/components/sponsors/Sponsors.js
@@ -0,0 +1,44 @@
+import { sponsors } from "./SponsorsList";
+export default function Sponsors({ className = '', showSupportBanner = true }) {
+return (
+
+ );
+}
diff --git a/components/sponsors/SponsorsList.js b/components/sponsors/SponsorsList.js
new file mode 100644
index 00000000000..9170aad48ba
--- /dev/null
+++ b/components/sponsors/SponsorsList.js
@@ -0,0 +1,30 @@
+export const sponsors = [
+ {
+ name: 'IBM',
+ link: 'https://www.ibm.com',
+ imageSrc: '/img/sponsors/ibm.png',
+ altText: 'IBM',
+ imageClass: 'inline-block px-4 sm:h-14',
+ },
+ {
+ name: 'IQVIA Technologies',
+ link: 'https://www.iqvia.com',
+ imageSrc: '/img/sponsors/iqvia.png',
+ altText: 'IQVIA Technologies',
+ imageClass: 'inline-block px-4 sm:h-10',
+ },
+ {
+ name: 'Postman',
+ link: 'https://www.postman.com',
+ imageSrc: '/img/sponsors/postman.png',
+ altText: 'Postman',
+ imageClass: 'inline-block px-2 sm:h-18 flex-shrink-0',
+ },
+ {
+ name: 'Solace',
+ link: 'https://www.solace.com',
+ imageSrc: '/img/sponsors/solace.png',
+ altText: 'Solace',
+ imageClass: 'inline-block px-4 sm:h-10',
+ },
+ ];
\ No newline at end of file
diff --git a/components/tools/ToolsCard.js b/components/tools/ToolsCard.js
index 4ed1215aa8b..780db1f7b8a 100644
--- a/components/tools/ToolsCard.js
+++ b/components/tools/ToolsCard.js
@@ -69,11 +69,13 @@ export default function ToolsCard({ toolData }) {
{toolData.filters.language &&
diff --git a/components/typography/Paragraph.js b/components/typography/Paragraph.js
index 6da9faa1b63..c99b621d5d7 100644
--- a/components/typography/Paragraph.js
+++ b/components/typography/Paragraph.js
@@ -23,6 +23,6 @@ export default function Paragraph({
}
return (
-
{children}
+
{children}
)
}
\ No newline at end of file
diff --git a/components/typography/TextLink.js b/components/typography/TextLink.js
index 2810218811e..a9782b91548 100644
--- a/components/typography/TextLink.js
+++ b/components/typography/TextLink.js
@@ -14,7 +14,7 @@ export default function TextLink({
<>
{' '}
-
+
{children}
diff --git a/config/AMBASSADORS_MEMBERS.json b/config/AMBASSADORS_MEMBERS.json
index f63b40d4f60..27fa3a73a60 100644
--- a/config/AMBASSADORS_MEMBERS.json
+++ b/config/AMBASSADORS_MEMBERS.json
@@ -225,7 +225,7 @@
"github": "M3lkior",
"twitter": "ldussart",
"country": "π«π·",
- "bio": "Ludovic is an Ineat employee since 10 years. Starting as java developer, he is now Solutions Architect and work with his customers to build digital products, EDA oriented when possible. His first contributions on AsyncAPI was in 2020 around the kafka and avro specifications. Since this day, Ludovic talk about AsyncAPI in the North of France compagnies in order to speedup the initiative adoption.",
+ "bio": "Ludovic has been working for Ineat for the last 10 years. Starting as a java developer, he is now a Solutions Architect, working with his customers to build EDA-oriented digital products wherever possible. His first contributions to AsyncAPI date back to 2020 around the kafka and avro specifications. Since then, Ludovic has been spreading the word about AsyncAPI to companies in Northern France, to accelerate adoption of the initiative.",
"linkedin": "ludovic-dussart-846a8063",
"company": "Ineat",
"title": "Solutions Architect",
@@ -319,6 +319,15 @@
"month": "March"
},
"link": ""
+ },
+ {
+ "type": "presentation",
+ "title": "Standardisez votre monde d'Γ©vΓ©nements en documentant vos EDA avec AsyncAPI ! - Cloud Nord 2023",
+ "date": {
+ "year": 2023,
+ "month": "October"
+ },
+ "link": ""
}
]
}
diff --git a/config/MAINTAINERS.json b/config/MAINTAINERS.json
new file mode 100644
index 00000000000..98015228c24
--- /dev/null
+++ b/config/MAINTAINERS.json
@@ -0,0 +1,664 @@
+[
+ {
+ "name": "Aishat Muibudeen",
+ "github": "mayaleeeee",
+ "linkedin": "aishatmuibudeen",
+ "slack": "U03CNHGEUR1",
+ "twitter": "maya_ux_ui",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "website"
+ ]
+ },
+ {
+ "name": "Aayush Sahu",
+ "github": "aayushmau5",
+ "linkedin": "aayushmau5",
+ "slack": "U01QRHR1ABH",
+ "twitter": "aayushmau5",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "diff"
+ ]
+ },
+ {
+ "name": "Abir Pal",
+ "linkedin": "imabp",
+ "slack": "U01S8EQ9LQ2",
+ "twitter": "imabptweets",
+ "github": "imabp",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "problem"
+ ]
+ },
+ {
+ "name": "Akshat Nema",
+ "github": "akshatnema",
+ "linkedin": "akshat-nema",
+ "slack": "U02TAMG2VKN",
+ "twitter": "AksNema",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "website"
+ ]
+ },
+ {
+ "name": "Anand Sunderraman",
+ "github": "anandsunderraman",
+ "linkedin": "anand-sunderraman-a6b7a131",
+ "slack": "U0231F9KXNK",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "go-watermill-template"
+ ]
+ },
+ {
+ "name": "Arjun Garg",
+ "github": "arjungarg07",
+ "linkedin": "arjungarg17",
+ "slack": "U01QX79S734",
+ "twitter": "ArjunGarg07",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "cupid"
+ ]
+ },
+ {
+ "name": "Cameron Rushton",
+ "github": "CameronRushton",
+ "slack": "U01DVKKAV5K",
+ "availableForHire": false,
+ "company": "Solace",
+ "isTscMember": true,
+ "repos": [
+ "java-spring-cloud-stream-template",
+ "python-paho-template",
+ "bindings"
+ ]
+ },
+ {
+ "name": "Dale Lane",
+ "github": "dalelane",
+ "linkedin": "dalelane",
+ "slack": "U01EYAFR5BR",
+ "twitter": "dalelane",
+ "availableForHire": false,
+ "isTscMember": true,
+ "company": "IBM",
+ "repos": [
+ "avro-schema-parser",
+ "bindings",
+ "java-template"
+ ]
+ },
+ {
+ "name": "Emiliano Zublena",
+ "github": "emilianozublena",
+ "linkedin": "emilianozublena",
+ "slack": "U01LYC8PW0M",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "asyncapi-php-template"
+ ]
+ },
+ {
+ "name": "Fran M\u00e9ndez",
+ "github": "fmvilas",
+ "slack": "U34F2JRRS",
+ "availableForHire": false,
+ "company": "Postman",
+ "linkedin": "fmvilas",
+ "isTscMember": true,
+ "repos": [
+ "raml-dt-schema-parser",
+ "avro-schema-parser",
+ "openapi-schema-parser",
+ "asyncapi-react",
+ "glee",
+ "generator",
+ "nodejs-template",
+ "nodejs-ws-template",
+ "parser-js",
+ "playground",
+ "spec",
+ "spec-json-schemas",
+ "website",
+ "bindings"
+ ]
+ },
+ {
+ "name": "Gerald Loeffler",
+ "github": "GeraldLoeffler",
+ "linkedin": "geraldloeffler",
+ "slack": "U01P5QDLP0X",
+ "availableForHire": false,
+ "company": "Salesforce",
+ "isTscMember": true,
+ "repos": [
+ "bindings"
+ ]
+ },
+ {
+ "name": "Jonas Lagoni",
+ "github": "jonaslagoni",
+ "linkedin": "jonaslagoni",
+ "slack": "UQ2ANBG1E",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "dotnet-nats-template",
+ "ts-nats-template",
+ "generator-react-sdk",
+ "generator",
+ "modelina",
+ "parser-js",
+ "parser-api",
+ "simulator"
+ ]
+ },
+ {
+ "name": "Khuda Dad Nomani",
+ "github": "KhudaDad414",
+ "twitter": "KhudaDadNomani",
+ "linkedin": "khudadadnomani",
+ "slack": "U01RVRD1TCL",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "optimizer",
+ "bindings",
+ "glee",
+ ".github"
+ ]
+ },
+ {
+ "name": "Laurent Broudoux",
+ "github": "lbroudoux",
+ "twitter": "lbroudoux",
+ "linkedin": "laurentbroudoux",
+ "slack": "U018NLDV5E1",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "bindings"
+ ]
+ },
+ {
+ "name": "Ludovic Dussart",
+ "github": "m3lkior",
+ "linkedin": "ludovic-dussart-846a8063",
+ "slack": "U01BM49KL3Z",
+ "twitter": "ldussart",
+ "availableForHire": false,
+ "company": "Ineat",
+ "isTscMember": true,
+ "repos": [
+ "avro-schema-parser"
+ ]
+ },
+ {
+ "name": "Lukasz Gornicki",
+ "github": "derberg",
+ "linkedin": "lukasz-gornicki-a621914",
+ "slack": "UD698Q5LM",
+ "twitter": "derberq",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "avro-schema-parser",
+ "openapi-schema-parser",
+ "chatbot",
+ "diff",
+ "cli",
+ "generator-filters",
+ "generator-hooks",
+ "github-action-for-generator",
+ "generator",
+ "nodejs-template",
+ "nodejs-ws-template",
+ "parser-js",
+ "playground",
+ "spec",
+ "spec-json-schemas",
+ "template-for-generator-templates",
+ "website",
+ "bundler"
+ ]
+ },
+ {
+ "name": "Maciej Urba\u0144czyk",
+ "github": "magicmatatjahu",
+ "availableForHire": false,
+ "linkedin": "maciej-urba\u0144czyk-909547164",
+ "slack": "U01EB02BP7A",
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "asyncapi-react",
+ "chatbot",
+ "cli",
+ "converter-go",
+ "event-gateway",
+ "generator-react-sdk",
+ "generator",
+ "html-template",
+ "markdown-template",
+ "modelina",
+ "parser-js",
+ "parser-go",
+ "playground",
+ "server-api",
+ "template-for-go-projects",
+ "website"
+ ]
+ },
+ {
+ "name": "Azeez Elegbede",
+ "linkedin": "acebuild",
+ "github": "AceTheCreator",
+ "twitter": "_acebuild",
+ "slack": "U01RWDD69PZ",
+ "company": "Postman",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "chatbot"
+ ]
+ },
+ {
+ "name": "Michael Davis",
+ "github": "damaru-inc",
+ "availableForHire": false,
+ "slack": "UH3B166TD",
+ "company": "Solace",
+ "isTscMember": true,
+ "repos": [
+ "java-spring-cloud-stream-template",
+ "python-paho-template",
+ "bindings"
+ ]
+ },
+ {
+ "name": "Missy Turco",
+ "github": "mcturco",
+ "twitter": "missyturco",
+ "slack": "U02JVEQ6S9W",
+ "linkedin": "missy-turco-a476a6126",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "brand",
+ "design-system",
+ "studio",
+ "website"
+ ]
+ },
+ {
+ "name": "Nektarios Fifes",
+ "github": "NektariosFifes",
+ "linkedin": "nektarios-fifes-372740220",
+ "slack": "U01SE93Q48N",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "simulator"
+ ]
+ },
+ {
+ "name": "Pavel Bodiachevskii",
+ "github": "Pakisan",
+ "slack": "U0132LQU8C9",
+ "twitter": "pbodiachevskii",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "jasyncapi"
+ ]
+ },
+ {
+ "name": "Philip Schlesinger",
+ "github": "theschles",
+ "slack": "U054UUYBNLF",
+ "twitter": "philschlesinger",
+ "availableForHire": false,
+ "isTscMember": true,
+ "repos": [
+ "jasyncapi-idea-plugin"
+ ]
+ },
+ {
+ "name": "Pratik Haldankar",
+ "github": "pratik2315",
+ "slack": "U03ADC8FD2S",
+ "linkedin": "pratik-haldankar-1b237a205",
+ "twitter": "PratikHaldankr",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "generator"
+ ]
+ },
+ {
+ "name": "Richard Coppen",
+ "github": "rcoppen",
+ "linkedin": "richard-coppen",
+ "slack": "U01L3FH3BUH",
+ "availableForHire": false,
+ "company": "IBM",
+ "isTscMember": true,
+ "repos": [
+ "bindings"
+ ]
+ },
+ {
+ "name": "Sergio Moya",
+ "github": "smoya",
+ "linkedin": "smoya",
+ "slack": "UN22ZTLHG",
+ "twitter": "smoyac",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "bindings",
+ "converter-go",
+ "event-gateway",
+ "go-watermill-template",
+ "infra",
+ "parser-api",
+ "parser-go",
+ "server-api",
+ "spec",
+ "spec-json-schemas",
+ "template-for-go-projects"
+ ]
+ },
+ {
+ "name": "Souvik De",
+ "github": "Souvikns",
+ "slack": "U01SGCZMJKW",
+ "twitter": "souvik_ns",
+ "linkedin": "souvik-de-a2b941169",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "cli",
+ "bundler",
+ "glee"
+ ]
+ },
+ {
+ "name": "Alejandra Quetzalli",
+ "github": "alequetzalli",
+ "twitter": "QuetzalliAle",
+ "slack": "U02AKC14WAJ",
+ "linkedin": "alejandra-quetzalli",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "website",
+ "training",
+ "community"
+ ]
+ },
+ {
+ "name": "David Pereira",
+ "github": "BOLT04",
+ "twitter": "BOLT2938",
+ "slack": "U02EC8BT0TX",
+ "linkedin": "jos\u00e9-david-pereira-13ba5315a",
+ "availableForHire": false,
+ "company": "Create IT",
+ "isTscMember": true,
+ "repos": [
+ "server-api"
+ ]
+ },
+ {
+ "name": "Daniel Raper",
+ "github": "dan-r",
+ "slack": "U02FP8WBFQE",
+ "linkedin": "danielr",
+ "availableForHire": false,
+ "company": "IBM",
+ "isTscMember": true,
+ "repos": [
+ "java-template"
+ ]
+ },
+ {
+ "name": "Kieran Murphy",
+ "github": "KieranM1999",
+ "linkedin": "kieran-murphy-175b0412b",
+ "availableForHire": false,
+ "slack": "U02FT2TKM37",
+ "company": "IBM",
+ "isTscMember": true,
+ "repos": [
+ "java-template"
+ ]
+ },
+ {
+ "name": "Tom Jefferson",
+ "github": "JEFFLUFC",
+ "linkedin": "t-jefferson",
+ "slack": "U02FPPCEH6H",
+ "availableForHire": false,
+ "company": "IBM",
+ "isTscMember": true,
+ "repos": [
+ "java-template"
+ ]
+ },
+ {
+ "name": "Lewis Relph",
+ "github": "lewis-relph",
+ "availableForHire": false,
+ "slack": "U02G8MDDEF3",
+ "company": "IBM",
+ "isTscMember": true,
+ "repos": [
+ "java-template"
+ ]
+ },
+ {
+ "name": "David Boyne",
+ "github": "boyney123",
+ "twitter": "boyney123",
+ "slack": "U020GN9C6FM",
+ "availableForHire": false,
+ "company": "AWS",
+ "isTscMember": true,
+ "repos": [
+ "studio",
+ "cli"
+ ]
+ },
+ {
+ "name": "Semen Tenishchev",
+ "github": "Tenischev",
+ "linkedin": "semen-tenishchev",
+ "availableForHire": true,
+ "slack": "U011D1DAU6S",
+ "isTscMember": true,
+ "repos": [
+ "java-spring-template"
+ ]
+ },
+ {
+ "name": "Samridhi Agrawal",
+ "github": "Samridhi-98",
+ "slack": "U02T2MY9W5T",
+ "linkedin": "samridhi-agrawal-1713201ab",
+ "availableForHire": false,
+ "company": "ThoughtWorks",
+ "isTscMember": true,
+ "repos": [
+ "modelina"
+ ]
+ },
+ {
+ "name": "Debajyoti Halder",
+ "github": "ron-debajyoti",
+ "twitter": "rondebajyoti",
+ "slack": "U02UK9RUPGQ",
+ "linkedin": "rondebajyoti",
+ "availableForHire": false,
+ "company": "Narvar",
+ "isTscMember": true,
+ "repos": [
+ "modelina"
+ ]
+ },
+ {
+ "name": "Ivan Garcia Sainz-Aja",
+ "github": "ivangsa",
+ "linkedin": "ivangarciasainzaja",
+ "slack": "UTCN3ET4M",
+ "availableForHire": false,
+ "company": "SNGULAR",
+ "isTscMember": true,
+ "repos": [
+ "vs-asyncapi-preview"
+ ]
+ },
+ {
+ "name": "Florence Njeri",
+ "github": "Florence-Njeri",
+ "linkedin": "florencenjeri",
+ "slack": "U03D18YKX2M",
+ "twitter": "njericodes",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "generator"
+ ]
+ },
+ {
+ "name": "Jeremy Whitlock",
+ "github": "whitlockjc",
+ "linkedin": "whitlockjc",
+ "slack": "U03HBC08EBB",
+ "twitter": "whitlockjc",
+ "availableForHire": false,
+ "company": "Google",
+ "isTscMember": true,
+ "repos": [
+ "bindings"
+ ]
+ },
+ {
+ "name": "Vladim\u00edr Gorej",
+ "github": "char0n",
+ "linkedin": "vladimirgorej",
+ "slack": "U03NV5L4S49",
+ "twitter": "vladimirgorej",
+ "availableForHire": false,
+ "company": "SmartBear",
+ "isTscMember": true,
+ "repos": [
+ "bindings",
+ "spec",
+ "spec-json-schemas"
+ ]
+ },
+ {
+ "name": "Alexander Wichmann",
+ "github": "VisualBean",
+ "linkedin": "alexcarlsen",
+ "slack": "U04C58GB8TF",
+ "availableForHire": false,
+ "company": "The LEGO Group",
+ "isTscMember": true,
+ "repos": [
+ "bindings"
+ ]
+ },
+ {
+ "name": "Barba\u00f1o Gonz\u00e1lez",
+ "linkedin": "barbano-gonzalez-moreno",
+ "twitter": "BarbanoGonzalez",
+ "github": "Barbanio",
+ "slack": "U01J42QDSLU",
+ "availableForHire": false,
+ "company": "Postman",
+ "isTscMember": true,
+ "repos": [
+ "training",
+ "community"
+ ]
+ },
+ {
+ "name": "Kenneth Aasan",
+ "github": "kennethaasan",
+ "slack": "U037S2HK4TS",
+ "twitter": "kennethaasan",
+ "availableForHire": false,
+ "company": "Sportradar",
+ "isTscMember": true,
+ "repos": [
+ "modelina"
+ ]
+ },
+ {
+ "name": "Heiko Henning",
+ "github": "GreenRover",
+ "slack": "U03AC4G51H8",
+ "availableForHire": false,
+ "company": "mtrail GmbH",
+ "isTscMember": true,
+ "repos": [
+ "protobuf-schema-parser"
+ ]
+ },
+ {
+ "name": "connil",
+ "github": "connil",
+ "slack": "U03A51H8",
+ "availableForHire": false,
+ "company": "GmbH",
+ "isTscMember": false,
+ "repos": [
+ "dotnet-rabbitmq-template"
+ ]
+ },
+ {
+ "name": "mr-nuno",
+ "github": "mr-nuno",
+ "slack": "U03A5145",
+ "availableForHire": false,
+ "company": "GmbH",
+ "isTscMember": false,
+ "repos": [
+ "dotnet-rabbitmq-template"
+ ]
+ },
+ {
+ "name": "Thulisile Sibanda",
+ "github": "thulieblack",
+ "linkedin": "v-thulisile-sibanda",
+ "twitter": "thulieblack",
+ "slack": "U03CNJPMT7C",
+ "availableForHire": false,
+ "company": "AsyncAPI Initiative",
+ "isTscMember": true,
+ "repos": [
+ "website",
+ "community"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/config/TSC_MEMBERS.json b/config/TSC_MEMBERS.json
deleted file mode 100644
index 1de572a3cc1..00000000000
--- a/config/TSC_MEMBERS.json
+++ /dev/null
@@ -1,573 +0,0 @@
-[
- {
- "name": "Aayush Sahu",
- "github": "aayushmau5",
- "linkedin": "aayushmau5",
- "slack": "U01QRHR1ABH",
- "twitter": "aayushmau5",
- "availableForHire": false,
- "repos": [
- "diff"
- ]
- },
- {
- "name": "Abir Pal",
- "linkedin": "imabp",
- "slack": "U01S8EQ9LQ2",
- "twitter": "imabptweets",
- "github":"imabp",
- "availableForHire": false,
- "repos": [
- "problem"
- ]
- },
- {
- "name": "Akshat Nema",
- "github": "akshatnema",
- "linkedin": "akshat-nema",
- "slack": "U02TAMG2VKN",
- "twitter": "AksNema",
- "availableForHire": true,
- "repos": [
- "website"
- ]
- },
- {
- "name": "Anand Sunderraman",
- "github": "anandsunderraman",
- "linkedin": "anand-sunderraman-a6b7a131",
- "slack": "U0231F9KXNK",
- "availableForHire": false,
- "repos": [
- "go-watermill-template"
- ]
- },
- {
- "name": "Arjun Garg",
- "github": "arjungarg07",
- "linkedin": "arjungarg17",
- "slack": "U01QX79S734",
- "twitter": "ArjunGarg07",
- "availableForHire": true,
- "repos": [
- "cupid"
- ]
- },
- {
- "name": "Cameron Rushton",
- "github": "CameronRushton",
- "slack": "U01DVKKAV5K",
- "availableForHire": false,
- "company": "Solace",
- "repos": [
- "java-spring-cloud-stream-template",
- "python-paho-template",
- "bindings"
- ]
- },
- {
- "name": "Dale Lane",
- "github": "dalelane",
- "linkedin": "dalelane",
- "slack": "U01EYAFR5BR",
- "twitter": "dalelane",
- "availableForHire": false,
- "company": "IBM",
- "repos": [
- "avro-schema-parser",
- "bindings",
- "java-template"
- ]
- },
- {
- "name": "Emiliano Zublena",
- "github": "emilianozublena",
- "linkedin": "emilianozublena",
- "slack": "U01LYC8PW0M",
- "availableForHire": false,
- "repos": [
- "asyncapi-php-template"
- ]
- },
- {
- "name": "Fran MΓ©ndez",
- "github": "fmvilas",
- "slack": "U34F2JRRS",
- "availableForHire": false,
- "company": "Postman",
- "linkedin": "fmvilas",
- "repos": [
- "raml-dt-schema-parser",
- "avro-schema-parser",
- "openapi-schema-parser",
- "asyncapi-react",
- "glee",
- "generator",
- "nodejs-template",
- "nodejs-ws-template",
- "parser-js",
- "playground",
- "spec",
- "spec-json-schemas",
- "website",
- "bindings"
- ]
- },
- {
- "name": "Gerald Loeffler",
- "github": "GeraldLoeffler",
- "linkedin": "geraldloeffler",
- "slack": "U01P5QDLP0X",
- "availableForHire": false,
- "company": "Salesforce",
- "repos": [
- "bindings"
- ]
- },
- {
- "name": "Jonas Lagoni",
- "github": "jonaslagoni",
- "linkedin": "jonaslagoni",
- "slack": "UQ2ANBG1E",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "dotnet-nats-template",
- "ts-nats-template",
- "generator-react-sdk",
- "generator",
- "modelina",
- "parser-js",
- "parser-api",
- "simulator"
- ]
- },
- {
- "name": "Khuda Dad Nomani",
- "github": "KhudaDad414",
- "twitter": "KhudaDadNomani",
- "linkedin": "khudadadnomani",
- "slack": "U01RVRD1TCL",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "optimizer",
- "bindings",
- "glee",
- ".github"
- ]
- },
- {
- "name": "Laurent Broudoux",
- "github": "lbroudoux",
- "twitter": "lbroudoux",
- "linkedin": "laurentbroudoux",
- "slack": "U018NLDV5E1",
- "availableForHire": false,
- "repos": [
- "bindings"
- ]
- },
- {
- "name": "Ludovic Dussart",
- "github": "m3lkior",
- "linkedin": "ludovic-dussart-846a8063",
- "slack": "U01BM49KL3Z",
- "twitter": "ldussart",
- "availableForHire": false,
- "company": "Ineat",
- "repos": [
- "avro-schema-parser"
- ]
- },
- {
- "name": "Lukasz Gornicki",
- "github": "derberg",
- "linkedin": "lukasz-gornicki-a621914",
- "slack": "UD698Q5LM",
- "twitter": "derberq",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "avro-schema-parser",
- "openapi-schema-parser",
- "chatbot",
- "diff",
- "cli",
- "generator-filters",
- "generator-hooks",
- "github-action-for-generator",
- "generator",
- "nodejs-template",
- "nodejs-ws-template",
- "parser-js",
- "playground",
- "spec",
- "spec-json-schemas",
- "template-for-generator-templates",
- "website",
- "bundler"
- ]
- },
- {
- "name": "Maciej UrbaΕczyk",
- "github": "magicmatatjahu",
- "availableForHire": false,
- "linkedin": "maciej-urbaΕczyk-909547164",
- "slack": "U01EB02BP7A",
- "company": "Postman",
- "repos": [
- "asyncapi-react",
- "chatbot",
- "cli",
- "converter-go",
- "event-gateway",
- "generator-react-sdk",
- "generator",
- "html-template",
- "markdown-template",
- "modelina",
- "parser-js",
- "parser-go",
- "playground",
- "server-api",
- "template-for-go-projects",
- "website"
- ]
- },
- {
- "name": "Azeez Elegbede",
- "linkedin": "acebuild",
- "github": "AceTheCreator",
- "twitter": "_acebuild",
- "slack": "U01RWDD69PZ",
- "company": "Postman",
- "availableForHire": false,
- "repos": [
- "chatbot"
- ]
- },
- {
- "name": "Michael Davis",
- "github": "damaru-inc",
- "availableForHire": false,
- "slack": "UH3B166TD",
- "company": "Solace",
- "repos": [
- "java-spring-cloud-stream-template",
- "python-paho-template",
- "bindings"
- ]
- },
- {
- "name": "Missy Turco",
- "github": "mcturco",
- "twitter": "missyturco",
- "slack":"U02JVEQ6S9W",
- "linkedin": "missy-turco-a476a6126",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "brand",
- "design-system",
- "studio",
- "website"
- ]
- },
- {
- "name": "Nektarios Fifes",
- "github": "NektariosFifes",
- "linkedin": "nektarios-fifes-372740220",
- "slack": "U01SE93Q48N",
- "availableForHire": true,
- "repos": [
- "simulator"
- ]
- },
- {
- "name": "Pavel Bodiachevskii",
- "github": "Pakisan",
- "slack": "U0132LQU8C9",
- "twitter": "pbodiachevskii",
- "availableForHire": false,
- "repos": [
- "jasyncapi"
- ]
- },
- {
- "name": "Philip Schlesinger",
- "github": "theschles",
- "slack": "U054UUYBNLF",
- "twitter": "philschlesinger",
- "availableForHire": false,
- "repos": [
- "jasyncapi-idea-plugin"
- ]
- },
- {
- "name": "Pratik Haldankar",
- "github": "pratik2315",
- "slack": "U03ADC8FD2S",
- "linkedin": "pratik-haldankar-1b237a205",
- "twitter": "PratikHaldankr",
- "availableForHire": true,
- "repos": [
- "generator"
- ]
- },
- {
- "name": "Richard Coppen",
- "github": "rcoppen",
- "linkedin": "richard-coppen",
- "slack": "U01L3FH3BUH",
- "availableForHire": false,
- "company": "IBM",
- "repos": [
- "bindings"
- ]
- },
- {
- "name": "Sergio Moya",
- "github": "smoya",
- "linkedin": "smoya",
- "slack": "UN22ZTLHG",
- "twitter": "smoyac",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "bindings",
- "converter-go",
- "event-gateway",
- "go-watermill-template",
- "infra",
- "parser-api",
- "parser-go",
- "server-api",
- "spec",
- "spec-json-schemas",
- "template-for-go-projects"
- ]
- },
- {
- "name": "Souvik De",
- "github": "Souvikns",
- "slack": "U01SGCZMJKW",
- "twitter": "souvik_ns",
- "linkedin": "souvik-de-a2b941169",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "cli",
- "bundler",
- "glee"
- ]
- },
- {
- "name": "Alejandra Quetzalli",
- "github": "alequetzalli",
- "twitter": "QuetzalliAle",
- "slack": "U02AKC14WAJ",
- "linkedin": "alejandra-quetzalli",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "website",
- "training",
- "community"
- ]
- },
- {
- "name": "David Pereira",
- "github": "BOLT04",
- "twitter": "BOLT2938",
- "slack": "U02EC8BT0TX",
- "linkedin": "josΓ©-david-pereira-13ba5315a",
- "availableForHire": false,
- "company": "Create IT",
- "repos": [
- "server-api"
- ]
- },
- {
- "name": "Daniel Raper",
- "github": "dan-r",
- "slack": "U02FP8WBFQE",
- "linkedin": "danielr",
- "availableForHire": false,
- "company": "IBM",
- "repos": [
- "java-template"
- ]
- },
- {
- "name": "Kieran Murphy",
- "github": "KieranM1999",
- "linkedin": "kieran-murphy-175b0412b",
- "availableForHire": false,
- "slack": "U02FT2TKM37",
- "company": "IBM",
- "repos": [
- "java-template"
- ]
- },
- {
- "name": "Tom Jefferson",
- "github": "JEFFLUFC",
- "linkedin": "t-jefferson",
- "slack": "U02FPPCEH6H",
- "availableForHire": false,
- "company": "IBM",
- "repos": [
- "java-template"
- ]
- },
- {
- "name": "Lewis Relph",
- "github": "lewis-relph",
- "availableForHire": false,
- "slack": "U02G8MDDEF3",
- "company": "IBM",
- "repos": [
- "java-template"
- ]
- },
- {
- "name": "David Boyne",
- "github": "boyney123",
- "twitter": "boyney123",
- "slack": "U020GN9C6FM",
- "availableForHire": false,
- "company": "AWS",
- "repos": [
- "studio",
- "cli"
- ]
- },
- {
- "name": "Semen Tenishchev",
- "github": "Tenischev",
- "linkedin": "semen-tenishchev",
- "availableForHire": true,
- "slack": "U011D1DAU6S",
- "repos": [
- "java-spring-template"
- ]
- },
- {
- "name": "Samridhi Agrawal",
- "github": "Samridhi-98",
- "slack": "U02T2MY9W5T",
- "linkedin": "samridhi-agrawal-1713201ab",
- "availableForHire": false,
- "company": "ThoughtWorks",
- "repos": [
- "modelina"
- ]
- },
- {
- "name": "Debajyoti Halder",
- "github": "ron-debajyoti",
- "twitter": "rondebajyoti",
- "slack": "U02UK9RUPGQ",
- "linkedin": "rondebajyoti",
- "availableForHire": false,
- "company": "Narvar",
- "repos": [
- "modelina"
- ]
- },
- {
- "name": "Ivan Garcia Sainz-Aja",
- "github": "ivangsa",
- "linkedin": "ivangarciasainzaja",
- "slack": "UTCN3ET4M",
- "availableForHire": false,
- "company": "SNGULAR",
- "repos": [
- "vs-asyncapi-preview"
- ]
- },
- {
- "name": "Florence Njeri",
- "github": "Florence-Njeri",
- "linkedin": "florencenjeri",
- "slack": "U03D18YKX2M",
- "twitter": "njericodes",
- "availableForHire": true,
- "repos": [
- "generator"
- ]
- },
- {
- "name": "Jeremy Whitlock",
- "github": "whitlockjc",
- "linkedin": "whitlockjc",
- "slack": "U03HBC08EBB",
- "twitter": "whitlockjc",
- "availableForHire": false,
- "company": "Google",
- "repos": [
- "bindings"
- ]
- },
- {
- "name": "VladimΓr Gorej",
- "github": "char0n",
- "linkedin": "vladimirgorej",
- "slack": "U03NV5L4S49",
- "twitter": "vladimirgorej",
- "availableForHire": false,
- "company": "SmartBear",
- "repos": [
- "bindings",
- "spec",
- "spec-json-schemas"
- ]
- },
- {
- "name": "Alexander Wichmann",
- "github": "VisualBean",
- "linkedin": "alexcarlsen",
- "slack": "U04C58GB8TF",
- "availableForHire": false,
- "company": "The LEGO Group",
- "repos": [
- "bindings"
- ]
- },
- {
- "name": "BarbaΓ±o GonzΓ‘lez",
- "linkedin": "barbano-gonzalez-moreno",
- "twitter": "BarbanoGonzalez",
- "github":"Barbanio",
- "slack":"U01J42QDSLU",
- "availableForHire": false,
- "company": "Postman",
- "repos": [
- "training",
- "community"
- ]
- },
- {
- "name": "Kenneth Aasan",
- "github": "kennethaasan",
- "slack": "U037S2HK4TS",
- "twitter": "kennethaasan",
- "availableForHire": false,
- "company": "Sportradar",
- "repos": [
- "modelina"
- ]
- },
- {
- "name": "Heiko Henning",
- "github": "GreenRover",
- "slack": "U03AC4G51H8",
- "availableForHire": false,
- "company": "mtrail GmbH",
- "repos": [
- "protobuf-schema-parser"
- ]
- }
-
-]
diff --git a/config/all-tags.json b/config/all-tags.json
index fcc2f8108b9..0cbbd835368 100644
--- a/config/all-tags.json
+++ b/config/all-tags.json
@@ -1 +1 @@
-{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}
\ No newline at end of file
+{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}
\ No newline at end of file
diff --git a/config/casestudies/adeo.yml b/config/casestudies/adeo.yml
index 35f294136ab..cd69dfece77 100644
--- a/config/casestudies/adeo.yml
+++ b/config/casestudies/adeo.yml
@@ -87,8 +87,22 @@ schemas:
description: Avro 1.9
storage: Git repository where source code is. During release they are published to Confluent Schema Registry.
registry: Confluent Schema Registry.
- versioning: Versioning is based on git tags. The schema version pushed to Confluent Schema Registry matches the git tag version of the product. Every schema has a `version` information that matches with product tag version.
validation: Based on validation using Confluent Schema Registry.
+ versioning: |
+ Versioning is based on git tags. The schema version pushed to Confluent Schema Registry
+ matches the git tag version of the product. Every schema has a `version` information
+ that matches with product tag version.
+
+ Example Avro schema with version information:
+ ```json
+ {
+ "namespace": "com.adeo.casestudy.costingrequest",
+ "type": "record",
+ "name": "CostingRequestPayload",
+ "version": "1.1.0",
+ "fields": [ ... ]
+ }
+ ```
asyncapi:
usecase: |
Document the API of the product, so its users know how it works and how to use it. AsyncAPI was selected as the standard that allows you to generate documentation from a machine-readable document that describes the API.
diff --git a/config/meetings.json b/config/meetings.json
index 80432da1f84..e3ead11562f 100644
--- a/config/meetings.json
+++ b/config/meetings.json
@@ -1,52 +1,4 @@
[
- {
- "title": "Spec 3.0 Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=YTNvaDExZGQ0dmwzZmxsdTU2dHZ1OW5iZzggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/624",
- "date": "2023-03-15T16:00:00.000Z"
- },
- {
- "title": "Career Empowerment and Embracing Equity in Tech",
- "calLink": "https://www.google.com/calendar/event?eid=aGc1cDIybTM5MWtsdGFmMjNhOWdqY2MwYzggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/625",
- "date": "2023-03-08T14:00:00.000Z"
- },
- {
- "title": "Spec 3.0 Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=bjE2ZTdnZGJ1bHNxMWhrcW9rcjh0bGRxN3MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/635",
- "date": "2023-03-29T16:00:00.000Z"
- },
- {
- "title": "Adding support for non-JSON schemas",
- "calLink": "https://www.google.com/calendar/event?eid=dmU0Ym5wZWplZnZpZXM3dG0yNzUyYWJsZDAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/637",
- "date": "2023-03-21T15:00:00.000Z"
- },
- {
- "title": "Make Your GSoC Proposal Stand Out",
- "calLink": "https://www.google.com/calendar/event?eid=MGxsbzg1dWdjNmJkZTlzbmpkNms5bjVsMDQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/639",
- "date": "2023-03-20T14:00:00.000Z"
- },
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=NXM3ZWNraGQzNGMwcjUwM2MxdGtib3VuaWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/640",
- "date": "2023-03-21T16:00:00.000Z"
- },
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=czRmMG5maHRsYjduM2g3dmwxMDM1Z3R0NzAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/645",
- "date": "2023-04-04T08:00:00.000Z"
- },
- {
- "title": "Spec 3.0 Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=djhsdjZvbmRsampvb2tsYzhkZWFyc3FtYTAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/649",
- "date": "2023-04-13T15:00:00.000Z"
- },
{
"title": "Community Meeting",
"calLink": "https://www.google.com/calendar/event?eid=MzgwdmZiMTc4cnBmbTUzdWVlbmM4aWYyM2MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
@@ -193,5 +145,96 @@
"url": "https://github.com/asyncapi/community/issues/749",
"banner": "",
"date": "2023-06-22T14:30:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=MHBhZDRzZ2M0OXFqbDJhaXRxcnUwNm9hcmMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/760",
+ "banner": "",
+ "date": "2023-07-05T16:00:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=aGdqYmk0NDdiMGE4cGo4NzFuaWxycjNiYmsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/761",
+ "banner": "",
+ "date": "2023-07-19T16:00:00.000Z"
+ },
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=bjZxY3JoZmZjNmk0azU4bDdzOHFrOGcxY28gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/762",
+ "banner": "https://user-images.githubusercontent.com/40604284/246774505-ba6d0600-d250-43fe-b6f3-5587de26ea01.png",
+ "date": "2023-06-27T08:00:00.000Z"
+ },
+ {
+ "title": "Fran AMA AsyncAPI",
+ "calLink": "https://www.google.com/calendar/event?eid=N2cxZjlobW0xOW9ocG5rMnVhaDZhbDQ2aGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/764",
+ "banner": "",
+ "date": "2023-06-23T10:00:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Docs Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=YmhiaTQxNDBicDA0NjgyZmk3M3ZocTJxbGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/774",
+ "banner": "",
+ "date": "2023-07-06T14:30:00.000Z"
+ },
+ {
+ "title": "Open Standards and Private Products: A DevRel's Dream or Nightmare",
+ "calLink": "https://www.google.com/calendar/event?eid=dHMzZ3Q0b2h2NDRuaTVrMTQ3cmsxYzk2bzAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/775",
+ "banner": "https://user-images.githubusercontent.com/66913810/249772860-0b6c73a5-a740-4fac-a22d-2d95f823ae07.png",
+ "date": "2023-07-13T09:00:00.000Z"
+ },
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=cmFudjRxMjVhazk1Y2FjbXA3Zm1pMWZyZjAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/784",
+ "banner": "https://user-images.githubusercontent.com/40604284/250981834-3418496b-d123-4e74-a7ff-082b4714c841.png",
+ "date": "2023-07-11T16:00:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Docs Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=NzU0aGMxOWY5MmYyYzA3OTduazF0MWZqY2MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/790",
+ "banner": "",
+ "date": "2023-07-20T14:30:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Docs Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=aWhzNWwxZWkxdWVlMWhvbGs4aWY2YzU1am8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/791",
+ "banner": "",
+ "date": "2023-08-03T14:30:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Docs Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=cG9iOHNqZGlrbmg4cnUxanMzMTgyN3AxdnMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/792",
+ "banner": "",
+ "date": "2023-08-17T14:30:00.000Z"
+ },
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=MmpwYXMxYjBscjlnYWhtMHR2MnQ2MTMwM2cgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/798",
+ "banner": "https://user-images.githubusercontent.com/40604284/252807786-f93110e3-c344-4080-9c4f-9d32cb324680.png",
+ "date": "2023-07-25T08:00:00.000Z"
+ },
+ {
+ "title": "Design meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=czVxbG5jZXV2MThxczJjczdhMmtxZzE1djAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/800",
+ "banner": "",
+ "date": "2023-07-18T08:00:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=aTBkZHJ2YWczcG1hZWFqbTFlMWowZjZnbzAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/812",
+ "banner": "",
+ "date": "2023-08-02T16:00:00.000Z"
}
]
\ No newline at end of file
diff --git a/config/modelina-language-options.json b/config/modelina-language-options.json
deleted file mode 100644
index b95bede80e5..00000000000
--- a/config/modelina-language-options.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "value": "typescript",
- "text": "TypeScript"
- },
- {
- "value": "java",
- "text": "Java"
- },
- {
- "value": "go",
- "text": "Go"
- },
- {
- "value": "javascript",
- "text": "JavaScript"
- },
- {
- "value": "csharp",
- "text": "C#"
- }
-]
\ No newline at end of file
diff --git a/config/newsroom_videos.json b/config/newsroom_videos.json
index 2cad4f83764..3eda25f1a2d 100644
--- a/config/newsroom_videos.json
+++ b/config/newsroom_videos.json
@@ -1,32 +1,32 @@
[
{
- "image_url": "https://i.ytimg.com/vi/mAISwYCZa2I/hqdefault.jpg",
- "title": "Studio planning",
- "description": "https://github.com/asyncapi/community/issues/745.",
- "videoId": "mAISwYCZa2I"
+ "image_url": "https://i.ytimg.com/vi/CagY5otdY14/hqdefault.jpg",
+ "title": "Community Meeting (July 25th 2023)",
+ "description": "https://github.com/asyncapi/community/issues/798.",
+ "videoId": "CagY5otdY14"
},
{
- "image_url": "https://i.ytimg.com/vi/V3Op2A08UQs/hqdefault.jpg",
- "title": "Headless Commerce: Streamlining Architecture",
- "description": "https://github.com/asyncapi/community/issues/716.",
- "videoId": "V3Op2A08UQs"
+ "image_url": "https://i.ytimg.com/vi/GAjlJFXjMh8/hqdefault.jpg",
+ "title": "Design meeting #2",
+ "description": "Meeting issue: https://github.com/asyncapi/community/issues/800 Summary: Here's a summary of what we discussed: * Fran and ...",
+ "videoId": "GAjlJFXjMh8"
},
{
- "image_url": "https://i.ytimg.com/vi/LfKYDiqZDNA/hqdefault.jpg",
- "title": "Let's talk about contributing: Mentorship Program FAQ",
- "description": "https://github.com/asyncapi/community/issues/739.",
- "videoId": "LfKYDiqZDNA"
+ "image_url": "https://i.ytimg.com/vi/WlD5rqmfezw/hqdefault.jpg",
+ "title": "Open Standards and Private Products: A DevRel's Dream or Nightmare",
+ "description": "We are discussing the impact of open standards and working with private products as a DevRel.",
+ "videoId": "WlD5rqmfezw"
},
{
- "image_url": "https://i.ytimg.com/vi/_zdXm90KvF0/hqdefault.jpg",
- "title": "Community Meeting, Tuesday June 13th 2023",
- "description": "https://github.com/asyncapi/community/issues/738.",
- "videoId": "_zdXm90KvF0"
+ "image_url": "https://i.ytimg.com/vi/5o5BHJqGxIg/hqdefault.jpg",
+ "title": "Community Meeting (July 11th 2023)",
+ "description": "https://github.com/asyncapi/community/issues/784.",
+ "videoId": "5o5BHJqGxIg"
},
{
- "image_url": "https://i.ytimg.com/vi/52qqKE8jFlI/hqdefault.jpg",
- "title": "Spec 3.0 (June 7th 2023)",
- "description": "https://github.com/asyncapi/community/issues/734.",
- "videoId": "52qqKE8jFlI"
+ "image_url": "https://i.ytimg.com/vi/Lunp8eSLONc/hqdefault.jpg",
+ "title": "Spec 3.0 DOCS Meeting (July 6th 2023)",
+ "description": "https://github.com/asyncapi/community/issues/774.",
+ "videoId": "Lunp8eSLONc"
}
]
\ No newline at end of file
diff --git a/config/tools-automated.json b/config/tools-automated.json
index 1a91ef8f5fa..a02f8c8bcd7 100644
--- a/config/tools-automated.json
+++ b/config/tools-automated.json
@@ -2,6 +2,26 @@
"APIs": {
"description": "The following is a list of APIs that expose functionality related to AsyncAPI.",
"toolsList": [
+ {
+ "title": "AsyncAPI Server API",
+ "description": "Server API providing official AsyncAPI tools",
+ "links": {
+ "websiteUrl": "https://api.asyncapi.com/v1",
+ "docsUrl": "https://api.asyncapi.com/v1/docs",
+ "repoUrl": "https://github.com/asyncapi/server-api"
+ },
+ "filters": {
+ "technology": [
+ "Node.js",
+ "TypeScript"
+ ],
+ "categories": [
+ "api"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ },
{
"title": "SIO-AsyncAPI",
"description": "This is code-first approach to generate AsyncAPI specification from Socket.IO server.",
@@ -30,22 +50,22 @@
"description": "The following is a list of tools that generate AsyncAPI documents from your code.",
"toolsList": [
{
- "title": "SIO-AsyncAPI",
- "description": "This is code-first approach to generate AsyncAPI specification from Socket.IO server.",
+ "title": "AsyncAPI.Net",
+ "description": "The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.",
"links": {
- "websiteUrl": "https://github.com/daler-rahimov/sio-asyncapi",
- "docsUrl": "https://github.com/daler-rahimov/sio-asyncapi",
- "repoUrl": "https://github.com/daler-rahimov/sio-asyncapi"
+ "websiteUrl": "https://github.com/LEGO/AsyncAPI.NET/",
+ "repoUrl": "https://github.com/LEGO/AsyncAPI.NET"
},
"filters": {
- "language": "Python",
+ "language": "C#",
"technology": [
- "Socket.IO",
- "Flask"
+ ".NET",
+ "ASP.NET"
],
"categories": [
+ "converters",
"code-first",
- "api"
+ "validator"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
@@ -69,27 +89,34 @@
"hasCommercial": false,
"isAsyncAPIOwner": false
}
- }
- ]
- },
- "Code Generators": {
- "description": "The following is a list of tools that generate code from an AsyncAPI document; not the other way around.",
- "toolsList": [
+ },
{
- "title": "Golang AsyncAPI Code Generator",
- "description": "Generate Go client and server boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n",
+ "title": "SIO-AsyncAPI",
+ "description": "This is code-first approach to generate AsyncAPI specification from Socket.IO server.",
"links": {
- "repoUrl": "https://github.com/lerenn/asyncapi-codegen"
+ "websiteUrl": "https://github.com/daler-rahimov/sio-asyncapi",
+ "docsUrl": "https://github.com/daler-rahimov/sio-asyncapi",
+ "repoUrl": "https://github.com/daler-rahimov/sio-asyncapi"
},
"filters": {
- "language": "golang",
+ "language": "Python",
+ "technology": [
+ "Socket.IO",
+ "Flask"
+ ],
"categories": [
- "code-generator"
+ "code-first",
+ "api"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
}
- },
+ }
+ ]
+ },
+ "Code Generators": {
+ "description": "The following is a list of tools that generate code from an AsyncAPI document; not the other way around.",
+ "toolsList": [
{
"title": "ZenWave SDK",
"description": "DDD and API-First for Event-Driven Microservices",
@@ -115,12 +142,50 @@
"hasCommercial": false,
"isAsyncAPIOwner": false
}
+ },
+ {
+ "title": "Golang AsyncAPI Code Generator",
+ "description": "Generate Go client and server boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n",
+ "links": {
+ "repoUrl": "https://github.com/lerenn/asyncapi-codegen"
+ },
+ "filters": {
+ "language": "golang",
+ "categories": [
+ "code-generator"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": false
+ }
}
]
},
"Converters": {
"description": "The following is a list of tools that do not yet belong to any specific category but are also useful for the community.",
- "toolsList": []
+ "toolsList": [
+ {
+ "title": "AsyncAPI.Net",
+ "description": "The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.",
+ "links": {
+ "websiteUrl": "https://github.com/LEGO/AsyncAPI.NET/",
+ "repoUrl": "https://github.com/LEGO/AsyncAPI.NET"
+ },
+ "filters": {
+ "language": "C#",
+ "technology": [
+ ".NET",
+ "ASP.NET"
+ ],
+ "categories": [
+ "converters",
+ "code-first",
+ "validator"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": false
+ }
+ }
+ ]
},
"Directories": {
"description": "The following is a list of directories that index public AsyncAPI documents.",
@@ -132,7 +197,27 @@
},
"Editors": {
"description": "The following is a list of editors or related tools that allow editing of AsyncAPI document.",
- "toolsList": []
+ "toolsList": [
+ {
+ "title": "AsyncAPI Studio",
+ "description": "Visually design your AsyncAPI files and event-driven architecture.",
+ "links": {
+ "websiteUrl": "https://studio.asyncapi.com",
+ "repoUrl": "https://github.com/asyncapi/studio"
+ },
+ "filters": {
+ "technology": [
+ "React JS",
+ "TypeScript"
+ ],
+ "categories": [
+ "editor"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ }
+ ]
},
"UI components": {
"description": "The following is a list of UI components to view AsyncAPI documents.",
@@ -196,6 +281,23 @@
"GitHub Actions": {
"description": "The following is a list of GitHub Actions that you can use in your workflows",
"toolsList": [
+ {
+ "title": "GitHub Action for Generator",
+ "description": "GitHub Action to generate all the things from your AsyncAPI document using the AsyncAPI generator",
+ "links": {
+ "repoUrl": "https://github.com/asyncapi/github-action-for-generator"
+ },
+ "filters": {
+ "technology": [
+ "AsyncAPI Generator"
+ ],
+ "categories": [
+ "github-action"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ },
{
"title": "GitHub Action for Generator",
"description": null,
@@ -248,7 +350,30 @@
},
"Validators": {
"description": "The following is a list of tools that validate AsyncAPI documents.",
- "toolsList": []
+ "toolsList": [
+ {
+ "title": "AsyncAPI.Net",
+ "description": "The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.",
+ "links": {
+ "websiteUrl": "https://github.com/LEGO/AsyncAPI.NET/",
+ "repoUrl": "https://github.com/LEGO/AsyncAPI.NET"
+ },
+ "filters": {
+ "language": "C#",
+ "technology": [
+ ".NET",
+ "ASP.NET"
+ ],
+ "categories": [
+ "converters",
+ "code-first",
+ "validator"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": false
+ }
+ }
+ ]
},
"Compare tools": {
"description": "The following is a list of tools that compare AsyncAPI documents.",
@@ -276,6 +401,25 @@
"CLIs": {
"description": "The following is a list of tools that you can work with in terminal or do some CI/CD automation.",
"toolsList": [
+ {
+ "title": "AsyncAPI CLI",
+ "description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n",
+ "links": {
+ "websiteUrl": "https://www.asyncapi.com/tools/cli",
+ "repoUrl": "https://github.com/asyncapi/cli"
+ },
+ "filters": {
+ "technology": [
+ "TypeScript"
+ ],
+ "categories": [
+ "others",
+ "cli"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ },
{
"title": "ZenWave SDK",
"description": "DDD and API-First for Event-Driven Microservices",
@@ -301,25 +445,6 @@
"hasCommercial": false,
"isAsyncAPIOwner": false
}
- },
- {
- "title": "AsyncAPI CLI",
- "description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n",
- "links": {
- "websiteUrl": "https://www.asyncapi.com/tools/cli",
- "repoUrl": "https://github.com/asyncapi/cli"
- },
- "filters": {
- "technology": [
- "TypeScript"
- ],
- "categories": [
- "others",
- "cli"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": true
- }
}
]
},
@@ -350,18 +475,15 @@
"description": "The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others",
"toolsList": [
{
- "title": "jAsyncAPI - IDEA plugin",
- "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.",
+ "title": "asyncapi-preview",
+ "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n",
"links": {
- "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi",
- "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage",
- "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin"
+ "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview"
},
"filters": {
- "language": "Kotlin",
"technology": [
- "JetBrains",
- "IntelliJ IDEA"
+ "VSCode",
+ "SmartPaste"
],
"categories": [
"ide-extension"
@@ -371,15 +493,18 @@
}
},
{
- "title": "asyncapi-preview",
- "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n",
+ "title": "jAsyncAPI - IDEA plugin",
+ "description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.",
"links": {
- "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview"
+ "websiteUrl": "https://plugins.jetbrains.com/plugin/15673-asyncapi",
+ "docsUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin#usage",
+ "repoUrl": "https://github.com/asyncapi/jasyncapi-idea-plugin"
},
"filters": {
+ "language": "Kotlin",
"technology": [
- "VSCode",
- "SmartPaste"
+ "JetBrains",
+ "IntelliJ IDEA"
],
"categories": [
"ide-extension"
diff --git a/config/tools-manual.json b/config/tools-manual.json
index f33022b4407..2f9ee6b10b9 100644
--- a/config/tools-manual.json
+++ b/config/tools-manual.json
@@ -356,7 +356,8 @@
"title": "Api-Diff-Viewer",
"description": "React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x.",
"links": {
- "repoUrl": "https://github.com/udamir/api-diff-viewer"
+ "repoUrl": "https://github.com/udamir/api-diff-viewer",
+ "websiteUrl": "https://api-diff-viewer.vercel.app/"
},
"filters": {
"language": "TypeScript",
@@ -587,7 +588,25 @@
"language": "TypeScript",
"categories": ["compare-tool"]
}
- }
+ },
+ {
+ "title": "jasyncapicmp",
+ "description": "Tool/library/maven-plugin for comparing two AsyncAPI versions and evaluating compatibility.",
+ "links": {
+ "websiteUrl": "https://siom79.github.io/jasyncapicmp/",
+ "repoUrl": "https://github.com/siom79/jasyncapicmp"
+ },
+ "filters": {
+ "language": "Java",
+ "technology": [
+ "Maven"
+ ],
+ "categories": [
+ "compare-tool"
+ ],
+ "hasCommercial": false
+ }
+ }
]
},
"Others": {
@@ -613,7 +632,20 @@
},
"Bundlers": {
"description": "The following is a list of tools that you can work with to bundle AsyncAPI documents.",
- "toolsList": []
+ "toolsList": [
+ {
+ "title": "Api-ref-bundler",
+ "description": "It allows you bundle/dereference external/internal $refs in Json based API document. Supported specifications: OpenAPI, AsyncAPI, JsonSchema.",
+ "links": {
+ "repoUrl": "https://github.com/udamir/api-ref-bundler"
+ },
+ "filters": {
+ "language": "TypeScript",
+ "technology": ["TypeScript"],
+ "categories": ["bundler"]
+ }
+ }
+ ]
},
"IDE Extensions": {
"description": "The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others",
diff --git a/config/tools.json b/config/tools.json
index f090bc2a864..30ec05cb0d9 100644
--- a/config/tools.json
+++ b/config/tools.json
@@ -1 +1 @@
-{"APIs":{"description":"The following is a list of APIs that expose functionality related to AsyncAPI.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code-first tools":{"description":"The following is a list of tools that generate AsyncAPI documents from your code.","toolsList":[{"title":"EventBridge Atlas","description":"Tool that translates your AWS EventBridge Schemas into an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://eventbridge-atlas.netlify.app/","repoUrl":"https://github.com/boyney123/eventbridge-atlas"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Go AsyncAPI","description":"This library helps to create AsyncAPI spec from your Go message structures. It uses reflection to translate Go structures in JSON Schema definitions and arrange them in AsyncAPI schema.","links":{"repoUrl":"https://github.com/swaggest/go-asyncapi"},"filters":{"language":{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Java AsyncAPI","description":"This tool stores modules, which simplifies interacting with AsyncAPI in jvm ecosystem.","links":{"repoUrl":"https://github.com/asyncapi/jasyncapi"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Kotlin AsyncAPI","description":"The Kotlin AsyncAPI project aims to provide convenience tools for generating and serving AsyncAPI documentation. The core of this project is a Kotlin DSL for building the specification in a typesafe way.","links":{"repoUrl":"https://github.com/OpenFolder/kotlin-asyncapi"},"filters":{"language":{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"nestjs-asyncapi","description":"Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.","links":{"repoUrl":"https://github.com/flamewow/nestjs-asyncapi"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Neuroglia AsyncAPI","description":"A .NET SDK for the Async API specification. Automatically generates and serves AsyncAPI documents based on your code. Includes fluent-builders to create AsyncAPI documents from scratch, and provides a web-based GUI to browse generated documents.","links":{"repoUrl":"https://github.com/neuroglia-io/AsyncApi"},"filters":{"language":{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Saunter","description":"Saunter is an AsyncAPI documentation generator for dotnet. Generates (and hosts) an AsyncAPI schema document from your code.","links":{"repoUrl":"https://github.com/tehmantra/saunter"},"filters":{"language":{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://springwolf.github.io/","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"sttp tapir","description":"Library for describing HTTP endpoints, and then interpreting them as a server, client, or documentation","links":{"websiteUrl":"https://tapir.softwaremill.com/","repoUrl":"https://github.com/softwaremill/tapir"},"filters":{"language":{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}}]},"Code Generators":{"description":"The following is a list of tools that generate code from an AsyncAPI document; not the other way around.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Golang AsyncAPI Code Generator","description":"Generate Go client and server boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n","links":{"repoUrl":"https://github.com/lerenn/asyncapi-codegen"},"filters":{"language":{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"MultiAPI Generator","description":"This is a plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncApi and OpenAPI. It is presented in 2 flavours Maven and Gradle","links":{"repoUrl":"https://github.com/sngular/scs-multiapi-plugin"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Node-RED AsyncAPI plugin","description":"A plugin for generating and configuring nodes for Kafka, MQTT, AMQP, etc. automatically from an AsyncAPI specification.","links":{"repoUrl":"https://github.com/dalelane/node-red-contrib-plugin-asyncapi"},"filters":{"technology":[{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Converters":{"description":"The following is a list of tools that do not yet belong to any specific category but are also useful for the community.","toolsList":[{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/thim81/asyncapi-format"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Converter","description":"Converts old versions of AsyncAPI files into the latest version.","links":{"repoUrl":"https://github.com/asyncapi/converter-js"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Converter-Go","description":"The AsyncAPI Converter converts AsyncAPI documents from versions 1.0.0, 1.1.0 and 1.2.0 to version 2.0.0. It supports both json and yaml formats on input and output. By default, the AsyncAPI Converter converts a document into the json format.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}}]},"Directories":{"description":"The following is a list of directories that index public AsyncAPI documents.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Documentation Generators":{"description":"The following is a list of tools that generate human-readable documentation from an AsyncAPI document.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"asyncapi-asciidoc-template","description":"Asciidoc template for the asyncapi generator","links":{"repoUrl":"https://gitlab.com/djencks/asyncapi-asciidoc-template"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Bump.sh","description":"OpenAPI 2 & 3 / AsyncAPI 2 documentation generator, with automatic changelog and visual diff.","links":{"websiteUrl":"https://bump.sh/","repoUrl":""},"filters":{"categories":["documentation-generator"],"hasCommercial":true,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Cupid","description":"A library that focuses on finding and analyzing the relationships between AsyncAPI documents. It outputs a map of the system architecture.","links":{"repoUrl":"https://github.com/asyncapi/cupid"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://springwolf.github.io/","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Widdershins","description":"OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.0 definition to Slate / Shins compatible markdown.","links":{"websiteUrl":"https://mermade.github.io/reslate/","repoUrl":"https://github.com/Mermade/widdershins"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Editors":{"description":"The following is a list of editors or related tools that allow editing of AsyncAPI document.","toolsList":[]},"UI components":{"description":"The following is a list of UI components to view AsyncAPI documents.","toolsList":[{"title":"Api-Diff-Viewer","description":"React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x.","links":{"repoUrl":"https://github.com/udamir/api-diff-viewer"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI React component","description":"React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue","links":{"repoUrl":"https://github.com/asyncapi/asyncapi-react"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"DSL":{"description":"Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.","toolsList":[{"title":"BOATS","description":"Compile your single AsyncAPI file from multiple YAML files with BOATS and with the help of the template engine Nunjucks, plus a many extra helpers to automate much of the donkey work.","links":{"repoUrl":"https://github.com/j-d-carmichael/boats"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["dsl"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Frameworks":{"description":"The following is a list of API/application frameworks that make use of AsyncAPI.","toolsList":[{"title":"Asynction","description":"SocketIO server framework driven by the AsyncAPI specification. Asynction guarantees that your API will work in accordance with its AsyncAPI documentation. Built on top of Flask-SocketIO.","links":{"websiteUrl":"https://pypi.org/project/asynction/","repoUrl":"https://github.com/dedoussis/asynction"},"filters":{"language":{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},"technology":[{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"GitHub Actions":{"description":"The following is a list of GitHub Actions that you can use in your workflows","toolsList":[{"title":"API documentation generation on Bump.sh","description":"With this GitHub Action you can automatically generate your API reference (with the changelog and diff) on Bump.sh from any AsyncAPI file.","links":{"websiteUrl":"https://github.com/marketplace/actions/api-documentation-on-bump","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Automated version bump for AsyncAPI documents","description":"With this GitHub Action, you can automatically bump the version based on commit messages, which is similar to what semantic-release is for NPM.","links":{"websiteUrl":"https://github.com/marketplace/actions/automated-version-bump-for-asyncapi","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for Generator","description":null,"links":{"repoUrl":"https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Mocking and Testing":{"description":"The tools below take specification documents as input, then publish fake messages to broker destinations for simulation purposes. They may also check that publisher messages are compliant with schemas.","toolsList":[{"title":"Microcks","description":"Mocking and testing platform for API and microservices. Turn your AsyncAPI, OpenAPI contract examples, or Postman collections into ready-to-use mocks. Use examples to simulate and validate received messages according to schema elements.","links":{"websiteUrl":"https://microcks.io/","repoUrl":"https://github.com/microcks/microcks"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"MultiAPI Converter","description":"Use AsyncAPI definition, to generate Spring Cloud Contract producer validation or consumer stubs, using maven.","links":{"repoUrl":"https://github.com/sngular/scc-multiapi-converter"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Virtualan","description":"Mocking and testing platform for API and microservices. Allows you to create and setup mocks for OpenAPI and AsyncAPI contracts. Shows how to setup and create AsyncAPI GitHub Reference Examples and OpenAPI GitHub Reference Examples.","links":{"websiteUrl":"https://www.virtualan.io/index.html","repoUrl":"https://github.com/virtualansoftware"},"filters":{"technology":[{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Validators":{"description":"The following is a list of tools that validate AsyncAPI documents.","toolsList":[{"title":"AMF","description":"AMF (AML Modeling Framework) is an open-source library capable of parsing and validating AML metadata documents.","links":{"docsUrl":"https://a.ml/docs/","repoUrl":"https://github.com/aml-org/amf"},"filters":{"language":{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Parser","description":"Use this package to parse and validate AsyncAPI documents βeither YAML or JSONβ in your Node.js or browser application. Updated bundle for the browser is always attached to the GitHub Release.","links":{"repoUrl":"https://github.com/asyncapi/parser-js"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Parser","description":"The AsyncAPI Parser validates AsyncAPI documents according to dedicated schemas.","links":{"repoUrl":"https://github.com/asyncapi/parser-go"},"filters":{"language":{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}},{"title":"AsyncAPI Parser Wrapper","description":"Use this library to parse and validate AsyncAPI documents β either YAML or JSON β in your Java application. It is a Java wrapper over JavaScript Parser implemented using J2V8.","links":{"repoUrl":"https://github.com/AsyncAPITools/parser-java-wrapper"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"asyncapi-validator","description":"It allows you to validate the schema of your messages against your AsyncAPI schema definition. You can use it with Kafka, RabbitMQ or any other messaging/queue.","links":{"repoUrl":"https://github.com/WaleedAshraf/asyncapi-validator"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Spectral","description":"A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI v2.x.","links":{"repoUrl":"https://github.com/stoplightio/spectral"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Compare tools":{"description":"The following is a list of tools that compare AsyncAPI documents.","toolsList":[{"title":"Api-Smart-Diff","description":"It allows you to compare two API documents and classify changes. Supported API specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-smart-diff"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Diff","description":"Diff is a library that compares two AsyncAPI Documents and provides information about the differences by pointing out explicitly information like breaking changes.","links":{"repoUrl":"https://github.com/asyncapi/diff"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"CLIs":{"description":"The following is a list of tools that you can work with in terminal or do some CI/CD automation.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Bundlers":{"description":"The following is a list of tools that you can work with to bundle AsyncAPI documents.","toolsList":[{"title":"AsyncAPI Bundler","description":"Combine multiple AsyncAPI specification files into one.","links":{"repoUrl":"https://github.com/asyncapi/bundler"},"filters":{"language":{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"IDE Extensions":{"description":"The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others","toolsList":[{"title":"asyncapi-preview","description":"VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n","links":{"repoUrl":"https://github.com/asyncapi/vs-asyncapi-preview"},"filters":{"technology":[{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jAsyncAPI - IDEA plugin","description":"Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.","links":{"websiteUrl":"https://plugins.jetbrains.com/plugin/15673-asyncapi","docsUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin#usage","repoUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin"},"filters":{"language":{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},"technology":[{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Others":{"description":"The following is a list of tools that comes under Other category.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}}]}}
\ No newline at end of file
+{"APIs":{"description":"The following is a list of APIs that expose functionality related to AsyncAPI.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Server API","description":"Server API providing official AsyncAPI tools","links":{"websiteUrl":"https://api.asyncapi.com/v1","docsUrl":"https://api.asyncapi.com/v1/docs","repoUrl":"https://github.com/asyncapi/server-api"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code-first tools":{"description":"The following is a list of tools that generate AsyncAPI documents from your code.","toolsList":[{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"EventBridge Atlas","description":"Tool that translates your AWS EventBridge Schemas into an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://eventbridge-atlas.netlify.app/","repoUrl":"https://github.com/boyney123/eventbridge-atlas"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Go AsyncAPI","description":"This library helps to create AsyncAPI spec from your Go message structures. It uses reflection to translate Go structures in JSON Schema definitions and arrange them in AsyncAPI schema.","links":{"repoUrl":"https://github.com/swaggest/go-asyncapi"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Java AsyncAPI","description":"This tool stores modules, which simplifies interacting with AsyncAPI in jvm ecosystem.","links":{"repoUrl":"https://github.com/asyncapi/jasyncapi"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Kotlin AsyncAPI","description":"The Kotlin AsyncAPI project aims to provide convenience tools for generating and serving AsyncAPI documentation. The core of this project is a Kotlin DSL for building the specification in a typesafe way.","links":{"repoUrl":"https://github.com/OpenFolder/kotlin-asyncapi"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"nestjs-asyncapi","description":"Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.","links":{"repoUrl":"https://github.com/flamewow/nestjs-asyncapi"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Neuroglia AsyncAPI","description":"A .NET SDK for the Async API specification. Automatically generates and serves AsyncAPI documents based on your code. Includes fluent-builders to create AsyncAPI documents from scratch, and provides a web-based GUI to browse generated documents.","links":{"repoUrl":"https://github.com/neuroglia-io/AsyncApi"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Saunter","description":"Saunter is an AsyncAPI documentation generator for dotnet. Generates (and hosts) an AsyncAPI schema document from your code.","links":{"repoUrl":"https://github.com/tehmantra/saunter"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://springwolf.github.io/","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"sttp tapir","description":"Library for describing HTTP endpoints, and then interpreting them as a server, client, or documentation","links":{"websiteUrl":"https://tapir.softwaremill.com/","repoUrl":"https://github.com/softwaremill/tapir"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}}]},"Code Generators":{"description":"The following is a list of tools that generate code from an AsyncAPI document; not the other way around.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Golang AsyncAPI Code Generator","description":"Generate Go client and server boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n","links":{"repoUrl":"https://github.com/lerenn/asyncapi-codegen"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"MultiAPI Generator","description":"This is a plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncApi and OpenAPI. It is presented in 2 flavours Maven and Gradle","links":{"repoUrl":"https://github.com/sngular/scs-multiapi-plugin"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Node-RED AsyncAPI plugin","description":"A plugin for generating and configuring nodes for Kafka, MQTT, AMQP, etc. automatically from an AsyncAPI specification.","links":{"repoUrl":"https://github.com/dalelane/node-red-contrib-plugin-asyncapi"},"filters":{"technology":[{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Converters":{"description":"The following is a list of tools that do not yet belong to any specific category but are also useful for the community.","toolsList":[{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/thim81/asyncapi-format"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Converter","description":"Converts old versions of AsyncAPI files into the latest version.","links":{"repoUrl":"https://github.com/asyncapi/converter-js"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Converter-Go","description":"The AsyncAPI Converter converts AsyncAPI documents from versions 1.0.0, 1.1.0 and 1.2.0 to version 2.0.0. It supports both json and yaml formats on input and output. By default, the AsyncAPI Converter converts a document into the json format.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}}]},"Directories":{"description":"The following is a list of directories that index public AsyncAPI documents.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Documentation Generators":{"description":"The following is a list of tools that generate human-readable documentation from an AsyncAPI document.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"asyncapi-asciidoc-template","description":"Asciidoc template for the asyncapi generator","links":{"repoUrl":"https://gitlab.com/djencks/asyncapi-asciidoc-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Bump.sh","description":"OpenAPI 2 & 3 / AsyncAPI 2 documentation generator, with automatic changelog and visual diff.","links":{"websiteUrl":"https://bump.sh/","repoUrl":""},"filters":{"categories":["documentation-generator"],"hasCommercial":true,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Cupid","description":"A library that focuses on finding and analyzing the relationships between AsyncAPI documents. It outputs a map of the system architecture.","links":{"repoUrl":"https://github.com/asyncapi/cupid"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://springwolf.github.io/","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Widdershins","description":"OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.0 definition to Slate / Shins compatible markdown.","links":{"websiteUrl":"https://mermade.github.io/reslate/","repoUrl":"https://github.com/Mermade/widdershins"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Editors":{"description":"The following is a list of editors or related tools that allow editing of AsyncAPI document.","toolsList":[{"title":"AsyncAPI Studio","description":"Visually design your AsyncAPI files and event-driven architecture.","links":{"websiteUrl":"https://studio.asyncapi.com","repoUrl":"https://github.com/asyncapi/studio"},"filters":{"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["editor"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"UI components":{"description":"The following is a list of UI components to view AsyncAPI documents.","toolsList":[{"title":"Api-Diff-Viewer","description":"React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x.","links":{"repoUrl":"https://github.com/udamir/api-diff-viewer","websiteUrl":"https://api-diff-viewer.vercel.app/"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI React component","description":"React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue","links":{"repoUrl":"https://github.com/asyncapi/asyncapi-react"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"DSL":{"description":"Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.","toolsList":[{"title":"BOATS","description":"Compile your single AsyncAPI file from multiple YAML files with BOATS and with the help of the template engine Nunjucks, plus a many extra helpers to automate much of the donkey work.","links":{"repoUrl":"https://github.com/j-d-carmichael/boats"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["dsl"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Frameworks":{"description":"The following is a list of API/application frameworks that make use of AsyncAPI.","toolsList":[{"title":"Asynction","description":"SocketIO server framework driven by the AsyncAPI specification. Asynction guarantees that your API will work in accordance with its AsyncAPI documentation. Built on top of Flask-SocketIO.","links":{"websiteUrl":"https://pypi.org/project/asynction/","repoUrl":"https://github.com/dedoussis/asynction"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"GitHub Actions":{"description":"The following is a list of GitHub Actions that you can use in your workflows","toolsList":[{"title":"API documentation generation on Bump.sh","description":"With this GitHub Action you can automatically generate your API reference (with the changelog and diff) on Bump.sh from any AsyncAPI file.","links":{"websiteUrl":"https://github.com/marketplace/actions/api-documentation-on-bump","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Automated version bump for AsyncAPI documents","description":"With this GitHub Action, you can automatically bump the version based on commit messages, which is similar to what semantic-release is for NPM.","links":{"websiteUrl":"https://github.com/marketplace/actions/automated-version-bump-for-asyncapi","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for Generator","description":"GitHub Action to generate all the things from your AsyncAPI document using the AsyncAPI generator","links":{"repoUrl":"https://github.com/asyncapi/github-action-for-generator"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"GitHub Action for Generator","description":null,"links":{"repoUrl":"https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Mocking and Testing":{"description":"The tools below take specification documents as input, then publish fake messages to broker destinations for simulation purposes. They may also check that publisher messages are compliant with schemas.","toolsList":[{"title":"Microcks","description":"Mocking and testing platform for API and microservices. Turn your AsyncAPI, OpenAPI contract examples, or Postman collections into ready-to-use mocks. Use examples to simulate and validate received messages according to schema elements.","links":{"websiteUrl":"https://microcks.io/","repoUrl":"https://github.com/microcks/microcks"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"MultiAPI Converter","description":"Use AsyncAPI definition, to generate Spring Cloud Contract producer validation or consumer stubs, using maven.","links":{"repoUrl":"https://github.com/sngular/scc-multiapi-converter"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Virtualan","description":"Mocking and testing platform for API and microservices. Allows you to create and setup mocks for OpenAPI and AsyncAPI contracts. Shows how to setup and create AsyncAPI GitHub Reference Examples and OpenAPI GitHub Reference Examples.","links":{"websiteUrl":"https://www.virtualan.io/index.html","repoUrl":"https://github.com/virtualansoftware"},"filters":{"technology":[{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Validators":{"description":"The following is a list of tools that validate AsyncAPI documents.","toolsList":[{"title":"AMF","description":"AMF (AML Modeling Framework) is an open-source library capable of parsing and validating AML metadata documents.","links":{"docsUrl":"https://a.ml/docs/","repoUrl":"https://github.com/aml-org/amf"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Parser","description":"Use this package to parse and validate AsyncAPI documents βeither YAML or JSONβ in your Node.js or browser application. Updated bundle for the browser is always attached to the GitHub Release.","links":{"repoUrl":"https://github.com/asyncapi/parser-js"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Parser","description":"The AsyncAPI Parser validates AsyncAPI documents according to dedicated schemas.","links":{"repoUrl":"https://github.com/asyncapi/parser-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}},{"title":"AsyncAPI Parser Wrapper","description":"Use this library to parse and validate AsyncAPI documents β either YAML or JSON β in your Java application. It is a Java wrapper over JavaScript Parser implemented using J2V8.","links":{"repoUrl":"https://github.com/AsyncAPITools/parser-java-wrapper"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"asyncapi-validator","description":"It allows you to validate the schema of your messages against your AsyncAPI schema definition. You can use it with Kafka, RabbitMQ or any other messaging/queue.","links":{"repoUrl":"https://github.com/WaleedAshraf/asyncapi-validator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Spectral","description":"A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI v2.x.","links":{"repoUrl":"https://github.com/stoplightio/spectral"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Compare tools":{"description":"The following is a list of tools that compare AsyncAPI documents.","toolsList":[{"title":"Api-Smart-Diff","description":"It allows you to compare two API documents and classify changes. Supported API specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-smart-diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Diff","description":"Diff is a library that compares two AsyncAPI Documents and provides information about the differences by pointing out explicitly information like breaking changes.","links":{"repoUrl":"https://github.com/asyncapi/diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jasyncapicmp","description":"Tool/library/maven-plugin for comparing two AsyncAPI versions and evaluating compatibility.","links":{"websiteUrl":"https://siom79.github.io/jasyncapicmp/","repoUrl":"https://github.com/siom79/jasyncapicmp"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"CLIs":{"description":"The following is a list of tools that you can work with in terminal or do some CI/CD automation.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Bundlers":{"description":"The following is a list of tools that you can work with to bundle AsyncAPI documents.","toolsList":[{"title":"Api-ref-bundler","description":"It allows you bundle/dereference external/internal $refs in Json based API document. Supported specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-ref-bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Bundler","description":"Combine multiple AsyncAPI specification files into one.","links":{"repoUrl":"https://github.com/asyncapi/bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"IDE Extensions":{"description":"The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others","toolsList":[{"title":"asyncapi-preview","description":"VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n","links":{"repoUrl":"https://github.com/asyncapi/vs-asyncapi-preview"},"filters":{"technology":[{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jAsyncAPI - IDEA plugin","description":"Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.","links":{"websiteUrl":"https://plugins.jetbrains.com/plugin/15673-asyncapi","docsUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin#usage","repoUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Others":{"description":"The following is a list of tools that comes under Other category.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}}]}}
\ No newline at end of file
diff --git a/cypress/fixtures/blogpost.json b/cypress/fixtures/blogpost.json
new file mode 100644
index 00000000000..e1191c1d2f0
--- /dev/null
+++ b/cypress/fixtures/blogpost.json
@@ -0,0 +1,248 @@
+{
+ "title": "Awesome 2020 and What Can Get Better In 2021",
+ "date": "2020-12-23T05:00:00.000Z",
+ "type": "Communication",
+ "tags": ["Project Status"],
+ "cover": "/img/posts/2020-summary/cover.webp",
+ "authors": [
+ {
+ "name": "Lukasz Gornicki",
+ "photo": "/img/avatars/lpgornicki.webp",
+ "link": "https://twitter.com/derberq",
+ "byline": "AsyncAPI Maintainer and Dev Comm Keeper"
+ }
+ ],
+ "excerpt": "Fuck you COVID-19, AsyncAPI Community is stronger than you think. See the growth of AsyncAPI in 2020 in hard numbers. How we compare to 2019?",
+ "toc": [
+ {
+ "content": "Important moments",
+ "slug": "important-moments",
+ "lvl": 2,
+ "i": 0,
+ "seen": 0
+ },
+ {
+ "content": "Slack",
+ "slug": "slack",
+ "lvl": 2,
+ "i": 1,
+ "seen": 0
+ },
+ {
+ "content": "Numbers getting high",
+ "slug": "numbers-getting-high",
+ "lvl": 3,
+ "i": 2,
+ "seen": 0
+ },
+ {
+ "content": "Most present companies",
+ "slug": "most-present-companies",
+ "lvl": 3,
+ "i": 3,
+ "seen": 0
+ },
+ {
+ "content": "What's next with Slack",
+ "slug": "whats-next-with-slack",
+ "lvl": 3,
+ "i": 4,
+ "seen": 0
+ },
+ {
+ "content": "LinkedIn",
+ "slug": "linkedin",
+ "lvl": 2,
+ "i": 5,
+ "seen": 0
+ },
+ {
+ "content": "Followers and impressions",
+ "slug": "followers-and-impressions",
+ "lvl": 3,
+ "i": 6,
+ "seen": 0
+ },
+ {
+ "content": "Sponsored marketing",
+ "slug": "sponsored-marketing",
+ "lvl": 3,
+ "i": 7,
+ "seen": 0
+ },
+ {
+ "content": "What's next with LinkedIn",
+ "slug": "whats-next-with-linkedin",
+ "lvl": 3,
+ "i": 8,
+ "seen": 0
+ },
+ {
+ "content": "Google Analytics",
+ "slug": "google-analytics",
+ "lvl": 2,
+ "i": 9,
+ "seen": 0
+ },
+ {
+ "content": "Traffic got much higher",
+ "slug": "traffic-got-much-higher",
+ "lvl": 3,
+ "i": 10,
+ "seen": 0
+ },
+ {
+ "content": "Top referring channels",
+ "slug": "top-referring-channels",
+ "lvl": 3,
+ "i": 11,
+ "seen": 0
+ },
+ {
+ "content": "Top blog posts",
+ "slug": "top-blog-posts",
+ "lvl": 3,
+ "i": 12,
+ "seen": 0
+ },
+ {
+ "content": "What's next with the website",
+ "slug": "whats-next-with-the-website",
+ "lvl": 3,
+ "i": 13,
+ "seen": 0
+ },
+ {
+ "content": "Twitter",
+ "slug": "twitter",
+ "lvl": 2,
+ "i": 14,
+ "seen": 0
+ },
+ {
+ "content": "Paid marketing",
+ "slug": "paid-marketing",
+ "lvl": 3,
+ "i": 15,
+ "seen": 0
+ },
+ {
+ "content": "Top tweets",
+ "slug": "top-tweets",
+ "lvl": 3,
+ "i": 16,
+ "seen": 0
+ },
+ {
+ "content": "What's next with Twitter",
+ "slug": "whats-next-with-twitter",
+ "lvl": 3,
+ "i": 17,
+ "seen": 0
+ },
+ {
+ "content": "GitHub",
+ "slug": "github",
+ "lvl": 2,
+ "i": 18,
+ "seen": 0
+ },
+ {
+ "content": "Most popular repositories",
+ "slug": "most-popular-repositories",
+ "lvl": 3,
+ "i": 19,
+ "seen": 0
+ },
+ {
+ "content": "Traffic growth",
+ "slug": "traffic-growth",
+ "lvl": 3,
+ "i": 20,
+ "seen": 0
+ },
+ {
+ "content": "What's next with GitHub",
+ "slug": "whats-next-with-github",
+ "lvl": 3,
+ "i": 21,
+ "seen": 0
+ },
+ {
+ "content": "npm",
+ "slug": "npm",
+ "lvl": 2,
+ "i": 22,
+ "seen": 0
+ },
+ {
+ "content": "Top packages",
+ "slug": "top-packages",
+ "lvl": 3,
+ "i": 23,
+ "seen": 0
+ },
+ {
+ "content": "What's next with npm",
+ "slug": "whats-next-with-npm",
+ "lvl": 3,
+ "i": 24,
+ "seen": 0
+ },
+ {
+ "content": "YouTube",
+ "slug": "youtube",
+ "lvl": 2,
+ "i": 25,
+ "seen": 0
+ },
+ {
+ "content": "Watch time goes crazy",
+ "slug": "watch-time-goes-crazy",
+ "lvl": 3,
+ "i": 26,
+ "seen": 0
+ },
+ {
+ "content": "Most popular videos",
+ "slug": "most-popular-videos",
+ "lvl": 3,
+ "i": 27,
+ "seen": 0
+ },
+ {
+ "content": "What's next with YouTube",
+ "slug": "whats-next-with-youtube",
+ "lvl": 3,
+ "i": 28,
+ "seen": 0
+ },
+ {
+ "content": "Open Collective",
+ "slug": "open-collective",
+ "lvl": 2,
+ "i": 29,
+ "seen": 0
+ },
+ {
+ "content": "Ultimate questions - how many people use the spec?",
+ "slug": "ultimate-questions---how-many-people-use-the-spec",
+ "lvl": 2,
+ "i": 30,
+ "seen": 0
+ },
+ {
+ "content": "Final words",
+ "slug": "final-words",
+ "lvl": 2,
+ "i": 31,
+ "seen": 0
+ }
+ ],
+ "readingTime": 18,
+ "sectionSlug": "/blog",
+ "sectionWeight": 0,
+ "id": "pages/blog/2020-summary.md",
+ "isIndex": false,
+ "slug": "/blog/2020-summary"
+}
diff --git a/cypress/fixtures/docspost.json b/cypress/fixtures/docspost.json
new file mode 100644
index 00000000000..b22a45d0601
--- /dev/null
+++ b/cypress/fixtures/docspost.json
@@ -0,0 +1,45 @@
+{
+ "title": "Overview",
+ "weight": 1,
+ "toc": [
+ {
+ "content": "Concepts: Define AsyncAPI features and capabilities",
+ "slug": "concepts-define-asyncapi-features-and-capabilities",
+ "lvl": 2,
+ "i": 0,
+ "seen": 0
+ },
+ {
+ "content": "Contribute to AsyncAPI Concepts",
+ "slug": "contribute-to-asyncapi-concepts",
+ "lvl": 2,
+ "i": 1,
+ "seen": 0
+ },
+ {
+ "content": "Docs contributor questions",
+ "slug": "docs-contributor-questions",
+ "lvl": 3,
+ "i": 2,
+ "seen": 0
+ }
+ ],
+ "readingTime": 1,
+ "excerpt": "Concepts: Define AsyncAPI features and capabilities\n\nWelcome to AsyncAPI Concepts! Our Concepts section will define the concepts of AsyncAPI features and capabilities.\n\nContribute to AsyncAPI Concepts",
+ "sectionSlug": "/docs/concepts",
+ "sectionWeight": 1,
+ "sectionTitle": "Concepts",
+ "rootSectionId": "concepts",
+ "id": "pages/docs/concepts/index.md",
+ "isIndex": true,
+ "slug": "/docs/concepts",
+ "nextPage": {
+ "title": "Server",
+ "href": "/docs/concepts/server"
+ },
+ "prevPage": {
+ "title": "Welcome - Welcome",
+ "href": "/docs"
+ }
+ }
+
\ No newline at end of file
diff --git a/cypress/fixtures/jobpost.json b/cypress/fixtures/jobpost.json
new file mode 100644
index 00000000000..04ddd907122
--- /dev/null
+++ b/cypress/fixtures/jobpost.json
@@ -0,0 +1,56 @@
+{
+ "title": "API Architect",
+ "date": "06/22/2021",
+ "category": "Architect",
+ "closingOn": "08/22/2021",
+ "contact": "https://apiture.com/careers/?gh_jid=5303104002",
+ "company": {
+ "name": "Apiture",
+ "logoUrl": "/img/logos/companies/apiture.png"
+ },
+ "toc": [
+ {
+ "content": "About the team",
+ "slug": "about-the-team",
+ "lvl": 2,
+ "i": 0,
+ "seen": 0
+ },
+ {
+ "content": "TL;DR",
+ "slug": "tldr",
+ "lvl": 2,
+ "i": 1,
+ "seen": 0
+ },
+ {
+ "content": "About the job",
+ "slug": "about-the-job",
+ "lvl": 2,
+ "i": 2,
+ "seen": 0
+ },
+ {
+ "content": "About you",
+ "slug": "about-you",
+ "lvl": 2,
+ "i": 3,
+ "seen": 0
+ },
+ {
+ "content": "Pay and benefits",
+ "slug": "pay-and-benefits",
+ "lvl": 2,
+ "i": 4,
+ "seen": 0
+ }
+ ],
+ "readingTime": 5,
+ "excerpt":
+ "About the team\n\nWe are an open API banking platform, focused on creating cutting-edge technology for financial institutions.\nThe platform allows banks the fast and flexible deployment of features that",
+ "sectionSlug": "/jobs",
+ "sectionWeight": 0,
+ "id": "pages/jobs/apiture-api-architect.md",
+ "isIndex": false,
+ "slug": "/jobs/apiture-api-architect"
+}
diff --git a/cypress/support/component.js b/cypress/support/component.js
index 0d9eef9057d..74a4436ff16 100644
--- a/cypress/support/component.js
+++ b/cypress/support/component.js
@@ -20,6 +20,7 @@ import './commands'
// require('./commands')
import { mount } from 'cypress/react'
+import '../../styles/globals.css'
Cypress.Commands.add('mount', mount)
diff --git a/cypress/test/AlgoliaSearch.cy.js b/cypress/test/AlgoliaSearch.cy.js
new file mode 100644
index 00000000000..21d2654a6d2
--- /dev/null
+++ b/cypress/test/AlgoliaSearch.cy.js
@@ -0,0 +1,27 @@
+import { mount } from 'cypress/react'
+import AlgoliaSearch from '../../components/AlgoliaSearch'
+import { SearchButton } from '../../components/AlgoliaSearch';
+import { DocSearchModal } from '@docsearch/react'
+
+describe('AlgoliaSearch component', () => {
+ it('renders without errors', () => {
+ mount(
+
+ Search
+
+ )
+ })
+
+ it('performs search for a specific page', () => {
+ mount(
+
+ Open Search
+
+ );
+ cy.get('button').click(); // Open the search modal
+ cy.get('input[placeholder="Search resources"]').type('welcome')
+ cy.should('have.value', 'welcome')
+ // Check if the docsearch-list element contains the text 'Welcome'
+ cy.get('#docsearch-list').contains('Welcome')
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/AuthorAvatars.cy.js b/cypress/test/AuthorAvatars.cy.js
new file mode 100644
index 00000000000..6732bf1a330
--- /dev/null
+++ b/cypress/test/AuthorAvatars.cy.js
@@ -0,0 +1,65 @@
+import React from 'react';
+import { mount } from 'cypress/react'
+import AuthorAvatars from '../../components/AuthorAvatars';
+
+describe('AuthorAvatars', () => {
+ const authors = [
+ {
+ name: 'John Doe',
+ photo: 'https://example.com/john-doe.jpg',
+ link: 'https://example.com/john-doe'
+ },
+ {
+ name: 'Jane Smith',
+ photo: 'https://example.com/jane-smith.jpg',
+ link: 'https://example.com/jane-smith'
+ }
+ ];
+
+
+ it('renders the author avatars without links', () => {
+ const authorsWithoutLinks = [
+ {
+ name: 'John Doe',
+ photo: 'https://example.com/john-doe.jpg',
+ link: null
+ },
+ {
+ name: 'Jane Smith',
+ photo: 'https://example.com/jane-smith.jpg',
+ link: null
+ },
+ ];
+ mount(
);
+ authorsWithoutLinks.forEach((author, index) => {
+ cy.get('[data-testid="AuthorAvatars-link"]')
+ .should('not.exist');
+
+ cy.get('[data-testid="AuthorAvatars-img"]')
+ .eq(index)
+ .should('have.attr', 'src', author.photo)
+ .should('have.attr', 'title', author.name)
+ .should('have.class', index > 0 ? `absolute left-${index * 7} top-0` : `relative mr-${(authorsWithoutLinks.length - 1) * 7}`)
+ .should('have.class', `z-${(authorsWithoutLinks.length - 1 - index) * 10}`)
+ .should('have.class', 'h-10 w-10 border-2 border-white rounded-full object-cover hover:z-50');
+ });
+ });
+
+
+
+ it('renders the author avatars with links', () => {
+ mount(
);
+ authors.forEach((author, index) => {
+ cy.get(`[data-testid="AuthorAvatars-link"][alt="${author.name}"][href="${author.link}"]`)
+ .should('have.length', 1)
+ .within(() => {
+ cy.get('[data-testid="AuthorAvatars-img"]')
+ .should('have.attr', 'src', author.photo)
+ .should('have.attr', 'title', author.name)
+ .should('have.class', index > 0 ? `absolute left-${index * 7} top-0` : `relative mr-${(authors.length - 1) * 7}`)
+ .should('have.class', `z-${(authors.length - 1 - index) * 10}`)
+ .should('have.class', 'h-10 w-10 border-2 border-white rounded-full object-cover hover:z-50');
+ });
+ });
+ });
+});
diff --git a/cypress/test/Calendar.cy.js b/cypress/test/Calendar.cy.js
new file mode 100644
index 00000000000..21d5f3ebed7
--- /dev/null
+++ b/cypress/test/Calendar.cy.js
@@ -0,0 +1,30 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Calendar from '../../components/Calendar';
+import eventsData from '../../config/meetings.json';
+
+describe('Calendar component', () => {
+ beforeEach(() => {
+ mount(
);
+ });
+
+ it('renders the upcoming events', () => {
+ cy.get('[data-testid="Calendar-list-item"]').should('have.length', eventsData.length);
+ });
+
+ it('renders the "View Calendar" button if events exist', () => {
+ if (eventsData.length > 0) {
+ cy.get('[data-testid="Calendar-button"]').should('be.visible');
+ } else {
+ cy.get('[data-testid="Calendar-button"]').should('not.exist');
+ }
+ });
+
+ it('renders the "No meetings scheduled" message if no events exist', () => {
+ if (eventsData.length === 0) {
+ cy.contains('There are no meetings scheduled for next few days.').should('be.visible');
+ } else {
+ cy.contains('There are no meetings scheduled for next few days.').should('not.exist');
+ }
+ });
+});
diff --git a/cypress/test/Caption.cy.js b/cypress/test/Caption.cy.js
new file mode 100644
index 00000000000..464cc4dcad7
--- /dev/null
+++ b/cypress/test/Caption.cy.js
@@ -0,0 +1,19 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Caption from '../../components/Caption';
+
+describe('Caption component', () => {
+ beforeEach(() => {
+ mount(
AsyncAPI );
+ });
+
+ it('renders the caption text correctly', () => {
+ cy.contains('AsyncAPI').should('be.visible');
+ });
+
+ it('check correct CSS classes', () => {
+ cy.get('[data-testid="Caption-paragraph"]').should('have.class', 'text-center').and('have.class', 'text-xs')
+ .and('have.class', 'text-gray-500')
+ .and('have.class', 'mt-2');
+ });
+});
diff --git a/cypress/test/ComponentName.cy.js b/cypress/test/ComponentName.cy.js
deleted file mode 100644
index 86b150606a2..00000000000
--- a/cypress/test/ComponentName.cy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-describe('ComponentName.cy.js', () => {
- it('playground', () => {
- // cy.mount()
- })
-})
\ No newline at end of file
diff --git a/cypress/test/DemoAnimation.cy.js b/cypress/test/DemoAnimation.cy.js
new file mode 100644
index 00000000000..f98f2614116
--- /dev/null
+++ b/cypress/test/DemoAnimation.cy.js
@@ -0,0 +1,13 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import DemoAnimation from '../../components/DemoAnimation';
+
+describe('DemoAnimation', () => {
+ it('renders without errors', () => {
+ mount(
);
+
+ cy.wait(100000);
+ cy.contains('Play with it!').should('be.visible');
+ });
+
+});
diff --git a/cypress/test/Feedback.cy.js b/cypress/test/Feedback.cy.js
new file mode 100644
index 00000000000..bbe4c1c5b65
--- /dev/null
+++ b/cypress/test/Feedback.cy.js
@@ -0,0 +1,46 @@
+import { mount } from "cypress/react";
+import Feedback from '../../components/Feedback'
+import MockRouter from '../../cypress/utils/router'
+describe('Meeting component', () => {
+ beforeEach(() => {
+ mount(
+
+ );
+ });
+
+ it('shows success message on correct request', () => {
+ cy.get('textarea').type('Sample feedback');
+ cy.intercept('POST', '/.netlify/functions/github_discussions', (req) => {
+ req.reply({
+ statusCode: 200,
+ body: {
+ message: 'Feedback submitted successfully',
+ },
+ headers: {
+ 'content-type': 'application/json',
+ },
+ });
+ }).as('submitFeedback');
+ cy.get('form').submit();
+ cy.wait('@submitFeedback');
+ cy.get('[data-testid="Feedback-div"]').should('contain.text', 'Thank you for your feedback!');
+
+ });
+ it('should display error message on failed submission', () => {
+ cy.get('textarea').type('Sample feedback');
+ cy.intercept('POST', '/.netlify/functions/github_discussions', (req) => {
+ req.reply({
+ statusCode: 500,
+ body: {
+ message: 'We were unable to process your feedback',
+ },
+ headers: {
+ 'content-type': 'application/json',
+ },
+ });
+ }).as('submitFeedback');
+ cy.get('form').submit();
+ cy.wait('@submitFeedback');
+ cy.get('[data-testid="Feedback-error"]').should('contain.text', 'Oops! Something went wrong...');
+ });
+});
diff --git a/cypress/test/Figure.cy.js b/cypress/test/Figure.cy.js
new file mode 100644
index 00000000000..fb8df1d961d
--- /dev/null
+++ b/cypress/test/Figure.cy.js
@@ -0,0 +1,38 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Figure from '../../components/Figure';
+
+describe('Figure', () => {
+ it('renders the figure with the image and caption', () => {
+ const src = '/img/posts/2020-summary/active-members.webp';
+ const caption = 'Figure 1: Slack active members weekly';
+ const widthClass = 'w-50';
+ const className = 'custom-class';
+ const float = 'left';
+ const altOnly = 'Alt Text';
+ const imageClass = 'custom-image-class';
+
+ mount(
+
+ );
+
+ cy.get('[data-testid="Figure-div"]').should('have.class', className);
+ cy.get('[data-testid="Figure-div"]').should('have.class', `float-${float}`);
+ cy.get('[data-testid="Figure-div"]').should('have.class', widthClass);
+
+ cy.get('[data-testid="Figure-img"]').should('have.attr', 'src', src);
+ cy.get('[data-testid="Figure-img"]').should('have.attr', 'alt', altOnly);
+ cy.get('[data-testid="Figure-img"]').should('have.class', imageClass);
+
+ cy.contains(caption).should('be.visible');
+ cy.contains(caption).should('have.text', caption);
+ });
+});
diff --git a/cypress/test/GeneratorInstallation.cy.js b/cypress/test/GeneratorInstallation.cy.js
new file mode 100644
index 00000000000..0428284badf
--- /dev/null
+++ b/cypress/test/GeneratorInstallation.cy.js
@@ -0,0 +1,8 @@
+import { mount } from 'cypress/react';
+import GeneratorInstallation from '../../components/GeneratorInstallation';
+
+describe('GeneratorInstallation', () => {
+ it('renders without errors', () => {
+ mount(
);
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/Hero.cy.js b/cypress/test/Hero.cy.js
new file mode 100644
index 00000000000..d01ce53a0ed
--- /dev/null
+++ b/cypress/test/Hero.cy.js
@@ -0,0 +1,32 @@
+import { mount } from 'cypress/react';
+import Hero from '../../components/Hero';
+
+describe('Hero Component', () => {
+ it('displays the correct content', () => {
+ mount(
);
+
+ cy.contains('Building the future of');
+ cy.contains('Event-Driven Architectures (EDA)');
+ cy.contains('Open-Source tools to easily build and maintain your event-driven architecture.');
+ cy.contains('Read the docs');
+ cy.contains('Quick search...');
+ cy.contains('Proud to be part of the Linux Foundation');
+ });
+
+ it('navigates to the documentation page when "Read the docs" button is clicked', () => {
+ mount(
);
+ cy.get('[data-testid="Button-link"]').contains('Read the docs');
+
+ });
+
+ it('performs a search when the search button is clicked', () => {
+ mount(
);
+
+ cy.get('[data-testid="Search-Button"]').contains('Quick search...').click();
+
+ // Type a search query and validate the results
+ const searchQuery = 'example';
+ cy.get('input[type="search"]').type(searchQuery);
+
+ });
+});
diff --git a/cypress/test/InlineHelp.cy.js b/cypress/test/InlineHelp.cy.js
new file mode 100644
index 00000000000..2bdbaa85ae2
--- /dev/null
+++ b/cypress/test/InlineHelp.cy.js
@@ -0,0 +1,20 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import InlineHelp from '../../components/InlineHelp';
+
+describe('InlineHelp', () => {
+ it('toggles help text visibility on click and hover', () => {
+ const text = 'Helpful information';
+ mount(
);
+ cy.get('[data-testid="InlineHelp"]').should('not.exist');
+ // Click on the question mark icon to show text
+ cy.get('[data-testid="InlineHelp-icon"]').click();
+ // Click on the question mark icon again to hide text
+ cy.get('[data-testid="InlineHelp-icon"]').click();
+ // Hover the question mark icon to show text
+ cy.get('[data-testid="InlineHelp-icon"]').trigger('mouseover');
+ // Move the cursor away from the question mark icon to hide text
+ cy.get('[data-testid="InlineHelp-icon"]').trigger('mouseout');
+
+ });
+});
diff --git a/cypress/test/JobSummary.cy.js b/cypress/test/JobSummary.cy.js
new file mode 100644
index 00000000000..97927a81eeb
--- /dev/null
+++ b/cypress/test/JobSummary.cy.js
@@ -0,0 +1,18 @@
+import { mount } from 'cypress/react';
+import JobSummary from '../../components/JobSummary';
+describe('JobSummary', () => {
+ it('renders job summary with correct information', () => {
+ const job = {
+ location: 'remote',
+ region: 'Anywhere (on planet Earth)',
+ employmentType: 'Full-time',
+ closingOn: 'Closing on June 30, 2023',
+ };
+
+ mount(
);
+ cy.get('[data-testid="JobSummary-dd"]').contains('Remote').should('exist');
+ cy.get('[data-testid="JobSummary-paragraph"]').contains('Anywhere (on planet Earth)').should('exist');
+ cy.contains(job.employmentType).should('exist');
+ cy.contains(job.closingOn).should('exist');
+ });
+});
diff --git a/cypress/test/MacWindow.cy.js b/cypress/test/MacWindow.cy.js
new file mode 100644
index 00000000000..d952d4ce8f9
--- /dev/null
+++ b/cypress/test/MacWindow.cy.js
@@ -0,0 +1,35 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import MacWindow from '../../components/MacWindow';
+
+describe('MacWindow Component', () => {
+ it('renders the component props', () => {
+ const className = 'bg-code-editor-dark h-full border-gray-800 border shadow-lg transition-all duration-500 ease-in-out';
+ const contentClassName = "text-left text-white text-sm font-mono font-medium transition-all duration-500 ease-in-out break-words md:min-h-108";
+ const title="asyncapi.yaml";
+ const children = 'This is the children component for testing can be replaced';
+ mount(
+
+ {children}
+
+ );
+ cy.get('[data-testid="MacWindow-main"]')
+ .should('have.class', className)
+ .within(() => {
+ cy.get('[data-testid="MacWindow-div"]').should('exist');
+
+ cy.get('[data-testid="MacWindow-div"]').within(() => {
+ cy.get('div').should('have.length', 3);
+ });
+ cy.get('[data-testid="MacWindow-title-div"]')
+ .should('exist')
+ .and('have.attr', 'title', title)
+ .and('have.text', title);
+ cy.get('[data-testid="MacWindow-title-center"]').should('exist').and('have.length', 1);
+ });
+ });
+});
diff --git a/cypress/test/Meeting.cy.js b/cypress/test/Meeting.cy.js
new file mode 100644
index 00000000000..938794b3be2
--- /dev/null
+++ b/cypress/test/Meeting.cy.js
@@ -0,0 +1,23 @@
+import { mount } from "cypress/react";
+import Meeting from "../../components/Meeting";
+describe('Meeting component', () => {
+ it('renders correctly with provided props', () => {
+ const props = {
+ name: 'Example Meeting',
+ purpose: 'Discuss important topics',
+ host: 'John Doe',
+ hostProfile: 'https://example.com/profile',
+ youtube: 'https://www.youtube.com/watch?v=ABC123',
+ bg: 'blue',
+ };
+
+ mount(
);
+
+ cy.get('[data-testid="Meeting-heading"]').should('have.text', 'Example Meeting');
+ cy.get('[ data-testid="Meeting-paragraph"]').contains('Discuss important topics');
+ cy.get('[ data-testid="Meeting-host"]').contains('Host:');
+ cy.get('[ data-testid="Meeting-link"]').should('have.attr', 'href', 'https://www.youtube.com/watch?v=ABC123');
+
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/Modal.cy.js b/cypress/test/Modal.cy.js
new file mode 100644
index 00000000000..c3ab3a0fd98
--- /dev/null
+++ b/cypress/test/Modal.cy.js
@@ -0,0 +1,33 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Modal from '../../components/Modal';
+
+
+describe('Modal', () => {
+ it('should call onModalClose when the close button is clicked', () => {
+ const onModalClose = cy.stub().as('onModalClose');
+ mount(
);
+
+ cy.get('[data-testid="Modal-close"]').click();
+
+ cy.get('@onModalClose').should('have.been.calledOnce');
+ });
+
+ it('should call onModalClose when the backdrop is clicked', () => {
+ const onModalClose = cy.stub().as('onModalClose');
+ mount(
);
+
+ cy.get('.backdrop-blur').click();
+
+ cy.get('@onModalClose').should('have.been.calledOnce');
+ });
+
+ it('should call onModalClose when the Escape key is pressed', () => {
+ const onModalClose = cy.stub().as('onModalClose');
+ mount(
);
+
+ cy.get('.backdrop-blur').type('{esc}');
+
+ cy.get('@onModalClose').should('have.been.calledOnce');
+ });
+ });
\ No newline at end of file
diff --git a/cypress/test/NewsletterSubscribe.cy.js b/cypress/test/NewsletterSubscribe.cy.js
new file mode 100644
index 00000000000..4afeb407c91
--- /dev/null
+++ b/cypress/test/NewsletterSubscribe.cy.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import NewsletterSubscribe from '../../components/NewsletterSubscribe';
+
+describe('NewsletterSubscribe Component', () => {
+ it('renders the component with default props', () => {
+ mount(
);
+
+ cy.get('[data-testid="NewsletterSubscribe-main"]').should('exist');
+ cy.get('[data-testid="NewsletterSubscribe-text-input"]').type("name");
+ cy.get('[data-testid="NewsletterSubscribe-email-input"]').type("test@gmail.com")
+ cy.get('form[name="form 1"]').should('exist');
+ cy.get('input[name="type"]').should('exist');
+ cy.get('input[name="name"]').should('exist');
+ cy.get('input[name="email"]').should('exist');
+
+ });
+});
diff --git a/cypress/test/OpenAPIComparison.cy.js b/cypress/test/OpenAPIComparison.cy.js
new file mode 100644
index 00000000000..86de5e2dd51
--- /dev/null
+++ b/cypress/test/OpenAPIComparison.cy.js
@@ -0,0 +1,57 @@
+import { mount } from '@cypress/react'
+import OpenAPIComparison from '../../components/OpenAPIComparison'
+
+describe('OpenAPIComparison', () => {
+ it('renders without errors', () => {
+ mount(
);
+
+ });
+
+ it('changes background color on hover', () => {
+ mount(
);
+
+ // Hover over the "Info" element
+ cy.contains('Info').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-sec-info"]').should('exist');
+
+ // Hover over the "Servers" element
+ cy.contains('Servers').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-sec-servers"]').should('exist');
+
+ // Hover over the "Paths" element
+ cy.contains('Paths').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-paths"]').should('exist');
+
+ // Hover over the "Path Item" element
+ cy.contains('Path Item').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-path-item"]').should('exist');
+
+ // Hover over the "Summary and description" element
+ cy.contains('Summary and description').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-summary"]').should('exist');
+
+ // Hover over the "Operation (GET, PUT, POST, etc.)" element
+ cy.contains('Operation (GET, PUT, POST, etc.)').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-operation"]').should('exist');
+
+ // Hover over the "Request" element
+ cy.contains('Request').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-request"]').should('exist');
+
+ // Hover over the "Responses" element
+ cy.contains('Responses').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-responses"]').should('exist');
+
+ // Hover over the "Tags" element
+ cy.contains('Tags').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-tags"]').should('exist');
+
+ // Hover over the "External Docs" element
+ cy.contains('External Docs').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-external"]').should('exist');
+
+ // Hover over the "Components" element
+ cy.contains('Components').trigger('mouseover');
+ cy.get('[data-testid="OpenAPI-components"]').should('exist');
+ });
+});
diff --git a/cypress/test/Profile.cy.js b/cypress/test/Profile.cy.js
new file mode 100644
index 00000000000..29d695202c3
--- /dev/null
+++ b/cypress/test/Profile.cy.js
@@ -0,0 +1,44 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Profile from '../../components/Profile';
+describe('Profile Component', () => {
+ it('renders null when profiles array is empty', () => {
+ const props = {
+ profiles: [],
+ className: 'my-profiles',
+ };
+ mount(
);
+ cy.get('[data-testid="Profiles-div"]').should('not.exist');
+ });
+
+ it('renders profile links and names when profiles array is not empty', () => {
+ const profiles = [
+ {
+ name: 'Alejandra Quetzalli',
+ avatar: 'https://avatars.githubusercontent.com/alequetzalli',
+ link: 'https://github.com/alequetzalli'
+ },
+ {
+ name: 'Azeez Elegbede',
+ avatar: 'https://avatars.githubusercontent.com/acethecreator',
+ link: 'https://github.com/acethecreator'
+ }
+ ];
+ const props = {
+ profiles,
+ className: 'my-profiles',
+ };
+ mount(
);
+ cy.get('[data-testid="Profiles-main"]').find('[data-testid="Profiles-link"]').should('have.length', profiles.length)
+ .each(($profileLink, index) => {
+ const profile = profiles[index];
+ cy.wrap($profileLink)
+ .should('have.attr', 'href', profile.link)
+ .find('img')
+ .should('have.attr', 'src', profile.avatar)
+ .should('have.attr', 'alt', profile.name)
+ .siblings('.text-sm')
+ .should('have.text', profile.name);
+ });
+ });
+});
diff --git a/cypress/test/Remember.cy.js b/cypress/test/Remember.cy.js
new file mode 100644
index 00000000000..a793eecad8c
--- /dev/null
+++ b/cypress/test/Remember.cy.js
@@ -0,0 +1,42 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Remember from '../../components/Remember';
+import LightBulb from '../../components/icons/LightBulb';
+describe('Remember Component', () => {
+ it('renders the component with the provided title and children', () => {
+ const title = 'Remember This';
+ const className = 'remember';
+ const children =
Remember content
;
+ mount(
+
+ {children}
+
+ );
+ cy.get('[data-testid="Remember-main"]')
+ .should('exist')
+ .within(() => {
+ cy.get('[data-testid="Remember-heading"]')
+ .should('have.length', 1)
+ .within(() => {
+ cy.get(LightBulb).should('exist');
+ cy.contains('[data-testid="Remember-title"]', title).should('exist');
+ });
+
+ cy.get('[data-testid="Remember-children"]').should('exist');
+ });
+ });
+
+ it('renders the component with default title and no children', () => {
+ const className = 'remember';
+ mount(
);
+ cy.get('[data-testid="Remember-main"]')
+ .should('exist')
+ .within(() => {
+ cy.get('[data-testid="Remember-heading"]').should('have.length', 1).within(() => {
+ cy.get(LightBulb).should('exist');
+ cy.contains('[data-testid="Remember-title"]', 'Remember').should('exist');
+ });
+ cy.get('[data-testid="Remember-children"]').should('not.exist');
+ });
+ });
+});
diff --git a/cypress/test/Roadmap/RoadmapColumn.cy.js b/cypress/test/Roadmap/RoadmapColumn.cy.js
new file mode 100644
index 00000000000..58d2bbf2d56
--- /dev/null
+++ b/cypress/test/Roadmap/RoadmapColumn.cy.js
@@ -0,0 +1,62 @@
+import { mount } from '@cypress/react';
+import RoadmapColumn from '../../../components/roadmap/RoadmapColumn';
+import RoadmapList from '../../../components/roadmap/RoadmapList';
+
+describe('RoadmapColumn Component', () => {
+ it('renders the RoadmapColumn component with title and description', () => {
+ const title = 'Test RoadmapColumn';
+ const description = 'This is a test RoadmapColumn';
+ const colorClass = 'blue';
+ const items = [];
+ const childrenCollapsed = false;
+ mount(
+
+ );
+ cy.get('[data-testid="RoadmapColumn-heading"]').contains('h3',title).should('exist');
+ cy.get('[data-testid="RoadmapColumn-heading"]').contains('p',description).should('exist');
+ });
+
+ it('renders the RoadmapList component within RoadmapColumn', () => {
+ const items = [
+ { id: 1, name: 'Item 1' },
+ { id: 2, name: 'Item 2' },
+ ];
+ mount(
+
+ );
+ //renders RoadmapList component
+ cy.get(RoadmapList).should('exist');
+
+ });
+
+ it('renders the correct number of items in RoadmapList' , () => {
+ const items = [
+ { id: 1, name: 'Item 1' },
+ { id: 2, name: 'Item 2' },
+ ];
+ mount(
+
+ );
+ cy.get('[data-testid="RoadmapItem-list"]').should('have.length', items.length);
+ })
+
+});
+
diff --git a/cypress/test/Roadmap/RoadmapItem.cy.js b/cypress/test/Roadmap/RoadmapItem.cy.js
new file mode 100644
index 00000000000..c589cb6c17c
--- /dev/null
+++ b/cypress/test/Roadmap/RoadmapItem.cy.js
@@ -0,0 +1,53 @@
+import { mount } from '@cypress/react';
+import RoadmapItem from '../../../components/roadmap/RoadmapItem';
+
+describe('RoadmapItem', () => {
+ const item = {
+ title: 'Sample Item',
+ solutions: [{ title: 'Solution 1' }, { title: 'Solution 2' }],
+ implementations: [
+ { title: 'Implementation 1' },
+ { title: 'Implementation 2' },
+ ],
+ description: 'Lorem ipsum dolor sit amet.',
+ };
+
+ it('renders the collapsed RoadmapItem correctly', () => {
+ mount(
);
+
+ // Assert that the collapsed RoadmapItem is rendered correctly
+ cy.get('[data-testid="RoadmapItem-list"]').should(
+ 'have.class',
+ 'border-l-2 border-dashed border-gray-300'
+ );
+ cy.contains('Sample Item').should('be.visible');
+ });
+
+ it('expands the RoadmapItem when clicked', () => {
+ mount(
);
+
+
+ cy.get('[data-testid="RoadmapItem-button"]').click();
+
+ // Assert that the expanded RoadmapItem is rendered correctly
+ cy.get('[data-testid="RoadmapItem-list"]').should(
+ 'have.class',
+ 'border-l-2 border-dashed border-gray-300'
+ );
+ cy.contains('Sample Item').should('be.visible');
+ cy.contains('Solution 1').should('be.visible');
+ cy.contains('Solution 2').should('be.visible');
+ cy.contains('Implementation 1').should('be.visible');
+ cy.contains('Implementation 2').should('be.visible');
+ });
+ it('opens the description modal when clicked', () => {
+ mount(
);
+ cy.contains('a', item.title).click();
+
+ // Assert that the description modal is opened
+ cy.contains(item.title).should('be.visible');
+ cy.contains(item.description).should('be.visible');
+ cy.contains(item.title).should('be.visible');
+ cy.contains(item.description).should('be.visible');
+ });
+});
diff --git a/cypress/test/Roadmap/RoadmapList.cy.js b/cypress/test/Roadmap/RoadmapList.cy.js
new file mode 100644
index 00000000000..010f70cbda8
--- /dev/null
+++ b/cypress/test/Roadmap/RoadmapList.cy.js
@@ -0,0 +1,29 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import RoadmapList from '../../../components/roadmap/RoadmapList';
+describe('RoadmapList component', () => {
+ const items = [
+ { title: 'Item 1', description: 'Description 1' },
+ { title: 'Item 2', description: 'Description 2' },
+ { title: 'Item 3', description: 'Description 3' },
+ ];
+ it('renders the component with items', () => {
+ mount(
);
+ //check if the length of list matches
+ cy.get('[data-testid="RoadmapItem-list"]').should('have.length', items.length);
+ cy.get('[data-testid="RoadmapList-list"]').should('exist');
+ cy.get('[data-testid="RoadmapList-list"]').children().should('have.length', items.length);
+ });
+
+ it('renders the component with collapsed items', () => {
+ mount(
);
+ // check if collapsed items are 0
+ cy.get('[data-testid="RoadmapItem-list"]').should('have.length',0);
+
+ //component is rendered
+ cy.get('[data-testid="RoadmapList-list"]').should('exist');
+
+ //items are not rendered when collapsed
+ cy.get('[data-testid="RoadmapList-list"]').children().should('not.exist');
+ });
+});
diff --git a/cypress/test/SupportUs.cy.js b/cypress/test/SupportUs.cy.js
new file mode 100644
index 00000000000..950120f5414
--- /dev/null
+++ b/cypress/test/SupportUs.cy.js
@@ -0,0 +1,53 @@
+import SupportUs from '../../components/SupportUs/SupportUs';
+describe('SupportUs component', () => {
+ beforeEach(() => {
+ cy.mount(
);
+ });
+
+ it('renders the SupportUs component', () => {
+ cy.get('[data-testid="SupportUs-main"]')
+ .should('be.visible')
+ .within(() => {
+ cy.get('[data-testid="SupportUs-section"]').should('exist'); // First section div
+ cy.get('[data-testid="SupportUs-subsection"]').should('exist'); // Second section div
+ cy.get('[data-testid="SupportUs-last-div"]').should('exist'); // Third section div
+ });
+ });
+
+ it('renders correct number of items in each section', () => {
+ cy.get('[data-testid="SupportUs-section"]').find('a').should('have.length', 3); // First section
+ cy.get('[data-testid="SupportUs-subsection"]').find('a').should('have.length', 3); // Second section
+ cy.get('[data-testid="SupportUs-last-div"]').find('a').should('have.length', 1); // Third section
+ });
+
+ it('opens links in new tab', () => {
+ cy.get('[data-testid="SupportUs-main"]').each((section) => {
+ cy.wrap(section)
+ .find('a')
+ .each((link) => {
+ cy.wrap(link).should('have.attr', 'target', '_blank');
+ });
+ });
+ });
+
+ it('has valid href attribute in each link', () => {
+ cy.get('[data-testid="SupportUs-main"]').each((section) => {
+ cy.wrap(section)
+ .find('a')
+ .each((link) => {
+ cy.wrap(link).should('have.attr', 'href').and('not.be.empty');
+ });
+ });
+ });
+
+ it('displays the correct image in each item', () => {
+ cy.get('[data-testid="SupportUs-main"]').each((section) => {
+ cy.wrap(section)
+ .find('a')
+ .each((link) => {
+ cy.wrap(link).find('img').should('have.attr', 'src').and('not.be.empty');
+ });
+ });
+ });
+
+});
diff --git a/cypress/test/TOC.cy.js b/cypress/test/TOC.cy.js
new file mode 100644
index 00000000000..696ac1a96c7
--- /dev/null
+++ b/cypress/test/TOC.cy.js
@@ -0,0 +1,70 @@
+import { mount } from '@cypress/react';
+import TOC from '../../components/TOC';
+
+describe('TOC', () => {
+ const toc = [
+ {
+ lvl: 1,
+ content: '
Introduction ',
+ slug: 'introduction',
+ slugWithATag: 'introduction',
+ },
+ {
+ lvl: 2,
+ content: '
Getting Started ',
+ slug: 'getting-started',
+ slugWithATag: 'getting-started',
+ },
+ {
+ lvl: 2,
+ content: '
Installation ',
+ slug: 'installation',
+ slugWithATag: 'installation',
+ },
+ {
+ lvl: 3,
+ content: '
Step 1: Download ',
+ slug: 'step-1-download',
+ slugWithATag: 'step-1-download',
+ },
+ {
+ lvl: 3,
+ content: '
Step 2: Install Dependencies ',
+ slug: 'step-2-install-dependencies',
+ slugWithATag: 'step-2-install-dependencies',
+ },
+ ];
+ it('renders the TOC correctly with empty content', () => {
+ mount(
);
+
+ cy.get('.hidden').should('not.exist');
+ });
+ it('renders the TOC correctly', () => {
+ mount(
);
+
+ // Add assertions to verify the rendering of TOC items
+ cy.get('[data-testid="TOC-Heading"]').should('contain', 'On this page');
+ cy.get('[data-testid="TOC-Link"]').should('have.length', toc.length);
+ });
+
+ it('expands and collapses the TOC on click', () => {
+ mount(
);
+
+ // Verify initial state
+ cy.get('.hidden').should('exist'); // TOC content should be hidden
+
+ // Click on the TOC header
+ cy.get('[data-testid="TOC-Heading"]').click();
+
+ // Verify expanded state
+ cy.get('.hidden').should('not.exist'); // TOC content should be visible
+
+ // Click again on the TOC header
+ cy.get('[data-testid="TOC-Heading"]').click();
+
+ // Verify collapsed state
+ cy.get('.hidden').should('exist'); // TOC content should be hidden
+ });
+
+
+ });
diff --git a/cypress/test/Testimonial.cy.js b/cypress/test/Testimonial.cy.js
new file mode 100644
index 00000000000..71c73aad909
--- /dev/null
+++ b/cypress/test/Testimonial.cy.js
@@ -0,0 +1,27 @@
+import { mount } from 'cypress/react';
+import Testimonial from '../../components/Testimonial';
+
+describe('Testimonial Component', () => {
+ it('should render the testimonial with correct data', () => {
+ const testimonialData = {
+ text: 'This is a test testimonial.',
+ authorName: 'Lukasz Gornicki',
+ authorDescription: 'CEO at Company',
+ authorAvatar: '/img/avatars/lpgornicki.webp',
+ };
+ mount(
+
+ );
+
+ cy.contains(testimonialData.text);
+ cy.contains(testimonialData.authorName);
+ cy.contains(testimonialData.authorDescription);
+ cy.get('[data-testid="Testimonial-img"]').should('have.attr', 'src', testimonialData.authorAvatar);
+ cy.get('[data-testid="Testimonial-img"]').should('have.attr', 'alt', testimonialData.authorName);
+ });
+});
diff --git a/cypress/test/Warning.cy.js b/cypress/test/Warning.cy.js
new file mode 100644
index 00000000000..224662c4ceb
--- /dev/null
+++ b/cypress/test/Warning.cy.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Warning from '../../components/Warning';
+import IconExclamation from '../../components/icons/Exclamation';
+
+describe('Warning Component', () => {
+ it('renders the component with the provided title and description', () => {
+ const className = 'my-warning';
+ const title = 'Warning Title';
+ const description = 'Warning description text';
+ mount(
+
+ );
+ cy.get('[data-testid="Warning-main"]')
+ .should('exist')
+ .within(() => {
+ cy.get(IconExclamation).should('exist');
+ cy.contains('[data-testid="Warning-title"]', title).should('exist');
+ cy.contains('[data-testid="Warning-description"]', description).should('exist');
+ });
+ });
+});
diff --git a/cypress/test/buttons/ApplyJob.cy.js b/cypress/test/buttons/ApplyJob.cy.js
new file mode 100644
index 00000000000..69189e8156f
--- /dev/null
+++ b/cypress/test/buttons/ApplyJob.cy.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import ApplyJobButton from '../../../components/buttons/ApplyJob';
+
+describe('ApplyJobButton', () => {
+ const job = {
+ contact: 'https://www.asyncapi.com/',
+ };
+
+ beforeEach(() => {
+ mount(
);
+ });
+
+ it('renders the ApplyJobButton component', () => {
+ cy.contains('Apply for this job').should('exist');
+ });
+
+ it('sets the correct href and target attributes', () => {
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://www.asyncapi.com/');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_blank');
+ });
+});
diff --git a/cypress/test/buttons/Buttons.cy.js b/cypress/test/buttons/Buttons.cy.js
new file mode 100644
index 00000000000..38a30d26bc4
--- /dev/null
+++ b/cypress/test/buttons/Buttons.cy.js
@@ -0,0 +1,64 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Button from '../../../components/buttons/Button';
+import IconGithub from '../../../components/icons/Github'
+describe('Button component', () => {
+ it('renders a button without href', () => {
+ const text = 'Click me';
+ const type = 'button';
+ const icon =
;
+ mount(
+
+ );
+ cy.get('[data-testid="Button-main"]').should('have.text', text);
+ cy.get('[data-testid="Button-main"]').should('have.attr', 'type', type);
+ cy.get('[data-testid="Button-link"]').should('not.exist');
+ });
+
+ it('renders a button with href', () => {
+ const text = 'Click me';
+ const href = '/link';
+ const target = '_blank';
+ mount(
+
+ );
+ cy.get('[data-testid="Button-link"]').should('have.text', text);
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', href);
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', target);
+ cy.get('[data-testid="Button-main"]').should('not.exist');
+ });
+
+ it('renders a small button', () => {
+ const text = 'Click me';
+ const buttonSize = 'small';
+ mount(
+
+ );
+ cy.get('[data-testid="Button-main"]').should('have.class', 'px-3 py-2 text-sm');
+ });
+ it('renders a button with custom class', () => {
+ const text = 'Click me';
+ const className = 'custom-button';
+
+ mount(
+
+ );
+ cy.get('[data-testid="Button-main"]').should('have.class', className);
+ });
+
+ it('does not render an icon with position left in the button', () => {
+ const text = 'Click me';
+ mount(
+
+ );
+ cy.get('[data-testid="Button-icon-left"]').should('not.exist');
+ });
+
+ it('does not render an icon with position left in the button', () => {
+ const text = 'Click me';
+ mount(
+
+ );
+ cy.get('[data-testid="Button-icon-right"]').should('not.exist');
+ });
+});
diff --git a/cypress/test/buttons/ChapterSuggestion.cy.js b/cypress/test/buttons/ChapterSuggestion.cy.js
new file mode 100644
index 00000000000..84eb5eb9a4a
--- /dev/null
+++ b/cypress/test/buttons/ChapterSuggestion.cy.js
@@ -0,0 +1,40 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import ChapterSuggestion from '../../../components/buttons/ChapterSuggestion';
+describe('ChapterSuggestion', () => {
+ const chapter = {
+ href: 'https://www.asyncapi.com/',
+ target: '_self',
+ title: 'Chapter Title',
+ description: 'Chapter Description',
+ linkText: 'Read More',
+ className: 'custom-class',
+ };
+ beforeEach(() => {
+ mount(
);
+ });
+
+ it('renders the ChapterSuggestion component', () => {
+ cy.contains(chapter.title).should('exist');
+ cy.contains(chapter.description).should('exist');
+ cy.contains(chapter.linkText).should('exist');
+ cy.get('[data-testid="ChapterSuggestion-link"]').should('have.attr', 'href', chapter.href);
+ });
+
+ it('applies the correct className', () => {
+ cy.get('[data-testid="ChapterSuggestion-link"]').should('have.class', chapter.className);
+ });
+
+ it('sets the target attribute', () => {
+ cy.get('[data-testid="ChapterSuggestion-link"]').should('have.attr', 'target', chapter.target);
+ });
+
+ it('sets the title attribute', () => {
+ cy.get('[data-testid="ChapterSuggestion-link"]').should('have.attr', 'title', chapter.description);
+ });
+
+ it('renders the link text and IconArrowRight', () => {
+ cy.contains(chapter.linkText).should('exist');
+ cy.get('svg').should('have.class', 'h-4');
+ });
+});
diff --git a/cypress/test/buttons/DocsButton.cy.js b/cypress/test/buttons/DocsButton.cy.js
new file mode 100644
index 00000000000..624c0a97e66
--- /dev/null
+++ b/cypress/test/buttons/DocsButton.cy.js
@@ -0,0 +1,32 @@
+import {mount} from 'cypress/react';
+import DocsButton from '../../../components/buttons/DocsButton';
+describe('DocsButton', () => {
+
+ it('does not render buttons without post data', () => {
+ mount(
);
+ cy.get('[data-testid="DocsButton-div"]').should('not.exist');
+ cy.get('[data-testid="DocsButton-PrevPage"]').should('not.exist');
+ cy.get('[data-testid="DocsButton-div"]').should('not.exist');
+ cy.get('[data-testid="DocsButton-NextPage"]').should('not.exist');
+ });
+
+ it('renders correctly with post data', () => {
+ // mock post object with dummy data
+ const post = {
+ prevPage: {
+ href: 'https://www.asyncapi.com/',
+ title: 'Previous Page',
+ },
+ nextPage: {
+ href: 'https://www.asyncapi.com/',
+ title: 'Next Page',
+ },
+ };
+ mount(
);
+ cy.get('[data-testid="DocsButton-Prevdiv"]').should('contain', 'Go Back');
+ cy.get('[data-testid="DocsButton-PrevPage"]').should('contain', 'Previous Page');
+ cy.get('[data-testid="DocsButton-Nextdiv"]').should('contain', 'Up Next');
+ cy.get('[data-testid="DocsButton-NextPage"]').should('contain', 'Next Page');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/buttons/GithubButton.cy.js b/cypress/test/buttons/GithubButton.cy.js
new file mode 100644
index 00000000000..270d0ec4f99
--- /dev/null
+++ b/cypress/test/buttons/GithubButton.cy.js
@@ -0,0 +1,27 @@
+import {mount} from 'cypress/react';
+import GithubButton from '../../../components/buttons/GithubButton'
+describe('GithubButton', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('View on Github').should('be.visible');
+ cy.get('[ data-testid="Button-link"]').should('have.attr', 'href', 'https://github.com/asyncapi');
+ cy.get('[ data-testid="Button-link"]').should('have.attr', 'target', '_blank');
+});
+
+ it('renders correctly with custom props', () => {
+ mount(
+
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://example.com');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_self');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/buttons/GithubIssue.cy.js b/cypress/test/buttons/GithubIssue.cy.js
new file mode 100644
index 00000000000..5a9107cf684
--- /dev/null
+++ b/cypress/test/buttons/GithubIssue.cy.js
@@ -0,0 +1,19 @@
+import {mount} from 'cypress/react'
+import GitHubIssue from '../../../components/buttons/GitHubIssue';
+describe('GitHubIssue', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Create Issue on GitHub').should('be.visible');
+ cy.get('[data-testid="GithubIssue-Link"]')
+ .should('have.attr', 'href', 'https://github.com/asyncapi/website/issues/new?assignees=alequetzalli+-&labels=%F0%9F%93%91+docs&template=docs.yml&title=%5B%F0%9F%93%91+Docs%5D%3A+')
+ .should('have.attr', 'target', '_blank')
+ .should('have.attr', 'rel', 'noopener noreferrer');
+ });
+
+ it('renders correctly with custom class', () => {
+ mount(
);
+ //data-testid was not working here
+ cy.get('.bg-black').should('have.class', 'custom-class');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/buttons/GoogleCalendarButton.cy.js b/cypress/test/buttons/GoogleCalendarButton.cy.js
new file mode 100644
index 00000000000..2803b1f3e64
--- /dev/null
+++ b/cypress/test/buttons/GoogleCalendarButton.cy.js
@@ -0,0 +1,24 @@
+import {mount} from 'cypress/react'
+import GoogleCalendarButton from '../../../components/buttons/GoogleCalendarButton'
+describe('GoogleCalendarButton', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Add to Google Calendar').should('be.visible');
+ });
+
+ it('renders correctly with custom props', () => {
+ mount(
+
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://example.com').and('have.attr', 'target', '_self');
+ });
+ });
+
+
\ No newline at end of file
diff --git a/cypress/test/buttons/ICSFileButton.cy.js b/cypress/test/buttons/ICSFileButton.cy.js
new file mode 100644
index 00000000000..13964726699
--- /dev/null
+++ b/cypress/test/buttons/ICSFileButton.cy.js
@@ -0,0 +1,26 @@
+import { mount } from 'cypress/react';
+import ICSFButton from '../../../components/buttons/ICSFileButton';
+
+describe('ICSFButton', () => {
+
+ it('renders correctly with custom props', () => {
+ const customHref = 'https://example.com';
+
+ mount(
+ < ICSFButton
+ text="Custom Text"
+ href={customHref}
+ target="_self"
+ iconPosition="right"
+ />
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', customHref);
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_self');
+ });
+
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Download ICS File').should('be.visible');
+ });
+});
diff --git a/cypress/test/buttons/OpenInPlaygroundButton.cy.js b/cypress/test/buttons/OpenInPlaygroundButton.cy.js
new file mode 100644
index 00000000000..d7523630290
--- /dev/null
+++ b/cypress/test/buttons/OpenInPlaygroundButton.cy.js
@@ -0,0 +1,9 @@
+import { mount } from 'cypress/react';
+import OpenInPlaygroundButton from "../../../components/buttons/OpenInPlaygroundButton"
+
+describe('OpenInPlaygroundButton', () => {
+it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Open Playground').should('be.visible');
+ });
+});
diff --git a/cypress/test/buttons/OpenInStudioButton.cy.js b/cypress/test/buttons/OpenInStudioButton.cy.js
new file mode 100644
index 00000000000..dd276aa6da1
--- /dev/null
+++ b/cypress/test/buttons/OpenInStudioButton.cy.js
@@ -0,0 +1,21 @@
+import { mount } from 'cypress/react';
+import OpenInStudioButton from '../../../components/buttons/OpenInStudioButton';
+
+describe('OpenInStudioButton', () => {
+
+ it('renders correctly with custom props', () => {
+ mount(
+ < OpenInStudioButton
+ text="Custom Text"
+ target="_self"
+ iconPosition="right"
+ />
+ );
+ cy.contains('Custom Text').should('be.visible');
+ });
+
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Open in Studio').should('be.visible');
+ });
+});
diff --git a/cypress/test/buttons/SlackButton.cy.js b/cypress/test/buttons/SlackButton.cy.js
new file mode 100644
index 00000000000..7f03469cbbc
--- /dev/null
+++ b/cypress/test/buttons/SlackButton.cy.js
@@ -0,0 +1,27 @@
+import {mount} from 'cypress/react';
+import SlackButton from '../../../components/buttons/SlackButton';
+describe('Slack Button', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Join on Slack').should('be.visible');
+ cy.get('[ data-testid="Button-link"]').should('have.attr', 'href', '/slack-invite');
+ cy.get('[ data-testid="Button-link"]').should('have.attr', 'target', '_blank');
+});
+
+ it('renders correctly with custom props', () => {
+ mount(
+
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://example.com');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_self');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/buttons/SubscribeButton.cy.js b/cypress/test/buttons/SubscribeButton.cy.js
new file mode 100644
index 00000000000..55c3b191be4
--- /dev/null
+++ b/cypress/test/buttons/SubscribeButton.cy.js
@@ -0,0 +1,27 @@
+import {mount} from 'cypress/react';
+import SubscribeButton from '../../../components/buttons/SubscribeButton';
+
+describe('Subscribe Button', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Subscribe').should('be.visible');
+
+});
+
+ it('renders correctly with custom props', () => {
+ mount(
+
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://example.com');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_self');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/buttons/YoutubeButton.cy.js b/cypress/test/buttons/YoutubeButton.cy.js
new file mode 100644
index 00000000000..ec202ace7f8
--- /dev/null
+++ b/cypress/test/buttons/YoutubeButton.cy.js
@@ -0,0 +1,27 @@
+import {mount} from 'cypress/react';
+import YoutubeButton from '../../../components/buttons/YoutubeButton';
+
+describe('Youtube Button', () => {
+ it('renders correctly with default props', () => {
+ mount(
);
+ cy.contains('Watch on YouTube').should('be.visible');
+
+});
+
+ it('renders correctly with custom props', () => {
+ mount(
+
+ );
+ cy.contains('Custom Text').should('be.visible');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'href', 'https://example.com');
+ cy.get('[data-testid="Button-link"]').should('have.attr', 'target', '_self');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/campaignTests/AnnouncementHero.cy.js b/cypress/test/campaignTests/AnnouncementHero.cy.js
new file mode 100644
index 00000000000..d2eeb1ddeba
--- /dev/null
+++ b/cypress/test/campaignTests/AnnouncementHero.cy.js
@@ -0,0 +1,55 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import AnnouncementHero from '../../../components/campaigns/AnnoucementHero';
+beforeEach(() => {
+ mount(
);
+});
+
+
+describe('AnnouncementHero Component', () => {
+ it('should render the component when the date is within the valid range', () => {
+ // Set the current date to May
+ const mockDate = new Date('2023-05-01T00:00:00Z');
+ cy.clock(mockDate.getTime());
+ // Assert that the component is rendered
+ //check for background color
+ cy.get('[data-testid="AnnouncementHero-main-div"]').should('have.class', 'bg-gray-50');
+ });
+
+ it('should display the correct event information', () => {
+ const mockDate = new Date('2023-05-01T00:00:00Z');
+ cy.clock(mockDate.getTime());
+ // Assert the event details
+ cy.get('[data-testid="AnnouncementHero-main-div"]').contains('AsyncAPI Conf on Tour 2023').should('exist');
+ cy.get('[data-testid="AnnouncementHero-main-div"]').contains('London Edition').should('exist');
+ cy.get('[data-testid="AnnouncementHero-main-div"]').contains('20th of September, 2023 | London, UK').should('exist');
+ cy.contains('Submit a session').should('exist');
+ });
+
+ it('should have a link to submit a session', () => {
+ const mockDate = new Date('2023-05-01T00:00:00Z');
+ cy.clock(mockDate.getTime());
+ // Assert the link
+ cy.get('[data-testid="AnnouncementHero-submit-session"]').should('have.attr', 'href', 'https://conference.asyncapi.com/')
+ .should('have.attr', 'target', '_blank')
+ .contains('Submit a session');
+ });
+ //check if announcement rendered is small or large .
+ it('should render a small announcement when "small" prop is true', () => {
+ const mockDate = new Date('2023-05-01T00:00:00Z');
+ cy.clock(mockDate.getTime());
+
+ mount(
);
+
+ cy.get('[data-testid="AnnouncementHero-main-div"]').should('have.class', 'mb-4');
+ });
+
+ it('should render a large announcement when "small" prop is false', () => {
+ const mockDate = new Date('2023-05-01T00:00:00Z');
+ cy.clock(mockDate.getTime());
+
+ mount(
);
+
+ cy.get('[data-testid="AnnouncementHero-main-div"]').should('have.class', 'mx-3 mt-3 p-3 mb-6');
+ });
+});
diff --git a/cypress/test/campaignTests/AnnouncementRemainingDays.cy.js b/cypress/test/campaignTests/AnnouncementRemainingDays.cy.js
new file mode 100644
index 00000000000..783788c6214
--- /dev/null
+++ b/cypress/test/campaignTests/AnnouncementRemainingDays.cy.js
@@ -0,0 +1,38 @@
+import moment from 'moment';
+import { mount } from '@cypress/react';
+import AnnouncementRemainingDays from '../../../components/campaigns/AnnouncementRamainingDays';
+
+describe('AnnouncementRemainingDays', () => {
+ it('displays correct countdown text', () => {
+ const dateTime = moment().add(2, 'days').toISOString(); // Set the dateTime value as desired
+ const eventName = 'Your Event'; // Set the eventName as desired
+
+ mount(
);
+
+ const date = moment(dateTime);
+ const now = moment();
+ const days = date.diff(now, 'days');
+
+ let text;
+ if (days >= 1) {
+ text = `${days} ${days === 1 ? 'day' : 'days'}`;
+ } else {
+ const hours = date.diff(now, 'hours');
+ if (hours > 1) {
+ text = 'A few hours';
+ } else {
+ const minutes = date.diff(now, 'minutes');
+ if (minutes > 1) {
+ text = 'A few minutes';
+ }
+ }
+ }
+
+ cy.get('[data-testid="AnnouncementRemainingDays-text"]').should('have.text', `${text} until ${eventName}`);
+
+ //check class font-extrabold
+ cy.get('[data-testid="AnnouncementRemainingDays-text"]').should('have.class', 'font-extrabold');
+ });
+});
+
+/// Make sure to adjust the dateTime and eventName variables as needed for your specific testcase
\ No newline at end of file
diff --git a/cypress/test/campaignTests/Banner.cy.js b/cypress/test/campaignTests/Banner.cy.js
new file mode 100644
index 00000000000..670384d7bf9
--- /dev/null
+++ b/cypress/test/campaignTests/Banner.cy.js
@@ -0,0 +1,50 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import Banner from '../../../components/campaigns/Banner';
+
+describe('Banner Component', () => {
+ it('should not render the banner when the date is not within the valid range', () => {
+ const today = new Date();
+ const [day, month, year] = [today.getUTCDate(), today.getUTCMonth(), today.getUTCFullYear()];
+ if (year > 2022 || month !== 10 || day < 6) {
+ mount(
);
+ cy.get('[data-testid="Banner-main-div"]').should('not.exist');
+
+ } else {
+ mount(
);
+ cy.get('[data-testid="Banner-main-div"]').should('be.visible');
+
+ }
+ });
+
+ it('should render the banner when the date is within the valid range', () => {
+ const mockDate = new Date(2021, 10, 12).getTime();
+ cy.clock(mockDate);
+ mount(
);
+ cy.get('[data-testid="Banner-main-div"]').should('be.visible');
+ });
+
+ it('should display the correct message when the date is within the valid range', () => {
+ const mockDate = new Date(2021, 10, 12).getTime();
+ cy.clock(mockDate);
+ mount(
);
+ cy.contains('.font-medium', 'AsyncAPI Conference 2022 has ended').should('be.visible');
+ });
+
+ it('should have a link to the recordings playlist', () => {
+ const mockDate = new Date(2021, 10, 12).getTime();
+ cy.clock(mockDate);
+ mount(
);
+ cy.get('[data-testid="Banner-link"]')
+ .should('have.attr', 'href', 'https://www.youtube.com/playlist?list=PLbi1gRlP7pijRiA32SU36hD_FW-2qyPhl')
+ .should('have.attr', 'target', '_blank')
+ .should('have.attr', 'rel', 'noopener noreferrer');
+ });
+
+ it('should have the max-w-screen-xl class in the div element', () => {
+ const mockDate = new Date(2021, 10, 12).getTime();
+ cy.clock(mockDate);
+ mount(
);
+ cy.get('.max-w-screen-xl').should('exist');
+ });
+});
diff --git a/cypress/test/community/Card.cy.js b/cypress/test/community/Card.cy.js
new file mode 100644
index 00000000000..eaea9262428
--- /dev/null
+++ b/cypress/test/community/Card.cy.js
@@ -0,0 +1,55 @@
+import { mount } from 'cypress/react';
+import SmallHomeCards from '../../../components/community/Card';
+import React from 'react';
+import IconArrowUp from '../../../components/icons/ArrowUp';
+
+describe('SmallHomeCards', () => {
+ it('renders small card correctly', () => {
+ const props = {
+ type: 'small',
+ icon:
,
+ tagline: 'Tagline',
+ taglineBg: 'bg-gray-100',
+ heading: 'Heading',
+ description: 'Description',
+ bg: 'bg-white',
+ btnText: 'Button',
+ btnBg: 'bg-gray-200',
+ link: '/path'
+ };
+
+ mount(
);
+ // Testing for small prop classes and styles
+
+ cy.get('[data-testid="Card-heading"]').contains('Heading').should('exist');
+ cy.get('[data-testid="Card-desc"]').contains('Description').should('exist');
+ cy.get('[data-testid="Card-heading"]').should('have.class','mt-3');
+ cy.get('[data-testid="Card-desc"]').should('have.class','mt-2');
+ });
+
+ it('renders large card correctly', () => {
+ const props = {
+ type: 'large',
+ icon:
,
+ tagline: 'Tagline',
+ taglineBg: 'bg-gray-100',
+ heading: 'Heading',
+ description: 'Description',
+ bg: 'bg-blue-500',
+ btnText: 'Button',
+ btnBg: 'bg-gray-200',
+ link: '/path'
+ };
+
+ mount(
);
+
+ // Testing for large prop classes and styles
+ cy.get('[data-testid="Card-heading-lg"]').contains('Heading').should('exist');
+ cy.get('[data-testid="Card-desc-lg"]').contains('Description').should('exist');
+ cy.get('[data-testid="Card-heading-lg"]').should('have.class','mt-10');
+ cy.get('[data-testid="Card-desc-lg"]').should('have.class','mt-6');
+
+
+ });
+});
+// note : props passed can be changed according to the user
\ No newline at end of file
diff --git a/cypress/test/community/Header.cy.js b/cypress/test/community/Header.cy.js
new file mode 100644
index 00000000000..bc99d3bf585
--- /dev/null
+++ b/cypress/test/community/Header.cy.js
@@ -0,0 +1,31 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Header from '../../../components/community/Header';
+
+describe('Header Component', () => {
+ it('renders the Header component correctly', () => {
+ mount(
);
+ cy.get('[data-testid="Header-hero-heading"]').should('exist');
+ cy.get('[data-testid="Header-heading-1"]').should('exist');
+ cy.get('[data-testid="Header-heading-2"]').should('exist');
+ cy.contains('AsyncAPI Discussions').should('exist');
+
+ });
+
+ it('displays the correct text in the Heading components and styles ', () => {
+ mount(
);
+ cy.get('[data-testid="Header-hero-heading"]').contains('AsyncAPI Community').should('have.class', 'font-bold');
+ cy.get('[data-testid="Header-heading-1"]').contains('Welcome to the AsyncAPI Community').should('have.class','title block md:-mt-1 leading-[3rem]');
+ cy.get('[data-testid="Header-heading-2"]').contains('We\'re an OSS community').should('have.class','text-slate-500 text-sm')
+ });
+
+ it('contains a Button component with the correct props', () => {
+ mount(
);
+
+ cy.contains('AsyncAPI Discussions')
+ .should('have.attr', 'href', 'https://github.com/orgs/asyncapi/discussions')
+ .and('have.attr', 'target', '_blank');
+ cy.get('[data-testid="Header-IconRocket"]').should('exist');
+
+ });
+});
diff --git a/cypress/test/community/Hero.cy.js b/cypress/test/community/Hero.cy.js
new file mode 100644
index 00000000000..54c80d31cf3
--- /dev/null
+++ b/cypress/test/community/Hero.cy.js
@@ -0,0 +1,30 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Hero from '../../../components/community/Hero'
+import orbitData from '../../../config/orbitData.json'
+
+describe('Hero Component', () => {
+ beforeEach(() => {
+ mount(
);
+ });
+
+ it('renders the complete component' ,() => {
+ cy.get('[data-testid="orbit-div"]').should('exist')
+ })
+ it('renders the first orbit with orbitData', () => {
+ cy.get('[data-testid="Hero-first"]').should('exist');
+ cy.get('[data-testid="Hero-firstimg"]').should('have.length', orbitData[0].length);
+ });
+
+ it('renders the second orbit with orbitData', () => {
+ cy.get('[data-testid="Hero-second"]').should('exist');
+ cy.get('[data-testid="Hero-secondimg"]').should('have.length', orbitData[1].length);
+ });
+
+ it('renders the third orbit with orbitData', () => {
+ cy.get('[data-testid="Hero-third"]').should('exist');
+ cy.get('[data-testid="Hero-thirdimg"]').should('have.length', orbitData[2].length);
+ });
+
+
+});
diff --git a/cypress/test/community/HomeCard.cy.js b/cypress/test/community/HomeCard.cy.js
new file mode 100644
index 00000000000..5ef50f812c4
--- /dev/null
+++ b/cypress/test/community/HomeCard.cy.js
@@ -0,0 +1,24 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import HomeCards from '../../../components/community/HomeCard';
+
+describe('HomeCards Component', () => {
+ it('renders correctly', () => {
+ const props = {
+ headline: 'Heading Hero',
+ title: 'Title',
+ description: ' Description',
+ btnText: 'Button',
+ link: 'https://sample.com',
+ className: 'sample-class',
+ };
+
+ mount(
);
+ cy.get('[data-testid="HomeCard-main"]').should('exist');
+ cy.get('[data-testid="HomeCard-title"]').should('exist');
+ cy.get('[data-testid="HomeCard-button"]').should('exist');
+ cy.get(`[href="https://sample.com"]`).should('exist');
+ cy.get('.sample-class').should('exist');
+ });
+});
+// note : props passed can be changed according to the user
\ No newline at end of file
diff --git a/cypress/test/dashboard/GoodFirstIssues.cy.js b/cypress/test/dashboard/GoodFirstIssues.cy.js
new file mode 100644
index 00000000000..49111aefdd4
--- /dev/null
+++ b/cypress/test/dashboard/GoodFirstIssues.cy.js
@@ -0,0 +1,48 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import Table from '../../../components/dashboard/table/Table';
+import GoodFirstIssues from '../../../components/dashboard/GoodFirstIssues';
+
+describe('GoodFirstIssues Component', () => {
+ const issues = [
+ { id: 1, repo: 'Repository 1', area: 'Area 1' },
+ { id: 2, repo: 'Repository 2', area: 'Area 2' },
+ { id: 3, repo: 'Repository 3', area: 'Area 3' },
+
+ ];
+
+ it('renders the GoodFirstIssues component', () => {
+ mount(
);
+ // Assert that the component is rendered successfully
+ cy.get('[data-testid="GoodFirstIssues-main-div"]').should('exist');
+ cy.get(Table).should('exist');
+ });
+
+ it('filters issues based on selected repository', () => {
+ mount(
);
+ // Select a specific repository , Repo 1 for now
+ const selectedRepo = 'Repository 1';
+
+ mount(
);
+
+ // Select the mentioned repository
+ cy.get('select[name="selectedRepo"]').select(selectedRepo);
+
+ // check that the selected repository is displayed
+ cy.contains(selectedRepo).should('exist');
+
+ //check if Filter component renders
+ cy.get('[data-testid="GoodFirstIssues-filter-component"]').should('exist');
+
+ // check no other repo is displayed
+ cy.get('select[name="selectedRepo"] option').should('not.contain', 'Repository 2').and('not.contain', 'Repository 3')
+
+
+ });
+
+ it('filters issues based on selected area', () => {
+ mount(
);
+ });
+
+
+});
diff --git a/cypress/test/dashboard/GoodFirstIssuesTip.cy.js b/cypress/test/dashboard/GoodFirstIssuesTip.cy.js
new file mode 100644
index 00000000000..67f7f7b8862
--- /dev/null
+++ b/cypress/test/dashboard/GoodFirstIssuesTip.cy.js
@@ -0,0 +1,30 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import GoodFirstIssuesTip from '../../../components/dashboard/GoodFirstIssuesTip';
+
+describe('GoodFirstIssuesTip', () => {
+ beforeEach(() => {
+ mount(
);
+ });
+
+ it('toggles the tip when hovering over the icon', () => {
+ cy.get('[data-testid="GoodFirstIssuesTip-hover-icon"]').trigger('mouseenter');
+ cy.get('[data-testid="GoodFirstIssuesTip-hover-icon"]').trigger('mouseleave');
+
+ });
+
+ it('renders the tip content with the correct text', () => {
+ cy.get('[data-testid="GoodFirstIssuesTip-hover-icon"]').trigger('mouseenter');
+ //checking for the available class here
+ cy.get('.bg-white').should('have.css', 'visibility', 'visible');
+
+ cy.contains('Is this your first contribution?').should('exist');
+ cy.contains('The issues in this column are perfect for you!').should(
+ 'exist'
+ );
+ cy.contains(
+ 'These issues are of low-complexity and should be a quick commit.'
+ ).should('exist');
+ cy.contains('Thanks for your help, and welcome!').should('exist');
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/dashboard/Header.cy.js b/cypress/test/dashboard/Header.cy.js
new file mode 100644
index 00000000000..6de218040db
--- /dev/null
+++ b/cypress/test/dashboard/Header.cy.js
@@ -0,0 +1,31 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Header from '../../../components/dashboard/Header';
+import Button from '../../../components/buttons/Button';
+import GithubButton from '../../../components/buttons/GithubButton';
+import SlackButton from '../../../components/buttons/SlackButton';
+
+describe('Header', () => {
+ beforeEach(() => {
+ mount(
+
}
+ SlackButtonComponent={SlackButton}
+ />
+ );
+ });
+
+ it('renders the header correctly', () => {
+ cy.get('[data-testid="Header-heading"]').should('contain', 'Dashboard');
+ cy.get('[data-testid="Header-paragraph"]').should(
+ 'contain',
+ 'Visualize our progress. Get involved.'
+ );
+ cy.get('[data-testid="Github-button"]').should('exist');
+ cy.get('[data-testid="Slack-button"]').should('exist');
+ cy.contains('Contribution Guide')
+ .should('have.attr', 'href', 'https://github.com/asyncapi?type=source#-contribute-to-asyncapi')
+ .should('have.attr', 'target', '_blank');
+ });
+});
diff --git a/cypress/test/dashboard/table/Filters.cy.js b/cypress/test/dashboard/table/Filters.cy.js
new file mode 100644
index 00000000000..768b1de7858
--- /dev/null
+++ b/cypress/test/dashboard/table/Filters.cy.js
@@ -0,0 +1,44 @@
+import React from 'react';
+import { mount } from 'cypress/react'
+import Filters from '../../../../components/dashboard/table/Filters';
+
+
+describe('Filters', () => {
+ const sampleIssues = [
+ { area: 'Area 1', repo: 'Repo 1' },
+ { area: 'Area 2', repo: 'Repo 1' },
+ { area: 'Area 1', repo: 'Repo 2' },
+ { area: 'Area 2', repo: 'Repo 2' },
+ ];
+
+ it('displays the filter menu correctly', () => {
+
+ mount(
+
+ );
+
+ // Click on the filter icon to open the menu
+ cy.get('[data-testid="Filters-img-container"]').click();
+
+ // Verify that the menu is displayed
+ cy.get('div[data-testid="Filter-menu"]').should('be.visible');
+
+ // Verify the heading "Filter Issues"
+ cy.contains('h4', 'Filter Issues').should('be.visible');
+
+ // Verify the filter options
+ cy.contains('BY REPOSITORY').should('be.visible');
+ cy.contains('BY AREA').should('be.visible');
+
+ // Verify that the menu is closed
+ cy.get('div[data-testid="Filter-menu"]').should('exist');
+
+ });
+});
+
diff --git a/cypress/test/dashboard/table/Row.cy.js b/cypress/test/dashboard/table/Row.cy.js
new file mode 100644
index 00000000000..5decb925c1c
--- /dev/null
+++ b/cypress/test/dashboard/table/Row.cy.js
@@ -0,0 +1,53 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Row from '../../../../components/dashboard/table/Row';
+
+describe('Row component', () => {
+ const item = {
+ resourcePath: 'asyncapi',
+ isPR: false,
+ repo: 'asyncapi',
+ title: 'Example Issue',
+ labels: [
+ { name: 'bug' },
+ { name: 'feature' },
+ ],
+ };
+
+ it('renders the component correctly', () => {
+ mount(
);
+
+ // Assert that the component is rendered
+ cy.get('li').should('exist');
+ cy.get('.p-4').should('exist');
+ cy.get('a').should('have.attr', 'href', 'https://github.com/asyncapi');
+
+ // Assert the content within the component
+
+ cy.get('.text-base').should('have.text', 'Example Issue');
+ cy.get('.flex-wrap > :nth-child(1)').should('have.text', 'bug');
+ cy.get('.flex-wrap > :nth-child(2)').should('have.text', 'feature');
+ });
+
+ it('opens the link in a new tab', () => {
+ mount(
);
+
+ // Assert that the link opens in a new tab
+ cy.get('[data-testid="Row-github-redirect"]').should('have.attr', 'target', '_blank');
+ cy.get('[data-testid="Row-github-redirect"]').should('have.attr', 'rel', 'noreferrer');
+ });
+
+ it('renders the correct icon based on isPR prop', () => {
+ item.isPR = true;
+ mount(
);
+
+ // Assert that the correct icon is rendered for a PR
+ cy.get('[data-testid="Row-img-issue"]').should('have.attr', 'src', '/img/illustrations/icons/issue.svg');
+
+ item.isPR = false;
+ mount(
);
+
+ // Assert that the correct icon is rendered for an issue
+ cy.get('[data-testid="Row-img-issue"]').should('have.attr', 'src', '/img/illustrations/icons/issue.svg');
+ });
+});
diff --git a/cypress/test/dashboard/table/Table.cy.js b/cypress/test/dashboard/table/Table.cy.js
new file mode 100644
index 00000000000..922bdd92616
--- /dev/null
+++ b/cypress/test/dashboard/table/Table.cy.js
@@ -0,0 +1,42 @@
+import { mount } from 'cypress/react';
+import Table from '../../../../components/dashboard/table/Table';
+
+describe('Table Component', () => {
+ const data = [
+ { id: 1, title: 'Item 1' },
+ { id: 2, title: 'Item 2' },
+ { id: 3, title: 'Item 3' },
+ ];
+
+ it('renders the component', () => {
+ mount(
+
+ );
+
+ cy.contains('h2', 'My Table').should('be.visible');
+ });
+
+ it('renders the correct item names', () => {
+ mount(
+
+ );
+
+ cy.get('.test-list-class').should('be.visible');
+
+ cy.get('.test-list-class [data-testid="Row-spanText"]').each((row, index) => {
+ cy.wrap(row).should('contain', data[index].title);
+ });
+ });
+
+
+})
diff --git a/cypress/test/docs/DocsCards.cy.js b/cypress/test/docs/DocsCards.cy.js
new file mode 100644
index 00000000000..8814b497c59
--- /dev/null
+++ b/cypress/test/docs/DocsCards.cy.js
@@ -0,0 +1,46 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import { DocsCards } from '../../../components/docs/DocsCards';
+import { buckets } from '../../../components/data/buckets';
+
+describe('DocsCards', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ const cards = buckets.map((bucket) => ({
+ title: bucket.title,
+ description: bucket.description,
+ link: bucket.link,
+ className: bucket.className,
+ Icon: bucket.Icon,
+ }));
+
+ it('renders the correct number of cards', () => {
+ cy.get('[data-testid="Docs-main-div"] [data-testid="Docs-link"]').should('have.length', cards.length);
+ });
+
+ it('renders card titles and descriptions correctly', () => {
+ cy.get('[data-testid="Docs-main-div"] ').each(($card, index) => {
+ const card = cards[index];
+ cy.wrap($card).within(() => {
+ cy.get('[data-testid="Docs-div-contents"]').should('contain', card.title);
+ cy.get('[data-testid="Docs-div-contents"]').should('contain', card.description);
+ });
+ });
+ });
+
+ it('navigates to the correct link on card click', () => {
+ cy.get('[data-testid="Docs-main-div"]').each(($card, index) => {
+ const card = cards[index];
+ cy.wrap($card).get('[data-testid="Docs-link"]').should('have.attr', 'href', card.link);
+ });
+ });
+
+ it('renders each icon correctly', () => {
+ cy.get('[data-testid="Docs-main-div"] ').each(($card, index) => {
+ const card = cards[index];
+ cy.wrap($card).get('[data-testid="Docs-icon"]').should('exist');
+ });
+ });
+});
diff --git a/cypress/test/features/index.cy.js b/cypress/test/features/index.cy.js
new file mode 100644
index 00000000000..71eecd31068
--- /dev/null
+++ b/cypress/test/features/index.cy.js
@@ -0,0 +1,29 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Features from '../../../components/features/index';
+import { features } from '../../../components/features/FeatureList';
+describe('Features Component', () => {
+ it('renders all features with their names, descriptions, and links', () => {
+ mount( );
+
+ //check number of features rendered is equal to features array
+ cy.get('[data-testid="Feature-ul"] [data-testid="Feature-li"]').should('have.length', features.length); // there are 6 features in the list
+
+ features.forEach((feature, index) => {
+ cy.get('[data-testid="Feature-ul"] [data-testid="Feature-li"]').eq(index).as('feature');
+
+ cy.get('@feature').within(() => {
+ cy.get('h3').should('have.text', feature.name);
+ cy.get('p').should('have.text', feature.description);
+
+ feature.links.forEach((link, linkIndex) => {
+ cy.get('a').eq(linkIndex).should('have.attr', 'href').then((hrefValue) => {
+ const formattedHrefValue = hrefValue.replace(/^\//, ''); // remove this / so that the value is equal to link.href
+ expect(formattedHrefValue).to.equal(link.href);
+ });
+ });
+
+ });
+ });
+ });
+});
diff --git a/cypress/test/footer/Footer.cy.js b/cypress/test/footer/Footer.cy.js
new file mode 100644
index 00000000000..d0ad207ae64
--- /dev/null
+++ b/cypress/test/footer/Footer.cy.js
@@ -0,0 +1,42 @@
+import { mount } from '@cypress/react'
+import Footer from '../../../components/footer/Footer'
+import { socialMediaLinks, initiativeLinks } from '../../../components/footer/FooterList'
+
+describe('Footer component', () => {
+ beforeEach(() => {
+ mount()
+ })
+
+ it('renders initiative links', () => {
+ cy.get('[data-testid=Footer-initiative-links] a').should('have.length', initiativeLinks.length)
+ })
+
+ it('displays correct initiative link labels and URLs', () => {
+ cy.get('[data-testid=Footer-initiative-links] a').each(($link, index) => {
+ const { label, url } = initiativeLinks[index]
+ expect($link).to.have.text(label)
+ expect($link).to.have.attr('href', url)
+ })
+ })
+
+ it('renders social media links', () => {
+ cy.get('[data-testid=Footer-social-media-links] a').should('have.length', socialMediaLinks.length)
+ })
+
+ it('displays correct social media link', () => {
+ cy.get('[data-testid=Footer-social-media-links] a').each(($link, index) => {
+ const { url } = socialMediaLinks[index]
+ expect($link).to.have.attr('href', url)
+
+ })
+ })
+ it('displays the end content', () => {
+ cy.get('[data-testid="Footer-content"]').should('be.visible')
+ })
+
+ it('checks for logo and link associated with it', () => {
+ cy.get('[data-testid="Footer-logo-link"]').should('exist')
+ cy.get('[data-testid="Footer-logo-link"]').should('have.attr', 'href', '/')
+
+ })
+})
diff --git a/cypress/test/form/Select.cy.js b/cypress/test/form/Select.cy.js
new file mode 100644
index 00000000000..424288bf301
--- /dev/null
+++ b/cypress/test/form/Select.cy.js
@@ -0,0 +1,35 @@
+import { mount } from 'cypress/react';
+import Select from '../../../components/form/Select';
+
+describe('Select Component', () => {
+ const options = [
+ { value: 'option1', text: 'Option 1' },
+ { value: 'option2', text: 'Option 2' },
+ { value: 'option3', text: 'Option 3' },
+ ];
+
+ it('should call onChange when an option is selected', () => {
+ const onChange = cy.stub().as('onChange');
+ mount( );
+
+ cy.get('[data-testid="Select-form"]').select('option2');
+ cy.get('@onChange').should('be.calledOnceWith', 'option2');
+ });
+
+ it('should render options correctly', () => {
+ mount( );
+
+ cy.get('[data-testid="Select-form"]')
+ .find('[data-testid="Option-form"]')
+ .should(($options) => {
+ expect($options).to.have.length(3);
+
+ const optionValues = $options.map((_, el) => Cypress.$(el).val()).get();
+ expect(optionValues).to.deep.eq(['option1', 'option2', 'option3']);
+
+ const selectedOption = $options.filter(':selected');
+ expect(selectedOption).to.have.length(1);
+ expect(selectedOption.text()).to.eq('Option 2');
+ });
+ });
+});
diff --git a/cypress/test/layout/BlogLayout.cy.js b/cypress/test/layout/BlogLayout.cy.js
new file mode 100644
index 00000000000..ef4f5a1aac4
--- /dev/null
+++ b/cypress/test/layout/BlogLayout.cy.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import BlogLayout from '../../../components/layout/BlogLayout';
+import MockRouter from '../../utils/router';
+
+describe('Blog Layout Component', () => {
+ beforeEach(() => {
+ cy.fixture('blogpost.json').as('blogsData');
+ });
+ it('renders correct BlogLayout component', () => {
+ cy.get('@blogsData').then((blogsData) => {
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="BlogLayout-main"]').contains(blogsData.title);
+ });
+})
+
+ it('renders Error Page , if post is not found ', () => {
+ cy.mount(
+
+
+
+ );
+ });
+});
diff --git a/cypress/test/layout/Column.cy.js b/cypress/test/layout/Column.cy.js
new file mode 100644
index 00000000000..b0e768d6190
--- /dev/null
+++ b/cypress/test/layout/Column.cy.js
@@ -0,0 +1,17 @@
+import { mount } from '@cypress/react';
+import Column from '../../../components/layout/Column';
+
+describe('Column component', () => {
+ it('renders children correctly', () => {
+ mount(
+
+ Children content
+
+ );
+ cy.get('[data-testid="Column-main"]').should('exist');
+ cy.get('[data-testid="Column-main"]').should(
+ 'have.text',
+ 'Children content'
+ );
+ });
+});
diff --git a/cypress/test/layout/Container.cy.js b/cypress/test/layout/Container.cy.js
new file mode 100644
index 00000000000..88393995567
--- /dev/null
+++ b/cypress/test/layout/Container.cy.js
@@ -0,0 +1,52 @@
+import React from 'react';
+import { mount } from '@cypress/react';
+import Container from '../../../components/layout/Container';
+
+describe('Container component', () => {
+ it('renders children correctly', () => {
+ mount(
+
+ Children content
+
+ );
+ cy.get('[data-testid="Container-main"]').should('exist');
+ cy.get('[data-testid="Container-main"]').should(
+ 'contain.text',
+ 'Children content'
+ );
+ });
+
+ it('applies fluid wide correctly', () => {
+ mount(
+
+ Children content
+
+ );
+ cy.get('[data-testid="Container-main"]').should('exist');
+ cy.get('[data-testid="Container-main"]').should('not.have.class', 'max-w-screen-xl');
+
+ });
+
+ it('applies wide and padding correctly', () => {
+ mount(
+
+ Children content
+
+ );
+ cy.get('[data-testid="Container-main"]').should('exist');
+ cy.get('[data-testid="Container-main"]').should('have.class', 'max-w-screen-xl');
+ cy.get('[data-testid="Container-main"]').should('have.class', 'px-6');
+ cy.get('[data-testid="Container-main"]').should('not.have.class', 'max-w-4xl');
+ });
+
+ it('applies flex and flexReverse correctly', () => {
+ mount(
+
+ Children content
+
+ );
+ cy.get('[data-testid="Container-main"]').should('exist');
+ cy.get('[data-testid="Container-main"]').should('have.class', 'md:flex-row-reverse');
+ });
+
+});
diff --git a/cypress/test/layout/DocsLayout.cy.js b/cypress/test/layout/DocsLayout.cy.js
new file mode 100644
index 00000000000..2ff720ee3b8
--- /dev/null
+++ b/cypress/test/layout/DocsLayout.cy.js
@@ -0,0 +1,25 @@
+import DocsLayout from '../../../components/layout/DocsLayout'
+import MockRouter from '../../utils/router'
+describe('DocsLayout Component', () => {
+ beforeEach(() => {
+ cy.fixture('docspost.json').as('docsData');
+ });
+ it('renders correct DocsLayout component', () => {
+ cy.get('@docsData').then((docsData) => {
+ cy.mount(
+
+
+ ,
+ )
+ cy.get('[data-testid="DocsLayout-main"]').should('exist');
+ })
+})
+
+ it('renders Error Page , if post is not found ', () => {
+ cy.mount(
+
+
+ ,
+ )
+ })
+})
diff --git a/cypress/test/layout/GenericLayout.cy.js b/cypress/test/layout/GenericLayout.cy.js
new file mode 100644
index 00000000000..a8eb97980b1
--- /dev/null
+++ b/cypress/test/layout/GenericLayout.cy.js
@@ -0,0 +1,45 @@
+import MockRouter from '../../utils/router';
+import GenericLayout from '../../../components/layout/GenericLayout';
+
+describe('GenericLayout Component', () => {
+ beforeEach(() => {
+ cy.mount(
+
+
+
+ );
+ });
+
+ it('renders GenericLayout component', () => {
+ cy.get('[data-testid="GenericLayout"]').should('exist');
+ });
+
+ it('renders Generic-main element', () => {
+ cy.get('[data-testid="Generic-main"]').should('exist');
+ });
+
+ it('does not apply wide class when wide is false', () => {
+ cy.get('[data-testid="GenericLayout"]').should('not.have.class', 'wide');
+ });
+
+ it('displays banner when hideBanner is false', () => {
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="GenericLayout-banner"]').should('exist');
+ });
+});
diff --git a/cypress/test/layout/GenericPostLayout.cy.js b/cypress/test/layout/GenericPostLayout.cy.js
new file mode 100644
index 00000000000..1bd04b0a911
--- /dev/null
+++ b/cypress/test/layout/GenericPostLayout.cy.js
@@ -0,0 +1,27 @@
+import MockRouter from '../../utils/router';
+import GenericPostLayout from '../../../components/layout/GenericPostLayout';
+describe('Generic Post Layout Component', () => {
+ beforeEach(() => {
+ cy.fixture('blogpost.json').as('blogsData');
+ });
+
+ it('renders correct component', () => {
+ cy.get('@blogsData').then((blogsData) => {
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="GenericPostLayout-main-div"]').should('exist');
+ cy.get('[data-testid="GenericPostLayout-Head"]').should('exist');
+ });
+ });
+
+ it('renders Error Page when post is not found ', () => {
+ cy.mount(
+
+
+
+ );
+ });
+});
diff --git a/cypress/test/layout/JobsLayout.cy.js b/cypress/test/layout/JobsLayout.cy.js
new file mode 100644
index 00000000000..3b23128763e
--- /dev/null
+++ b/cypress/test/layout/JobsLayout.cy.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import JobsLayout from '../../../components/layout/JobsLayout';
+import MockRouter from '../../utils/router';
+describe('Job Layout Component', () => {
+ beforeEach(() => {
+ cy.fixture('jobpost.json').as('jobsData');
+ });
+
+ it('renders correct JobLayout component', () => {
+ cy.get('@jobsData').then((jobsData) => {
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="JobsLayout-Heading"]').contains(jobsData.title);
+ });
+ });
+
+ it('renders Error Page , if post is not found ', () => {
+ cy.mount(
+
+
+
+ )
+ });
+});
diff --git a/cypress/test/layout/Layout.cy.js b/cypress/test/layout/Layout.cy.js
new file mode 100644
index 00000000000..342b3e578d0
--- /dev/null
+++ b/cypress/test/layout/Layout.cy.js
@@ -0,0 +1,50 @@
+import Layout from '../../../components/layout/Layout';
+import MockRouter from '../../utils/router';
+import { getPostBySlug, getAllPosts, getDocBySlug } from '../../../lib/api';
+
+describe('Blog Layout Component', () => {
+ it('renders correct DocsLayout component when pathname is /docs', () => {
+ const posts = getAllPosts();
+ const allDocPosts = posts['docs'].filter((p) => p.slug.startsWith('/docs/'));
+ const post = getDocBySlug(posts['docs'], '/docs');
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="Docs-main-container"]').should('exist');
+ });
+
+ it('renders correct BlogLayout component when pathname is /blog/', () => {
+ const posts = getAllPosts();
+ const post = getPostBySlug("/blog/2021-summary", 'blog');
+ cy.mount(
+
+
+
+ );
+ cy.get('[data-testid="Blogs-main-container" ]').should('exist')
+ });
+
+ it('renders correct Blog component when pathname is /blog' , () => {
+ const posts = getAllPosts();
+ const post = getPostBySlug("/blog", 'blog');
+ cy.mount(
+
+
+
+ )
+ cy.get('[data-testid="Blogs-sub-container"]').should('exist');
+ })
+
+ it('renders correct Jobs component when pathname is /jobs/' , () => {
+ const posts = getAllPosts();
+ const post = getPostBySlug('/jobs/apiture-api-architect', 'jobs');
+ cy.mount(
+
+
+
+ )
+ cy.get('[data-testid="Jobs-main-container"]').should('exist');
+ });
+});
diff --git a/cypress/test/layout/Row.cy.js b/cypress/test/layout/Row.cy.js
new file mode 100644
index 00000000000..845c3140964
--- /dev/null
+++ b/cypress/test/layout/Row.cy.js
@@ -0,0 +1,10 @@
+import { mount } from 'cypress/react';
+import Row from '../../../components/layout/Row';
+
+describe('Row', () => {
+ it('renders children correctly', () => {
+ const children = Sample content
;
+ mount({children}
);
+ cy.contains('Sample content').should('exist');
+ });
+});
diff --git a/cypress/test/lib/api.cy.js b/cypress/test/lib/api.cy.js
new file mode 100644
index 00000000000..4f167f84165
--- /dev/null
+++ b/cypress/test/lib/api.cy.js
@@ -0,0 +1,37 @@
+import { getAllPosts, getPostBySlug, getDocBySlug } from '../../../lib/api';
+import posts from '../../../config/posts.json'
+describe('getAllPosts', () => {
+ it('should return all posts', () => {
+ const allPosts = getAllPosts();
+ expect(allPosts).to.deep.equal(posts);
+ });
+});
+
+describe('getPostBySlug', () => {
+ it('should return the post with the given slug', () => {
+ const slug = '/blog/2023-may-docs-report';
+ const post = getPostBySlug(slug);
+ const expectedPost = posts.blog.find((p) => p.slug === slug && !p.isSection);
+ expect(post).to.deep.equal(expectedPost);
+ });
+
+ it('should return the post of a specific type with the given slug', () => {
+ const slug = '/blog/2023-may-docs-report';
+ const type = 'blog';
+ const post = getPostBySlug(slug, type);
+ const expectedPost = posts[type].find((p) => p.slug === slug && !p.isSection);
+ expect(post).to.deep.equal(expectedPost);
+ });
+});
+
+describe('getDocBySlug', () => {
+ it('should return the document with the given slug', () => {
+ const structuredPosts = posts['docs']
+ const slug = '/docs/concepts';
+ const doc = getDocBySlug(structuredPosts, slug);
+ const expectedDoc = structuredPosts.find((post) => post.slug === slug && !post.isSection);
+ expect(doc).to.deep.equal(expectedDoc);
+ });
+
+ });
+
diff --git a/cypress/test/lib/staticHelpers.cy.js b/cypress/test/lib/staticHelpers.cy.js
new file mode 100644
index 00000000000..21e155a9e4b
--- /dev/null
+++ b/cypress/test/lib/staticHelpers.cy.js
@@ -0,0 +1,45 @@
+import { getEvents } from '../../../lib/staticHelpers';
+
+describe('getEvents', () => {
+ it('should return sorted events in ascending order', () => {
+ const events = [
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=czRmMG5maHRsYjduM2g3dmwxMDM1Z3R0NzAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/645",
+ "date": "2023-04-04T08:00:00.000Z"
+ },
+ {
+ "title": "Spec 3.0 Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=djhsdjZvbmRsampvb2tsYzhkZWFyc3FtYTAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/649",
+ "date": "2023-04-13T15:00:00.000Z"
+ },
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=MzgwdmZiMTc4cnBmbTUzdWVlbmM4aWYyM2MgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/659",
+ "banner": "https://user-images.githubusercontent.com/40604284/229763606-c0b6ed3b-e120-427c-b87d-357856d92777.png",
+ "date": "2023-04-18T16:00:00.000Z"
+ },
+ ];
+
+ cy.wrap(events).as('events');
+
+ // Call the getEvents function
+ cy.get('@events').then((events) => {
+ const sortedEvents = getEvents(events);
+
+ // Check if the result is an array
+ expect(sortedEvents).to.be.an('array');
+
+ // Convert dates to timestamps for comparison
+ const sortedTimestamps = sortedEvents.map((event) => event.date.valueOf());
+
+ // Check if the timestamps are sorted in ascending order
+ for (let i = 0; i < sortedTimestamps.length - 1; i++) {
+ expect(sortedTimestamps[i]).to.be.greaterThan(sortedTimestamps[i + 1]);
+ }
+ });
+ });
+});
diff --git a/cypress/test/mockData/blogmockData.js b/cypress/test/mockData/blogmockData.js
new file mode 100644
index 00000000000..4b1f28eb65f
--- /dev/null
+++ b/cypress/test/mockData/blogmockData.js
@@ -0,0 +1,250 @@
+export const post = {
+ "title": "Awesome 2020 and What Can Get Better In 2021",
+ "date": "2020-12-23T05:00:00.000Z",
+ "type": "Communication",
+ "tags": [
+ "Project Status"
+ ],
+ "cover": "/img/posts/2020-summary/cover.webp",
+ "authors": [
+ {
+ "name": "Lukasz Gornicki",
+ "photo": "/img/avatars/lpgornicki.webp",
+ "link": "https://twitter.com/derberq",
+ "byline": "AsyncAPI Maintainer and Dev Comm Keeper"
+ }
+ ],
+ "excerpt": "Fuck you COVID-19, AsyncAPI Community is stronger than you think. See the growth of AsyncAPI in 2020 in hard numbers. How we compare to 2019?",
+ "toc": [
+ {
+ "content": "Important moments",
+ "slug": "important-moments",
+ "lvl": 2,
+ "i": 0,
+ "seen": 0
+ },
+ {
+ "content": "Slack",
+ "slug": "slack",
+ "lvl": 2,
+ "i": 1,
+ "seen": 0
+ },
+ {
+ "content": "Numbers getting high",
+ "slug": "numbers-getting-high",
+ "lvl": 3,
+ "i": 2,
+ "seen": 0
+ },
+ {
+ "content": "Most present companies",
+ "slug": "most-present-companies",
+ "lvl": 3,
+ "i": 3,
+ "seen": 0
+ },
+ {
+ "content": "What's next with Slack",
+ "slug": "whats-next-with-slack",
+ "lvl": 3,
+ "i": 4,
+ "seen": 0
+ },
+ {
+ "content": "LinkedIn",
+ "slug": "linkedin",
+ "lvl": 2,
+ "i": 5,
+ "seen": 0
+ },
+ {
+ "content": "Followers and impressions",
+ "slug": "followers-and-impressions",
+ "lvl": 3,
+ "i": 6,
+ "seen": 0
+ },
+ {
+ "content": "Sponsored marketing",
+ "slug": "sponsored-marketing",
+ "lvl": 3,
+ "i": 7,
+ "seen": 0
+ },
+ {
+ "content": "What's next with LinkedIn",
+ "slug": "whats-next-with-linkedin",
+ "lvl": 3,
+ "i": 8,
+ "seen": 0
+ },
+ {
+ "content": "Google Analytics",
+ "slug": "google-analytics",
+ "lvl": 2,
+ "i": 9,
+ "seen": 0
+ },
+ {
+ "content": "Traffic got much higher",
+ "slug": "traffic-got-much-higher",
+ "lvl": 3,
+ "i": 10,
+ "seen": 0
+ },
+ {
+ "content": "Top referring channels",
+ "slug": "top-referring-channels",
+ "lvl": 3,
+ "i": 11,
+ "seen": 0
+ },
+ {
+ "content": "Top blog posts",
+ "slug": "top-blog-posts",
+ "lvl": 3,
+ "i": 12,
+ "seen": 0
+ },
+ {
+ "content": "What's next with the website",
+ "slug": "whats-next-with-the-website",
+ "lvl": 3,
+ "i": 13,
+ "seen": 0
+ },
+ {
+ "content": "Twitter",
+ "slug": "twitter",
+ "lvl": 2,
+ "i": 14,
+ "seen": 0
+ },
+ {
+ "content": "Paid marketing",
+ "slug": "paid-marketing",
+ "lvl": 3,
+ "i": 15,
+ "seen": 0
+ },
+ {
+ "content": "Top tweets",
+ "slug": "top-tweets",
+ "lvl": 3,
+ "i": 16,
+ "seen": 0
+ },
+ {
+ "content": "What's next with Twitter",
+ "slug": "whats-next-with-twitter",
+ "lvl": 3,
+ "i": 17,
+ "seen": 0
+ },
+ {
+ "content": "GitHub",
+ "slug": "github",
+ "lvl": 2,
+ "i": 18,
+ "seen": 0
+ },
+ {
+ "content": "Most popular repositories",
+ "slug": "most-popular-repositories",
+ "lvl": 3,
+ "i": 19,
+ "seen": 0
+ },
+ {
+ "content": "Traffic growth",
+ "slug": "traffic-growth",
+ "lvl": 3,
+ "i": 20,
+ "seen": 0
+ },
+ {
+ "content": "What's next with GitHub",
+ "slug": "whats-next-with-github",
+ "lvl": 3,
+ "i": 21,
+ "seen": 0
+ },
+ {
+ "content": "npm",
+ "slug": "npm",
+ "lvl": 2,
+ "i": 22,
+ "seen": 0
+ },
+ {
+ "content": "Top packages",
+ "slug": "top-packages",
+ "lvl": 3,
+ "i": 23,
+ "seen": 0
+ },
+ {
+ "content": "What's next with npm",
+ "slug": "whats-next-with-npm",
+ "lvl": 3,
+ "i": 24,
+ "seen": 0
+ },
+ {
+ "content": "YouTube",
+ "slug": "youtube",
+ "lvl": 2,
+ "i": 25,
+ "seen": 0
+ },
+ {
+ "content": "Watch time goes crazy",
+ "slug": "watch-time-goes-crazy",
+ "lvl": 3,
+ "i": 26,
+ "seen": 0
+ },
+ {
+ "content": "Most popular videos",
+ "slug": "most-popular-videos",
+ "lvl": 3,
+ "i": 27,
+ "seen": 0
+ },
+ {
+ "content": "What's next with YouTube",
+ "slug": "whats-next-with-youtube",
+ "lvl": 3,
+ "i": 28,
+ "seen": 0
+ },
+ {
+ "content": "Open Collective",
+ "slug": "open-collective",
+ "lvl": 2,
+ "i": 29,
+ "seen": 0
+ },
+ {
+ "content": "Ultimate questions - how many people use the spec?",
+ "slug": "ultimate-questions---how-many-people-use-the-spec",
+ "lvl": 2,
+ "i": 30,
+ "seen": 0
+ },
+ {
+ "content": "Final words",
+ "slug": "final-words",
+ "lvl": 2,
+ "i": 31,
+ "seen": 0
+ }
+ ],
+ "readingTime": 18,
+ "sectionSlug": "/blog",
+ "sectionWeight": 0,
+ "id": "pages/blog/2020-summary.md",
+ "isIndex": false,
+ "slug": "/blog/2020-summary"
+}
\ No newline at end of file
diff --git a/cypress/test/newsroom/FeaturedBlogItem.cy.js b/cypress/test/newsroom/FeaturedBlogItem.cy.js
new file mode 100644
index 00000000000..ba7a7362ee2
--- /dev/null
+++ b/cypress/test/newsroom/FeaturedBlogItem.cy.js
@@ -0,0 +1,18 @@
+import { mount } from 'cypress/react'
+import FeaturedBlogPost from '../../../components/newsroom/FeaturedBlogPost'
+import { post } from '../mockData/blogmockData';
+describe('Features Component', () => {
+ it('renders without errors', () => {
+ mount( );
+ cy.get('[data-testid="FeaturedBlogPostItem-Link"]').should('have.attr', 'href', post.slug)
+ cy.get('[data-testid="FeaturedBlogPostItem-Img"]').should('have.attr', 'src', post.cover)
+ cy.get('[data-testid="FeaturedBlogPost-type"]').should('exist', post.type)
+ cy.get('[data-testid="FeaturedBlog-title"]').should('exist',post.title);
+ post.authors.forEach(author => {
+ cy.get('[data-testid="FeaturedBlogPost-AuthorName"]').should('exist',author.name)
+ })
+ cy.get('[data-testid="FeaturedBlog-Authorimg"]').should('exist', post.authors)
+ cy.get('[data-testid="FeaturedBlogPost-date"]').should('exist', post.date)
+ cy.get('[data-testid="FeaturedBlogPost-RT"]').should('exist', post.readingTime)
+ });
+});
diff --git a/cypress/test/newsroom/Newsroom.cy.js b/cypress/test/newsroom/Newsroom.cy.js
new file mode 100644
index 00000000000..6764307f6a0
--- /dev/null
+++ b/cypress/test/newsroom/Newsroom.cy.js
@@ -0,0 +1,24 @@
+import { mount } from 'cypress/react'
+import Newsroom from '../../../components/newsroom/Newsroom'
+const newsroomHeadings = ["Latest Updates","From the blog"]
+describe('Newsroom Component', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ it('renders without errors', () => {
+ cy.get('[data-testid="Newsroom-main"]').contains(newsroomHeadings[0])
+ cy.get('[data-testid="Newsroom-sub-div"]').contains(newsroomHeadings[1])
+ cy.get('[data-testid="Newsroom-Blog"]').should('exist')
+ });
+
+ it('checks link href', () => {
+ cy.get('[data-testid="Newsroom-Blog-Link"]').find('a').should('have.attr', 'href', '/blog') // Check the blog href attribute
+ cy.get('[ data-testid="Newsroom-Twitter-Link"]').find('a').should('have.attr', 'href', 'https://twitter.com/AsyncAPISpec') //check twitter
+ cy.get('[data-testid="Newsroom-Youtube"]').find('a').should('have.attr', 'href', 'https://www.youtube.com/c/AsyncAPI') //check youtube link
+ });
+
+ it('checks TwitterTimelineEmbed', () => {
+ cy.get('[data-testid="Newsroom-Twitter"]').should('exist'); // data-test was not working
+ });
+});
diff --git a/cypress/test/newsroom/NewsroomArticle.cy.js b/cypress/test/newsroom/NewsroomArticle.cy.js
new file mode 100644
index 00000000000..bda9ddeff1a
--- /dev/null
+++ b/cypress/test/newsroom/NewsroomArticle.cy.js
@@ -0,0 +1,14 @@
+import { mount } from 'cypress/react'
+import NewsroomArticle from '../../../components/newsroom/NewsroomArticle'
+import articlesData from '../../../config/articles.json'
+
+describe('Newsroom Article Component', () => {
+ it('renders without errors', () => {
+ mount( );
+ articlesData.forEach((article, index) => {
+ cy.get(`[data-testid="NewsroomArticle-${ index }"]`).should('have.attr', 'href', article.url);
+ cy.get(`[data-testid="NewsroomArticle-${ index }"]`).should('contain.text', article.title);
+ cy.get(`[data-testid="NewsroomArticle-${ index }"]`).should('contain.text', article.publishDate);
+ });
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/newsroom/NewsroomBlogPost.cy.js b/cypress/test/newsroom/NewsroomBlogPost.cy.js
new file mode 100644
index 00000000000..26f40c45aec
--- /dev/null
+++ b/cypress/test/newsroom/NewsroomBlogPost.cy.js
@@ -0,0 +1,30 @@
+import { mount } from 'cypress/react'
+import NewsroomBlogPosts from '../../../components/newsroom/NewsroomBlogPosts';
+
+describe('Newsroom Article Component', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ it('renders without errors', () => {
+
+ });
+ it('checks if swiper component is present', () => {
+ cy.get('[data-testid="NewsroomBlog-main-div"]').should('exist')
+
+ });
+ it('checks if the first slide is active', () => {
+ cy.get('.swiper-slide-active').should('exist')
+ });
+
+ it('checks if the second slide is active after clicking next', () => {
+ cy.get('[data-testid="Blog-Next-button"]').click({force: true })
+ cy.get('.swiper-slide-active').should('exist')
+ });
+
+ it('slides to the previous slide', () => {
+ cy.get('[data-testid="Blog-Prev-button"]').click({force: true })
+ cy.get('.swiper-slide-active').should('exist')
+ });
+});
+
diff --git a/cypress/test/newsroom/NewsroomSection.cy.js b/cypress/test/newsroom/NewsroomSection.cy.js
new file mode 100644
index 00000000000..a7d5b451de5
--- /dev/null
+++ b/cypress/test/newsroom/NewsroomSection.cy.js
@@ -0,0 +1,19 @@
+import { mount } from 'cypress/react'
+import NewsroomSection from '../../../components/newsroom/NewsroomSection';
+const newsroom = ["Latest news and blogs"]
+describe('Newsroom Section Component', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ it('renders without errors', () => {});
+
+ it('check if Features Blog Post exists', () => {
+ cy.get('[data-testid="NewsroomSection-Featured"]').should('exist');
+ });
+
+ it('check content of Newsroom component', () => {
+ cy.get('[data-testid="NewsroomSection-main"]').contains(newsroom[0]);
+ })
+});
+
diff --git a/cypress/test/newsroom/NewsroomYoutube.cy.js b/cypress/test/newsroom/NewsroomYoutube.cy.js
new file mode 100644
index 00000000000..21ffaee96bc
--- /dev/null
+++ b/cypress/test/newsroom/NewsroomYoutube.cy.js
@@ -0,0 +1,27 @@
+import { mount } from 'cypress/react'
+import NewsroomYoutube from '../../../components/newsroom/NewsroomYoutube';
+
+describe('Newsroom Youtube', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ it('renders without errors', () => {});
+
+ it('checks if swiper component is present', () => {
+ cy.get('[ data-testid="NewsroomYoutube-main"]').should('exist')
+ });
+
+ it('checks if the first slide is active', () => {
+ cy.get('.swiper-slide-active').should('exist')
+ });
+
+ it('slides to the next slide', () => {
+ cy.get('[data-testid="Youtube-Next-button"]').click({force: true })
+ cy.get('.swiper-slide-active').should('exist')
+ });
+
+ it('slides to the previous slide', () => {
+ cy.get('[data-testid="Youtube-Prev-button"]').click({force: true })
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/newsroom/YoutubeCard.cy.js b/cypress/test/newsroom/YoutubeCard.cy.js
new file mode 100644
index 00000000000..130a200bd0a
--- /dev/null
+++ b/cypress/test/newsroom/YoutubeCard.cy.js
@@ -0,0 +1,17 @@
+import { mount } from '@cypress/react'
+import YouTubeCard from '../../../components/newsroom/YouTubeCard'
+
+const video = {
+ "image_url": "https://i.ytimg.com/vi/EvC2PZXEM0M/hqdefault.jpg",
+ "title": "Community Meeting, Tuesday June 27th 2023",
+ "description": "https://github.com/asyncapi/community/issues/762.",
+ "videoId": "EvC2PZXEM0M"
+}
+
+describe('Youtube Card Component', () => {
+ it('renders without errors', () => {
+ mount( );
+ cy.get('[data-testid="YoutubeCard-main"]').contains(video.title);
+ cy.get('[data-testid="YoutubeCard-main"]').contains(video.description);
+ });
+});
\ No newline at end of file
diff --git a/cypress/test/newsroom/swiper.cy.js b/cypress/test/newsroom/swiper.cy.js
new file mode 100644
index 00000000000..e000cadd018
--- /dev/null
+++ b/cypress/test/newsroom/swiper.cy.js
@@ -0,0 +1,14 @@
+import { checkLastSnapIndex } from '../../../components/newsroom/swiper';
+
+describe('checkLastSnapIndex', () => {
+ it('should check the last snap index correctly for different viewport widths', () => {
+ cy.viewport(1280, 720); // Set the viewport width to 1280px
+ const isLastSnapIndex1 = checkLastSnapIndex(3);
+ expect(isLastSnapIndex1).to.be.false;
+
+ cy.viewport(640, 480); // Set the viewport width to 640px
+ const isLastSnapIndex2 = checkLastSnapIndex(4);
+ expect(isLastSnapIndex2).to.be.true;
+ });
+ });
+
diff --git a/cypress/test/slack/Message.cy.js b/cypress/test/slack/Message.cy.js
new file mode 100644
index 00000000000..87b81e67456
--- /dev/null
+++ b/cypress/test/slack/Message.cy.js
@@ -0,0 +1,37 @@
+import { mount } from '@cypress/react'
+import SlackMessage from '../../../components/slack/Message'
+describe('SlackMessage component', () => {
+ it('renders the SlackMessage component correctly', () => {
+ const avatarSrc = '../../../public/img/avatars/dalelane.webp' // Replace
+ const name = 'John Doe'
+ const text = 'Hello, world!'
+ const reactions = [
+ { emoji: 'π', count: 5 },
+ { emoji: 'β€οΈ', count: 3 },
+ // Add more reactions
+ ]
+
+ mount(
+
+ )
+
+
+ cy.get('[data-testid="SlackMessage-main-div"]').should('exist')
+ cy.get('[ data-testid="SlackMessage-img"]').should('have.attr', 'src', avatarSrc)
+ cy.get('[data-testid="SlackMessage-name"]').should('contain', name)
+ cy.get('[data-testid="SlackMessage-text"]').should('contain', text)
+
+ // Check the reaction elements
+ reactions.forEach((reaction, index) => {
+ cy.get('[data-testid="SlackMessage-reaction"]').eq(index).as('reactionElement')
+
+ if (reaction.icon) {
+ cy.get('@reactionElement').find('[data-testid="SlackMessage-reactionIcon"]').should('have.attr', 'src', reaction.icon)
+ } else {
+ cy.get('@reactionElement').find('[data-testid="SlackMessage-span"]').should('contain', reaction.emoji)
+ }
+
+ cy.get('@reactionElement').find('[data-testid="SlackMessage-count"]').should('contain', reaction.count)
+ })
+ })
+})
diff --git a/cypress/test/slack/index.cy.js b/cypress/test/slack/index.cy.js
new file mode 100644
index 00000000000..4a7c2698c33
--- /dev/null
+++ b/cypress/test/slack/index.cy.js
@@ -0,0 +1,21 @@
+import React from 'react';
+import { mount } from 'cypress/react';
+import Slack from '../../../components/slack/index';
+
+describe('Slack Component', () => {
+ it('renders the Slack messages correctly', () => {
+ mount( );
+
+ // Verify the first Slack message
+ cy.get('[data-testid="SlackMessage"]').eq(0).as('message-1').should('exist')
+
+ // Verify the second Slack message
+ cy.get('[data-testid="SlackMessage"]').eq(0).as('message-2').should('exist')
+
+ // Verify the third Slack message
+ cy.get('[data-testid="SlackMessage"]').eq(0).as('message-3').should('exist')
+
+ // Verify the fourth Slack message
+ cy.get('[data-testid="SlackMessage"]').eq(0).as('message-4').should('exist')
+ });
+});
diff --git a/cypress/test/sponsors/GoldSponsors.cy.js b/cypress/test/sponsors/GoldSponsors.cy.js
new file mode 100644
index 00000000000..bd2cebeaad8
--- /dev/null
+++ b/cypress/test/sponsors/GoldSponsors.cy.js
@@ -0,0 +1,22 @@
+import {mount} from 'cypress/react'
+import GoldSponsors from '../../../components/sponsors/GoldSponsors';
+import { goldSponsors } from '../../../components/sponsors/GoldSponsorsList';
+describe('GoldSponsors Component', () => {
+ beforeEach(() => {
+ mount( );
+ });
+
+ it('renders the gold sponsors', () => {
+ cy.get('.flex-wrap')
+ .find('[data-testid="GoldSponsors-link"]')
+ .should('have.length', goldSponsors.length)
+ .each(($sponsor, index) => {
+ const sponsor = goldSponsors[index];
+ cy.wrap($sponsor)
+ .should('have.attr', 'href', sponsor.website)
+ .find('[data-testid="GoldSponsors-img"]')
+ .should('have.attr', 'src', sponsor.imageSrc)
+ .should('have.attr', 'alt', sponsor.name);
+ });
+ });
+});
diff --git a/cypress/test/sponsors/SilverSponsors.cy.js b/cypress/test/sponsors/SilverSponsors.cy.js
new file mode 100644
index 00000000000..f5b050db79e
--- /dev/null
+++ b/cypress/test/sponsors/SilverSponsors.cy.js
@@ -0,0 +1,18 @@
+import { mount } from 'cypress/react';
+import SilverSponsors from '../../../components/sponsors/SilverSponsors';
+import { Silversponsors } from '../../../components/sponsors/SilverSponsorsList';
+
+describe('SilverSponsors', () => {
+ it('renders silver sponsors correctly', () => {
+ mount(
+
+ );
+ Silversponsors.forEach((sponsor, index) => {
+ cy.get('[data-testid="SilverSponsors-link"]').eq(index)
+ .should('have.attr', 'href', sponsor.url)
+ .find('[data-testid="SilverSponsors-img"]')
+ .should('have.attr', 'src', sponsor.image)
+ .should('have.attr', 'alt', sponsor.name);
+ });
+ });
+});
diff --git a/cypress/test/sponsors/Sponsors.cy.js b/cypress/test/sponsors/Sponsors.cy.js
new file mode 100644
index 00000000000..feb5e16e021
--- /dev/null
+++ b/cypress/test/sponsors/Sponsors.cy.js
@@ -0,0 +1,36 @@
+import { mount } from 'cypress/react';
+import Sponsors from '../../../components/sponsors/Sponsors';
+import { sponsors } from '../../../components/sponsors/SponsorsList';
+
+describe('Sponsors Component', () => {
+ it('renders sponsors correctly', () => {
+ mount( );
+
+ sponsors.forEach((sponsor, index) => {
+ cy.get('[data-testid="Sponsors-list"]').eq(index).within(() => {
+ cy.get('[data-testid="Sponsors-link"]')
+ .should('have.attr', 'href', sponsor.link)
+ .should('have.attr', 'target', '_blank')
+ .should('have.attr', 'rel', 'noopener noreferrer');
+
+ cy.get('[data-testid="Sponsors-img"]')
+ .should('have.attr', 'src', sponsor.imageSrc)
+ .should('have.attr', 'alt', sponsor.altText);
+ });
+ });
+ });
+ it('shows support banner when showSupportBanner prop is true', () => {
+ mount( );
+ cy.contains('Want to become a sponsor?');
+ cy.contains('Support us!')
+ .should('have.attr', 'href', 'https://opencollective.com/asyncapi')
+ .should('have.attr', 'target', '_blank')
+ .should('have.attr', 'rel', 'noopener noreferrer');
+ });
+
+ it('does not show support banner when showSupportBanner prop is false', () => {
+ mount( );
+ cy.contains('Want to become a sponsor?').should('not.exist');
+ cy.contains('Support us!').should('not.exist');
+ });
+});
diff --git a/cypress/test/typography/Heading.cy.js b/cypress/test/typography/Heading.cy.js
new file mode 100644
index 00000000000..9081127df4b
--- /dev/null
+++ b/cypress/test/typography/Heading.cy.js
@@ -0,0 +1,25 @@
+import { mount } from '@cypress/react';
+import Heading from '../../../components/typography/Heading'
+describe('Heading Component', () => {
+ beforeEach(() => {
+ cy.mount(Default Heading );
+ });
+
+ it('renders the heading with the default props', () => {
+ cy.get('h2').should('have.class', 'text-primary-800');
+ cy.get('h2').should( 'have.class','font-heading text-heading-md font-bold tracking-heading md:text-heading-lg' );
+ cy.get('h2').should('contain', 'Default Heading');
+ });
+
+ it('renders the heading with custom props', () => {
+ cy.mount(
+
+ Heading with custom styles
+
+ );
+ cy.get('h3').should('have.class', 'text-red-500');
+ cy.get('h3').should( 'have.class','font-heading text-heading-sm font-semibold tracking-heading');
+ cy.get('h3').should('contain', 'Heading with custom styles');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/typography/Paragraph.cy.js b/cypress/test/typography/Paragraph.cy.js
new file mode 100644
index 00000000000..2d30074acd8
--- /dev/null
+++ b/cypress/test/typography/Paragraph.cy.js
@@ -0,0 +1,32 @@
+import { mount } from '@cypress/react';
+import Paragraph from '../../../components/typography/Paragraph';
+describe('Paragraph Component', () => {
+ beforeEach(() => {
+ cy.mount(
+
+ Default Paragraph
+
+ );
+ });
+
+ it('renders the paragraph with the default props', () => {
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'text-gray-700');
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'text-lg');
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'font-bold');
+ cy.get('[data-testid="Paragraph-test" ]').should('contain', 'Default Paragraph');
+ });
+
+ it('renders the paragraph with custom props', () => {
+ cy.mount(
+
+ Paragraph with custom styles
+
+ );
+
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'text-blue-500');
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'text-md');
+ cy.get('[data-testid="Paragraph-test" ]').should('have.class', 'font-semibold');
+ cy.get('[data-testid="Paragraph-test" ]').should('contain', 'Paragraph with custom styles');
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/test/typography/TextLink.cy.js b/cypress/test/typography/TextLink.cy.js
new file mode 100644
index 00000000000..4e19c7f23e8
--- /dev/null
+++ b/cypress/test/typography/TextLink.cy.js
@@ -0,0 +1,33 @@
+import { mount } from '@cypress/react';
+import TextLink from '../../../components/typography/TextLink'
+describe('TextLink Component', () => {
+ it('renders a Textlink with the provided props and content', () => {
+ const href = '/test';
+ const className = 'custom-class';
+ const target = '_blank';
+ const id = 'test-link';
+ const children = 'Test Link';
+
+ cy.mount(
+
+ {children}
+
+ );
+
+ cy.get('[data-testid="TextLink-href" ]')
+ .should('have.attr', 'href', href)
+ .should('have.class', 'text-secondary-500')
+ .should('have.class', 'underline')
+ .should('have.class', 'hover:text-gray-800')
+ .should('have.class', 'font-medium')
+ .should('have.class', 'transition')
+ .should('have.class', 'ease-in-out')
+ .should('have.class', 'duration-300')
+ .should('have.class', className)
+ .should('have.attr', 'target', target)
+ .should('have.attr', 'rel', 'noreferrer noopener')
+ .should('have.attr', 'id', id)
+ .should('contain', children);
+ });
+ });
+
\ No newline at end of file
diff --git a/cypress/utils/router.js b/cypress/utils/router.js
new file mode 100644
index 00000000000..a02a93219b5
--- /dev/null
+++ b/cypress/utils/router.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import { RouterContext } from 'next/dist/shared/lib/router-context';
+
+const createRouter = (params) => ({
+ route: '/',
+ pathname: '/',
+ query: {},
+ asPath: '/',
+ basePath: '',
+ back: cy.spy().as('back'),
+ beforePopState: cy.spy().as('beforePopState'),
+ prefetch: cy.stub().as('prefetch').resolves(),
+ reload: cy.spy().as('reload'),
+ isFallback: false,
+ defaultLocale: 'en',
+ ...params,
+});
+
+const MockRouter = ({ children, ...props }) => {
+ const router = createRouter(props);
+
+ return (
+ {children}
+ );
+};
+
+export default MockRouter;
diff --git a/dashboard.json b/dashboard.json
index a6eb4638d01..97a3ff85211 100644
--- a/dashboard.json
+++ b/dashboard.json
@@ -1,15 +1,40 @@
{
"hotDiscussions": [
{
- "id": "PR_kwDODCuNRs4r1oNL",
- "isPR": true,
+ "id": "MDU6SXNzdWU5ODkyOTg0MzY=",
+ "isPR": false,
+ "isAssigned": true,
+ "title": "Proposal to solve publish/subscribe confusion",
+ "author": "fmvilas",
+ "resourcePath": "/asyncapi/spec/issues/618",
+ "repo": "asyncapi/spec",
+ "labels": [
+ {
+ "name": "π Strawman (RFC 0)",
+ "color": "C2E0C6"
+ }
+ ],
+ "score": 53.988822684860644
+ },
+ {
+ "id": "I_kwDOFLhIt84-OUI3",
+ "isPR": false,
"isAssigned": false,
- "title": "docs: proposed set of bindings for AWS - SNS and SQS",
- "author": "iancooper",
- "resourcePath": "/asyncapi/bindings/pull/84",
- "repo": "asyncapi/bindings",
- "labels": [],
- "score": 22.68679251119144
+ "title": "Create educational & technical video explaining AsyncAPI's main features",
+ "author": "alequetzalli",
+ "resourcePath": "/asyncapi/community/issues/155",
+ "repo": "asyncapi/community",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "a2eeef"
+ },
+ {
+ "name": "stale",
+ "color": "ededed"
+ }
+ ],
+ "score": 32.45072852866624
},
{
"id": "MDU6SXNzdWU5OTMxODc5ODM=",
@@ -25,209 +50,501 @@
"color": "C2E0C6"
}
],
- "score": 20.96374497869589
+ "score": 22.68679251119144
},
{
- "id": "I_kwDOBGu-185CELGB",
+ "id": "I_kwDOBW5R_c5Pi3rO",
"isPR": false,
"isAssigned": false,
- "title": "Work on 3.0 release",
- "author": "jonaslagoni",
- "resourcePath": "/asyncapi/spec/issues/691",
+ "title": "Epic roadmap to the new AsyncAPI community section",
+ "author": "AceTheCreator",
+ "resourcePath": "/asyncapi/website/issues/903",
+ "repo": "asyncapi/website",
+ "labels": [
+ {
+ "name": "π¨ design",
+ "color": "0D67D3"
+ }
+ ],
+ "score": 22.399617922442182
+ },
+ {
+ "id": "I_kwDOBGu-184_rP6l",
+ "isPR": false,
+ "isAssigned": false,
+ "title": "Let channels be identified by an ID rather than their address.",
+ "author": "smoya",
+ "resourcePath": "/asyncapi/spec/issues/663",
"repo": "asyncapi/spec",
+ "labels": [
+ {
+ "name": "π Strawman (RFC 0)",
+ "color": "C2E0C6"
+ }
+ ],
+ "score": 21.538094156194408
+ },
+ {
+ "id": "PR_kwDOBW5R_c5TUuUu",
+ "isPR": true,
+ "isAssigned": false,
+ "title": "chore(blog): adding 3 New Articles as Blog Posts",
+ "author": "ivangsa",
+ "resourcePath": "/asyncapi/website/pull/1805",
+ "repo": "asyncapi/website",
"labels": [],
"score": 20.67657038994663
},
{
- "id": "I_kwDOGJ23c85V9C3c",
- "isPR": false,
+ "id": "PR_kwDOBW5R_c5VAjCE",
+ "isPR": true,
+ "isAssigned": true,
+ "title": "docs: structure of a AsyncAPI document",
+ "author": "TRohit20",
+ "resourcePath": "/asyncapi/website/pull/1922",
+ "repo": "asyncapi/website",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ },
+ {
+ "name": "area/docs",
+ "color": "e50e99"
+ },
+ {
+ "name": "gsod",
+ "color": "7B5DB8"
+ }
+ ],
+ "score": 16.65612614745701
+ },
+ {
+ "id": "PR_kwDOGPFxkc5Ey7vh",
+ "isPR": true,
"isAssigned": false,
- "title": "Support `referenceIntoComponents` for other components than `message`",
- "author": "thake",
- "resourcePath": "/asyncapi/bundler/issues/97",
- "repo": "asyncapi/bundler",
+ "title": "feat: share spec feature",
+ "author": "AceTheCreator",
+ "resourcePath": "/asyncapi/server-api/pull/213",
+ "repo": "asyncapi/server-api",
"labels": [
{
- "name": "enhancement",
- "color": "a2eeef"
+ "name": "stale",
+ "color": "ededed"
}
],
- "score": 19.815046623698855
+ "score": 15.794602381209232
},
{
- "id": "PR_kwDOE8Qh385SnNFz",
+ "id": "PR_kwDOFDnrNc5RUbi_",
"isPR": true,
"isAssigned": false,
- "title": "chore(website): add info for the general options",
- "author": "SumantxD",
- "resourcePath": "/asyncapi/modelina/pull/1398",
- "repo": "asyncapi/modelina",
+ "title": "fix: help command",
+ "author": "sambhavgupta0705",
+ "resourcePath": "/asyncapi/cli/pull/593",
+ "repo": "asyncapi/cli",
"labels": [],
- "score": 19
+ "score": 14.645904026212197
},
{
- "id": "I_kwDODou01c5AqLB8",
- "isPR": false,
+ "id": "PR_kwDOFLhIt85Vmgtj",
+ "isPR": true,
"isAssigned": false,
- "title": "\"Open with Studio\" button for Markdown files.",
- "author": "smoya",
- "resourcePath": "/asyncapi/studio/issues/218",
- "repo": "asyncapi/studio",
+ "title": "feat: youtube to anchor workflow",
+ "author": "AnimeshKumar923",
+ "resourcePath": "/asyncapi/community/pull/805",
+ "repo": "asyncapi/community",
+ "labels": [],
+ "score": 14.07155484871368
+ },
+ {
+ "id": "PR_kwDOFLhIt85TFWOL",
+ "isPR": true,
+ "isAssigned": false,
+ "title": "ci: verify changes to Maintainers.yaml made by the bot",
+ "author": "14Richa",
+ "resourcePath": "/asyncapi/community/pull/750",
+ "repo": "asyncapi/community",
"labels": [
{
- "name": "enhancement",
- "color": "a2eeef"
+ "name": "do-not-merge",
+ "color": "B60205"
}
],
- "score": 18.37917367995256
+ "score": 13.497205671215161
},
{
- "id": "I_kwDOG115t85D93P0",
+ "id": "I_kwDOCVQpZM5M_dcV",
"isPR": false,
"isAssigned": true,
- "title": "Website UI Kit design/dev project",
+ "title": "DocsUI: Messages Object output",
"author": "mcturco",
- "resourcePath": "/asyncapi/design-system/issues/4",
- "repo": "asyncapi/design-system",
+ "resourcePath": "/asyncapi/asyncapi-react/issues/618",
+ "repo": "asyncapi/asyncapi-react",
+ "labels": [],
+ "score": 13.210031082465903
+ }
+ ],
+ "goodFirstIssues": [
+ {
+ "id": "I_kwDOBW5R_c5sqLtN",
+ "title": "[π Docs]: import Glee docs under tools folder",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/website/issues/2003",
+ "repo": "asyncapi/website",
+ "author": "AnimeshKumar923",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5soAAM",
+ "title": "Create a research page to have participants sign up for the research study",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/website/issues/1991",
+ "repo": "asyncapi/website",
+ "author": "Mayaleeeee",
+ "area": "design",
"labels": [
{
"name": "enhancement",
- "color": "a2eeef"
+ "color": "84b6eb"
},
{
- "name": "gsoc",
- "color": "F4D03F"
- },
+ "name": "π¨ design",
+ "color": "0D67D3"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5rh81V",
+ "title": "[π Docs]: suggestions on 'create-asyncapi-document.md' file",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/website/issues/1945",
+ "repo": "asyncapi/website",
+ "author": "AnimeshKumar923",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOFi_gUM5rHafV",
+ "title": "Glee crashes when body is not proper json in http request",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/glee/issues/476",
+ "repo": "asyncapi/glee",
+ "author": "KhudaDad414",
+ "area": "typescript",
+ "labels": [
+ {
+ "name": "bug",
+ "color": "d73a4a"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOFi_gUM5rHSAR",
+ "title": "Show server url",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/glee/issues/475",
+ "repo": "asyncapi/glee",
+ "author": "KhudaDad414",
+ "area": "typescript",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "a2eeef"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBGu-185qGt6A",
+ "title": "Ensure consistency when using either `Application` or `API` terms",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/spec/issues/949",
+ "repo": "asyncapi/spec",
+ "author": "smoya",
+ "area": "Unknown",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "a2eeef"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qGUNf",
+ "title": "docs: validate messages (interactive version) - adapt for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1872",
+ "repo": "asyncapi/website",
+ "author": "alequetzalli",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qGUND",
+ "title": "docs: validate document with studio (interactive version) - adapt for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1871",
+ "repo": "asyncapi/website",
+ "author": "alequetzalli",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qGUMg",
+ "title": "docs: generate code (interactive version) - adapt for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1870",
+ "repo": "asyncapi/website",
+ "author": "alequetzalli",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qGUMB",
+ "title": "docs: create an AsyncAPI document (interactive version) - adapt for v3 ",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1869",
+ "repo": "asyncapi/website",
+ "author": "alequetzalli",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qChBD",
+ "title": "[π Docs]: Adapt message validation guide for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1865",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCfY8",
+ "title": "[π Docs]: Adapt Validate AsyncAPI documents guide for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1864",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCdE5",
+ "title": "[π Docs]: Adapt Streetlights - Interactive tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1863",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCcei",
+ "title": "[π Docs]: Adapt studio document validation tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1862",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCbgt",
+ "title": "[π Docs]: Adapt Create AsyncAPI document tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1861",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCX8o",
+ "title": "[π Docs]: Adapt Servers tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1860",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCUxQ",
+ "title": "[π Docs]: Adapt Servers tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1859",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c5qCQYN",
+ "title": "[π Docs]: Adapt AsyncAPI Documents tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1858",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
{
- "name": "π¨ design",
- "color": "0D67D3"
+ "name": "π docs",
+ "color": "E50E99"
}
- ],
- "score": 17.517649913704783
+ ]
},
{
- "id": "PR_kwDOBW5R_c5KIyGW",
- "isPR": true,
+ "id": "I_kwDOBW5R_c5qCNJX",
+ "title": "[π Docs]: Adapt hello world tutorial for v3",
"isAssigned": true,
- "title": "docs: code-examples",
- "author": "sambhavgupta0705",
- "resourcePath": "/asyncapi/website/pull/1349",
+ "resourcePath": "/asyncapi/website/issues/1857",
"repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
"labels": [
{
"name": "π docs",
"color": "E50E99"
- },
- {
- "name": "area/docs",
- "color": "e50e99"
}
- ],
- "score": 15.220253203710714
- },
- {
- "id": "PR_kwDOCoBobc5I0WzT",
- "isPR": true,
- "isAssigned": false,
- "title": "docs: document rules",
- "author": "magicmatatjahu",
- "resourcePath": "/asyncapi/parser-js/pull/700",
- "repo": "asyncapi/parser-js",
- "labels": [],
- "score": 14.645904026212197
- },
- {
- "id": "PR_kwDODCuNRs5Nh35U",
- "isPR": true,
- "isAssigned": false,
- "title": "feat: first draft of JMS Binding Objects",
- "author": "adamretter",
- "resourcePath": "/asyncapi/bindings/pull/193",
- "repo": "asyncapi/bindings",
- "labels": [],
- "score": 14.358729437462937
+ ]
},
{
- "id": "PR_kwDOFDnrNc5RUbi_",
- "isPR": true,
- "isAssigned": false,
- "title": "fix: help command",
- "author": "sambhavgupta0705",
- "resourcePath": "/asyncapi/cli/pull/593",
- "repo": "asyncapi/cli",
- "labels": [],
- "score": 13.497205671215161
+ "id": "I_kwDOBW5R_c5qCLdo",
+ "title": "[π Docs]: Adapt coming from OpenAPI tutorial for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1856",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
},
{
- "id": "PR_kwDOE8Qh385SsTxJ",
- "isPR": true,
- "isAssigned": false,
- "title": "chore: added java options to playground #1396",
- "author": "SumantxD",
- "resourcePath": "/asyncapi/modelina/pull/1400",
- "repo": "asyncapi/modelina",
- "labels": [],
- "score": 13
- }
- ],
- "goodFirstIssues": [
- {
- "id": "I_kwDOFLhIt85oSfWg",
- "title": "As A user, the CI should prevent me schedule an adhoc meeting in the past",
- "isAssigned": false,
- "resourcePath": "/asyncapi/community/issues/746",
- "repo": "asyncapi/community",
- "author": "Amzani",
- "area": "Unknown",
+ "id": "I_kwDOBW5R_c5qCIUD",
+ "title": "[π Docs]: Remove v2 spec links for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1855",
+ "repo": "asyncapi/website",
+ "author": "jonaslagoni",
+ "area": "docs",
"labels": [
{
- "name": "bug",
- "color": "d73a4a"
+ "name": "π docs",
+ "color": "E50E99"
}
]
},
{
- "id": "I_kwDOE8Qh385oPFUl",
- "title": "Add Java options to the playground",
- "isAssigned": false,
- "resourcePath": "/asyncapi/modelina/issues/1396",
- "repo": "asyncapi/modelina",
+ "id": "I_kwDOBW5R_c5qCG1z",
+ "title": "[π Docs]: Adapt github action tooling page for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1854",
+ "repo": "asyncapi/website",
"author": "jonaslagoni",
- "area": "Unknown",
+ "area": "docs",
"labels": [
{
- "name": "enhancement",
- "color": "a2eeef"
- },
- {
- "name": "Java generator",
- "color": "d4c5f9"
- },
- {
- "name": "website",
- "color": "57A793"
+ "name": "π docs",
+ "color": "E50E99"
}
]
},
{
- "id": "I_kwDOE8Qh385nTDiB",
- "title": "Add descriptions for options in playground",
- "isAssigned": false,
- "resourcePath": "/asyncapi/modelina/issues/1347",
- "repo": "asyncapi/modelina",
+ "id": "I_kwDOBW5R_c5qCC_7",
+ "title": "[π Docs]: Adapt frontpage animation for v3",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/1853",
+ "repo": "asyncapi/website",
"author": "jonaslagoni",
- "area": "design",
+ "area": "docs",
"labels": [
{
- "name": "enhancement",
- "color": "a2eeef"
- },
- {
- "name": "website",
- "color": "57A793"
+ "name": "π docs",
+ "color": "E50E99"
}
]
},
+ {
+ "id": "I_kwDOFLhIt85o9dDJ",
+ "title": "Add 2023 mentorship directory",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/community/issues/753",
+ "repo": "asyncapi/community",
+ "author": "AceTheCreator",
+ "area": "Unknown",
+ "labels": []
+ },
{
"id": "I_kwDOE8Qh385nTCST",
"title": "Improve layout of playground",
@@ -323,16 +640,6 @@
}
]
},
- {
- "id": "I_kwDOBGu-185myWAv",
- "title": "update release workflow in release branch",
- "isAssigned": false,
- "resourcePath": "/asyncapi/spec/issues/938",
- "repo": "asyncapi/spec",
- "author": "derberg",
- "area": "ci-cd",
- "labels": []
- },
{
"id": "I_kwDOBW5R_c5mwLzC",
"title": "[π Docs]: Create an Onboarding guide for technical writers",
@@ -348,21 +655,6 @@
}
]
},
- {
- "id": "I_kwDOBW5R_c5mIyyz",
- "title": "[π Docs]: Update CLI installation instruction with info about windows",
- "isAssigned": false,
- "resourcePath": "/asyncapi/website/issues/1681",
- "repo": "asyncapi/website",
- "author": "derberg",
- "area": "docs",
- "labels": [
- {
- "name": "π docs",
- "color": "E50E99"
- }
- ]
- },
{
"id": "I_kwDOBW5R_c5lGICH",
"title": "Make group dropdown for each section in Navbar",
@@ -378,21 +670,6 @@
}
]
},
- {
- "id": "I_kwDOBW5R_c5kbYkc",
- "title": "[π Docs]: improve adeo case study",
- "isAssigned": false,
- "resourcePath": "/asyncapi/website/issues/1615",
- "repo": "asyncapi/website",
- "author": "derberg",
- "area": "Unknown",
- "labels": [
- {
- "name": "π docs",
- "color": "E50E99"
- }
- ]
- },
{
"id": "I_kwDOBW5R_c5jSPTM",
"title": "filter section is overflowing for small screen in dashboard section",
@@ -457,6 +734,21 @@
}
]
},
+ {
+ "id": "I_kwDOE8Qh385hfhvh",
+ "title": "[π Docs]: Use code to represent the internal models",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/modelina/issues/1182",
+ "repo": "asyncapi/modelina",
+ "author": "jonaslagoni",
+ "area": "Unknown",
+ "labels": [
+ {
+ "name": "π docs",
+ "color": "E50E99"
+ }
+ ]
+ },
{
"id": "I_kwDOFi_gUM5hAZlI",
"title": "Better logging for MQTT adapter",
@@ -487,51 +779,6 @@
}
]
},
- {
- "id": "I_kwDOFi_gUM5gradR",
- "title": "add prettier configuration",
- "isAssigned": false,
- "resourcePath": "/asyncapi/glee/issues/398",
- "repo": "asyncapi/glee",
- "author": "KhudaDad414",
- "area": "typescript",
- "labels": [
- {
- "name": "enhancement",
- "color": "a2eeef"
- }
- ]
- },
- {
- "id": "I_kwDOFDnrNc5gDKCJ",
- "title": "Generate example function for TypeScript models",
- "isAssigned": false,
- "resourcePath": "/asyncapi/cli/issues/462",
- "repo": "asyncapi/cli",
- "author": "jonaslagoni",
- "area": "Unknown",
- "labels": [
- {
- "name": "enhancement",
- "color": "a2eeef"
- }
- ]
- },
- {
- "id": "I_kwDOFDnrNc5gDEaD",
- "title": "Generate marshalling functions for TypeScript models",
- "isAssigned": false,
- "resourcePath": "/asyncapi/cli/issues/460",
- "repo": "asyncapi/cli",
- "author": "jonaslagoni",
- "area": "Unknown",
- "labels": [
- {
- "name": "enhancement",
- "color": "a2eeef"
- }
- ]
- },
{
"id": "I_kwDODCuNRs5e58gr",
"title": "MQTT `retain` flag should be applied only to `publish` operations",
@@ -627,40 +874,6 @@
"repo": "asyncapi/.github",
"author": "fmvilas",
"area": "ci-cd",
- "labels": [
- {
- "name": "enhancement",
- "color": "a2eeef"
- }
- ]
- },
- {
- "id": "I_kwDODou01c5TDLWP",
- "title": "Unnecessary assertion since it does not change the type of the expression.",
- "isAssigned": true,
- "resourcePath": "/asyncapi/studio/issues/447",
- "repo": "asyncapi/studio",
- "author": "AceTheCreator",
- "area": "typescript",
- "labels": [
- {
- "name": "stale",
- "color": "ededed"
- },
- {
- "name": "hacktoberfest",
- "color": "5B0291"
- }
- ]
- },
- {
- "id": "I_kwDOCoBobc5KYpv0",
- "title": "Document how to fix randomly failing tests during development",
- "isAssigned": false,
- "resourcePath": "/asyncapi/parser-js/issues/558",
- "repo": "asyncapi/parser-js",
- "author": "derberg",
- "area": "docs",
"labels": [
{
"name": "enhancement",
@@ -691,21 +904,6 @@
}
]
},
- {
- "id": "I_kwDODyzcIc5Gl6TS",
- "title": "Validate workflow on PR level",
- "isAssigned": false,
- "resourcePath": "/asyncapi/.github/issues/150",
- "repo": "asyncapi/.github",
- "author": "KhudaDad414",
- "area": "ci-cd",
- "labels": [
- {
- "name": "enhancement",
- "color": "a2eeef"
- }
- ]
- },
{
"id": "I_kwDOFiHaLM5DeQ4y",
"title": "Add support for HTML output",
@@ -718,6 +916,10 @@
{
"name": "enhancement",
"color": "a2eeef"
+ },
+ {
+ "name": "stale",
+ "color": "ededed"
}
]
},
@@ -759,6 +961,21 @@
}
]
},
+ {
+ "id": "I_kwDOFDnrNc5AXInF",
+ "title": "Improve help message with list of available examples",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/cli/issues/162",
+ "repo": "asyncapi/cli",
+ "author": "derberg",
+ "area": "typescript",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "a2eeef"
+ }
+ ]
+ },
{
"id": "I_kwDOFGbvC85AWog3",
"title": "Automate Helm chart release version bump",
@@ -812,29 +1029,6 @@
}
]
},
- {
- "id": "I_kwDOE8Qh3848ZA4u",
- "title": "Show how to change the naming format for properties",
- "isAssigned": false,
- "resourcePath": "/asyncapi/modelina/issues/414",
- "repo": "asyncapi/modelina",
- "author": "jonaslagoni",
- "area": "docs",
- "labels": [
- {
- "name": "Hacktoberfest",
- "color": "FF8AE2"
- },
- {
- "name": "enhancement",
- "color": "a2eeef"
- },
- {
- "name": "stale",
- "color": "ededed"
- }
- ]
- },
{
"id": "I_kwDOFGbvC8473gxV",
"title": "Define a better API that can be used by other applications",
diff --git a/package-lock.json b/package-lock.json
index 00e860b38b9..a816679fecd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,7 +16,6 @@
"@heroicons/react": "^1.0.5",
"@mdx-js/loader": "1.6.4",
"@mdx-js/react": "^1.6.4",
- "@monaco-editor/react": "^3.3.0",
"@next/mdx": "^9.4.2",
"@octokit/graphql": "^4.6.0",
"@slack/web-api": "^6.5.1",
@@ -42,9 +41,8 @@
"markdown-toc": "1.2.0",
"mermaid": "9.3.0",
"moment": "^2.29.4",
- "monaco-editor": "^0.20.0",
"next": "^12.0.0",
- "next-mdx-remote": "^3.0.0",
+ "next-mdx-remote": "^4.4.1",
"node-fetch": "^2.6.7",
"postcss": "^8.4.14",
"react": "^17.0.2",
@@ -54,7 +52,7 @@
"react-scrollspy": "^3.4.2",
"react-syntax-highlighter": "12.2.1",
"react-text-truncate": "^0.16.0",
- "react-twitter-embed": "^3.0.3",
+ "react-twitter-embed": "^4.0.4",
"react-typing-animation": "^1.6.2",
"react-youtube-embed": "^1.0.3",
"reading-time": "^1.2.0",
@@ -75,7 +73,7 @@
"cypress": "^10.11.0",
"dedent": "^0.7.0",
"eslint": "^7.0.0",
- "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-react": "^7.27.1",
"inquirer": "^8.2.0",
"postcss-import": "^14.1.0"
}
@@ -221,11 +219,11 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
+ "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
"dependencies": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -261,13 +259,30 @@
"url": "https://opencollective.com/babel"
}
},
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@babel/core/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
+ "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
"dependencies": {
- "@babel/types": "^7.20.7",
+ "@babel/types": "^7.22.5",
"@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
},
"engines": {
@@ -275,130 +290,130 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
+ "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
+ "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
"dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.22.5",
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
+ "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz",
- "integrity": "sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
+ "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.20.2",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dependencies": {
- "@babel/types": "^7.20.2"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
+ "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
"dependencies": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
+ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
- "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
+ "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"dependencies": {
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
+ "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.22.5",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
@@ -407,9 +422,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
+ "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -453,11 +468,11 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz",
- "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
+ "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -475,31 +490,31 @@
}
},
"node_modules/@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
+ "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
"dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/code-frame": "^7.22.5",
+ "@babel/parser": "^7.22.5",
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.7.tgz",
- "integrity": "sha512-xueOL5+ZKX2dJbg8z8o4f4uTRTqGDRjilva9D1hiRlayJbTY8jBRL+Ph67IeRTIE439/VifHk+Z4g0SwRtQE0A==",
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
+ "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.22.5",
+ "@babel/generator": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.5",
+ "@babel/parser": "^7.22.5",
+ "@babel/types": "^7.22.5",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -508,12 +523,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
+ "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
"dependencies": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.5",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -814,9 +829,9 @@
"dev": true
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -848,9 +863,9 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
"dependencies": {
"@jridgewell/resolve-uri": "3.1.0",
"@jridgewell/sourcemap-codec": "1.4.14"
@@ -870,7 +885,12 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/@mdx-js/mdx": {
+ "node_modules/@mdx-js/loader/node_modules/@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "node_modules/@mdx-js/loader/node_modules/@mdx-js/mdx": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
"integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
@@ -900,7 +920,45 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/@mdx-js/mdx/node_modules/mdast-util-to-hast": {
+ "node_modules/@mdx-js/loader/node_modules/bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/ccount": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
+ "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/mdast-util-definitions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
+ "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "dependencies": {
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/mdast-util-to-hast": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz",
"integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==",
@@ -919,7 +977,43 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/@mdx-js/mdx/node_modules/remark-parse": {
+ "node_modules/@mdx-js/loader/node_modules/parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "dependencies": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/remark-mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
+ "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "dependencies": {
+ "@babel/core": "7.12.9",
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "7.12.1",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@mdx-js/util": "1.6.22",
+ "is-alphabetical": "1.0.4",
+ "remark-parse": "8.0.3",
+ "unified": "9.2.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/remark-parse": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
"integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
@@ -946,6 +1040,177 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/@mdx-js/loader/node_modules/style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "dependencies": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "dependencies": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/unist-util-generated": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+ "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "dependencies": {
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/loader/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/mdx": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.3.0.tgz",
+ "integrity": "sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/mdx": "^2.0.0",
+ "estree-util-build-jsx": "^2.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "estree-util-to-js": "^1.1.0",
+ "estree-walker": "^3.0.0",
+ "hast-util-to-estree": "^2.0.0",
+ "markdown-extensions": "^1.0.0",
+ "periscopic": "^3.0.0",
+ "remark-mdx": "^2.0.0",
+ "remark-parse": "^10.0.0",
+ "remark-rehype": "^10.0.0",
+ "unified": "^10.0.0",
+ "unist-util-position-from-estree": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "unist-util-visit": "^4.0.0",
+ "vfile": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/@mdx-js/react": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz",
@@ -960,22 +1225,6 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/@monaco-editor/loader": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-0.1.3.tgz",
- "integrity": "sha512-AO5ERu/RV4B0Va3ymI4TYp/KeIUSPHQueE51jRjVcCsW72btEPUxCgnHTdBxpAvsfNEF1sLILtt1QOZqce3SWw==",
- "dependencies": {
- "state-local": "^1.0.6"
- }
- },
- "node_modules/@monaco-editor/react": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-3.8.3.tgz",
- "integrity": "sha512-wd+XzqATnUoODHSm2JMZi5OV9qeC8hdoSgoZHsTceXyH3Z/oktUtFbjaYeK0XL/lnXAScSYue81GA2UsiAx0sQ==",
- "dependencies": {
- "@monaco-editor/loader": "^0.1.2"
- }
- },
"node_modules/@netlify/esbuild": {
"version": "0.14.39",
"resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz",
@@ -1537,21 +1786,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@netlify/plugin-nextjs/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@netlify/plugin-nextjs/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -1970,6 +2204,35 @@
"node": ">=10.13.0"
}
},
+ "node_modules/@types/acorn": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
+ "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz",
+ "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz",
+ "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
"node_modules/@types/hast": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
@@ -1986,14 +2249,29 @@
"@types/node": "*"
}
},
+ "node_modules/@types/js-yaml": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
+ "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA=="
+ },
"node_modules/@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz",
+ "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==",
"dependencies": {
"@types/unist": "*"
}
},
+ "node_modules/@types/mdx": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz",
+ "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg=="
+ },
+ "node_modules/@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
+ },
"node_modules/@types/node": {
"version": "18.15.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz",
@@ -2004,11 +2282,31 @@
"resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
"integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
},
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "node_modules/@types/react": {
+ "version": "17.0.62",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.62.tgz",
+ "integrity": "sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/@types/retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
+ "node_modules/@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"node_modules/@types/sinonjs__fake-timers": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
@@ -2112,27 +2410,6 @@
"node": ">=8"
}
},
- "node_modules/airbnb-prop-types": {
- "version": "2.16.0",
- "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
- "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
- "dependencies": {
- "array.prototype.find": "^2.1.1",
- "function.prototype.name": "^1.1.2",
- "is-regex": "^1.1.0",
- "object-is": "^1.1.2",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.2",
- "prop-types": "^15.7.2",
- "prop-types-exact": "^1.2.0",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/airbnb-prop-types/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
"node_modules/ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
@@ -2328,16 +2605,6 @@
"node": ">=8"
}
},
- "node_modules/array.prototype.find": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz",
- "integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
- }
- },
"node_modules/array.prototype.flatmap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
@@ -2382,6 +2649,14 @@
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
+ "node_modules/astring": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz",
+ "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==",
+ "bin": {
+ "astring": "bin/astring"
+ }
+ },
"node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
@@ -2590,9 +2865,9 @@
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
},
"node_modules/bail": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
- "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -2859,9 +3134,9 @@
"dev": true
},
"node_modules/ccount": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
- "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -2882,6 +3157,15 @@
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
"integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="
},
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/character-entities-legacy": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
@@ -3632,6 +3916,11 @@
"node": ">=8.0.0"
}
},
+ "node_modules/csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
"node_modules/cypress": {
"version": "10.11.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-10.11.0.tgz",
@@ -3774,21 +4063,6 @@
"node": ">=8"
}
},
- "node_modules/cypress/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/cypress/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -4229,6 +4503,27 @@
}
}
},
+ "node_modules/decode-named-character-reference": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/decode-named-character-reference/node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -4277,6 +4572,7 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
"integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
"dependencies": {
"has-property-descriptors": "^1.0.0",
"object-keys": "^1.1.1"
@@ -4335,6 +4631,14 @@
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/destr": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/destr/-/destr-1.2.2.tgz",
@@ -4388,6 +4692,14 @@
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
},
+ "node_modules/diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -4553,50 +4865,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/enzyme-adapter-react-16": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz",
- "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==",
- "dependencies": {
- "enzyme-adapter-utils": "^1.14.0",
- "enzyme-shallow-equal": "^1.0.4",
- "has": "^1.0.3",
- "object.assign": "^4.1.2",
- "object.values": "^1.1.2",
- "prop-types": "^15.7.2",
- "react-is": "^16.13.1",
- "react-test-renderer": "^16.0.0-0",
- "semver": "^5.7.0"
- }
- },
- "node_modules/enzyme-adapter-react-16/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "node_modules/enzyme-adapter-utils": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz",
- "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==",
- "dependencies": {
- "airbnb-prop-types": "^2.16.0",
- "function.prototype.name": "^1.1.3",
- "has": "^1.0.3",
- "object.assign": "^4.1.2",
- "object.fromentries": "^2.0.3",
- "prop-types": "^15.7.2",
- "semver": "^5.7.1"
- }
- },
- "node_modules/enzyme-shallow-equal": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz",
- "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==",
- "dependencies": {
- "has": "^1.0.3",
- "object-is": "^1.1.2"
- }
- },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -4609,6 +4877,7 @@
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
@@ -4646,21 +4915,13 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
"dependencies": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
"is-symbol": "^1.0.2"
}
},
- "node_modules/esbuild": {
- "version": "0.12.29",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz",
- "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==",
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- }
- },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -4752,6 +5013,12 @@
"resolve": "^2.0.0-next.3",
"semver": "^6.3.0",
"string.prototype.matchall": "^4.0.6"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
}
},
"node_modules/eslint-plugin-react/node_modules/doctrine": {
@@ -4774,10 +5041,13 @@
}
},
"node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
"node_modules/eslint-scope": {
"version": "5.1.1",
@@ -4887,14 +5157,6 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
- "node_modules/eslint/node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- }
- },
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -4949,6 +5211,76 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
},
+ "node_modules/estree-util-attach-comments": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz",
+ "integrity": "sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-build-jsx": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz",
+ "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "estree-walker": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-is-identifier-name": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
+ "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-to-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz",
+ "integrity": "sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "astring": "^1.8.0",
+ "source-map": "^0.7.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-visit": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz",
+ "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -5026,11 +5358,6 @@
"node": ">=4"
}
},
- "node_modules/exenv": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
- "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
- },
"node_modules/expand-range": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
@@ -5373,6 +5700,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -5388,7 +5716,8 @@
"node_modules/functions-have-names": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
- "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA=="
+ "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==",
+ "dev": true
},
"node_modules/fuse.js": {
"version": "6.6.2",
@@ -5478,6 +5807,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
"integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
@@ -5732,6 +6062,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
"integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -5745,6 +6076,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
"integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dev": true,
"dependencies": {
"get-intrinsic": "^1.1.1"
},
@@ -5767,6 +6099,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
"dependencies": {
"has-symbols": "^1.0.2"
}
@@ -5789,6 +6122,14 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-to-hyperscript/node_modules/style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "dependencies": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
"node_modules/hast-util-from-parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
@@ -5806,6 +6147,46 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hast-util-parse-selector": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
@@ -5832,47 +6213,180 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/hast-util-to-parse5": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz",
- "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==",
- "dependencies": {
- "hast-to-hyperscript": "^9.0.0",
- "property-information": "^5.0.0",
- "web-namespaces": "^1.0.0",
- "xtend": "^4.0.0",
- "zwitch": "^1.0.0"
- },
+ "node_modules/hast-util-raw/node_modules/unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/hastscript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
- "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "node_modules/hast-util-raw/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
"dependencies": {
- "@types/hast": "^2.0.0",
- "comma-separated-tokens": "^1.0.0",
- "hast-util-parse-selector": "^2.0.0",
- "property-information": "^5.0.0",
- "space-separated-tokens": "^1.0.0"
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/highlight.js": {
- "version": "9.15.10",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz",
- "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==",
- "deprecated": "Version no longer supported. Upgrade to @latest",
- "engines": {
- "node": "*"
+ "node_modules/hast-util-raw/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/html-void-elements": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
- "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==",
+ "node_modules/hast-util-raw/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz",
+ "integrity": "sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "estree-util-attach-comments": "^2.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "mdast-util-mdx-expression": "^1.0.0",
+ "mdast-util-mdxjs-esm": "^1.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-object": "^0.4.1",
+ "unist-util-position": "^4.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/property-information": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
+ "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz",
+ "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==",
+ "dependencies": {
+ "hast-to-hyperscript": "^9.0.0",
+ "property-information": "^5.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.0",
+ "zwitch": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
+ "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
+ "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/highlight.js": {
+ "version": "9.15.10",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz",
+ "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==",
+ "deprecated": "Version no longer supported. Upgrade to @latest",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
+ "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -6141,6 +6655,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
"integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "dev": true,
"dependencies": {
"get-intrinsic": "^1.1.0",
"has": "^1.0.3",
@@ -6257,6 +6772,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
"integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
"dependencies": {
"has-bigints": "^1.0.1"
},
@@ -6279,6 +6795,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
"integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -6316,6 +6833,7 @@
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -6350,6 +6868,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
"integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
}
@@ -6443,6 +6962,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
"integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -6462,6 +6982,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
"integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -6495,11 +7016,14 @@
}
},
"node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-plain-object": {
@@ -6513,10 +7037,19 @@
"integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
"dev": true
},
+ "node_modules/is-reference": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz",
+ "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
"node_modules/is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -6526,6 +7059,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
"integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2"
},
@@ -6542,6 +7076,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
"integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
"dependencies": {
"has-tostringtag": "^1.0.0"
}
@@ -6550,6 +7085,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
"integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
"dependencies": {
"has-symbols": "^1.0.2"
}
@@ -6575,6 +7111,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
"integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2"
},
@@ -6805,6 +7342,14 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
},
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/lazy-ass": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
@@ -7139,6 +7684,15 @@
"node": ">=8"
}
},
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -7173,6 +7727,14 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/markdown-extensions": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz",
+ "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/markdown-link": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz",
@@ -7248,111 +7810,990 @@
}
},
"node_modules/mdast-util-definitions": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
- "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
+ "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
"dependencies": {
- "unist-util-visit": "^2.0.0"
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A=="
- },
- "node_modules/mdn-data": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
- "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
- },
- "node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mermaid": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.3.0.tgz",
- "integrity": "sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==",
+ "node_modules/mdast-util-definitions/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
"dependencies": {
- "@braintree/sanitize-url": "^6.0.0",
- "d3": "^7.0.0",
- "dagre-d3-es": "7.0.6",
- "dompurify": "2.4.1",
- "khroma": "^2.0.0",
- "lodash-es": "^4.17.21",
- "moment-mini": "^2.24.0",
- "non-layered-tidy-tree-layout": "^2.0.2",
- "stylis": "^4.1.2",
- "uuid": "^9.0.0"
- }
- },
- "node_modules/mermaid/node_modules/uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "bin": {
- "uuid": "dist/bin/uuid"
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/micro-memoize": {
+ "node_modules/mdast-util-definitions/node_modules/unist-util-visit": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.1.2.tgz",
- "integrity": "sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==",
- "dev": true
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
"dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
},
- "engines": {
- "node": ">=8.6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
+ "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "node_modules/mdast-util-from-markdown": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
+ "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
"dependencies": {
- "mime-db": "1.52.0"
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "mdast-util-to-string": "^3.1.0",
+ "micromark": "^3.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "uvu": "^0.5.0"
},
- "engines": {
- "node": ">= 0.6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
+ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz",
+ "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==",
+ "dependencies": {
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-mdx-expression": "^1.0.0",
+ "mdast-util-mdx-jsx": "^2.0.0",
+ "mdast-util-mdxjs-esm": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz",
+ "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz",
+ "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "ccount": "^2.0.0",
+ "mdast-util-from-markdown": "^1.1.0",
+ "mdast-util-to-markdown": "^1.3.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-remove-position": "^4.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz",
+ "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
+ "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "12.3.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
+ "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-definitions": "^5.0.0",
+ "micromark-util-sanitize-uri": "^1.1.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-generated": "^2.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
+ "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "unist-util-visit": "^4.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
+ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+ "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A=="
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ },
+ "node_modules/mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/mermaid": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.3.0.tgz",
+ "integrity": "sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==",
+ "dependencies": {
+ "@braintree/sanitize-url": "^6.0.0",
+ "d3": "^7.0.0",
+ "dagre-d3-es": "7.0.6",
+ "dompurify": "2.4.1",
+ "khroma": "^2.0.0",
+ "lodash-es": "^4.17.21",
+ "moment-mini": "^2.24.0",
+ "non-layered-tidy-tree-layout": "^2.0.2",
+ "stylis": "^4.1.2",
+ "uuid": "^9.0.0"
+ }
+ },
+ "node_modules/mermaid/node_modules/uuid": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/micro-memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.1.2.tgz",
+ "integrity": "sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==",
+ "dev": true
+ },
+ "node_modules/micromark": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz",
+ "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.1",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-sanitize-uri": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
+ "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-factory-destination": "^1.0.0",
+ "micromark-factory-label": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-factory-title": "^1.0.0",
+ "micromark-factory-whitespace": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-classify-character": "^1.0.0",
+ "micromark-util-html-tag-name": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-expression": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz",
+ "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "micromark-factory-mdx-expression": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz",
+ "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==",
+ "dependencies": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "micromark-factory-mdx-expression": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdx-md": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz",
+ "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==",
+ "dependencies": {
+ "micromark-util-types": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz",
+ "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==",
+ "dependencies": {
+ "acorn": "^8.0.0",
+ "acorn-jsx": "^5.0.0",
+ "micromark-extension-mdx-expression": "^1.0.0",
+ "micromark-extension-mdx-jsx": "^1.0.0",
+ "micromark-extension-mdx-md": "^1.0.0",
+ "micromark-extension-mdxjs-esm": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs-esm": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz",
+ "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-position-from-estree": "^1.1.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs/node_modules/acorn": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+ "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
+ "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
+ "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-factory-mdx-expression": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz",
+ "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-position-from-estree": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
+ "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
+ "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
+ "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
+ "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
+ "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
+ "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
+ "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
+ "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
+ "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
+ "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-events-to-acorn": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz",
+ "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "@types/unist": "^2.0.0",
+ "estree-util-visit": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
+ "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
+ "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
+ "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
+ "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
+ "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
+ "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
@@ -7494,11 +8935,6 @@
"resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.29.4.tgz",
"integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg=="
},
- "node_modules/monaco-editor": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz",
- "integrity": "sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ=="
- },
"node_modules/moo": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz",
@@ -7508,7 +8944,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
"integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -7615,18 +9050,38 @@
}
},
"node_modules/next-mdx-remote": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-3.0.8.tgz",
- "integrity": "sha512-WFSxt0crxG5PN/0WvaunzxzqV3wh3dPBZyhkclxwyQfLSRKzsNSArzot/4gYTOOZ/GtyRfNjbI/HtDsW2S4fqQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz",
+ "integrity": "sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==",
+ "dependencies": {
+ "@mdx-js/mdx": "^2.2.1",
+ "@mdx-js/react": "^2.2.1",
+ "vfile": "^5.3.0",
+ "vfile-matter": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=14",
+ "npm": ">=7"
+ },
+ "peerDependencies": {
+ "react": ">=16.x <=18.x",
+ "react-dom": ">=16.x <=18.x"
+ }
+ },
+ "node_modules/next-mdx-remote/node_modules/@mdx-js/react": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz",
+ "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==",
"dependencies": {
- "@mdx-js/mdx": "^1.6.22",
- "@mdx-js/react": "^1.6.22",
- "esbuild": "^0.12.9",
- "pkg-dir": "^5.0.0"
+ "@types/mdx": "^2.0.0",
+ "@types/react": ">=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
},
"peerDependencies": {
- "react": ">=16.x <=17.x",
- "react-dom": ">=16.x <=17.x"
+ "react": ">=16"
}
},
"node_modules/node-abi": {
@@ -7641,21 +9096,6 @@
"node": ">=10"
}
},
- "node_modules/node-abi/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/node-addon-api": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
@@ -7786,24 +9226,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
- },
"node_modules/object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
},
"node_modules/object.assign": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
"integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -7821,6 +9254,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -7831,6 +9265,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
"integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -7864,6 +9299,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
"integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -8031,6 +9467,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -8129,22 +9566,91 @@
}
},
"node_modules/parse-entities": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
- "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
+ "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
"dependencies": {
- "character-entities": "^1.0.0",
- "character-entities-legacy": "^1.0.0",
- "character-reference-invalid": "^1.0.0",
- "is-alphanumerical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-hexadecimal": "^1.0.0"
+ "@types/unist": "^2.0.0",
+ "character-entities": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/parse-entities/node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -8205,6 +9711,16 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "node_modules/periscopic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
+ "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^3.0.0",
+ "is-reference": "^3.0.0"
+ }
+ },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -8229,68 +9745,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/pkg-dir": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
- "dependencies": {
- "find-up": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/point-in-polygon": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz",
@@ -9024,16 +10478,6 @@
"react-is": "^16.8.1"
}
},
- "node_modules/prop-types-exact": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz",
- "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==",
- "dependencies": {
- "has": "^1.0.3",
- "object.assign": "^4.1.0",
- "reflect.ownkeys": "^0.2.0"
- }
- },
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -9275,11 +10719,6 @@
"resolved": "https://registry.npmjs.org/react-gtm-module/-/react-gtm-module-2.0.11.tgz",
"integrity": "sha512-8gyj4TTxeP7eEyc2QKawEuQoAZdjKvMY4pgWfycGmqGByhs17fR+zEBs0JUDq4US/l+vbTl+6zvUIx27iDo/Vw=="
},
- "node_modules/react-proptype-conditional-require": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/react-proptype-conditional-require/-/react-proptype-conditional-require-1.0.4.tgz",
- "integrity": "sha1-acLVdB5t9eCPIw82u8KUTuEiJVU="
- },
"node_modules/react-scrollspy": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/react-scrollspy/-/react-scrollspy-3.4.3.tgz",
@@ -9305,31 +10744,6 @@
"react": ">= 0.14.0"
}
},
- "node_modules/react-test-renderer": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz",
- "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==",
- "dependencies": {
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "react-is": "^16.8.6",
- "scheduler": "^0.19.1"
- }
- },
- "node_modules/react-test-renderer/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "node_modules/react-test-renderer/node_modules/scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
"node_modules/react-text-truncate": {
"version": "0.16.0",
"resolved": "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.16.0.tgz",
@@ -9339,14 +10753,18 @@
}
},
"node_modules/react-twitter-embed": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/react-twitter-embed/-/react-twitter-embed-3.0.3.tgz",
- "integrity": "sha512-kF1Srlb1TqnZUqKA0FC4I/E+m+RUBCMZeU20hDRzmYLAjR1EA/6tr/PMZ22s7rd6wjQpIBLXNZjt0rfUpY8Chw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/react-twitter-embed/-/react-twitter-embed-4.0.4.tgz",
+ "integrity": "sha512-2JIL7qF+U62zRzpsh6SZDXNI3hRNVYf5vOZ1WRcMvwKouw+xC00PuFaD0aEp2wlyGaZ+f4x2VvX+uDadFQ3HVA==",
"dependencies": {
- "enzyme-adapter-react-16": "^1.11.0",
- "exenv": "^1.2.2",
- "react-proptype-conditional-require": "^1.0.4",
"scriptjs": "^2.5.9"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/react-typing-animation": {
@@ -9464,11 +10882,6 @@
"node": ">=4"
}
},
- "node_modules/reflect.ownkeys": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz",
- "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
- },
"node_modules/refractor": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz",
@@ -9537,6 +10950,7 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
"integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -9641,50 +11055,41 @@
}
},
"node_modules/remark-mdx": {
- "version": "1.6.22",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
- "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz",
+ "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==",
"dependencies": {
- "@babel/core": "7.12.9",
- "@babel/helper-plugin-utils": "7.10.4",
- "@babel/plugin-proposal-object-rest-spread": "7.12.1",
- "@babel/plugin-syntax-jsx": "7.12.1",
- "@mdx-js/util": "1.6.22",
- "is-alphabetical": "1.0.4",
- "remark-parse": "8.0.3",
- "unified": "9.2.0"
+ "mdast-util-mdx": "^2.0.0",
+ "micromark-extension-mdxjs": "^1.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
- },
- "node_modules/remark-mdx/node_modules/remark-parse": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
- "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
+ "node_modules/remark-parse": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
+ "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
"dependencies": {
- "ccount": "^1.0.0",
- "collapse-white-space": "^1.0.2",
- "is-alphabetical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-whitespace-character": "^1.0.0",
- "is-word-character": "^1.0.0",
- "markdown-escapes": "^1.0.0",
- "parse-entities": "^2.0.0",
- "repeat-string": "^1.5.4",
- "state-toggle": "^1.0.0",
- "trim": "0.0.1",
- "trim-trailing-lines": "^1.0.0",
- "unherit": "^1.0.4",
- "unist-util-remove-position": "^2.0.0",
- "vfile-location": "^3.0.0",
- "xtend": "^4.0.1"
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "unified": "^10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz",
+ "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-hast": "^12.1.0",
+ "unified": "^10.0.0"
},
"funding": {
"type": "opencollective",
@@ -9860,6 +11265,17 @@
"tslib": "^2.1.0"
}
},
+ "node_modules/sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "dependencies": {
+ "mri": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -9869,6 +11285,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
"integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.3",
@@ -9958,9 +11375,18 @@
}
},
"node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/set-getter": {
"version": "0.1.1",
@@ -9998,21 +11424,6 @@
"url": "https://opencollective.com/libvips"
}
},
- "node_modules/sharp/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -10156,11 +11567,11 @@
"integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 8"
}
},
"node_modules/source-map-js": {
@@ -10223,11 +11634,6 @@
"integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
"dev": true
},
- "node_modules/state-local": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
- },
"node_modules/state-toggle": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
@@ -10296,6 +11702,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
"integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -10309,6 +11716,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
"integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -10318,6 +11726,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/stringify-entities": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
+ "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/stringify-entities/node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -10354,9 +11784,9 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"node_modules/style-to-object": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
- "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz",
+ "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==",
"dependencies": {
"inline-style-parser": "0.1.1"
}
@@ -10783,7 +12213,17 @@
"node_modules/trim": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
- "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ=="
+ "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==",
+ "deprecated": "Use String.prototype.trim() instead"
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
},
"node_modules/trim-trailing-lines": {
"version": "1.1.4",
@@ -10795,9 +12235,9 @@
}
},
"node_modules/trough": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
- "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -10854,6 +12294,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
"integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"has-bigints": "^1.0.2",
@@ -10896,16 +12337,17 @@
}
},
"node_modules/unified": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
- "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
+ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
"dependencies": {
- "bail": "^1.0.0",
+ "@types/unist": "^2.0.0",
+ "bail": "^2.0.0",
"extend": "^3.0.0",
"is-buffer": "^2.0.0",
- "is-plain-obj": "^2.0.0",
- "trough": "^1.0.0",
- "vfile": "^4.0.0"
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^5.0.0"
},
"funding": {
"type": "opencollective",
@@ -10922,9 +12364,9 @@
}
},
"node_modules/unist-util-generated": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
- "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
+ "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -10936,9 +12378,24 @@
"integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg=="
},
"node_modules/unist-util-position": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
- "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
+ "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position-from-estree": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz",
+ "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
@@ -10957,11 +12414,51 @@
}
},
"node_modules/unist-util-remove-position": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
- "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz",
+ "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==",
"dependencies": {
- "unist-util-visit": "^2.0.0"
+ "@types/unist": "^2.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position/node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
},
"funding": {
"type": "opencollective",
@@ -10969,11 +12466,11 @@
}
},
"node_modules/unist-util-stringify-position": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
"dependencies": {
- "@types/unist": "^2.0.2"
+ "@types/unist": "^2.0.0"
},
"funding": {
"type": "opencollective",
@@ -11187,6 +12684,23 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
+ "node_modules/uvu": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
+ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
+ "dependencies": {
+ "dequal": "^2.0.0",
+ "diff": "^5.0.0",
+ "kleur": "^4.0.3",
+ "sade": "^1.7.3"
+ },
+ "bin": {
+ "uvu": "bin.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/v8-compile-cache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
@@ -11213,14 +12727,14 @@
"dev": true
},
"node_modules/vfile": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "version": "5.3.7",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
+ "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
"dependencies": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
},
"funding": {
"type": "opencollective",
@@ -11236,13 +12750,43 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/vfile-matter": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-3.0.1.tgz",
+ "integrity": "sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==",
+ "dependencies": {
+ "@types/js-yaml": "^4.0.0",
+ "is-buffer": "^2.0.0",
+ "js-yaml": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-matter/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/vfile-matter/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/vfile-message": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
+ "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
"dependencies": {
"@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
+ "unist-util-stringify-position": "^3.0.0"
},
"funding": {
"type": "opencollective",
@@ -11312,6 +12856,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
"integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
"dependencies": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
@@ -11324,9 +12869,12 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
+ "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
@@ -11437,6 +12985,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
"engines": {
"node": ">=10"
},
@@ -11445,9 +12994,9 @@
}
},
"node_modules/zwitch": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
- "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -11592,11 +13141,11 @@
}
},
"@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
+ "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
"requires": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.22.5"
}
},
"@babel/core": {
@@ -11620,118 +13169,131 @@
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ }
}
},
"@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
+ "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
"requires": {
- "@babel/types": "^7.20.7",
+ "@babel/types": "^7.22.5",
"@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
}
},
"@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
+ "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q=="
},
"@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
+ "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
"requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.22.5",
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
+ "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-module-transforms": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz",
- "integrity": "sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
+ "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
"requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.20.2",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg=="
},
"@babel/helper-simple-access": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"requires": {
- "@babel/types": "^7.20.2"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
+ "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
"requires": {
- "@babel/types": "^7.18.6"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
},
"@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
+ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ=="
},
"@babel/helpers": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
- "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
+ "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"requires": {
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
}
},
"@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
+ "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
"requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.22.5",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@babel/parser": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg=="
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
+ "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q=="
},
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.12.1",
@@ -11760,11 +13322,11 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz",
- "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz",
+ "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.20.2"
+ "@babel/helper-plugin-utils": "^7.22.5"
}
},
"@babel/runtime": {
@@ -11776,39 +13338,39 @@
}
},
"@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
+ "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
"requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
+ "@babel/code-frame": "^7.22.5",
+ "@babel/parser": "^7.22.5",
+ "@babel/types": "^7.22.5"
}
},
"@babel/traverse": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.7.tgz",
- "integrity": "sha512-xueOL5+ZKX2dJbg8z8o4f4uTRTqGDRjilva9D1hiRlayJbTY8jBRL+Ph67IeRTIE439/VifHk+Z4g0SwRtQE0A==",
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
+ "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
+ "requires": {
+ "@babel/code-frame": "^7.22.5",
+ "@babel/generator": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.5",
+ "@babel/parser": "^7.22.5",
+ "@babel/types": "^7.22.5",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
+ "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
"requires": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.5",
"to-fast-properties": "^2.0.0"
}
},
@@ -12058,9 +13620,9 @@
"dev": true
},
"@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -12083,9 +13645,9 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
"requires": {
"@jridgewell/resolve-uri": "3.1.0",
"@jridgewell/sourcemap-codec": "1.4.14"
@@ -12099,47 +13661,103 @@
"@mdx-js/mdx": "^1.6.4",
"@mdx-js/react": "^1.6.4",
"loader-utils": "2.0.0"
- }
- },
- "@mdx-js/mdx": {
- "version": "1.6.22",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
- "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
- "requires": {
- "@babel/core": "7.12.9",
- "@babel/plugin-syntax-jsx": "7.12.1",
- "@babel/plugin-syntax-object-rest-spread": "7.8.3",
- "@mdx-js/util": "1.6.22",
- "babel-plugin-apply-mdx-type-prop": "1.6.22",
- "babel-plugin-extract-import-names": "1.6.22",
- "camelcase-css": "2.0.1",
- "detab": "2.0.4",
- "hast-util-raw": "6.0.1",
- "lodash.uniq": "4.5.0",
- "mdast-util-to-hast": "10.0.1",
- "remark-footnotes": "2.0.0",
- "remark-mdx": "1.6.22",
- "remark-parse": "8.0.3",
- "remark-squeeze-paragraphs": "4.0.0",
- "style-to-object": "0.3.0",
- "unified": "9.2.0",
- "unist-builder": "2.0.3",
- "unist-util-visit": "2.0.3"
},
"dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "@mdx-js/mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
+ "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
+ "requires": {
+ "@babel/core": "7.12.9",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@babel/plugin-syntax-object-rest-spread": "7.8.3",
+ "@mdx-js/util": "1.6.22",
+ "babel-plugin-apply-mdx-type-prop": "1.6.22",
+ "babel-plugin-extract-import-names": "1.6.22",
+ "camelcase-css": "2.0.1",
+ "detab": "2.0.4",
+ "hast-util-raw": "6.0.1",
+ "lodash.uniq": "4.5.0",
+ "mdast-util-to-hast": "10.0.1",
+ "remark-footnotes": "2.0.0",
+ "remark-mdx": "1.6.22",
+ "remark-parse": "8.0.3",
+ "remark-squeeze-paragraphs": "4.0.0",
+ "style-to-object": "0.3.0",
+ "unified": "9.2.0",
+ "unist-builder": "2.0.3",
+ "unist-util-visit": "2.0.3"
+ }
+ },
+ "bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ=="
+ },
+ "ccount": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
+ "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg=="
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ },
+ "mdast-util-definitions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
+ "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
"mdast-util-to-hast": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz",
"integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==",
"requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "mdast-util-definitions": "^4.0.0",
- "mdurl": "^1.0.0",
- "unist-builder": "^2.0.0",
- "unist-util-generated": "^1.0.0",
- "unist-util-position": "^3.0.0",
- "unist-util-visit": "^2.0.0"
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "mdast-util-definitions": "^4.0.0",
+ "mdurl": "^1.0.0",
+ "unist-builder": "^2.0.0",
+ "unist-util-generated": "^1.0.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "remark-mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
+ "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "requires": {
+ "@babel/core": "7.12.9",
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "7.12.1",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@mdx-js/util": "1.6.22",
+ "is-alphabetical": "1.0.4",
+ "remark-parse": "8.0.3",
+ "unified": "9.2.0"
}
},
"remark-parse": {
@@ -12164,6 +13782,131 @@
"vfile-location": "^3.0.0",
"xtend": "^4.0.1"
}
+ },
+ "style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "requires": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA=="
+ },
+ "unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ }
+ },
+ "unist-util-generated": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+ "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg=="
+ },
+ "unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA=="
+ },
+ "unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@mdx-js/mdx": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.3.0.tgz",
+ "integrity": "sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/mdx": "^2.0.0",
+ "estree-util-build-jsx": "^2.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "estree-util-to-js": "^1.1.0",
+ "estree-walker": "^3.0.0",
+ "hast-util-to-estree": "^2.0.0",
+ "markdown-extensions": "^1.0.0",
+ "periscopic": "^3.0.0",
+ "remark-mdx": "^2.0.0",
+ "remark-parse": "^10.0.0",
+ "remark-rehype": "^10.0.0",
+ "unified": "^10.0.0",
+ "unist-util-position-from-estree": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "unist-util-visit": "^4.0.0",
+ "vfile": "^5.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
}
}
},
@@ -12177,22 +13920,6 @@
"resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz",
"integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA=="
},
- "@monaco-editor/loader": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-0.1.3.tgz",
- "integrity": "sha512-AO5ERu/RV4B0Va3ymI4TYp/KeIUSPHQueE51jRjVcCsW72btEPUxCgnHTdBxpAvsfNEF1sLILtt1QOZqce3SWw==",
- "requires": {
- "state-local": "^1.0.6"
- }
- },
- "@monaco-editor/react": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-3.8.3.tgz",
- "integrity": "sha512-wd+XzqATnUoODHSm2JMZi5OV9qeC8hdoSgoZHsTceXyH3Z/oktUtFbjaYeK0XL/lnXAScSYue81GA2UsiAx0sQ==",
- "requires": {
- "@monaco-editor/loader": "^0.1.2"
- }
- },
"@netlify/esbuild": {
"version": "0.14.39",
"resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz",
@@ -12518,15 +14245,6 @@
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true
},
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -12792,6 +14510,35 @@
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
},
+ "@types/acorn": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
+ "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==",
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "@types/debug": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz",
+ "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==",
+ "requires": {
+ "@types/ms": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
+ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+ },
+ "@types/estree-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz",
+ "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==",
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
"@types/hast": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
@@ -12808,14 +14555,29 @@
"@types/node": "*"
}
},
+ "@types/js-yaml": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
+ "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA=="
+ },
"@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz",
+ "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==",
"requires": {
"@types/unist": "*"
}
},
+ "@types/mdx": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz",
+ "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg=="
+ },
+ "@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
+ },
"@types/node": {
"version": "18.15.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz",
@@ -12826,11 +14588,31 @@
"resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
"integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
},
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/react": {
+ "version": "17.0.62",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.62.tgz",
+ "integrity": "sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
"@types/retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
+ "@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"@types/sinonjs__fake-timers": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
@@ -12928,29 +14710,6 @@
"indent-string": "^4.0.0"
}
},
- "airbnb-prop-types": {
- "version": "2.16.0",
- "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
- "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
- "requires": {
- "array.prototype.find": "^2.1.1",
- "function.prototype.name": "^1.1.2",
- "is-regex": "^1.1.0",
- "object-is": "^1.1.2",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.2",
- "prop-types": "^15.7.2",
- "prop-types-exact": "^1.2.0",
- "react-is": "^16.13.1"
- },
- "dependencies": {
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- }
- }
- },
"ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
@@ -13104,16 +14863,6 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
- "array.prototype.find": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz",
- "integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
- }
- },
"array.prototype.flatmap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
@@ -13155,6 +14904,11 @@
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
+ "astring": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz",
+ "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg=="
+ },
"async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
@@ -13337,9 +15091,9 @@
}
},
"bail": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
- "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ=="
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="
},
"balanced-match": {
"version": "1.0.2",
@@ -13564,9 +15318,9 @@
"dev": true
},
"ccount": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
- "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg=="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="
},
"chalk": {
"version": "2.4.2",
@@ -13583,6 +15337,11 @@
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
"integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="
},
+ "character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="
+ },
"character-entities-legacy": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
@@ -14195,6 +15954,11 @@
"css-tree": "^1.1.2"
}
},
+ "csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
"cypress": {
"version": "10.11.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-10.11.0.tgz",
@@ -14308,15 +16072,6 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -14632,6 +16387,21 @@
"ms": "2.1.2"
}
},
+ "decode-named-character-reference": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "requires": {
+ "character-entities": "^2.0.0"
+ },
+ "dependencies": {
+ "character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="
+ }
+ }
+ },
"decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -14671,6 +16441,7 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
"integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
"requires": {
"has-property-descriptors": "^1.0.0",
"object-keys": "^1.1.1"
@@ -14717,6 +16488,11 @@
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
+ "dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
+ },
"destr": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/destr/-/destr-1.2.2.tgz",
@@ -14757,6 +16533,11 @@
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
},
+ "diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
+ },
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -14898,52 +16679,6 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
- "enzyme-adapter-react-16": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz",
- "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==",
- "requires": {
- "enzyme-adapter-utils": "^1.14.0",
- "enzyme-shallow-equal": "^1.0.4",
- "has": "^1.0.3",
- "object.assign": "^4.1.2",
- "object.values": "^1.1.2",
- "prop-types": "^15.7.2",
- "react-is": "^16.13.1",
- "react-test-renderer": "^16.0.0-0",
- "semver": "^5.7.0"
- },
- "dependencies": {
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- }
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz",
- "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==",
- "requires": {
- "airbnb-prop-types": "^2.16.0",
- "function.prototype.name": "^1.1.3",
- "has": "^1.0.3",
- "object.assign": "^4.1.2",
- "object.fromentries": "^2.0.3",
- "prop-types": "^15.7.2",
- "semver": "^5.7.1"
- }
- },
- "enzyme-shallow-equal": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz",
- "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==",
- "requires": {
- "has": "^1.0.3",
- "object-is": "^1.1.2"
- }
- },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -14956,6 +16691,7 @@
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
@@ -14987,17 +16723,13 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
"requires": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
"is-symbol": "^1.0.2"
}
},
- "esbuild": {
- "version": "0.12.29",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz",
- "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g=="
- },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -15127,14 +16859,6 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -15200,9 +16924,9 @@
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
@@ -15286,6 +17010,56 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
},
+ "estree-util-attach-comments": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz",
+ "integrity": "sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==",
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "estree-util-build-jsx": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz",
+ "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "estree-walker": "^3.0.0"
+ }
+ },
+ "estree-util-is-identifier-name": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
+ "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ=="
+ },
+ "estree-util-to-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz",
+ "integrity": "sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "astring": "^1.8.0",
+ "source-map": "^0.7.0"
+ }
+ },
+ "estree-util-visit": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz",
+ "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -15347,11 +17121,6 @@
"pify": "^2.2.0"
}
},
- "exenv": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
- "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
- },
"expand-range": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
@@ -15644,6 +17413,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -15659,7 +17429,8 @@
"functions-have-names": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
- "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA=="
+ "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==",
+ "dev": true
},
"fuse.js": {
"version": "6.6.2",
@@ -15736,6 +17507,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
"integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
@@ -15972,7 +17744,8 @@
"has-bigints": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true
},
"has-flag": {
"version": "3.0.0",
@@ -15983,6 +17756,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
"integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dev": true,
"requires": {
"get-intrinsic": "^1.1.1"
}
@@ -15996,6 +17770,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
"requires": {
"has-symbols": "^1.0.2"
}
@@ -16012,6 +17787,16 @@
"style-to-object": "^0.3.0",
"unist-util-is": "^4.0.0",
"web-namespaces": "^1.0.0"
+ },
+ "dependencies": {
+ "style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "requires": {
+ "inline-style-parser": "0.1.1"
+ }
+ }
}
},
"hast-util-from-parse5": {
@@ -16025,6 +17810,36 @@
"vfile": "^4.0.0",
"vfile-location": "^3.2.0",
"web-namespaces": "^1.0.0"
+ },
+ "dependencies": {
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ }
}
},
"hast-util-parse-selector": {
@@ -16047,6 +17862,85 @@
"web-namespaces": "^1.0.0",
"xtend": "^4.0.0",
"zwitch": "^1.0.0"
+ },
+ "dependencies": {
+ "unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA=="
+ },
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ },
+ "zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
+ }
+ }
+ },
+ "hast-util-to-estree": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz",
+ "integrity": "sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "estree-util-attach-comments": "^2.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "mdast-util-mdx-expression": "^1.0.0",
+ "mdast-util-mdxjs-esm": "^1.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-object": "^0.4.1",
+ "unist-util-position": "^4.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "dependencies": {
+ "comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="
+ },
+ "property-information": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
+ "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg=="
+ },
+ "space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="
+ }
}
},
"hast-util-to-parse5": {
@@ -16059,8 +17953,20 @@
"web-namespaces": "^1.0.0",
"xtend": "^4.0.0",
"zwitch": "^1.0.0"
+ },
+ "dependencies": {
+ "zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
+ }
}
},
+ "hast-util-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
+ "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng=="
+ },
"hastscript": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
@@ -16333,6 +18239,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
"integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "dev": true,
"requires": {
"get-intrinsic": "^1.1.0",
"has": "^1.0.3",
@@ -16429,6 +18336,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
"integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
"requires": {
"has-bigints": "^1.0.1"
}
@@ -16445,6 +18353,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
"integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -16458,7 +18367,8 @@
"is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true
},
"is-ci": {
"version": "3.0.1",
@@ -16481,6 +18391,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
"integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
"requires": {
"has-tostringtag": "^1.0.0"
}
@@ -16558,7 +18469,8 @@
"is-negative-zero": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true
},
"is-number": {
"version": "2.1.0",
@@ -16587,6 +18499,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
"integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
"requires": {
"has-tostringtag": "^1.0.0"
}
@@ -16598,9 +18511,9 @@
"dev": true
},
"is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="
},
"is-plain-object": {
"version": "5.0.0",
@@ -16613,10 +18526,19 @@
"integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
"dev": true
},
+ "is-reference": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz",
+ "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==",
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
"is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -16626,6 +18548,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
"integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2"
}
@@ -16639,6 +18562,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
"integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
"requires": {
"has-tostringtag": "^1.0.0"
}
@@ -16647,6 +18571,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
"integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
"requires": {
"has-symbols": "^1.0.2"
}
@@ -16672,6 +18597,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
"integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2"
}
@@ -16870,6 +18796,11 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
},
+ "kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
+ },
"lazy-ass": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
@@ -17172,6 +19103,11 @@
}
}
},
+ "longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="
+ },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -17202,6 +19138,11 @@
"resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
"integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg=="
},
+ "markdown-extensions": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz",
+ "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q=="
+ },
"markdown-link": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz",
@@ -17269,11 +19210,241 @@
}
},
"mdast-util-definitions": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
- "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
+ "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
"requires": {
- "unist-util-visit": "^2.0.0"
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-from-markdown": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
+ "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "mdast-util-to-string": "^3.1.0",
+ "micromark": "^3.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "uvu": "^0.5.0"
+ },
+ "dependencies": {
+ "mdast-util-to-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
+ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "requires": {
+ "@types/mdast": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-mdx": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz",
+ "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==",
+ "requires": {
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-mdx-expression": "^1.0.0",
+ "mdast-util-mdx-jsx": "^2.0.0",
+ "mdast-util-mdxjs-esm": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ }
+ },
+ "mdast-util-mdx-expression": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz",
+ "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ }
+ },
+ "mdast-util-mdx-jsx": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz",
+ "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "ccount": "^2.0.0",
+ "mdast-util-from-markdown": "^1.1.0",
+ "mdast-util-to-markdown": "^1.3.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-remove-position": "^4.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "mdast-util-mdxjs-esm": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz",
+ "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==",
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.0.0"
+ }
+ },
+ "mdast-util-phrasing": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
+ "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-to-hast": {
+ "version": "12.3.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
+ "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-definitions": "^5.0.0",
+ "micromark-util-sanitize-uri": "^1.1.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-generated": "^2.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-to-markdown": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
+ "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "unist-util-visit": "^4.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "dependencies": {
+ "mdast-util-to-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
+ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "requires": {
+ "@types/mdast": "^3.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ }
}
},
"mdast-util-to-string": {
@@ -17332,6 +19503,325 @@
"integrity": "sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==",
"dev": true
},
+ "micromark": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz",
+ "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
+ "requires": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.1",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-sanitize-uri": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-core-commonmark": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
+ "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-factory-destination": "^1.0.0",
+ "micromark-factory-label": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-factory-title": "^1.0.0",
+ "micromark-factory-whitespace": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-classify-character": "^1.0.0",
+ "micromark-util-html-tag-name": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-extension-mdx-expression": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz",
+ "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "micromark-factory-mdx-expression": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-extension-mdx-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz",
+ "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==",
+ "requires": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "estree-util-is-identifier-name": "^2.0.0",
+ "micromark-factory-mdx-expression": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "micromark-extension-mdx-md": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz",
+ "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==",
+ "requires": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-extension-mdxjs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz",
+ "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==",
+ "requires": {
+ "acorn": "^8.0.0",
+ "acorn-jsx": "^5.0.0",
+ "micromark-extension-mdx-expression": "^1.0.0",
+ "micromark-extension-mdx-jsx": "^1.0.0",
+ "micromark-extension-mdx-md": "^1.0.0",
+ "micromark-extension-mdxjs-esm": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+ "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ=="
+ }
+ }
+ },
+ "micromark-extension-mdxjs-esm": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz",
+ "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-position-from-estree": "^1.1.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "micromark-factory-destination": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
+ "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-factory-label": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
+ "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-factory-mdx-expression": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz",
+ "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-events-to-acorn": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-position-from-estree": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "micromark-factory-space": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
+ "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-factory-title": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
+ "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
+ "requires": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-factory-whitespace": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
+ "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
+ "requires": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-character": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
+ "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-chunked": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
+ "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-classify-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
+ "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-combine-extensions": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
+ "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
+ "requires": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-decode-numeric-character-reference": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
+ "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-decode-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
+ "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
+ "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw=="
+ },
+ "micromark-util-events-to-acorn": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz",
+ "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==",
+ "requires": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "@types/unist": "^2.0.0",
+ "estree-util-visit": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "micromark-util-html-tag-name": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
+ "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q=="
+ },
+ "micromark-util-normalize-identifier": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
+ "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-resolve-all": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
+ "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
+ "requires": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-sanitize-uri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
+ "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-subtokenize": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
+ "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
+ "requires": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-util-symbol": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
+ "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag=="
+ },
+ "micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg=="
+ },
"micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -17478,11 +19968,6 @@
"resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.29.4.tgz",
"integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg=="
},
- "monaco-editor": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz",
- "integrity": "sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ=="
- },
"moo": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz",
@@ -17491,8 +19976,7 @@
"mri": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
},
"ms": {
"version": "2.1.2",
@@ -17572,14 +20056,25 @@
}
},
"next-mdx-remote": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-3.0.8.tgz",
- "integrity": "sha512-WFSxt0crxG5PN/0WvaunzxzqV3wh3dPBZyhkclxwyQfLSRKzsNSArzot/4gYTOOZ/GtyRfNjbI/HtDsW2S4fqQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz",
+ "integrity": "sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==",
"requires": {
- "@mdx-js/mdx": "^1.6.22",
- "@mdx-js/react": "^1.6.22",
- "esbuild": "^0.12.9",
- "pkg-dir": "^5.0.0"
+ "@mdx-js/mdx": "^2.2.1",
+ "@mdx-js/react": "^2.2.1",
+ "vfile": "^5.3.0",
+ "vfile-matter": "^3.0.1"
+ },
+ "dependencies": {
+ "@mdx-js/react": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz",
+ "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==",
+ "requires": {
+ "@types/mdx": "^2.0.0",
+ "@types/react": ">=16"
+ }
+ }
}
},
"node-abi": {
@@ -17589,17 +20084,6 @@
"dev": true,
"requires": {
"semver": "^7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
}
},
"node-addon-api": {
@@ -17685,29 +20169,22 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
},
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
- },
- "object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
},
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
},
"object.assign": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
"integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -17719,6 +20196,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
"integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -17729,6 +20207,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
"integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -17764,6 +20243,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
"integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -17934,6 +20414,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
"requires": {
"yocto-queue": "^0.1.0"
}
@@ -18012,16 +20493,59 @@
}
},
"parse-entities": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
- "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
+ "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
"requires": {
- "character-entities": "^1.0.0",
- "character-entities-legacy": "^1.0.0",
- "character-reference-invalid": "^1.0.0",
- "is-alphanumerical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-hexadecimal": "^1.0.0"
+ "@types/unist": "^2.0.0",
+ "character-entities": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "dependencies": {
+ "character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="
+ },
+ "character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="
+ },
+ "character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="
+ },
+ "is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="
+ },
+ "is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "requires": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ }
+ },
+ "is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="
+ },
+ "is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="
+ }
}
},
"parse-json": {
@@ -18081,6 +20605,16 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "periscopic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
+ "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^3.0.0",
+ "is-reference": "^3.0.0"
+ }
+ },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -18096,46 +20630,6 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
},
- "pkg-dir": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
- "requires": {
- "find-up": "^5.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
- }
- }
- },
"point-in-polygon": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz",
@@ -18655,16 +21149,6 @@
}
}
},
- "prop-types-exact": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz",
- "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==",
- "requires": {
- "has": "^1.0.3",
- "object.assign": "^4.1.0",
- "reflect.ownkeys": "^0.2.0"
- }
- },
"property-information": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
@@ -18859,11 +21343,6 @@
"resolved": "https://registry.npmjs.org/react-gtm-module/-/react-gtm-module-2.0.11.tgz",
"integrity": "sha512-8gyj4TTxeP7eEyc2QKawEuQoAZdjKvMY4pgWfycGmqGByhs17fR+zEBs0JUDq4US/l+vbTl+6zvUIx27iDo/Vw=="
},
- "react-proptype-conditional-require": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/react-proptype-conditional-require/-/react-proptype-conditional-require-1.0.4.tgz",
- "integrity": "sha1-acLVdB5t9eCPIw82u8KUTuEiJVU="
- },
"react-scrollspy": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/react-scrollspy/-/react-scrollspy-3.4.3.tgz",
@@ -18886,33 +21365,6 @@
"refractor": "^2.4.1"
}
},
- "react-test-renderer": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz",
- "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==",
- "requires": {
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "react-is": "^16.8.6",
- "scheduler": "^0.19.1"
- },
- "dependencies": {
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
- "scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- }
- }
- },
"react-text-truncate": {
"version": "0.16.0",
"resolved": "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.16.0.tgz",
@@ -18922,13 +21374,10 @@
}
},
"react-twitter-embed": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/react-twitter-embed/-/react-twitter-embed-3.0.3.tgz",
- "integrity": "sha512-kF1Srlb1TqnZUqKA0FC4I/E+m+RUBCMZeU20hDRzmYLAjR1EA/6tr/PMZ22s7rd6wjQpIBLXNZjt0rfUpY8Chw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/react-twitter-embed/-/react-twitter-embed-4.0.4.tgz",
+ "integrity": "sha512-2JIL7qF+U62zRzpsh6SZDXNI3hRNVYf5vOZ1WRcMvwKouw+xC00PuFaD0aEp2wlyGaZ+f4x2VvX+uDadFQ3HVA==",
"requires": {
- "enzyme-adapter-react-16": "^1.11.0",
- "exenv": "^1.2.2",
- "react-proptype-conditional-require": "^1.0.4",
"scriptjs": "^2.5.9"
}
},
@@ -19042,11 +21491,6 @@
"redis-errors": "^1.0.0"
}
},
- "reflect.ownkeys": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz",
- "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
- },
"refractor": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz",
@@ -19106,6 +21550,7 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
"integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -19204,48 +21649,33 @@
}
},
"remark-mdx": {
- "version": "1.6.22",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
- "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz",
+ "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==",
"requires": {
- "@babel/core": "7.12.9",
- "@babel/helper-plugin-utils": "7.10.4",
- "@babel/plugin-proposal-object-rest-spread": "7.12.1",
- "@babel/plugin-syntax-jsx": "7.12.1",
- "@mdx-js/util": "1.6.22",
- "is-alphabetical": "1.0.4",
- "remark-parse": "8.0.3",
- "unified": "9.2.0"
- },
- "dependencies": {
- "@babel/helper-plugin-utils": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
- },
- "remark-parse": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
- "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
- "requires": {
- "ccount": "^1.0.0",
- "collapse-white-space": "^1.0.2",
- "is-alphabetical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-whitespace-character": "^1.0.0",
- "is-word-character": "^1.0.0",
- "markdown-escapes": "^1.0.0",
- "parse-entities": "^2.0.0",
- "repeat-string": "^1.5.4",
- "state-toggle": "^1.0.0",
- "trim": "0.0.1",
- "trim-trailing-lines": "^1.0.0",
- "unherit": "^1.0.4",
- "unist-util-remove-position": "^2.0.0",
- "vfile-location": "^3.0.0",
- "xtend": "^4.0.1"
- }
- }
+ "mdast-util-mdx": "^2.0.0",
+ "micromark-extension-mdxjs": "^1.0.0"
+ }
+ },
+ "remark-parse": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
+ "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "unified": "^10.0.0"
+ }
+ },
+ "remark-rehype": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz",
+ "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-hast": "^12.1.0",
+ "unified": "^10.0.0"
}
},
"remark-slug": {
@@ -19386,6 +21816,14 @@
"tslib": "^2.1.0"
}
},
+ "sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "requires": {
+ "mri": "^1.1.0"
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -19395,6 +21833,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
"integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.3",
@@ -19473,9 +21912,12 @@
}
},
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
},
"set-getter": {
"version": "0.1.1",
@@ -19504,17 +21946,6 @@
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
}
},
"shebang-command": {
@@ -19633,9 +22064,9 @@
"integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
},
"source-map-js": {
"version": "1.0.2",
@@ -19685,11 +22116,6 @@
"integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
"dev": true
},
- "state-local": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
- },
"state-toggle": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
@@ -19753,6 +22179,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
"integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
@@ -19763,12 +22190,29 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
"integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.19.5"
}
},
+ "stringify-entities": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
+ "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+ "requires": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "dependencies": {
+ "character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="
+ }
+ }
+ },
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -19799,9 +22243,9 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"style-to-object": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
- "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz",
+ "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==",
"requires": {
"inline-style-parser": "0.1.1"
}
@@ -20142,15 +22586,20 @@
"resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
"integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ=="
},
+ "trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="
+ },
"trim-trailing-lines": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz",
"integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ=="
},
"trough": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
- "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g=="
},
"tslib": {
"version": "2.4.0",
@@ -20200,6 +22649,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
"integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.2",
"has-bigints": "^1.0.2",
@@ -20232,16 +22682,17 @@
}
},
"unified": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
- "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
+ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
"requires": {
- "bail": "^1.0.0",
+ "@types/unist": "^2.0.0",
+ "bail": "^2.0.0",
"extend": "^3.0.0",
"is-buffer": "^2.0.0",
- "is-plain-obj": "^2.0.0",
- "trough": "^1.0.0",
- "vfile": "^4.0.0"
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^5.0.0"
}
},
"unist-builder": {
@@ -20250,9 +22701,9 @@
"integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw=="
},
"unist-util-generated": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
- "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg=="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
+ "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A=="
},
"unist-util-is": {
"version": "4.1.0",
@@ -20260,9 +22711,20 @@
"integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg=="
},
"unist-util-position": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
- "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA=="
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
+ "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-position-from-estree": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz",
+ "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
},
"unist-util-remove": {
"version": "2.1.0",
@@ -20273,19 +22735,49 @@
}
},
"unist-util-remove-position": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
- "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz",
+ "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==",
"requires": {
- "unist-util-visit": "^2.0.0"
+ "@types/unist": "^2.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "dependencies": {
+ "unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ }
}
},
"unist-util-stringify-position": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
"requires": {
- "@types/unist": "^2.0.2"
+ "@types/unist": "^2.0.0"
}
},
"unist-util-visit": {
@@ -20423,6 +22915,17 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
+ "uvu": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
+ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
+ "requires": {
+ "dequal": "^2.0.0",
+ "diff": "^5.0.0",
+ "kleur": "^4.0.3",
+ "sade": "^1.7.3"
+ }
+ },
"v8-compile-cache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
@@ -20448,14 +22951,14 @@
}
},
"vfile": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "version": "5.3.7",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
+ "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
}
},
"vfile-location": {
@@ -20463,13 +22966,38 @@
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
"integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA=="
},
+ "vfile-matter": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-3.0.1.tgz",
+ "integrity": "sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==",
+ "requires": {
+ "@types/js-yaml": "^4.0.0",
+ "is-buffer": "^2.0.0",
+ "js-yaml": "^4.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
+ }
+ },
"vfile-message": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
+ "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
"requires": {
"@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
+ "unist-util-stringify-position": "^3.0.0"
}
},
"wcwidth": {
@@ -20533,6 +23061,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
"integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
"requires": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
@@ -20542,9 +23071,9 @@
}
},
"word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
+ "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA=="
},
"wrap-ansi": {
"version": "7.0.0",
@@ -20634,12 +23163,13 @@
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
},
"zwitch": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
- "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="
}
}
}
diff --git a/package.json b/package.json
index b141453c541..859c6017879 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,6 @@
"@heroicons/react": "^1.0.5",
"@mdx-js/loader": "1.6.4",
"@mdx-js/react": "^1.6.4",
- "@monaco-editor/react": "^3.3.0",
"@next/mdx": "^9.4.2",
"@octokit/graphql": "^4.6.0",
"@slack/web-api": "^6.5.1",
@@ -70,9 +69,8 @@
"markdown-toc": "1.2.0",
"mermaid": "9.3.0",
"moment": "^2.29.4",
- "monaco-editor": "^0.20.0",
"next": "^12.0.0",
- "next-mdx-remote": "^3.0.0",
+ "next-mdx-remote": "^4.4.1",
"node-fetch": "^2.6.7",
"postcss": "^8.4.14",
"react": "^17.0.2",
@@ -82,7 +80,7 @@
"react-scrollspy": "^3.4.2",
"react-syntax-highlighter": "12.2.1",
"react-text-truncate": "^0.16.0",
- "react-twitter-embed": "^3.0.3",
+ "react-twitter-embed": "^4.0.4",
"react-typing-animation": "^1.6.2",
"react-youtube-embed": "^1.0.3",
"reading-time": "^1.2.0",
@@ -103,7 +101,7 @@
"cypress": "^10.11.0",
"dedent": "^0.7.0",
"eslint": "^7.0.0",
- "eslint-plugin-react": "^7.20.0",
+ "eslint-plugin-react": "^7.27.1",
"inquirer": "^8.2.0",
"postcss-import": "^14.1.0"
}
diff --git a/pages/404.js b/pages/404.js
index 602c77814b2..ac1655ff108 100644
--- a/pages/404.js
+++ b/pages/404.js
@@ -27,7 +27,6 @@ function ErrorPage() {