diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4f9c41f3ff83f5..cab00a92cbab0a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -21,20 +21,20 @@ # AI /src/content/docs/agents/ @irvinebroque @rita3ko @elithrar @thomasgauvin @threepointone @cloudflare/pcx-technical-writing -/src/content/docs/ai-gateway/ @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/docs/ai-gateway/ @kathayl @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing /src/content/docs/workers-ai/ @rita3ko @craigsdennis @markdembo @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing /src/content/docs/vectorize/ @elithrar @vy-ton @sejoker @mchenco @cloudflare/pcx-technical-writing /src/content/partials/vectorize/ @elithrar @mchenco @sejoker @cloudflare/pcx-technical-writing -/src/content/release-notes/workers-ai.yaml @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing -/src/content/release-notes/ai-gateway.yaml @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/release-notes/workers-ai.yaml @kathayl @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing +/src/content/release-notes/ai-gateway.yaml @kathayl @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing /src/content/release-notes/vectorize.yaml @elithrar @mchenco @sejoker @cloudflare/pcx-technical-writing /src/content/docs/autorag/ @rita3ko @irvinebroque @aninibread @ToriLindsay @cloudflare/pcx-technical-writing # Analytics & Logs -/src/content/docs/analytics/ @46bit @jherre @jimhawkridge @soheiokamoto @victor-perov @angelampcosta @cloudflare/pcx-technical-writing +/src/content/docs/analytics/ @jimhawkridge @soheiokamoto @angelampcosta @cloudflare/pcx-technical-writing /src/content/docs/data-localization/ @soheiokamoto @angelampcosta @cloudflare/pcx-technical-writing -/src/content/docs/logs/ @jherre @soheiokamoto @victor-perov @angelampcosta @cloudflare/pcx-technical-writing +/src/content/docs/logs/ @soheiokamoto @angelampcosta @cloudflare/pcx-technical-writing # API & Zones @@ -45,12 +45,12 @@ # Browser Rendering API -/src/content/docs/browser-rendering/ @mchenco @cloudflare/pcx-technical-writing @celso @meddulla @danielgek @kathayl +/src/content/docs/browser-rendering/ @mchenco @cloudflare/pcx-technical-writing @celso @danielgek @kathayl # Changelogs -/src/content/changelog/ @cloudflare/pm-changelogs -/src/assets/images/changelog/ @cloudflare/pm-changelogs +/src/content/changelog/ @cloudflare/pm-changelogs @cloudflare/pcx-cloudflare-one +/src/assets/images/changelog/ @cloudflare/pm-changelogs @cloudflare/pcx-cloudflare-one /src/assets/images/ @cloudflare/pm-changelogs @cloudflare/pcx-technical-writing # Cloudflare One @@ -114,8 +114,8 @@ /src/content/release-notes/kv.yaml @elithrar @thomasgauvin @rts-rob @oxyjun @cloudflare/pcx-technical-writing /src/content/partials/kv/ @elithrar @thomasgauvin @rts-rob @oxyjun @cloudflare/pcx-technical-writing /src/content/docs/pub-sub/ @elithrar @dcpena @cloudflare/pcx-technical-writing -/src/content/docs/queues/ @elithrar @toddmantell @maheshwarip @harshil1712 @cloudflare/pcx-technical-writing -/src/content/release-notes/queues.yaml @elithrar @toddmantell @maheshwarip @cloudflare/pcx-technical-writing +/src/content/docs/queues/ @elithrar @maheshwarip @harshil1712 @cloudflare/pcx-technical-writing +/src/content/release-notes/queues.yaml @elithrar @maheshwarip @cloudflare/pcx-technical-writing /src/content/docs/r2/ @oxyjun @elithrar @jonesphillip @harshil1712 @cloudflare/workers-docs @cloudflare/pcx-technical-writing /src/content/release-notes/r2.yaml @oxyjun @elithrar @cloudflare/workers-docs @cloudflare/pcx-technical-writing /src/content/docs/stream/ @tsmith512 @dcpena @cloudflare/pcx-technical-writing @renandincer @third774 @@ -136,21 +136,21 @@ /src/content/docs/workers/reference/migrate-to-module-workers.mdx @irvinebroque @GregBrimble @ToriLindsay @cloudflare/deploy-config @cloudflare/pcx-technical-writing /src/content/docs/workers/reference/security-model.mdx @irvinebroque @GregBrimble @ToriLindsay @cloudflare/pcx-technical-writing /src/content/compatibility-flags/ @irvinebroque @mikenomitch @GregBrimble @cloudflare/pcx-technical-writing -/src/content/docs/workers/wrangler/ @cloudflare/wrangler @cloudflare/wrangler-friends @irvinebroque @ToriLindsay @cloudflare/pcx-technical-writing +/src/content/docs/workers/wrangler/ @cloudflare/wrangler @irvinebroque @ToriLindsay @cloudflare/pcx-technical-writing /src/content/docs/workers/frameworks/ @igorminar @cloudflare/wrangler @aninibread @GregBrimble @ToriLindsay @cloudflare/pcx-technical-writing /src/content/docs/pages/framework-guides/ @igorminar @cloudflare/wrangler @aninibread @GregBrimble @ToriLindsay @cloudflare/pcx-technical-writing /src/content/docs/analytics/analytics-engine/ @irvinebroque @elithrar @cloudflare/pcx-technical-writing /src/content/docs/cloudflare-for-platforms/workers-for-platforms/ @irvinebroque @angelampcosta @GregBrimble @cloudflare/deploy-config @cloudflare/pcx-technical-writing /src/content/docs/workers/observability/ @irvinebroque @mikenomitch @rohinlohe @ToriLindsay @cloudflare/pcx-technical-writing /src/content/docs/workers/static-assets @irvinebroque @GregBrimble @WalshyDev @ToriLindsay @cloudflare/deploy-config @cloudflare/pcx-technical-writing -/src/content/docs/workflows/ @elithrar @celso @sidharthachatterjee @cloudflare/pcx-technical-writing +/src/content/docs/workflows/ @elithrar @celso @cloudflare/pcx-technical-writing # DDoS Protection /src/content/docs/ddos-protection/ @patriciasantaana @cloudflare/pcx-technical-writing -/src/content/docs/ddos-protection/change-log/ @antoinecordelle @patriciasantaana @cloudflare/pcx-technical-writing -/src/content/release-notes/ddos-http.yaml @antoinecordelle @patriciasantaana @cloudflare/pcx-technical-writing -/src/content/release-notes/ddos-network.yaml @antoinecordelle @patriciasantaana @cloudflare/pcx-technical-writing +/src/content/docs/ddos-protection/change-log/ @patriciasantaana @cloudflare/pcx-technical-writing +/src/content/release-notes/ddos-http.yaml @patriciasantaana @cloudflare/pcx-technical-writing +/src/content/release-notes/ddos-network.yaml @patriciasantaana @cloudflare/pcx-technical-writing # Docs team areas @@ -160,7 +160,7 @@ # Magic products /src/content/docs/magic-transit/ @marciocloudflare @cloudflare/pcx-technical-writing -/src/content/docs/magic-firewall/ @arges @Maddy-Cloudflare @cloudflare/pcx-technical-writing +/src/content/docs/magic-firewall/ @Maddy-Cloudflare @cloudflare/pcx-technical-writing /src/content/docs/magic-network-monitoring/ @marciocloudflare @cloudflare/pcx-technical-writing /src/content/docs/magic-wan/ @marciocloudflare @cloudflare/pcx-technical-writing /src/content/docs/magic-cloud-networking/ @marciocloudflare @cloudflare/pcx-technical-writing @@ -183,13 +183,13 @@ # Privacy -/src/content/docs/key-transparency/ @cloudflare/privacy @cloudflare/pcx-technical-writing -/src/content/docs/privacy-gateway/ @cloudflare/privacy @cloudflare/pcx-technical-writing +/src/content/docs/key-transparency/ @cloudflare/pcx-technical-writing +/src/content/docs/privacy-gateway/ @cloudflare/pcx-technical-writing # Radar -/src/content/docs/radar/ @meddulla @G4brym @tiagoad @andre-j3sus @cloudflare/pcx-technical-writing -/src/content/release-notes/radar.yaml @meddulla @G4brym @tiagoad @andre-j3sus @cloudflare/pcx-technical-writing +/src/content/docs/radar/ @tiagoad @andre-j3sus @cloudflare/pcx-technical-writing +/src/content/release-notes/radar.yaml @tiagoad @andre-j3sus @cloudflare/pcx-technical-writing # Reference architecture @@ -212,8 +212,8 @@ # Support -/src/content/docs/support/ @shanecloudflare @zeinjaber @TracyCloudflare @ngayerie @cloudflare/pcx-technical-writing @cloudflare/customer-support -/src/assets/images/support/ @shanecloudflare @zeinjaber @TracyCloudflare @ngayerie @cloudflare/pcx-technical-writing @cloudflare/customer-support +/src/content/docs/support/ @zeinjaber @TracyCloudflare @ngayerie @cloudflare/pcx-technical-writing @cloudflare/customer-support +/src/assets/images/support/ @zeinjaber @TracyCloudflare @ngayerie @cloudflare/pcx-technical-writing @cloudflare/customer-support # Turnstile diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5c00b9adc98cf1..358fd64af219cf 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,6 +6,9 @@ contact_links: - name: Issue with Cloudflare 5XX errors url: https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/ about: If you are encountering a Cloudflare 5XX error, please read our troubleshooting documentation for 5XX errors. + - name: Issue with Workers AI + url: https://discord.com/channels/595317990191398933/1105477009964027914 + about: Issues relating to Workers AI models should be raised in our Developer Discord. - name: Issue with Cloudflare Workers url: https://github.com/cloudflare/workers-sdk/issues/new/choose about: Issues relating to Cloudflare Workers should be made in the workers-sdk repo. diff --git a/.hyperlint/.vale.ini b/.hyperlint/.vale.ini index 0b70b62fba240a..af1595126d86b2 100644 --- a/.hyperlint/.vale.ini +++ b/.hyperlint/.vale.ini @@ -1,4 +1,4 @@ -StylesPath = ../.github/styles +StylesPath = automations/styles MinAlertLevel = suggestion IgnoredScopes = code, tt, img SkippedScopes = script, style, pre, figure, code @@ -17,4 +17,4 @@ Vale.Spelling = NO [*.yaml] BasedOnStyles = Vale, cloudflare, cloudflare-automation -Vale.Spelling = NO \ No newline at end of file +Vale.Spelling = NO diff --git a/.hyperlint/automations/styles/cloudflare-automation/EOLWhitespace.yml b/.hyperlint/automations/styles/cloudflare-automation/EOLWhitespace.yml new file mode 100644 index 00000000000000..1ed600349a5752 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/EOLWhitespace.yml @@ -0,0 +1,12 @@ +--- +name: gitlab_base.EOLWhitespace +description: | + Checks that there is no useless whitespace at the end of lines. +extends: existence +message: "Remove whitespace characters from the end of the line." +link: https://docs.gitlab.com/development/documentation/styleguide/ +vocab: false +level: warning +scope: raw +raw: + - ' +\n' diff --git a/.hyperlint/automations/styles/cloudflare-automation/ExclamationMarks.yml b/.hyperlint/automations/styles/cloudflare-automation/ExclamationMarks.yml new file mode 100644 index 00000000000000..b4e4a1f7e9aa4c --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/ExclamationMarks.yml @@ -0,0 +1,12 @@ +extends: existence +message: "Don't use exclamation points in text." +link: "https://developers.google.com/style/exclamation-points" +nonword: true +level: error +action: + name: edit + params: + - trim_right + - "!" +tokens: + - '\w+!(?:\s|$)' diff --git a/.hyperlint/automations/styles/cloudflare-automation/HeadingLinks.yml b/.hyperlint/automations/styles/cloudflare-automation/HeadingLinks.yml new file mode 100644 index 00000000000000..617701811ea4c4 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/HeadingLinks.yml @@ -0,0 +1,17 @@ +--- +name: gitlab_base.HeadingLink +description: | + Do not include links in a heading. + Headings already have self-referencing anchor links, + and they're used for generating the table of contents. + Adding a link will break the anchor linking behavior. +extends: existence +message: "Do not use links in headings." +vocab: false +level: error +ignorecase: true +nonword: true +link: https://docs.gitlab.com/development/documentation/styleguide/#links +scope: raw +tokens: + - ^#+ .*\[.+\]\(\S+\).*$ diff --git a/.hyperlint/automations/styles/cloudflare-automation/HeadingPunctuation.yml b/.hyperlint/automations/styles/cloudflare-automation/HeadingPunctuation.yml new file mode 100644 index 00000000000000..4954cb11aeb926 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/HeadingPunctuation.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Don't use end punctuation in headings." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods +nonword: true +level: warning +scope: heading +action: + name: edit + params: + - trim_right + - ".?!" +tokens: + - "[a-z][.?!]$" diff --git a/.hyperlint/automations/styles/cloudflare-automation/HeadingsSentenceCase.yml b/.hyperlint/automations/styles/cloudflare-automation/HeadingsSentenceCase.yml new file mode 100644 index 00000000000000..abf3b5360609c2 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/HeadingsSentenceCase.yml @@ -0,0 +1,28 @@ +extends: capitalization +message: "'%s' should use sentence-style capitalization." +link: https://docs.microsoft.com/en-us/style-guide/capitalization +level: suggestion +scope: heading +match: $sentence +indicators: + - ":" +exceptions: + - Azure + - CLI + - Code + - Cosmos + - Docker + - Emmet + - I + - Kubernetes + - Linux + - macOS + - Marketplace + - MongoDB + - REPL + - Studio + - TypeScript + - URLs + - Visual + - VS + - Windows diff --git a/.hyperlint/automations/styles/cloudflare-automation/NonStandardQuotes.yml b/.hyperlint/automations/styles/cloudflare-automation/NonStandardQuotes.yml new file mode 100644 index 00000000000000..36a76b8006cf0c --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/NonStandardQuotes.yml @@ -0,0 +1,14 @@ +--- +# Warning: cloudflare.NonStandardQuotes +# +# Use only standard single and double quotes, not left or right quotes. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ +extends: existence +message: "Use standard single quotes or double quotes only. Do not use left or right quotes." +level: warning +ignorecase: true +link: https://developers.cloudflare.com/style-guide/grammar/punctuation-marks-and-symbols/quotation-marks/ +scope: raw +raw: + - "[‘’“”]" diff --git a/.hyperlint/automations/styles/cloudflare-automation/UnclearAntecedent.yml b/.hyperlint/automations/styles/cloudflare-automation/UnclearAntecedent.yml new file mode 100644 index 00000000000000..2c8f9e5af70dfb --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare-automation/UnclearAntecedent.yml @@ -0,0 +1,21 @@ +--- +name: gitlab_base.UnclearAntecedent +description: | + Checks for words that need a noun for clarity. +extends: existence +message: "Instead of '%s', try starting this sentence with a specific subject and verb." +link: https://docs.gitlab.com/development/documentation/styleguide/word_list/#this-these-that-those +vocab: false +level: warning +ignorecase: false +tokens: + - "That is" + - "That was" + - "There are" + - "There were" + - "These are" + - "These were" + - "This is" + - "This was" + - "Those are" + - "Those were" diff --git a/.hyperlint/automations/styles/cloudflare/Contractions.yml b/.hyperlint/automations/styles/cloudflare/Contractions.yml new file mode 100644 index 00000000000000..228f0b60c9c3dd --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/Contractions.yml @@ -0,0 +1,57 @@ +--- +# Error: cloudflare.Contractions +# +# Do not use contractions. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ + +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://developers.cloudflare.com/style-guide/grammar/parts-of-speech/contractions/ +level: error +ignorecase: true +action: + name: replace +swap: + are not: aren't + cannot: can't + could not: couldn't + did not: didn't + do not: don't + does not: doesn't + has not: hasn't + have not: haven't + how is: how's + is not: isn't + + 'it is(?!\.)': it's + 'it''s(?=\.)': it is + + should not: shouldn't + + "that is(?![.,])": that's + 'that''s(?=\.)': that is + + 'they are(?!\.)': they're + 'they''re(?=\.)': they are + + was not: wasn't + + 'we are(?!\.)': we're + 'we''re(?=\.)': we are + + 'we have(?!\.)': we've + 'we''ve(?=\.)': we have + + were not: weren't + + 'what is(?!\.)': what's + 'what''s(?=\.)': what is + + 'when is(?!\.)': when's + 'when''s(?=\.)': when is + + 'where is(?!\.)': where's + 'where''s(?=\.)': where is + + will not: won't diff --git a/.hyperlint/automations/styles/cloudflare/InclusiveLanguage.yml b/.hyperlint/automations/styles/cloudflare/InclusiveLanguage.yml new file mode 100644 index 00000000000000..9bfbb4cc673b8a --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/InclusiveLanguage.yml @@ -0,0 +1,22 @@ +--- +# Warning: cloudflare.InclusiveLanguage +# +# Suggests alternatives for words that are culturally inappropriate. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ + +extends: substitution +message: "**Warning**: Use inclusive language. Consider '%s' instead of '%s'." +level: warning +ignorecase: true +swap: + blacklist(?:ed|ing|s)?: denylist + whitelist(?:ed|ing|s)?: allowlist + master: primary, main + slave: secondary + he: they + his: their + she: they + hers: their + sanity (?:check|test): check for completeness + dummy: placeholder, sample, fake diff --git a/.hyperlint/automations/styles/cloudflare/LatinTerms.yml b/.hyperlint/automations/styles/cloudflare/LatinTerms.yml new file mode 100644 index 00000000000000..d47be895c5a838 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/LatinTerms.yml @@ -0,0 +1,17 @@ +--- +# Warning: cloudflare.LatinTerms +# +# Checks for use of Latin terms. +# Uses https://github.com/errata-ai/Google/blob/master/Google/Latin.yml for ideas. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ + +extends: substitution +message: "Use '%s' instead of '%s', but consider rewriting the sentence." +link: https://developers.cloudflare.com/style-guide/grammar/parts-of-speech/abbreviations/#ie-vs-eg +level: warning +nonword: true +ignorecase: true +swap: + '\b(?:e\.?g[\s.,;:])': for example + '\b(?:i\.?e[\s.,;:])': that is diff --git a/.hyperlint/automations/styles/cloudflare/LinkChecks.yml b/.hyperlint/automations/styles/cloudflare/LinkChecks.yml new file mode 100644 index 00000000000000..07fa68ecae7b5f --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/LinkChecks.yml @@ -0,0 +1,15 @@ +--- +# Warning: cloudflare.LinkChecks +# +# Checks for the presence of semantically unhelpful words in link text. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ +extends: existence +message: "**Warning**: When referring to another page in our docs, use the full relative link (`/1.1.1.1/check/`) instead of the full URL (`https://developers.cloudflare.com/1.1.1.1/check/`) or a local development link (`http://localhost:1111/1.1.1.1/check/`)." +level: warning +ignorecase: true +scope: raw +nonword: true +tokens: + - \[.*\]\(https?:\/\/developers\.cloudflare\.com\/.+\) + - \[.*\]\(https?:\/\/localhost:1111\/.*?\) diff --git a/.hyperlint/automations/styles/cloudflare/MeaningfulLinkWords.yml b/.hyperlint/automations/styles/cloudflare/MeaningfulLinkWords.yml new file mode 100644 index 00000000000000..21f9f566600d26 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/MeaningfulLinkWords.yml @@ -0,0 +1,16 @@ +--- +# Warning: cloudflare.MeaningfulLinkWords +# +# Checks for the presence of semantically unhelpful words in link text. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ +extends: existence +message: "**Warning**: Rewrite the link text for `%s` to be more descriptive. For more information, refer to [Descriptive link text](https://developers.cloudflare.com/style-guide/formatting/structure/links/#descriptive-link-text)." +level: warning +ignorecase: true +scope: raw +nonword: true +tokens: + - \[here\]\(.*\) + - \[this page\]\(.*\) + - \[read more\]\(.*\) diff --git a/.hyperlint/automations/styles/cloudflare/MergeConflictMarkers.yml b/.hyperlint/automations/styles/cloudflare/MergeConflictMarkers.yml new file mode 100644 index 00000000000000..39338d3846ffbc --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/MergeConflictMarkers.yml @@ -0,0 +1,13 @@ +--- +# Error: cloudflare.MergeConflictMarkers +# +# Checks for existence of merge conflict markers that were accidentally committed as changes. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ + +extends: existence +message: "Merge conflict marker '%s' found. [Address the merge conflict](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts) before merging." +level: error +scope: raw +raw: + - '\n<<<<<<< .+\n|\n=======\n|\n>>>>>>> .+\n' diff --git a/.hyperlint/automations/styles/cloudflare/Repetition.yml b/.hyperlint/automations/styles/cloudflare/Repetition.yml new file mode 100644 index 00000000000000..373b8595f62020 --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/Repetition.yml @@ -0,0 +1,12 @@ +--- +# Error: cloudflare.Repetition +# +# Checks for duplicate words, like `the the` or `and and`. +# +# For a list of all options, see https://vale.sh/docs/topics/styles/ +extends: repetition +message: "**Warning**: Remove this duplicate word: '%s'." +level: warning +alpha: true +tokens: + - '[^\s]+' diff --git a/.hyperlint/automations/styles/cloudflare/spelling-exceptions.txt b/.hyperlint/automations/styles/cloudflare/spelling-exceptions.txt new file mode 100644 index 00000000000000..876a1cfdadc4aa --- /dev/null +++ b/.hyperlint/automations/styles/cloudflare/spelling-exceptions.txt @@ -0,0 +1,382 @@ +acls +airtable +agentless +akamai +akamai's +allowlist +allowlists +allowlisted +altus +anonymizer +anycast +apis +approvers +apresia +asn +asns +astro +async +atlassian +automations +backhaul +bing +bitly +blazor +blockchain +bolded +bool +boolean +booleans +breakpoint +broadcasted +brotli +bundler +cacheable +cacheability +captcha +captchas +cas +cdn +cdns +clientless +clis +cloudflared +cloudforce +cidrs +colocation +config +contentful +cPanel +cpus +cron +crowdstrike +crypto +cryptocurrency +Cryptomining +ctx +cyber +cybersafe +databrink +datadog +datastore +ddos +deno +dependabot +descaler +deserialization +deserializing +dev +devtools +Digicert +discoverability +dispositioned +dns +doctype +docusaurus +drand +egressed +egressing +eleventy +enricher +env +equinix +esbuild +etag +etags +ethereum +exfiltrate +exfiltration +failover +fastly +favicon +focusable +formspree +frontmatter +Gemalto +gemfile +geo +geolocate +Glendive +gokeyless +gpus +grafana +gridsome +GSuite +gzip +gzipped +hcaptcha +healthchecks +Heartbleed +hellix +hexo +hibernatable +hono +hostname +hostnames +hsms +HTMLRewriter +http +https +hubspot +hyperdrive +hyperdrives +hypertable +hypertables +iCloud +ingressed +interxion +iterable +iterables +ivanti +iprange +ips +ipsec +jamf +JAMStack +Jetpack +jira +JMeter +journaling +journaled +JSONata +jq +junos +jwts +kentik +keyless +Kibana +Kokoris +koropi +kv +kwai +Kyber +lambda +langchain +licensor +Linux +livestream +llms +lockdown +lowercased +logpull +logpush +logshare +lookback +lookups +loopback +lossy +malvertizing +marseille +maxmind +mbps +megaport +Memcache +meraki +middleware +mimecast +miniflare +misconfigured +mitigations +mixpanel +momento +monorepo +monorepos +monospace +multifactor +nameserver +nameservers +namespace +namespaced +namespaces +nats +Netflow +netlify +netmask +nonces +npm +nShield +nuxt +oauth +offboarding +offramp +okta +onramp +onboarded +onboarding +openssl +pagerduty +pageview +pageviews +passthrough +pathing +pdfs +performant +pfSense +pinecone +plaintext +pnpm +polyfill +polyfills +postgres +preact +preconfigured +preconnect +prefetch +prefetching +preload +prepend +prepended +prepending +prepends +prequeue +prequeueing +prisma +proxied +proxying +Proxyflare +punycode +qradar +qstash +Qualys +quantiles +quic +quickstarts +quora +qwik +railgun +readme +realtime +recaptcha +recommender +redactions +Redsys +referer +repo +revalidated +revalidates +revalidating +rollout +rollup +routable +rubygems +ruleset +rulesets +runtimes +sdk +sdks +Sectigo +serializable +severity +serverless +siems +sFlow +sharding +shortcode +shortcodes +signatureless +sippy +slackbot +snapchat +softflowd +sourcemap +sparkline +splunk +SQLi +ssl +stackable +Storyblok +strapi +stringify +strongswan +stytch +subcommand +subcommands +subfolder +subfolders +subhost +subhosts +submenu +subnet +subnets +subpage +subpages +subpath +subpaths +subreddit +subrequest +subrequests +subshell +substring +sumologic +supabase +svgs +swgs +tcp +teraco +tiering +tls +todo +toolchain +tooltip +tooltips +traceroute +transpile +transpiled +transpiling +ttls +turso +twilio +Ubiquiti +udp +unapplied +uncacheable +uncached +uncategorized +unencrypted +unindexed +unmanaged +unmetered +unoptimized +unproxied +unredacted +unsplash +unscanned +unscoped +upstash +unstyled +untrusted +uppercased +uris +urls +util +utms +waf +waitlist +walkthrough +wasm +wayback +webex +webpack +webpage +webpages +wireguard +wireshark +workerd +www +xata +XPath +vectorize +velocloud +vercel +viewport +vite +vms +vpn +vpns +vue +yubikey +yubikeys +zaraz +zaraz's +zayo +Zscaler diff --git a/.hyperlint/automations/styles/config/vocabularies/cloudflare/accept.txt b/.hyperlint/automations/styles/config/vocabularies/cloudflare/accept.txt new file mode 100644 index 00000000000000..97cc95b1be6f45 --- /dev/null +++ b/.hyperlint/automations/styles/config/vocabularies/cloudflare/accept.txt @@ -0,0 +1,46 @@ +anycast +Bitbucket +cdnjs +CLI +Cloudflare +cloudflared +Datadog +GitHub +GitLab +HashiCorp +Hono +HTTP +HTTPS +Internet +IoT +IPsec +JavaScript +Jira +jsDelivr +JSON +JWT +macOS +Next.js +NVIDIA +OAuth +PowerShell +TypeScript +UDP +unpkg +UNIX +URI +URL +Vectorize +WebRTC +WebSocket +Wi-Fi +WordPress +Worker +Workers +[wW]rangler +wrangler.toml +VMware +VPN +YubiKey +Zstandard +Zstd diff --git a/.hyperlint/automations/styles/plain-text-style-checks/spelling.md b/.hyperlint/automations/styles/plain-text-style-checks/spelling.md new file mode 100644 index 00000000000000..5fb8bcc6ba0e7c --- /dev/null +++ b/.hyperlint/automations/styles/plain-text-style-checks/spelling.md @@ -0,0 +1 @@ +Fix spelling errors. diff --git a/astro.config.ts b/astro.config.ts index f5ad0ed7468b01..03b85e732278e2 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -125,8 +125,7 @@ export default defineConfig({ "/http/resources/**", "{props.*}", "/", - "**/glossary/?term=**", - "/products/?product-group=*", + "/glossary/", "/products/", "/rules/snippets/examples/?operation=*", "/rules/transform/examples/?operation=*", diff --git a/package-lock.json b/package-lock.json index 232f4665ddf38e..dbbfc963fc4522 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,10 +18,10 @@ "@astrojs/starlight-docsearch": "0.6.0", "@astrojs/starlight-tailwind": "3.0.1", "@astrojs/tailwind": "5.1.5", - "@cloudflare/vitest-pool-workers": "0.8.15", - "@cloudflare/workers-types": "4.20250414.0", + "@cloudflare/vitest-pool-workers": "0.8.20", + "@cloudflare/workers-types": "4.20250421.0", "@codingheads/sticky-header": "1.0.2", - "@expressive-code/plugin-collapsible-sections": "0.41.1", + "@expressive-code/plugin-collapsible-sections": "0.41.2", "@floating-ui/react": "0.27.7", "@iarna/toml": "2.2.5", "@marsidev/react-turnstile": "1.1.0", @@ -32,8 +32,8 @@ "@types/node": "22.14.1", "@types/react": "19.0.7", "@types/react-dom": "19.0.4", - "@typescript-eslint/parser": "8.29.1", - "algoliasearch": "5.23.3", + "@typescript-eslint/parser": "8.30.1", + "algoliasearch": "5.23.4", "astro": "5.6.1", "astro-breadcrumbs": "3.3.1", "astro-icon": "1.1.5", @@ -49,7 +49,7 @@ "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-react": "7.37.5", "fast-glob": "3.3.3", - "fast-xml-parser": "5.2.0", + "fast-xml-parser": "5.2.1", "github-slugger": "2.0.0", "globals": "16.0.0", "hast-util-select": "6.0.4", @@ -75,6 +75,7 @@ "react-icons": "5.5.0", "react-instantsearch": "7.15.5", "react-markdown": "10.1.0", + "react-select": "5.10.1", "redirects-in-workers": "0.0.7", "rehype": "13.0.2", "rehype-autolink-headings": "7.1.0", @@ -89,8 +90,8 @@ "sharp": "0.34.1", "solarflare-theme": "0.0.4", "starlight-image-zoom": "0.11.1", - "starlight-links-validator": "0.14.3", - "starlight-package-managers": "0.10.0", + "starlight-links-validator": "0.16.0", + "starlight-package-managers": "0.11.0", "starlight-showcases": "0.3.0", "strip-markdown": "6.0.0", "svgo": "3.3.2", @@ -99,7 +100,7 @@ "ts-blank-space": "0.6.1", "tsx": "4.19.3", "typescript": "5.8.3", - "typescript-eslint": "8.29.1", + "typescript-eslint": "8.31.0", "unified": "11.0.5", "unist-util-visit": "5.0.0", "vite-tsconfig-paths": "5.1.4", @@ -225,41 +226,41 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.23.3.tgz", - "integrity": "sha512-yHI0hBwYcNPc+nJoHPTmmlP8pG6nstCEhpHaZQCDwLZhdMtNhd1hliZMCtLgNnvd1yKEgTt/ZDnTSdZLehfKdA==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.23.4.tgz", + "integrity": "sha512-WIMT2Kxy+FFWXWQxIU8QgbTioL+SGE24zhpj0kipG4uQbzXwONaWt7ffaYLjfge3gcGSgJVv+1VlahVckafluQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.23.3.tgz", - "integrity": "sha512-/70Ey+nZm4bRr2DcNrGU251YIn9lDu0g8xeP4jTCyunGRNFZ/d8hQAw9El34pcTpO1QDojJWAi6ywKIrUaks9w==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.23.4.tgz", + "integrity": "sha512-4B9gChENsQA9kFmFlb+x3YhBz2Gx3vSsm81FHI1yJ3fn2zlxREHmfrjyqYoMunsU7BybT/o5Nb7ccCbm/vfseA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.23.3.tgz", - "integrity": "sha512-fkpbPclIvaiyw3ADKRBCxMZhrNx/8//6DClfWGxeEiTJ0HEEYtHlqE6GjAkEJubz4v1ioCQkhZwMoFfFct2/vQ==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.23.4.tgz", + "integrity": "sha512-bsj0lwU2ytiWLtl7sPunr+oLe+0YJql9FozJln5BnIiqfKOaseSDdV42060vUy+D4373f2XBI009K/rm2IXYMA==", "dev": true, "license": "MIT", "engines": { @@ -267,64 +268,64 @@ } }, "node_modules/@algolia/client-insights": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.23.3.tgz", - "integrity": "sha512-TXc5Ve6QOCihWCTWY9N56CZxF1iovzpBWBUhQhy6JSiUfX3MXceV3saV+sXHQ1NVt2NKkyUfEspYHBsTrYzIDg==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.23.4.tgz", + "integrity": "sha512-XSCtAYvJ/hnfDHfRVMbBH0dayR+2ofVZy3jf5qyifjguC6rwxDsSdQvXpT0QFVyG+h8UPGtDhMPoUIng4wIcZA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.23.3.tgz", - "integrity": "sha512-JlReruxxiw9LB53jF/BmvVV+c0thiWQUHRdgtbVIEusvRaiX1IdpWJSPQExEtBQ7VFg89nP8niCzWtA34ktKSA==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.23.4.tgz", + "integrity": "sha512-l/0QvqgRFFOf7BnKSJ3myd1WbDr86ftVaa3PQwlsNh7IpIHmvVcT83Bi5zlORozVGMwaKfyPZo6O48PZELsOeA==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.3.tgz", - "integrity": "sha512-GDEExFMXwx0ScE0AZUA4F6ssztdJvGcXUkdWmWyt2hbYz43ukqmlVJqPaYgGmWdjJjvTx+dNF/hcinwWuXbCug==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.4.tgz", + "integrity": "sha512-TB0htrDgVacVGtPDyENoM6VIeYqR+pMsDovW94dfi2JoaRxfqu/tYmLpvgWcOknP6wLbr8bA+G7t/NiGksNAwQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.23.3.tgz", - "integrity": "sha512-mwofV6tGo0oHt4BPi+S5eLC3wnhOa4A1OVgPxetTxZuetod+2W4cxKavUW2v/Ma5CABXPLooXX+g9E67umELZw==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.23.4.tgz", + "integrity": "sha512-uBGo6KwUP6z+u6HZWRui8UJClS7fgUIAiYd1prUqCbkzDiCngTOzxaJbEvrdkK0hGCQtnPDiuNhC5MhtVNN4Eg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" @@ -338,87 +339,87 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.23.3.tgz", - "integrity": "sha512-Zxgmi7Hk4lI52YFphzzJekUqWxYxVjY2GrCpOxV+QiojvUi8Ru+knq6REcwLHFSwpwaDh2Th5pOefMpn4EkQCw==", + "version": "1.23.4", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.23.4.tgz", + "integrity": "sha512-Si6rFuGnSeEUPU9QchYvbknvEIyCRK7nkeaPVQdZpABU7m4V/tsiWdHmjVodtx3h20VZivJdHeQO9XbHxBOcCw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.23.3.tgz", - "integrity": "sha512-zi/IqvsmFW4E5gMaovAE4KRbXQ+LDYpPGG1nHtfuD5u3SSuQ31fT1vX2zqb6PbPTlgJMEmMk91Mbb7fIKmbQUw==", + "version": "1.23.4", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.23.4.tgz", + "integrity": "sha512-EXGoVVTshraqPJgr5cMd1fq7Jm71Ew6MpGCEaxI5PErBpJAmKdtjRIzs6JOGKHRaWLi+jdbJPYc2y8RN4qcx5Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.23.3.tgz", - "integrity": "sha512-C9TwbT1zGwULLXGSUSB+G7o/30djacPmQcsTHepvT47PVfPr2ISK/5QVtUnjMU84LEP8uNjuPUeM4ZeWVJ2iuQ==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.23.4.tgz", + "integrity": "sha512-1t6glwKVCkjvBNlng2itTf8fwaLSqkL4JaMENgR3WTGR8mmW2akocUy/ZYSQcG4TcR7qu4zW2UMGAwLoWoflgQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-common": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.3.tgz", - "integrity": "sha512-/7oYeUhYzY0lls7WtkAURM6wy21/Wwmq9GdujW1MpoYVC0ATXXxwCiAfOpYL9xdWxLV0R3wjyD+yZEni+nboKg==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.4.tgz", + "integrity": "sha512-UUuizcgc5+VSY8hqzDFVdJ3Wcto03lpbFRGPgW12pHTlUQHUTADtIpIhkLLOZRCjXmCVhtr97Z+eR6LcRYXa3Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3" + "@algolia/client-common": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.23.3.tgz", - "integrity": "sha512-r/4fKz4t+bSU1KdjRq+swdNvuGfJ0spV8aFTHPtcsF+1ZaN/VqmdXrTe5NkaZLSztFeMqKwZlJIVvE7VuGlFtw==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.23.4.tgz", + "integrity": "sha512-UhDg6elsek6NnV5z4VG1qMwR6vbp+rTMBEnl/v4hUyXQazU+CNdYkl++cpdmLwGI/7nXc28xtZiL90Es3I7viQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3" + "@algolia/client-common": "5.23.4" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.23.3.tgz", - "integrity": "sha512-UZiTNmUBQFPl3tUKuXaDd8BxEC0t0ny86wwW6XgwfM9IQf4PrzuMpvuOGIJMcCGlrNolZDEI0mcbz/tqRdKW7A==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.23.4.tgz", + "integrity": "sha512-jXGzGBRUS0oywQwnaCA6mMDJO7LoC3dYSLsyNfIqxDR4SNGLhtg3je0Y31lc24OA4nYyKAYgVLtjfrpcpsWShg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.23.3" + "@algolia/client-common": "5.23.4" }, "engines": { "node": ">= 14.0.0" @@ -1460,25 +1461,24 @@ } }, "node_modules/@cloudflare/vitest-pool-workers": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.8.15.tgz", - "integrity": "sha512-miiHmw+wZvjXUtugTqLXNsXlxo+KeHHu7wvOJ3zbkFqIKc1lgIj4nQlU9FpqBfrR8biHqzU74Qx6NV7MZVrs4A==", + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.8.20.tgz", + "integrity": "sha512-Xg5XinIY1gFGZ9zWuHetgkCm74/B4NqrVBiMDtsA3Hxx4NmA1K5R+2RdXigMtixPmAFVIjzZnCEaCi2AB7BIeA==", "dev": true, "license": "MIT", "dependencies": { "birpc": "0.2.14", "cjs-module-lexer": "^1.2.3", "devalue": "^4.3.0", - "esbuild": "0.24.2", - "miniflare": "4.20250409.0", + "miniflare": "4.20250422.0", "semver": "^7.7.1", - "wrangler": "4.10.0", + "wrangler": "4.13.0", "zod": "^3.22.3" }, "peerDependencies": { - "@vitest/runner": "2.0.x - 3.0.x", - "@vitest/snapshot": "2.0.x - 3.0.x", - "vitest": "2.0.x - 3.0.x" + "@vitest/runner": "2.0.x - 3.1.x", + "@vitest/snapshot": "2.0.x - 3.1.x", + "vitest": "2.0.x - 3.1.x" } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/unenv-preset": { @@ -1498,9 +1498,9 @@ } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250409.0.tgz", - "integrity": "sha512-smA9yq77xsdQ1NMLhFz3JZxMHGd01lg0bE+X3dTFmIUs+hHskJ+HJ/IkMFInkCCeEFlUkoL4yO7ilaU/fin/xA==", + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250422.0.tgz", + "integrity": "sha512-2FWl8TLpC4Knuyw8GmNgUSoJCNJNNGJ7Xv90j2n8FiXR5Clp9jSpm2ovK8RP9P751yX1/iIp8e7QufR/XDB6ow==", "cpu": [ "x64" ], @@ -1515,9 +1515,9 @@ } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250409.0.tgz", - "integrity": "sha512-oLVcf+Y5Qun8JHcy1VcR/YnbA5U2ne0czh3XNhDqdHZFK8+vKeC7MnVPX+kEqQA3+uLcMM1/FsIDU1U4Na0h1g==", + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250422.0.tgz", + "integrity": "sha512-GY3W74ivqxsYldacEbMtcSbG7LsS9hPo5UybKIw4RO9GzP7UC5WGnPfuI4PE2SnJOnw7nwSrBLuhGRPe/QQHkQ==", "cpu": [ "arm64" ], @@ -1532,9 +1532,9 @@ } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250409.0.tgz", - "integrity": "sha512-D31B4kdC3a0RD5yfpdIa89//kGHbYsYihZmejm1k4S4NHOho3MUDHAEh4aHtafQNXbZdydGHlSyiVYjTdQ9ILQ==", + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250422.0.tgz", + "integrity": "sha512-mtNkEygKtlRq9pMRlm9J4nX4uVHU1AtJ3mSkdNwPwhisTpo989O5Zd0SH9CYwAk8+NmlZsXELpODUVQxQ7FJgw==", "cpu": [ "x64" ], @@ -1549,9 +1549,9 @@ } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250409.0.tgz", - "integrity": "sha512-Sr59P0TREayil5OQ7kcbjuIn6L6OTSRLI91LKu0D8vi1hss2q9FUwBcwxg0+Yd/x+ty/x7IISiAK5QBkAMeITQ==", + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250422.0.tgz", + "integrity": "sha512-ILlW4/kAoFJvSryrr/QJsiHBdMTf/fjUrIM0hxeuQue8zIEvAVqM1tzpUh8bPJT6AQEbk5ziwkfucA939Z6Tnw==", "cpu": [ "arm64" ], @@ -1562,24 +1562,458 @@ "linux" ], "engines": { - "node": ">=16" + "node": ">=16" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250422.0.tgz", + "integrity": "sha512-O2f6f7oxU/oaWX/3/5d/9qvzNSKsw72RsQFjpew2va7KwnnUciI2LnbYR6KYOqRGYrEoiMJxpWPQaYaFVj8t1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workers-types": { + "version": "4.20250423.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250423.0.tgz", + "integrity": "sha512-uzy7fvgYIs9YCEaPScC+RnZvd+yJJCqLCEe/n/6p2PZTxWbDmiZjtJQiP5Zx6G0p64ZD/0ZRmtALfDZDNYBDHg==", + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "peer": true + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", + "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", + "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", + "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", + "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", + "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", + "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", + "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", + "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", + "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", + "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ia32": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", + "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-loong64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", + "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", + "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", + "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", + "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-s390x": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", + "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", + "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", + "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", + "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", + "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", + "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/sunos-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", + "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-arm64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", + "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-ia32": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", + "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@cloudflare/vitest-pool-workers/node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250409.0.tgz", - "integrity": "sha512-dK9I8zBX5rR7MtaaP2AhICQTEw3PVzHcsltN8o46w7JsbYlMvFOj27FfYH5dhs3IahgmIfw2e572QXW2o/dbpg==", + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-x64": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", + "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0", + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/@img/sharp-darwin-arm64": { @@ -1972,10 +2406,51 @@ "node": ">= 0.6" } }, + "node_modules/@cloudflare/vitest-pool-workers/node_modules/esbuild": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", + "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.2", + "@esbuild/android-arm": "0.25.2", + "@esbuild/android-arm64": "0.25.2", + "@esbuild/android-x64": "0.25.2", + "@esbuild/darwin-arm64": "0.25.2", + "@esbuild/darwin-x64": "0.25.2", + "@esbuild/freebsd-arm64": "0.25.2", + "@esbuild/freebsd-x64": "0.25.2", + "@esbuild/linux-arm": "0.25.2", + "@esbuild/linux-arm64": "0.25.2", + "@esbuild/linux-ia32": "0.25.2", + "@esbuild/linux-loong64": "0.25.2", + "@esbuild/linux-mips64el": "0.25.2", + "@esbuild/linux-ppc64": "0.25.2", + "@esbuild/linux-riscv64": "0.25.2", + "@esbuild/linux-s390x": "0.25.2", + "@esbuild/linux-x64": "0.25.2", + "@esbuild/netbsd-arm64": "0.25.2", + "@esbuild/netbsd-x64": "0.25.2", + "@esbuild/openbsd-arm64": "0.25.2", + "@esbuild/openbsd-x64": "0.25.2", + "@esbuild/sunos-x64": "0.25.2", + "@esbuild/win32-arm64": "0.25.2", + "@esbuild/win32-ia32": "0.25.2", + "@esbuild/win32-x64": "0.25.2" + } + }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/miniflare": { - "version": "4.20250409.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250409.0.tgz", - "integrity": "sha512-Hu02dYZvFR+MyrI57O6rSrOUTofcO9EIvcodgq2SAHzAeWSJw2E0oq9lylOrcckFwPMcwxUAb/cQN1LIoCyySw==", + "version": "4.20250422.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250422.0.tgz", + "integrity": "sha512-3frXK9EZEWQkHMDyppeIbUKwd7OQkNOm2gBtQQzjQ4gtzQmh+yxkyJiiylf+fGbz86djQTLKKQdQ1FC4yM3AMg==", "dev": true, "license": "MIT", "dependencies": { @@ -1986,7 +2461,7 @@ "glob-to-regexp": "0.4.1", "stoppable": "1.1.0", "undici": "^5.28.5", - "workerd": "1.20250409.0", + "workerd": "1.20250422.0", "ws": "8.18.0", "youch": "3.3.4", "zod": "3.22.3" @@ -2074,9 +2549,9 @@ } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/workerd": { - "version": "1.20250409.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250409.0.tgz", - "integrity": "sha512-hqjX9swiHvrkOI3jlH9lrZsZRRv9lddUwcMe8Ua76jnyQz+brybWznNjHu8U5oswwcrFwvky1A4CcLjcLY31gQ==", + "version": "1.20250422.0", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250422.0.tgz", + "integrity": "sha512-q3ws6MIa9GJQqq1Q52qoD7vCx1203fjKNPmtRV1vvplrsfYphjr5pOAnZGUODFB1BnsDWypr71Luy7OonT0vug==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -2087,28 +2562,28 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20250409.0", - "@cloudflare/workerd-darwin-arm64": "1.20250409.0", - "@cloudflare/workerd-linux-64": "1.20250409.0", - "@cloudflare/workerd-linux-arm64": "1.20250409.0", - "@cloudflare/workerd-windows-64": "1.20250409.0" + "@cloudflare/workerd-darwin-64": "1.20250422.0", + "@cloudflare/workerd-darwin-arm64": "1.20250422.0", + "@cloudflare/workerd-linux-64": "1.20250422.0", + "@cloudflare/workerd-linux-arm64": "1.20250422.0", + "@cloudflare/workerd-windows-64": "1.20250422.0" } }, "node_modules/@cloudflare/vitest-pool-workers/node_modules/wrangler": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.10.0.tgz", - "integrity": "sha512-fTE4hZ79msEUt8+HEjl/8Q72haCyzPLu4PgrU3L81ysmjrMEdiYfUPqnvCkBUVtJvrDNdctTEimkufT1Y0ipNg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.13.0.tgz", + "integrity": "sha512-CVRNL0unLmzhVeUkW+9neZHFITSo7UDROz8VYxi8YhitV9Rr1xMojS1cGjQTaQX8F3nAEsTRJXTwwTZ0JoJm6g==", "dev": true, "license": "MIT OR Apache-2.0", "dependencies": { "@cloudflare/kv-asset-handler": "0.4.0", "@cloudflare/unenv-preset": "2.3.1", "blake3-wasm": "2.1.5", - "esbuild": "0.24.2", - "miniflare": "4.20250409.0", + "esbuild": "0.25.2", + "miniflare": "4.20250422.0", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.15", - "workerd": "1.20250409.0" + "workerd": "1.20250422.0" }, "bin": { "wrangler": "bin/wrangler.js", @@ -2122,7 +2597,7 @@ "sharp": "^0.33.5" }, "peerDependencies": { - "@cloudflare/workers-types": "^4.20250409.0" + "@cloudflare/workers-types": "^4.20250422.0" }, "peerDependenciesMeta": { "@cloudflare/workers-types": { @@ -2238,9 +2713,9 @@ } }, "node_modules/@cloudflare/workers-types": { - "version": "4.20250414.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250414.0.tgz", - "integrity": "sha512-ZHl8LiyUMWiIxYqpasen8Lc75Ef+0afqL26TEd95eRIi5kgkEbjDJ7uIUnpxMoZTRI0J8Hy5YEPtt4nFXt+TpA==", + "version": "4.20250421.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250421.0.tgz", + "integrity": "sha512-GYSmQxF9ZE2kkmjCSiYTFdcXUHPeBrz9XvKhqGLTKT8ITYxN5kXy9OYlpkhtVWWUE+XNq7qm5uSKwluaOBKoAw==", "dev": true, "license": "MIT OR Apache-2.0" }, @@ -2465,6 +2940,162 @@ "tslib": "^2.4.0" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "dev": true, + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", @@ -3108,19 +3739,19 @@ } }, "node_modules/@expressive-code/plugin-collapsible-sections": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/plugin-collapsible-sections/-/plugin-collapsible-sections-0.41.1.tgz", - "integrity": "sha512-/sF6maDwv71GoLPP3WcvGQuJ0ew47gG3vmpV7nzq3I2jxUtGl7NKcMfT87bMkT7Hrp0FvaHe8s7WHpQEu5vlAg==", + "version": "0.41.2", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-collapsible-sections/-/plugin-collapsible-sections-0.41.2.tgz", + "integrity": "sha512-gyg864xlkLFYLDlOoO5wyZVmuFOc2vi6b/tJjEfXDj/xc8//ttuRLZ0EjuLIkch1hEhEQc9XF6agmiNYUCzeww==", "dev": true, "license": "MIT", "dependencies": { - "@expressive-code/core": "^0.41.1" + "@expressive-code/core": "^0.41.2" } }, "node_modules/@expressive-code/plugin-collapsible-sections/node_modules/@expressive-code/core": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.41.1.tgz", - "integrity": "sha512-mG2IrN4t/NGPmEeeswmttsW7W7c96sz3ASjo1psQnOqU5QWAF61HpnBu3lPxHI8iQJyZI8wfAroo9FFpwlkvAQ==", + "version": "0.41.2", + "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.41.2.tgz", + "integrity": "sha512-AJW5Tp9czbLqKMzwudL9Rv4js9afXBxkSGLmCNPq1iRgAYcx9NkTPJiSNCesjKRWoVC328AdSu6fqrD22zDgDg==", "dev": true, "license": "MIT", "dependencies": { @@ -5222,6 +5853,13 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/picomatch": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.2.tgz", @@ -5265,6 +5903,16 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, "node_modules/@types/sax": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", @@ -5301,59 +5949,252 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", + "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/type-utils": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", + "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", + "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", + "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@types/node": "*" + "@typescript-eslint/types": "8.31.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", - "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", + "node_modules/@typescript-eslint/types": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", + "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/type-utils": "8.29.1", - "@typescript-eslint/utils": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", - "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", + "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", - "debug": "^4.3.4" + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5363,19 +6204,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", - "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5383,19 +6225,21 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", - "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.1", - "@typescript-eslint/utils": "8.29.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5403,16 +6247,12 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", - "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", "dev": true, "license": "MIT", "engines": { @@ -5423,15 +6263,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", - "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/visitor-keys": "8.29.1", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -5450,17 +6290,15 @@ "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", - "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.1", - "@typescript-eslint/types": "8.29.1", - "@typescript-eslint/typescript-estree": "8.29.1" + "@typescript-eslint/types": "8.31.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5468,20 +6306,16 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", - "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", + "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/types": "8.30.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -5827,25 +6661,25 @@ } }, "node_modules/algoliasearch": { - "version": "5.23.3", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.23.3.tgz", - "integrity": "sha512-0JlUaY/hl3LrKvbidI5FysEi2ggAlcTHM8AHV2UsrJUXnNo8/lWBfhzc1b7o8bK3YZNiU26JtLyT9exoj5VBgA==", + "version": "5.23.4", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.23.4.tgz", + "integrity": "sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-abtesting": "5.23.3", - "@algolia/client-analytics": "5.23.3", - "@algolia/client-common": "5.23.3", - "@algolia/client-insights": "5.23.3", - "@algolia/client-personalization": "5.23.3", - "@algolia/client-query-suggestions": "5.23.3", - "@algolia/client-search": "5.23.3", - "@algolia/ingestion": "1.23.3", - "@algolia/monitoring": "1.23.3", - "@algolia/recommend": "5.23.3", - "@algolia/requester-browser-xhr": "5.23.3", - "@algolia/requester-fetch": "5.23.3", - "@algolia/requester-node-http": "5.23.3" + "@algolia/client-abtesting": "5.23.4", + "@algolia/client-analytics": "5.23.4", + "@algolia/client-common": "5.23.4", + "@algolia/client-insights": "5.23.4", + "@algolia/client-personalization": "5.23.4", + "@algolia/client-query-suggestions": "5.23.4", + "@algolia/client-search": "5.23.4", + "@algolia/ingestion": "1.23.4", + "@algolia/monitoring": "1.23.4", + "@algolia/recommend": "5.23.4", + "@algolia/requester-browser-xhr": "5.23.4", + "@algolia/requester-fetch": "5.23.4", + "@algolia/requester-node-http": "5.23.4" }, "engines": { "node": ">= 14.0.0" @@ -7467,6 +8301,43 @@ "node": ">= 0.4" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -8356,6 +9227,33 @@ "layout-base": "^1.0.0" } }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -9384,6 +10282,17 @@ "node": ">=0.10.0" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -9576,6 +10485,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", @@ -10536,9 +11455,9 @@ "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.0.tgz", - "integrity": "sha512-Uw9+Mjt4SBRud1IcaYuW/O0lW8SKKdMl5g7g24HiIuyH5fQSD+AVLybSlJtqLYEbytVFjWQa5DMGcNgeksdRBg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.1.tgz", + "integrity": "sha512-Kqq/ewnRACQ20e0BlQ5KqHRYWRBp7yv+jttK4Yj2yY+2ldgCoxJkrP1NHUhjypsJ+eQXlGJ/jebM3wa60s1rbQ==", "dev": true, "funding": [ { @@ -10615,6 +11534,13 @@ "node": ">=8" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true, + "license": "MIT" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -11713,6 +12639,16 @@ "hulk": "bin/hulk" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/htm": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", @@ -12015,6 +12951,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-async-function": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", @@ -12583,6 +13526,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-compare": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", @@ -13642,6 +14592,13 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -15223,6 +16180,25 @@ "dev": true, "license": "MIT" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-latin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", @@ -15991,6 +16967,45 @@ "node": ">=0.10.0" } }, + "node_modules/react-select": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.1.tgz", + "integrity": "sha512-roPEZUL4aRZDx6DcsD+ZNreVl+fM8VsKn0Wtex1v4IazH60ILp5xhdlp464IsEAlJdXeD+BhDAFsBVMfvLQueA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -17342,9 +18357,9 @@ } }, "node_modules/starlight-links-validator": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/starlight-links-validator/-/starlight-links-validator-0.14.3.tgz", - "integrity": "sha512-2CvQs0ZdIVExrEQ1bn0r2aFx4n+VSOb6vDWK+gTNb5N1c+nXJ7VjUbEsQhj+9Lb7XgY6Nxqz9JXUM9364hJ3ZA==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/starlight-links-validator/-/starlight-links-validator-0.16.0.tgz", + "integrity": "sha512-wInToor19C7UxhesPuxTBIhB1LH1wzNQHD4HaumfcB+yFhg5u80yQEnkZDrABHrUEEEwFm//NoZbWhnUj1m2ug==", "dev": true, "license": "MIT", "dependencies": { @@ -17363,13 +18378,13 @@ "node": ">=18.17.1" }, "peerDependencies": { - "@astrojs/starlight": ">=0.15.0" + "@astrojs/starlight": ">=0.32.0" } }, "node_modules/starlight-package-managers": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/starlight-package-managers/-/starlight-package-managers-0.10.0.tgz", - "integrity": "sha512-ndliTHXzaCIQ2FFnq5KIH5Uhs9FCACeS3XQMtx/35aSPXzeGsoGxBNreC1zBif4yzGZRCJN3kXBqjUO82WDtcA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/starlight-package-managers/-/starlight-package-managers-0.11.0.tgz", + "integrity": "sha512-ItOgeF4YYI4lKaeqGBuRBNsmPTXQv16Pc7U+hzkvJoR9HzOxhk2wSNkRzxSnqX5OZmmsAwDy49NYqpFyzkO8Bw==", "dev": true, "license": "MIT", "engines": { @@ -18823,15 +19838,40 @@ } }, "node_modules/typescript-eslint": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz", - "integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.0.tgz", + "integrity": "sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.31.0", + "@typescript-eslint/parser": "8.31.0", + "@typescript-eslint/utils": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", + "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.29.1", - "@typescript-eslint/parser": "8.29.1", - "@typescript-eslint/utils": "8.29.1" + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "debug": "^4.3.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -18845,6 +19885,83 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/ufo": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", @@ -19244,6 +20361,21 @@ "punycode": "^2.1.0" } }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/use-sync-external-store": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", diff --git a/package.json b/package.json index d9b164ae7d7ce8..34523a07efa983 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,10 @@ "@astrojs/starlight-docsearch": "0.6.0", "@astrojs/starlight-tailwind": "3.0.1", "@astrojs/tailwind": "5.1.5", - "@cloudflare/vitest-pool-workers": "0.8.15", - "@cloudflare/workers-types": "4.20250414.0", + "@cloudflare/vitest-pool-workers": "0.8.20", + "@cloudflare/workers-types": "4.20250421.0", "@codingheads/sticky-header": "1.0.2", - "@expressive-code/plugin-collapsible-sections": "0.41.1", + "@expressive-code/plugin-collapsible-sections": "0.41.2", "@floating-ui/react": "0.27.7", "@iarna/toml": "2.2.5", "@marsidev/react-turnstile": "1.1.0", @@ -50,8 +50,8 @@ "@types/node": "22.14.1", "@types/react": "19.0.7", "@types/react-dom": "19.0.4", - "@typescript-eslint/parser": "8.29.1", - "algoliasearch": "5.23.3", + "@typescript-eslint/parser": "8.30.1", + "algoliasearch": "5.23.4", "astro": "5.6.1", "astro-breadcrumbs": "3.3.1", "astro-icon": "1.1.5", @@ -67,7 +67,7 @@ "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-react": "7.37.5", "fast-glob": "3.3.3", - "fast-xml-parser": "5.2.0", + "fast-xml-parser": "5.2.1", "github-slugger": "2.0.0", "globals": "16.0.0", "hast-util-select": "6.0.4", @@ -93,6 +93,7 @@ "react-icons": "5.5.0", "react-instantsearch": "7.15.5", "react-markdown": "10.1.0", + "react-select": "5.10.1", "redirects-in-workers": "0.0.7", "rehype": "13.0.2", "rehype-autolink-headings": "7.1.0", @@ -107,8 +108,8 @@ "sharp": "0.34.1", "solarflare-theme": "0.0.4", "starlight-image-zoom": "0.11.1", - "starlight-links-validator": "0.14.3", - "starlight-package-managers": "0.10.0", + "starlight-links-validator": "0.16.0", + "starlight-package-managers": "0.11.0", "starlight-showcases": "0.3.0", "strip-markdown": "6.0.0", "svgo": "3.3.2", @@ -117,7 +118,7 @@ "ts-blank-space": "0.6.1", "tsx": "4.19.3", "typescript": "5.8.3", - "typescript-eslint": "8.29.1", + "typescript-eslint": "8.31.0", "unified": "11.0.5", "unist-util-visit": "5.0.0", "vite-tsconfig-paths": "5.1.4", diff --git a/public/__redirects b/public/__redirects index 689ba5ed3138ab..7fb92fca056a66 100644 --- a/public/__redirects +++ b/public/__redirects @@ -9,6 +9,19 @@ # changelog /changelog/rss.xml /changelog/rss/index.xml 301 +/api-shield/changelog/index.xml /changelog/rss/api-shield.xml 301 +/cache/changelog/index.xml /changelog/rss/cache.xml 301 +/dns/changelog/index.xml /changelog/rss/dns.xml 301 +/fundamentals/changelog/index.xml /changelog/rss/fundamentals.xml 301 +/logs/changelog/index.xml /changelog/rss/logs.xml 301 +/magic-cloud-networking/changelog/index.xml /changelog/rss/magic-cloud-networking.xml 301 +/magic-firewall/changelog/index.xml /changelog/rss/magic-firewall.xml 301 +/magic-network-monitoring/changelog/index.xml /changelog/rss/magic-network-monitoring.xml 301 +/magic-transit/changelog/index.xml /changelog/rss/magic-transit.xml 301 +/magic-wan/changelog/index.xml /changelog/rss/magic-wan.xml 301 +/network-interconnect/changelog/index.xml /changelog/rss/network-interconnect.xml 301 +/rules/changelog/index.xml /changelog/rss/rules.xml 301 +/ssl/changelog/index.xml /changelog/rss/ssl.xml 301 ## legacy /changelog/index.xml /release-notes/index.xml 301 @@ -177,6 +190,9 @@ # api-shield /api-shield/security/sequential-abuse-detection/ /api-shield/security/sequence-analytics/ 301 +#autorag +/autorag/usage/recipes/ /autorag/how-to/ 301 + # bots /bots/about/plans/ /bots/plans/ 301 /bots/about/plans/biz-and-ent/ /bots/plans/biz-and-ent/ 301 @@ -804,7 +820,7 @@ # magic-transit /magic-transit/magic-firewall/ /magic-firewall/ 301 /magic-transit/set-up/onboarding/ /magic-transit/get-started/ 301 -/magic-transit/set-up/provide-configuration-data/assign-tunnel-route-priorities/ /magic-transit/how-to/configure-static-routes/ 301 +/magic-transit/set-up/provide-configuration-data/assign-tunnel-route-priorities/ /magic-transit/how-to/configure-routes/ 301 /magic-transit/set-up/requirements/ /magic-transit/get-started/ 301 /magic-transit/get-started/configure-tunnels/specify-gre-tunnel-endpoints/ /magic-transit/how-to/configure-tunnels/ 301 /magic-transit/about/health-checks/ /magic-transit/reference/tunnel-health-checks/ 301 @@ -814,6 +830,8 @@ /magic-transit/prerequisites/ /magic-transit/get-started/ 301 /magic-transit/how-to/ /magic-transit/how-to/configure-tunnels/ 301 /magic-transit/reference/ /magic-transit/reference/anti-replay-protection/ 301 +/magic-transit/how-to/configure-static-routes/ /magic-transit/how-to/configure-routes/ 301 +/magic-transit/how-to/bgp-peering/ /magic-transit/how-to/configure-routes/ 301 # magic-wan /magic-wan/tutorials/ipsec/ /magic-wan/reference/tunnels/#ipsec-tunnels 301 @@ -837,6 +855,8 @@ /magic-wan/configuration/common-settings/view-analytics/ /magic-wan/analytics/ 301 /magic-wan/prerequisites/ /magic-wan/get-started/ 301 /magic-wan/configuration/common-settings/check-tunnel-health-dashboard/ /magic-wan/configuration/common-settings/tunnel-health-checks/ 301 +/magic-wan/configuration/manually/how-to/configure-static-routes/ /magic-wan/configuration/manually/how-to/configure-routes/ 301 +/magic-wan/configuration/manually/how-to/bgp-peering/ /magic-wan/configuration/manually/how-to/configure-routes/ 301 # notifications /fundamentals/notifications/ /notifications/ 301 @@ -999,6 +1019,9 @@ /rules/page-rules/how-to/rewrite-host-headers/ /rules/origin-rules/examples/change-uri-path-and-host-header/ 301 /rules/page-rules/how-to/override-url-or-ip-address/ /rules/origin-rules/features/ 301 /rules/origin-rules/examples/change-uri-path-and-host-header/ /rules/origin-rules/tutorials/change-uri-path-and-host-header/ 301 +/rules/custom-errors/create-api/ /rules/custom-errors/create-rules/ 301 +/rules/custom-errors/error-tokens/ /rules/custom-errors/reference/error-tokens/ 301 +/rules/custom-errors/parameters/ /rules/custom-errors/reference/parameters/ 301 # ruleset engine /ruleset-engine/rules-language/fields/standard-fields/ /ruleset-engine/rules-language/fields/reference/ 301 @@ -1220,6 +1243,9 @@ /support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-10xxx-errors/ /support/troubleshooting/http-status-codes/cloudflare-10xxx-errors/ 301 /support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/ /support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/ 301 /support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/ /support/troubleshooting/http-status-codes/cloudflare-5xx-errors/ 301 +/support/more-dashboard-apps/cloudflare-custom-pages/configuring-custom-pages-error-and-challenge/ /rules/custom-errors/ 301 +/support/more-dashboard-apps/cloudflare-custom-pages/ /rules/custom-errors/ 301 +/support/more-dashboard-apps/ /support/ 301 # r2 /r2/platform/s3-compatibility/api/ /r2/api/s3/api/ 301 @@ -1607,10 +1633,14 @@ # Guides section /workers-ai/demos/ /workers-ai/guides/demos-architectures/ 301 +# Features section +/workers-ai/markdown-conversion/ /workers-ai/features/markdown-conversion/ 301 + # workflows /workflows/reference/storage-options/ /workers/platform/storage-options/ 301 + # workers KV /kv/platform/environments/ /kv/reference/environments/ 301 /kv/platform/kv-commands/ /kv/reference/kv-commands/ 301 @@ -1743,6 +1773,7 @@ /cloudflare-one/connections/connect-networks/install-and-setup/tunnel-permissions/ /cloudflare-one/connections/connect-networks/configure-tunnels/local-management/tunnel-permissions/ 301 /cloudflare-one/connections/connect-networks/install-and-setup/ports-and-ips/ /cloudflare-one/connections/connect-networks/configure-tunnels/tunnel-with-firewall/ 301 /cloudflare-one/connections/connect-networks/install-and-setup/tunnel-useful-terms/ /cloudflare-one/connections/connect-networks/get-started/tunnel-useful-terms/ 301 +/cloudflare-one/connections/connect-networks/install-and-setup/installation/ /cloudflare-one/connections/connect-networks/downloads/update-cloudflared/ 301 /cloudflare-one/connections/connect-networks/do-more-with-tunnels/secure-server/ /cloudflare-one/connections/connect-networks/configure-tunnels/tunnel-with-firewall/ 301 /cloudflare-one/connections/connect-networks/do-more-with-tunnels/grafana/ /cloudflare-one/connections/connect-networks/monitor-tunnels/grafana/ 301 /cloudflare-one/connections/connect-networks/downloads/system-requirements/ /cloudflare-one/connections/connect-networks/deploy-tunnels/system-requirements/ 301 diff --git a/src/assets/images/changelog/access/example-policy-tester.png b/src/assets/images/changelog/access/example-policy-tester.png new file mode 100644 index 00000000000000..dca5cbdb914121 Binary files /dev/null and b/src/assets/images/changelog/access/example-policy-tester.png differ diff --git a/src/assets/images/changelog/api-shield/endpoint-management-label.png b/src/assets/images/changelog/api-shield/endpoint-management-label.png new file mode 100644 index 00000000000000..c73905cb6c5068 Binary files /dev/null and b/src/assets/images/changelog/api-shield/endpoint-management-label.png differ diff --git a/src/assets/images/changelog/api-shield/posture-management-insight.png b/src/assets/images/changelog/api-shield/posture-management-insight.png new file mode 100644 index 00000000000000..dd9c70bb2e6eee Binary files /dev/null and b/src/assets/images/changelog/api-shield/posture-management-insight.png differ diff --git a/src/assets/images/changelog/rules/custom-errors.gif b/src/assets/images/changelog/rules/custom-errors.gif new file mode 100644 index 00000000000000..7ec96e862485e7 Binary files /dev/null and b/src/assets/images/changelog/rules/custom-errors.gif differ diff --git a/src/assets/images/fundamentals/get-started/overview-account-id.png b/src/assets/images/fundamentals/get-started/overview-account-id.png new file mode 100644 index 00000000000000..3ab93e85401759 Binary files /dev/null and b/src/assets/images/fundamentals/get-started/overview-account-id.png differ diff --git a/src/components/APIRequest.astro b/src/components/APIRequest.astro index 909a801e7621e8..11718e0ffb6ec2 100644 --- a/src/components/APIRequest.astro +++ b/src/components/APIRequest.astro @@ -67,11 +67,19 @@ if (extraneousParameters.length > 0) { } for (const parameter of endpointParameters) { - if (parameter.in === "path") { - const encoded = encodeURIComponent(`{${parameter.name}}`); - - if (parameters?.[parameter.name]) { - url.pathname = url.pathname.replace(encoded, parameters[parameter.name]); + const value = parameters?.[parameter.name]; + if (value) { + if (parameter.in === "path") { + const encoded = encodeURIComponent(`{${parameter.name}}`); + url.pathname = url.pathname.replace(encoded, value); + } else if (parameter.in === "query") { + if (Array.isArray(value)) { + for (const v of value) { + url.searchParams.append(parameter.name, v); + } + } else { + url.searchParams.set(parameter.name, value); + } } } } diff --git a/src/components/CURL.astro b/src/components/CURL.astro index edcd52bdab3ac5..6ca60c33b2dcdf 100644 --- a/src/components/CURL.astro +++ b/src/components/CURL.astro @@ -15,18 +15,42 @@ const props = z.object({ headers: z.record(z.string(), z.string()).default({}), json: z.union([Record, z.array(Record)]).optional(), form: Record.optional(), + query: z + .record(z.string(), z.union([z.string(), z.array(z.string())])) + .optional(), code: z .custom, "code" | "lang">>() .optional(), }); -const { method, url, headers, json, form, code } = props.parse(Astro.props); +const { + method, + url: baseUrl, + headers, + json, + form, + query, + code, +} = props.parse(Astro.props); if (json && form) { throw new Error("[CURL] Cannot use both 'json' and 'form' properties."); } -const lines = [`curl ${url}`, `\t--request ${method}`]; +const url = new URL(baseUrl); +if (query) { + for (const [key, value] of Object.entries(query)) { + if (Array.isArray(value)) { + for (const v of value) { + url.searchParams.append(key, v); + } + } else { + url.searchParams.set(key, value); + } + } +} + +const lines = [`curl "${url.toString()}"`, `\t--request ${method}`]; if (headers) { for (const [key, value] of Object.entries(headers)) { diff --git a/src/components/GitHubCode.astro b/src/components/GitHubCode.astro index c27344d7b14b54..156912c9924e5a 100644 --- a/src/components/GitHubCode.astro +++ b/src/components/GitHubCode.astro @@ -29,7 +29,7 @@ const props = z ) .refine( (val) => { - return val.useTypeScriptExample && val.lang === "ts"; + return !val.useTypeScriptExample || val.lang === "ts"; }, { message: diff --git a/src/components/ProductChangelog.astro b/src/components/ProductChangelog.astro new file mode 100644 index 00000000000000..831edc253a527c --- /dev/null +++ b/src/components/ProductChangelog.astro @@ -0,0 +1,64 @@ +--- +import { getChangelogs, type GetChangelogsOptions } from "~/util/changelog"; +import { reference } from "astro:content"; +import { z } from "astro:schema"; +import { getCollection, render } from "astro:content"; +import { slug } from "github-slugger"; +import RSSButton from "~/components/RSSButton.astro"; +import AnchorHeading from "~/components/AnchorHeading.astro"; +import { format } from "date-fns"; +const props = z + .object({ + product: reference("products"), + }) + .or( + z.object({ + area: z.string(), + }), + ) + .and( + z.object({ + hideEntry: z.string().optional(), + }), + );; +const input = await props.parseAsync(Astro.props); +let filter: GetChangelogsOptions["filter"]; +let rss: string; +if ("product" in input) { + rss = `/changelog/rss/${input.product.id}.xml`; + filter = (e) => { + return ( + !e.data.hidden && + e.data.products.some(({ id }) => id === input.product.id) && + input.hideEntry !== e.id + ); + }; +} else { + rss = `/changelog/rss/${slug(input.area)}.xml`; + const products = await getCollection("products", (e) => { + return e.data.product.group === input.area && + input.hideEntry !== e.id; + }); + filter = (e) => { + return e.data.products.some((x) => products.some((y) => x.id === y.id)); + }; +} +const changelogs = await getChangelogs({ filter }); +--- + + + +{ + changelogs.map(async (entry) => { + + + const { Content } = await render(entry); + return ( + +
+ {entry.data.title} +
+ + ); + }) +} \ No newline at end of file diff --git a/src/components/changelog/Header.astro b/src/components/changelog/Header.astro index e1280a3e9f2423..6d8750dcef682c 100644 --- a/src/components/changelog/Header.astro +++ b/src/components/changelog/Header.astro @@ -2,9 +2,10 @@ import { Image } from "astro:assets"; import { z } from "astro:schema"; import { getEntry, type CollectionEntry } from "astro:content"; +import { groups } from "~/util/products"; import RSSButton from "~/components/RSSButton.astro"; - +import ProductSelect from "~/components/changelog/ProductSelect"; import HeroImage from "~/assets/images/changelog/hero.svg"; type Props = z.input; @@ -31,7 +32,7 @@ const products = await uniqueProducts(notes); ---

Changelog

@@ -45,24 +46,13 @@ const products = await uniqueProducts(notes); icon="right-caret" />

- { - products.length > 0 && ( -
- -
- ) - } +
+ { + products.length > 0 && ( + + ) + } +
hero image
diff --git a/src/components/changelog/ProductSelect.tsx b/src/components/changelog/ProductSelect.tsx new file mode 100644 index 00000000000000..4a81f7f6c3b536 --- /dev/null +++ b/src/components/changelog/ProductSelect.tsx @@ -0,0 +1,126 @@ +import type { CollectionEntry } from "astro:content"; +import type { StylesConfig } from "react-select"; +import Select from "react-select"; +import { useEffect, useState } from "react"; + +interface Props { + products: CollectionEntry<"products">[]; + groups: string[]; +} + +interface Option { + label?: string; + value: string; +} + +export default function ProductSelect({ products, groups }: Props) { + const [selectedOption, setSelectedOption] = useState