diff --git a/.cache/pages.json b/.cache/pages.json index 4602c5ebd..699f2c694 100644 --- a/.cache/pages.json +++ b/.cache/pages.json @@ -90,71 +90,71 @@ "contact", { "deep-dive": [ - "alert-fatigue-reduction-triage-actionable-alerts/pdf", - "api-deprecation-sunset-headers-consumer-migration/pdf", - "api-gateway-metrics-traces-logs-debugging/pdf", - "api-usage-metering-quotas-cost-attribution/pdf", - "argocd-sync-failures-gitops-debugging-troubleshooting/pdf", - "availability-targets-five-nines-cost-benefit-analysis/pdf", - "backpressure-load-shedding-admission-control-overload/pdf", - "blameless-postmortem-incident-analysis-systemic-causes/pdf", - "blue-green-canary-deployment-strategy-comparison/pdf", - "cdn-edge-caching-cache-keys-vary-headers/pdf", - "chaos-engineering-failure-injection-low-cost-experiments/pdf", - "ci-pipeline-caching-docker-layers-dependency-cache/pdf", - "circuit-breaker-retry-budget-cascade-failure-prevention/pdf", - "consumer-driven-contract-testing-pact-internal-apis/pdf", - "container-vulnerability-scanning-ci-shift-left-security/pdf", - "database-schema-migrations-continuous-deployment-zero-downtime/pdf", - "dead-letter-queue-design-replay-debugging/pdf", - "distributed-tracing-sampling-strategies-head-tail/pdf", - "eol-runtime-upgrade-dependency-hell-migration/pdf", - "ephemeral-preview-environments-cost-control-cleanup/pdf", - "flaky-test-diagnosis-race-conditions-e2e-stabilization/pdf", - "golden-paths-developer-experience-standardization-autonomy/pdf", - "grafana-dashboard-hygiene-pruning-actionable-metrics/pdf", - "helm-release-management-drift-detection-debugging/pdf", - "idempotent-message-handlers-deduplication-retries/pdf", - "internal-cli-kubectl-terraform-wrapper-abstraction/pdf", - "internal-developer-portal-platform-self-service-actions/pdf", - "internal-platform-api-versioning-deprecation-breaking-changes/pdf", - "kubernetes-cluster-upgrade-playbook-risk-reduction/pdf", - "kubernetes-cost-optimization-resource-sizing-spot-instances/pdf", - "kubernetes-decision-framework-when-not-to-use/pdf", - "kubernetes-dns-debugging-ndots-coredns-troubleshooting/pdf", - "kubernetes-hpa-autoscaling-metrics-tuning-latency/pdf", - "kubernetes-ingress-gateway-api-comparison-migration/pdf", - "kubernetes-multi-cluster-fleet-management-configuration/pdf", - "kubernetes-pod-resource-requests-limits-qos-classes/pdf", - "kubernetes-secrets-external-secrets-operator-csi-vault/pdf", - "legacy-code-testing-characterization-tests-seams/pdf", - "monorepo-affected-builds-remote-caching-ci-optimization/pdf", - "mtls-certificate-rotation-service-mesh-authentication/pdf", - "nginx-haproxy-reverse-proxy-production-tuning/pdf", - "on-call-rotation-small-teams-sustainable-coverage/pdf", - "opa-conftest-policy-as-code-infrastructure-guardrails/pdf", - "openapi-spec-documentation-sdk-generation-validation/pdf", - "opentelemetry-span-design-granularity-overhead/pdf", - "performance-testing-load-models-benchmark-accuracy/pdf", - "platform-architecture-control-plane-data-plane-separation/pdf", - "platform-engineering-metrics-lead-time-developer-friction/pdf", - "postgresql-connection-pooling-saturation-sizing/pdf", - "private-networking-dns-routing-tls-debugging/pdf", - "prometheus-high-cardinality-metrics-label-design/pdf", - "rate-limiting-token-bucket-leaky-bucket-implementation/pdf", - "release-quality-gates-automated-deployment-validation/pdf", - "reverse-engineering-documentation-legacy-systems/pdf", - "service-catalog-metadata-schema-ownership-tracking/pdf", - "service-decommissioning-scream-test-shutdown/pdf", - "slo-error-budget-practical-guide/pdf", - "slsa-build-provenance-artifact-signing-supply-chain/pdf", - "strangler-fig-migration-complete-guide/pdf", - "structured-logging-correlation-ids-log-schema-design/pdf", - "symptom-based-alerting-runbooks-alert-design/pdf", - "synthetic-test-data-pii-anonymization-fixtures/pdf", - "terraform-module-design-defaults-versioning-interfaces/pdf", - "terraform-state-locking-corruption-recovery-backend/pdf", - "workload-identity-federation-keyless-cloud-authentication/pdf" + "alert-fatigue-reduction-triage-actionable-alerts", + "api-deprecation-sunset-headers-consumer-migration", + "api-gateway-metrics-traces-logs-debugging", + "api-usage-metering-quotas-cost-attribution", + "argocd-sync-failures-gitops-debugging-troubleshooting", + "availability-targets-five-nines-cost-benefit-analysis", + "backpressure-load-shedding-admission-control-overload", + "blameless-postmortem-incident-analysis-systemic-causes", + "blue-green-canary-deployment-strategy-comparison", + "cdn-edge-caching-cache-keys-vary-headers", + "chaos-engineering-failure-injection-low-cost-experiments", + "ci-pipeline-caching-docker-layers-dependency-cache", + "circuit-breaker-retry-budget-cascade-failure-prevention", + "consumer-driven-contract-testing-pact-internal-apis", + "container-vulnerability-scanning-ci-shift-left-security", + "database-schema-migrations-continuous-deployment-zero-downtime", + "dead-letter-queue-design-replay-debugging", + "distributed-tracing-sampling-strategies-head-tail", + "eol-runtime-upgrade-dependency-hell-migration", + "ephemeral-preview-environments-cost-control-cleanup", + "flaky-test-diagnosis-race-conditions-e2e-stabilization", + "golden-paths-developer-experience-standardization-autonomy", + "grafana-dashboard-hygiene-pruning-actionable-metrics", + "helm-release-management-drift-detection-debugging", + "idempotent-message-handlers-deduplication-retries", + "internal-cli-kubectl-terraform-wrapper-abstraction", + "internal-developer-portal-platform-self-service-actions", + "internal-platform-api-versioning-deprecation-breaking-changes", + "kubernetes-cluster-upgrade-playbook-risk-reduction", + "kubernetes-cost-optimization-resource-sizing-spot-instances", + "kubernetes-decision-framework-when-not-to-use", + "kubernetes-dns-debugging-ndots-coredns-troubleshooting", + "kubernetes-hpa-autoscaling-metrics-tuning-latency", + "kubernetes-ingress-gateway-api-comparison-migration", + "kubernetes-multi-cluster-fleet-management-configuration", + "kubernetes-pod-resource-requests-limits-qos-classes", + "kubernetes-secrets-external-secrets-operator-csi-vault", + "legacy-code-testing-characterization-tests-seams", + "monorepo-affected-builds-remote-caching-ci-optimization", + "mtls-certificate-rotation-service-mesh-authentication", + "nginx-haproxy-reverse-proxy-production-tuning", + "on-call-rotation-small-teams-sustainable-coverage", + "opa-conftest-policy-as-code-infrastructure-guardrails", + "openapi-spec-documentation-sdk-generation-validation", + "opentelemetry-span-design-granularity-overhead", + "performance-testing-load-models-benchmark-accuracy", + "platform-architecture-control-plane-data-plane-separation", + "platform-engineering-metrics-lead-time-developer-friction", + "postgresql-connection-pooling-saturation-sizing", + "private-networking-dns-routing-tls-debugging", + "prometheus-high-cardinality-metrics-label-design", + "rate-limiting-token-bucket-leaky-bucket-implementation", + "release-quality-gates-automated-deployment-validation", + "reverse-engineering-documentation-legacy-systems", + "service-catalog-metadata-schema-ownership-tracking", + "service-decommissioning-scream-test-shutdown", + "slo-error-budget-practical-guide", + "slsa-build-provenance-artifact-signing-supply-chain", + "strangler-fig-migration-complete-guide", + "structured-logging-correlation-ids-log-schema-design", + "symptom-based-alerting-runbooks-alert-design", + "synthetic-test-data-pii-anonymization-fixtures", + "terraform-module-design-defaults-versioning-interfaces", + "terraform-state-locking-corruption-recovery-backend", + "workload-identity-federation-keyless-cloud-authentication" ] }, "hero", diff --git a/.github/workflows/branch-protection.yml b/.github/workflows/branch-protection.yml index 637da8bee..b68e0fb8b 100644 --- a/.github/workflows/branch-protection.yml +++ b/.github/workflows/branch-protection.yml @@ -18,8 +18,12 @@ jobs: run: | : "${BRANCH_NAME:?github.head_ref is required}" - # Valid patterns: bugfix/, hotfix/, feature/, infrastructure/, maintenance/, content/ - if [[ ! $BRANCH_NAME =~ ^(bugfix|hotfix|feature|infrastructure|maintenance|content|dependabot)/[a-z0-9-]+$ ]]; then + HUMAN_BRANCH_REGEX='^(bugfix|hotfix|feature|infrastructure|maintenance|content)/[a-z0-9-]+$' + DEPENDABOT_BRANCH_REGEX='^dependabot/[a-z0-9._/-]+$' + + # Human branches use a strict single-segment slug; dependabot branches are machine-generated and may include + # nested path segments, underscores, and dots (for package manager + dependency + version details). + if [[ ! $BRANCH_NAME =~ $HUMAN_BRANCH_REGEX && ! $BRANCH_NAME =~ $DEPENDABOT_BRANCH_REGEX ]]; then echo "❌ Invalid branch name: $BRANCH_NAME" echo "" echo "Branch names must follow one of these patterns:" @@ -29,9 +33,9 @@ jobs: echo " - infrastructure/ (e.g., infrastructure/setup-ci)" echo " - maintenance/ (e.g., maintenance/update-dependencies)" echo " - content/ (e.g., content/update-about-page)" - echo " - dependabot/ (machine generated)" + echo " - dependabot/<...> (machine generated; may include '/' '_' '.')" echo "" - echo "Use lowercase letters, numbers, and hyphens only." + echo "For non-dependabot branches, use lowercase letters, numbers, and hyphens only." exit 1 fi diff --git a/TROUBLESHOOTING_HEADER_SPACING.md b/TROUBLESHOOTING_HEADER_SPACING.md new file mode 100644 index 000000000..061f4fd25 --- /dev/null +++ b/TROUBLESHOOTING_HEADER_SPACING.md @@ -0,0 +1,195 @@ +# Header Positioning Issues + +We have a ThemePicker component at src/components/ThemePicker that slides up and down to allow users to set the theme for the site. The theme picker should push the header down with it when it opens, so that the top edge of the Header component at src/components/Header stays aligned with the bottom edge of our theme picker box. One of the goals was for the correct layout to persist across page navigation - when the theme picker is open, it stays open on the page that is navigated to. + +This functionality worked until a few weeks ago. At that time, we implemented a "squishy" functionality in the Header where when the user scrolls down the page, the header would reduce in height. When the user then scrolls up on the page, the header would return to its default full height. + +The alignment of the header with the bottom of the theme picker has not worked correctly since we made that change. We have tried at least seven or eight times to fix it, all with no success, including several attempts with Opus 4.6 and several with GPT 5.3 Codex. Right now, the header is pushed down below the bottom edge of the theme picker when it is open so that there are several lines of content from the page that should through - there is a large gap between the theme picker and the header. The header is correctly positions at the top of the page when the theme picker is closed, and the theme picker itself works correctly. + +The problems we've had with getting this system to work correctly is holding up implementation of other features that will also depend on this positioning. I have zero confidence of successfully solving this with just explaining the bug in a prompt; we've spent a great deal of time over multiple days trying to fix this with no success. It feels like we're going in circles, and the problem is something deeper than what Opus 4.6 or GPT 5.3 Codex is able to detect. + +To start, look at the git history of the relevant files, particularly src/components/ThemePicker/client/index.ts, and give me a summary of the fixes that we've tried and what they were likely intended to do to fix the problem. Please give me a summary of how the positioning system works overall - are we maintaining state in a src/components/scripts/store file? Locally in the theme picker component? Look also at the Header component, particularly src/components/Header/client/index.ts, for the history of changes we've made there. + +## How the Positioning System Works + +There are three cooperating layers: + +1. Shared State (Nanostore) + +`$themePickerOpen` in `themes.ts` is a `persistentAtom` backed by `localStorage`. This is the single source of truth for whether the picker is open. It persists across View Transitions and page reloads. The ThemePicker Lit component binds to it via `StoreController`. + +2. ThemePicker (`` custom element) + +The `` element lives in `BaseLayout.astro:103`, above the `
` in the DOM, and uses `transition:persist` to survive View Transitions. + +The modal (`.themePicker`) starts with `max-height: 0 + overflow: hidden` and animates to` max-height: 14em` when `.is-open` is added. + +When open, the modal becomes `position: fixed; top: 0` — it sits at the very top of the viewport. + +The `` element itself acts as a spacer: its CSS sets `height: var(--theme-picker-offset, 0`) — it reserves document flow space equal to the picker's visual height. + +3. Header (`header-shell` / `header-fixed`) + +The header has a footprint div (`.header-footprin`t) that reserves space in document flow. + +The actual visible header (`.header-fixed`) is `position: fixed; top: 0`. + +To push the header below the theme picker, `.header-fixed` uses `transform: translateY(var(--theme-picker-offset, 0)`). + +The squishy scroll behavior was added in commit `e5127343` ("Move header code into component"). On scroll down, `.header-shell` gets the `is-collapsed` class which shrinks padding, brand scale, icon sizes, and footprint height via CSS custom properties with a 320ms cubic-bezier transition. + +### The Communication Bridge + +When the ThemePicker opens/closes, it writes to `--theme-picker-offset` on `document.documentElement`. Both the `` spacer height and `.header-fixed` transform read that variable. There is no JS in the Header that monitors or reacts to the theme picker — it's purely CSS-variable-driven. + +## History of Fix Attempts + +### Commit `bbbbae0d` — "Fix stacking context of themepicker to be on top during scroll" + +What it did: + +- Added` transform: translateY(var(--theme-picker-offset, 0px))` and `transition: transform 0.4s` to `.header-fixed` in CSS — this is the original mechanism for pushing the header down. + +- Added the `` spacer CSS (`height: var(--theme-picker-offset, 0px); position: relative; z-index: var(--z-theme-picker)`) to reserve flow space. + +- Made the` .themePicker:global(.is-open)` become `position: fixed; top: 0` — pulled the modal out of flow and pinned it to the viewport top. + +- Added `updateHeaderOffset()` and `getThemePickerOffset()` methods to the ThemePicker class, using `Math.max(scrollHeight, boundingHeight)`. + +- Inserted `updateHeaderOffset(true/false`) calls in the open/close paths. + +Likely intent: Establish the `--theme-picker-offset` variable-driven approach to coordinate the header position with the theme picker. + +### Commit `8b08773d` — "Update header scroll size change transition timing" + +What it did: + +- Changed transition timing from `220ms ease` to `320ms cubic-bezier(0.25, 0.46, 0.45, 0.94)` across all header properties. + +- Changed `--theme-picker-offset` default from `0px` to `0` (minor). + +- Added `requestAnimationFrame` mocks to the header collapse test. + +Likely intent: Smooth out the squishy animation. This is the commit that likely broke the alignment — the header transition timing changed but the ThemePicker offset calculation and transition timing may have become desynchronized. + +### Commit `4aa6ffb1` — "Fix to Themepicker and Subheader component on page navigation" + +What it did (most significant fix attempt): + +- Added `getLivePickerModal()` — a method to re-query the modal element from the DOM if the cached reference is stale (disconnected). + +- Added `syncOpenStateAfterNavigation()` — a method that snaps the modal to its open state without animation (sets `transition: none`, adds `.is-open`, `force-reflows`, then calls `updateHeaderOffset(true)`, and restores transitions in the next rAF). + +- Rewrote `getThemePickerOffset()` with a cascade of fallbacks: `getBoundingClientRect().height` → `offsetHeight` → computed `maxHeight` → hardcoded `14 * fontSize` (the `14em` target). + +- Moved `updateHeaderOffset(true`) from before `is-open` class application to after it (inside the rAF callback), so the measurement happens after the target height is applied. + +- Added `astro:page-load` listener that calls `syncOpenStateAfterNavigation()`. + +Likely intent: Fix the gap that appeared after View Transitions navigation, where the modal would be re-opened but the offset measurement was reading 0 because the measurement happened before `.is-open` was applied or the transition was mid-flight. + +### Commit `7877c599` — "Newsletter Confirm page style updates" + +This touched the ThemePicker file but appears to be mostly unrelated content changes. + +## The Core Problem + +The fundamental architectural tension I see: + +- The modal is `position: fixed; top: 0` when open. It's pulled out of document flow entirely. + +- The `` element is a spacer in flow whose height is set to` --theme-picker-offset`. This reserves page flow space. + +- The `.header-fixed` is also `position: fixed; top: 0` and uses `transform: translateY(--theme-picker-offset)` to push itself below the picker. + +- The `.header-footprint` is in flow and does NOT account for `--theme-picker-offset`. + +The problem is in the measurement and timing of `--theme-picker-offset`. When `getThemePickerOffset()` runs: + +- If the modal has `.is-open` but the `max-height` transition hasn't finished, `getBoundingClientRect().height` returns an intermediate value (potentially the full target since `max-height` clips but doesn't change layout height of a fixed element the same way). + +- The `14em` fallback computes to ~`224px` at `16px` font size, but the actual rendered height of the picker content may differ, especially at different viewport widths where the embla carousel and padding produce different heights. + +- More critically: when the header collapses on scroll, nothing recalculates `--theme-picker-offset`. If the picker is open and you scroll, the header shrinks but the offset stays the same → growing gap. If the page is scrolled when the picker opens, the offset may be measured against a collapsed header footprint. + +- Also the header-footprint doesn't include `--theme-picker-offset`, so the flow space reserved for the header doesn't change when the picker opens. The picker spacer (`` height) + the footprint height together should equal the total visual space above the content — but the header's` translateY` push isn't reflected in the footprint. + +## Questions to Discuss Before Attempting a Fix + +1. Should `--theme-picker-offset` also be added to the `.header-footprint` height? Currently the footprint is `var(--header-footprint-height-current)` alone. If the picker opens, the fixed header moves down but the footprint doesn't grow, so content behind the fixed elements may be misaligned. + +2. Is `position: fixed` on the open modal actually necessary? If the modal were position: relative (in-flow), the `` spacer height approach would be unnecessary — the element itself would push content down naturally. The fixed positioning was presumably added so the picker always appears at the viewport top even when scrolled, but it creates all this coordination complexity. + +3. Would it be simpler to abandon the CSS variable bridge and instead use a single JS controller that listens to both the picker state and scroll position, updating both the header transform and the footprint height in one place? + +4. The timing mismatch: The picker animates `max-height` over 400ms, the header translates over 400ms, and the header collapse transitions over 320ms. These competing transitions with offset measurements that are taken at specific points in time seem inherently fragile. Would snapping instead of animating the header offset (while keeping the picker animation) be acceptable? + +## Answers to Questions and Additional Functionality + +I would prefer to abandon the CSS variable bridge and instead use a single JS controller that listens to both the picker state and scroll position, updating both the header transform and the footprint height in one place. Visitors to the site who are sighted will always have Javascript enabled, and the themepicker and visual styling (the "squish" styling) of the header don't apply to site visitors who are using screen readers. + +I would like to implement the other features that have been blocked by problems with the theme picker as part of this scope of work. Those features and bug fixes are: + +### Vertical Scroll Bar + +Currently the righ hand-side vertical scroll bar extends to the top of the viewport. When only the header is visible (theme picker closed), the scroll bar control is partially overlapped and hard to select to pull down. When the theme picker is open and the visitor is at the top of the page, the scroll bar control is completely hidden by the combined height of the theme picker and the header. + +### Header "Squish" Animation + +The "squish" animation of the header when the user scrolls down is still very awkard in appearance. We should move this to script if it's using CSS currently for more reliability. The animation should have two distinct steps, and a forward (moving from taller vertically to shorter vertically) and backward workflow (moving from shorter vertically to taller vertically). + +In the forward workflow, the following should happen at the same time visually in the first step: + +- The logo and branding should reduce to their smaller size, moving to the left. This is correct currently. +- The five individual anchors of the nav menu should reduce to their smaller size, centered around the center vertical line running through the anchor text. Right now the anchor text moves at the same time that the text is reducing is in size since the entire nav container is being reduced in size. +- The themepicker icon, search icon, and (on mobile) the hamburger menu should reduce to their smaller size, centered around the center vertical line running through the icon. + +In the second step of the forward workflow, the following should happen at the same time visually: + +- The nav items should move to the position with the new spacing between nav items based on the reduced size of the nav container. +- The themepicker icon, search icon, and (on mobile) the hamburger menu should move to their new position. The movement will be to the right of the viewport. + +The change in the above two items is that we are separating the change in size of the nav and icons and their movement. Right now they do both at the same time. The animation is jumpy and looks awkward. + +- The vertical height of the header should change to its new reduced height at the same time as the above two items are moving to their final positions. + +In the reverse workflow, those steps should happen in opposite order: second step first, with the nav items and icons moving to the position they'll be in when the size of the header is returned to its full size. Then first step from the above, where the logo/branding, nav, and icons returning to their full size as the header is returned to its full size. + +### Article and Deep Dive Item View Progress Bar + +I'd like to add a horizontal progress bar that shows the visitor their progress through the article by total length. It should use the "success" color, and have its top fixed to the bottom of the header. It should be fairly small vertically. Let's start with the closest tailwind class to 8px for sm and above, and 4px for mobile. Use the HTML `` element unless that poses a problem. Implement the updating of the element in script, and the element itself in the `*.astro` page file. It should on these two pages: + +src/pages/articles/[...slug].astro +src/pages/deep-dive/[...slug].astro + +### Sticky ToC + +On the two articles pages, we have a Table of Contents (ToC) that's added by the Markdown rendering system. It's rendered in a div with an `id` set to `toc-drawer`. The ToC should have a "sticky" behavior where as the user scrolls down, the ToC scrolls down until the bottom of the ToC + a small amount of padding (perhaps a tailwind amount of mb-4) enters the viewport. At that point, it should stop scrolling off the screen and remain fixed in place. + +When the user scrolls up, the ToC should move down the page with content until the top of the ToC + the same amount of padding is fixed to the bottom edge of the theme picker (if open) + header + progress bar. If the ToC is shorter than the height of the viewport minus the top elements (themepicker (if open) + header + progress bar), it should stay fixed to the bottom edge of the progress bar as the visitor scrolls down once it reaches that bottom edge (e.g. once the hero image is scrolled out of view). + +### Contact Info Card + +We have a similar effect in the Contact component on the "Contact Information" right-hand `aside` element, that is currently implemented using a CSS `sticky` class: + +src/components/Pages/Contact/index.astro + +We need to change that to a script handling approach, with behavior similar to the "Sticky ToC" mentioned above. It needs to leave some or all of the `bg-page-offset` colored backbackground as padding between the `aside` element's top edge and the bottom edge of the themepicker (if open) + header. Right now the top edge of the `aside` stops scrolling at the bottom edge of the header, bug ignores the position of the bottom edge of the header if the theme picker is open. It doesn't seem to handle the "squishy" effect of the header correctly but it's hard to tell because of the broken theme picker positioning currently. Also right now, once it reaches its "sticky" position, it stays there until the user scrolls far enough down for the bottom of the main content area to push it up and then continues scrolling the aside up. It should behave like the ToC outlined above. + +### Mobile ToC Drawer + +Right now, we're hiding the ToC on mobile. We need to refactor it to work as a drawer that slides in from the right-hand side of the viewport. When slide in, it should cover the full vertical height of the mobile viewport and slide in to about 80% of the horizontal space of the mobile viewport (this number may be adjusted after seeing it in action), just enough left so the visitor can see that there's still content underneath it. + +When closed, the drawer should have a partial circle visible with an arrow-left Icon (do not hard code SVGs) that can be pressed to slide it in. When open, the drawer should have an arrow-right icon indicating a button to close it. + +### General Instructions + +Let's first develop a plan to implement this. Indicate which files will be touched, and any new files that will be created. I want to make sure that we are correctly using our store for values vs. maintaining state in components, and to make sure that we are logically organizing our code. I would like to implement this code in a way that we can create useful unit tests for the work we generate. Right now our unit tests are completely useless for this functionality - they are not catching regressions. The feature is broken yet the tests all pass. + +Prefer HTML markup in `*.astro` files over HTML literal strings injected at runtime. If it will produce more reliable code, it's okay to use HTML literal strings - just inform me of your plan to do so and let me evaluate. HTML literal strings in script are hard to maintain and lint in an Astro project. + +Regarding this comment: + +> The timing mismatch: The picker animates `max-height` over 400ms, the header translates over 400ms, and the header collapse transitions over 320ms. These competing transitions with offset measurements that are taken at specific points in time seem inherently fragile. Would snapping instead of animating the header offset (while keeping the picker animation) be acceptable? + +The header translate and collapse transitions should have the same value, and be set by a single `const` value. It's unlikely (though possible) that a visitor would trigger the theme picker animation and the header collapse / expand animations at the same time. Normally if a visitor pushes the theme picker icon, they will select a different theme before scrolling up or down on the page. The animation transition over a longer period of time significantly improves the visual appearance of the transition - we tried it in the past with a snap and it looked very awkard. We should find a way to implement the transition delay in a way that's robus, and discount the problematic case of a visitor triggering both the theme picker animation and header animation at the same time since it's unlikely to happen in practice. Please advise me if you disagree with this analysis - it does significantly improve the appearance of the header animation. diff --git a/_TODO.md b/_TODO.md index 1237a3ebf..a4cee22a3 100644 --- a/_TODO.md +++ b/_TODO.md @@ -145,37 +145,11 @@ https://mermaid.js.org/config/directives.html See comp images in Breadcrumbs component directory -## Keyboard Navigation - -- Should header links be in the tab order? -- Does the total page tab order make sense? - - -## Non-featured tags - -Generate cover images for the skills and technologies tags pages - ## Code Block Problems -- Inline code blocks are not wrapping. They're breaking to a new line. An example is in the "Scenario: CRD Sync Order Problem" section of `argocd-sync-failures-gitops-debugging-troubleshooting#specific-failure-scenarios`. - -- Need to allow escaping a code fence inside a markdown code fence, see `src/content/articles/api-gateway-metrics-traces-logs-debugging/index.mdx` "Latency Spike Investigation" section and the demo article. - -- I aliased 'promql' to 'go'. When a code fence using the alias is rendered with the language set to 'promql', it shows as 'go' incorrectly because of the alias. Also we need custom handling for all language names that are displayed: html should be uppercase, typescript as TypeScript, etc. Also we don't want all aliased names to show the alias - for example using the aliases 'ts', 'js', and 'md' would be better to show the full language names. - -- The "go" language code block in `src/content/articles/api-versioning-deprecation-sunset-headers-migration/index.mdx` is not being combined with the "typescript", "python", and "ruby" tabbed code block. Same with "python" block in "### Admission Control Strategies" section of `src/content/articles/backpressure-load-shedding-admission-control-overload/index.mdx`, plus the line numbering is weird in the code block. - -- The title for a code block with yaml as the language type in "Sync wave annotations controlling resource application order" section of `src/content/articles/argocd-sync-failures-gitops-debugging-troubleshooting/index.mdx` is not displaying, it's showing the YAML language tag instead of the title. Also, the word "app" is being highlighted for some reason in this code block. - -- Code block formatting for 'text' language is very plain. - -- The "❌" symbol is not showing in sql code block, it's rendering as a plain "X". But "✅" renders okay. `src/content/articles/database-schema-migrations-continuous-deployment-zero-downtime/index.mdx` - -- Language "haproxy" is not highlighting Shiki, need to adjust allowed languages in config +- Need to be able to highlight the title in a code block to copy it, or at least have a "copy" wrapper on it -- add "cel" language to code blocks - -- The code language is in teh tab order and getting focus-visible +- The code language is in the tab order and getting focus-visible ## Callout Issues @@ -191,6 +165,8 @@ Generate cover images for the skills and technologies tags pages ## Checklist +- You can click the anchor link that shows on headers to get a copy of the link. It should be that you can click anywhere in the header and copy the link. + - Need to make tables responsive on mobile - Need to stop system from adding abbreviation html when used in headings, also the `abbr` presentation needs improved - right now it gives a question mark pointer and long delay to appear @@ -205,8 +181,6 @@ Generate cover images for the skills and technologies tags pages - Need a Q & A format to use in `blameless-postmortem-incident-analysis-systemic-causes` -- Add a cloud of tags on articles list view at top for quick navigation. Add a ToC for featured tags so it's available on mobile, but with something different on desktop view - maybe hide tag cloud on mobile, and show it with an HR between all tags cloud and featured on desktop. - - Use an in-project Image component to wrap Astro's Image and Picture. Show a magnifying glass with a "+" for the cursor on hover, and a modal to show a magnified view of images on click. - Add a copyright notice to content @@ -253,16 +227,14 @@ Generate cover images for the skills and technologies tags pages - Newsletter component "home" and "page" variants needs work on spacing, "home" needs image added +- Determine if any of the python code blocks should have `#!/bin/python` added + ## Header - Need to improve the "squish" animation where the header reduces in size on scroll down, and returns to full size on scroll up. Maybe reduce and expand the text and search / themepicker / hamburger menu sizes in place, and then slide them horizontally. - The right-hand browser vertical scroll bar is hidden under the header -## Reading position indicator - -[Add scroll bar under header](https://css-tricks.com/reading-position-indicator/) to show how far down you are on the page while reading - ## Print - Need a workflow to generate PDF files from Markdown for downloads. @@ -285,12 +257,9 @@ Generate cover images for the skills and technologies tags pages This article has different approaches to [print pagination](https://www.customjs.space/blog/html-print-pagination-footer/). One approach overlaps with PagedJS's approach. - ## Downloads / Gated Content -We can add a path like `/articles/pdf` or `/articles/deep-dive` for the long-form articles. Make that path SSR loaded so we can check if they've given their e-mail address. - -- Add a Pages layout for Articles so that we can use it for both the `/articles` and `/articles/pdf` content collections. +- We can add a path like `/articles/pdf` or `/articles/deep-dive` for the long-form articles. Make that path SSR loaded so we can check if they've given their e-mail address. - If they haven't and they get to the path from sharing a link or something, we should use the `index.astro` file in that directory to explain that they've accessed gated content, and ask for their e-mail address. Then redirect to the content they want when they give it. @@ -324,10 +293,4 @@ We can add a path like `/articles/pdf` or `/articles/deep-dive` for the long-for - Move the "What I Deliver" box from the Hero into the Backstage image. Move the Backstage image / video to the hero. -## Instructions for revamps - -All changes should look good on both light and dark theme, use our tailwind theme colors, and look good on mobile. - -"Condensed" or "Intro" - -Cursor on hovering a link +- Focus-visible / active handling on ToC nav items diff --git a/package-lock.json b/package-lock.json index 1e1518816..96f5eb644 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "servers/*" ], "dependencies": { - "@adobe/remark-gridtables": "^3.0.17", + "@adobe/remark-gridtables": "^3.0.18", "@astrojs/check": "0.9.6", "@astrojs/db": "^0.19.0", "@astrojs/mdx": "4.3.13", @@ -26,19 +26,19 @@ "@github/relative-time-element": "^5.0.0", "@glidejs/glide": "^3.7.1", "@googlemaps/extended-component-library": "^0.6.14", - "@happy-dom/global-registrator": "^20.6.3", + "@happy-dom/global-registrator": "^20.7.0", "@lighthousejs/types": "^0.0.3", "@nanostores/lit": "^0.2.3", "@nanostores/persistent": "^1.3.3", "@playwright/browser-chromium": "^1.58.2", "@playwright/test": "1.58.2", "@semantic-ui/astro-lit": "^5.1.1", - "@sentry/astro": "^10.39.0", - "@sentry/browser": "^10.39.0", - "@shikijs/transformers": "^3.22.0", + "@sentry/astro": "^10.40.0", + "@sentry/browser": "^10.40.0", + "@shikijs/transformers": "^3.23.0", "@tailwindcss/forms": "0.5.11", "@tailwindcss/typography": "0.5.19", - "@tailwindcss/vite": "^4.2.0", + "@tailwindcss/vite": "^4.2.1", "@testing-library/dom": "10.4.1", "@testing-library/preact": "3.2.4", "@testing-library/user-event": "14.6.1", @@ -51,15 +51,15 @@ "@types/glidejs__glide": "^3.6.6", "@types/hast": "^3.0.4", "@types/js-cookie": "^3.0.6", - "@types/jsdom": "^27.0.0", - "@types/node": "^25.3.0", - "@types/nodemailer": "^7.0.10", + "@types/jsdom": "^28.0.0", + "@types/node": "^25.3.2", + "@types/nodemailer": "^7.0.11", "@types/pubsub-js": "^1.8.6", "@types/react": "^19.2.14", "@types/sanitize-html": "^2.16.0", "@types/to-ico": "1.1.3", - "@typescript-eslint/eslint-plugin": "8.56.0", - "@typescript-eslint/parser": "8.56.0", + "@typescript-eslint/eslint-plugin": "8.56.1", + "@typescript-eslint/parser": "8.56.1", "@uppy/audio": "^3.1.0", "@uppy/box": "^4.1.0", "@uppy/core": "^5.2.0", @@ -74,11 +74,11 @@ "@vitest/coverage-v8": "^4.0.18", "@webcomponents/template-shadowroot": "^0.2.1", "alex": "^11.0.1", - "astro": "5.17.3", + "astro": "5.18.0", "astro-link-validator": "github:rodgtr1/astro-link-validator", "astro-og-canvas": "^0.10.1", "astro-vtbot": "^2.1.11", - "baseline-browser-mapping": "^2.9.19", + "baseline-browser-mapping": "^2.10.0", "canvas-confetti": "^1.9.4", "confusing-browser-globals": "1.0.11", "cross-env": "^10.1.0", @@ -89,37 +89,37 @@ "email-validator": "^2.0.4", "embla-carousel": "^8.6.0", "embla-carousel-autoplay": "^8.6.0", - "eslint": "10.0.0", + "eslint": "10.0.2", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-astro": "1.6.0", "eslint-plugin-import": "2.32.0", - "eslint-plugin-jsdoc": "62.6.0", + "eslint-plugin-jsdoc": "62.7.1", "eslint-plugin-jsx-a11y": "6.10.2", - "eslint-plugin-security": "3.0.1", - "eslint-plugin-yml": "3.2.1", + "eslint-plugin-security": "4.0.0", + "eslint-plugin-yml": "3.3.0", "focus-trap": "8.0.0", "gsap": "^3.14.2", - "happy-dom": "^20.6.1", + "happy-dom": "^20.7.0", "html-element-attributes": "^3.5.0", "husky": "^9.1.7", "install": "^0.13.0", "is-whitespace-character": "^2.0.1", - "isomorphic-git": "^1.37.1", + "isomorphic-git": "^1.37.2", "js-cookie": "^3.0.5", "jsdom": "^28.1.0", - "libphonenumber-js": "1.12.37", + "libphonenumber-js": "1.12.38", "lighthouse": "^13.0.3", "lit": "^3.3.2", "markdownlint-cli2": "^0.21.0", "md-attr-parser": "^1.3.0", "mermaid": "^11.12.3", - "nanostores": "^1.1.0", + "nanostores": "^1.1.1", "nodemailer": "^8.0.1", - "npm": "^11.10.0", + "npm": "^11.11.0", "playwright-lighthouse": "^4.0.0", "postcss": "8.5.6", "postcss-html": "1.8.1", - "preact": "^10.28.3", + "preact": "^10.28.4", "prettier": "3.8.1", "prettier-plugin-astro": "0.14.1", "pubsub-js": "^1.9.5", @@ -154,27 +154,27 @@ "sanitize-html": "^2.17.1", "schema-dts": "^1.1.5", "sharp": "^0.34.5", - "shiki": "^3.22.0", + "shiki": "^3.23.0", "space-separated-tokens": "^2.0.2", - "stylelint": "^17.3.0", + "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", "stylelint-declaration-block-no-ignored-properties": "3.0.0", "stylelint-order": "7.0.1", - "tailwindcss": "^4.1.18", + "tailwindcss": "^4.2.1", "temp-dir": "3.0.0", - "timezones-ical-library": "^2.1.0", + "timezones-ical-library": "^2.1.2", "title-case": "4.3.2", "to-ico": "1.1.5", "tslib": "2.8.1", "typescript": "5.9.3", - "typescript-eslint": "8.56.0", + "typescript-eslint": "8.56.1", "unified": "^11.0.5", "unist": "^0.0.1", "unist-util-inspect": "^8.1.0", "unist-util-is": "^6.0.1", "unist-util-visit": "^5.1.0", "uuid": "^13.0.0", - "vercel": "^50.19.1", + "vercel": "^50.25.0", "vite": "^7.3.1", "vitest": "4.0.18", "vitest-axe": "0.1.0", @@ -186,7 +186,7 @@ "npm": ">=10.0.0" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.57.1" + "@rollup/rollup-linux-x64-gnu": "^4.59.0" } }, "node_modules/@acemir/cssom": { @@ -196,13 +196,13 @@ "license": "MIT" }, "node_modules/@adobe/mdast-util-gridtables": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@adobe/mdast-util-gridtables/-/mdast-util-gridtables-4.0.16.tgz", - "integrity": "sha512-bVWXOf/BQMqFJcTahrDOV/ZCatp1eC7RMx7ZXBIW1pg7Z83TOrZQpH7tI3qvb/WfiB3kXxFSEMxPloKOw7GFXg==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@adobe/mdast-util-gridtables/-/mdast-util-gridtables-4.0.17.tgz", + "integrity": "sha512-BK9BiGFBt5EVWY2FaUyRU+tHqXRCc+FGehVqtH3sizLw2yx4uNxMI4l566qHIA3vH6866bI9GYIhXw2BYQ/FZw==", "license": "Apache-2.0", "dependencies": { "@adobe/micromark-extension-gridtables": "^2.0.4", - "mdast-util-from-markdown": "2.0.2", + "mdast-util-from-markdown": "2.0.3", "mdast-util-to-hast": "13.2.1", "mdast-util-to-markdown": "2.1.2", "unist-util-visit": "5.1.0" @@ -220,12 +220,12 @@ } }, "node_modules/@adobe/remark-gridtables": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@adobe/remark-gridtables/-/remark-gridtables-3.0.17.tgz", - "integrity": "sha512-n2AfXu7UeP9oLCKMaanQSjgtI4ZZobf6a1Bc++HoQVyVGjTCCoXDLuLNVyrxSmd1V1XlNhzktSEnI9aiWPacPA==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@adobe/remark-gridtables/-/remark-gridtables-3.0.18.tgz", + "integrity": "sha512-dw0v2HJyZKOcOn4KUb8mkHkceG1OVE1q26bYycKzYN/wPnBjneysxD0wR4tJ0O1aPFUX9p7wTpf3xl6ZkiJWXA==", "license": "Apache-2.0", "dependencies": { - "@adobe/mdast-util-gridtables": "4.0.16", + "@adobe/mdast-util-gridtables": "4.0.17", "@adobe/micromark-extension-gridtables": "2.0.4" } }, @@ -242,23 +242,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@apm-js-collab/code-transformer": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@apm-js-collab/code-transformer/-/code-transformer-0.8.2.tgz", - "integrity": "sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA==", - "license": "Apache-2.0" - }, - "node_modules/@apm-js-collab/tracing-hooks": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@apm-js-collab/tracing-hooks/-/tracing-hooks-0.3.1.tgz", - "integrity": "sha512-Vu1CbmPURlN5fTboVuKMoJjbO5qcq9fA5YXpskx3dXe/zTBvjODFoerw+69rVBlRLrJpwPqSDqEuJDEKIrTldw==", - "license": "Apache-2.0", - "dependencies": { - "@apm-js-collab/code-transformer": "^0.8.0", - "debug": "^4.4.1", - "module-details-from-path": "^1.0.4" - } - }, "node_modules/@asamuzakjp/css-color": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", @@ -2428,9 +2411,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.26.tgz", - "integrity": "sha512-6boXK0KkzT5u5xOgF6TKB+CLq9SOpEGmkZw0g5n9/7yg85wab3UzSxB8TxhLJ31L4SGJ6BCFRw/iftTha1CJXA==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.28.tgz", + "integrity": "sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==", "funding": [ { "type": "github", @@ -3121,29 +3104,50 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.0.tgz", - "integrity": "sha512-T5Swqd+PZxBekRuMsIFCySM3NUE8GjuqyksIIsXgkF2GCuiDaqpxKyPkv9VMEKpq5D7r5DLss1tM8tCsvRSjeg==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.2.tgz", + "integrity": "sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==", "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^3.0.0", + "@eslint/object-schema": "^3.0.2", "debug": "^4.3.1", - "minimatch": "^10.1.1" + "minimatch": "^10.2.1" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@eslint/config-array/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3193,110 +3197,10 @@ } } }, - "node_modules/@eslint/markdown": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.5.1.tgz", - "integrity": "sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==", - "license": "MIT", - "peer": true, - "workspaces": [ - "examples/*" - ], - "dependencies": { - "@eslint/core": "^0.17.0", - "@eslint/plugin-kit": "^0.4.1", - "github-slugger": "^2.0.0", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-frontmatter": "^2.0.1", - "mdast-util-gfm": "^3.1.0", - "micromark-extension-frontmatter": "^2.0.0", - "micromark-extension-gfm": "^3.0.0", - "micromark-util-normalize-identifier": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/markdown/node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@eslint/markdown/node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "peer": true, - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@eslint/object-schema": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.0.tgz", - "integrity": "sha512-nWl20RtHQP2A2yvKU6Fee62Xo1AoNRqBLixtyg45zJhU8ljPFCyBK90d8e8XTnPns1RggSf4HH3bM8AhevkPVg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.2.tgz", + "integrity": "sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==", "license": "Apache-2.0", "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -3341,6 +3245,96 @@ "node": ">=14" } }, + "node_modules/@fastify/otel": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@fastify/otel/-/otel-0.16.0.tgz", + "integrity": "sha512-2304BdM5Q/kUvQC9qJO1KZq3Zn1WWsw+WWkVmFEaj1UE2hEIiuFqrPeglQOwEtw/ftngisqfQ3v70TWMmwhhHA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT", + "dependencies": { + "@opentelemetry/core": "^2.0.0", + "@opentelemetry/instrumentation": "^0.208.0", + "@opentelemetry/semantic-conventions": "^1.28.0", + "minimatch": "^10.0.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0" + } + }, + "node_modules/@fastify/otel/node_modules/@opentelemetry/api-logs": { + "version": "0.208.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.208.0.tgz", + "integrity": "sha512-CjruKY9V6NMssL/T1kAFgzosF1v9o6oeN+aX5JB/C/xPNtmgIJqcXHG7fA82Ou1zCpWGl4lROQUKwUNE1pMCyg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation": { + "version": "0.208.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.208.0.tgz", + "integrity": "sha512-Eju0L4qWcQS+oXxi6pgh7zvE2byogAkcsVv0OjHF/97iOz1N/aKE6etSGowYkie+YA1uo6DNwdSxaaNnLvcRlA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.208.0", + "import-in-the-middle": "^2.0.0", + "require-in-the-middle": "^8.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@fastify/otel/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@fastify/otel/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@fastify/otel/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@formatjs/ecma402-abstract": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", @@ -3426,13 +3420,13 @@ } }, "node_modules/@happy-dom/global-registrator": { - "version": "20.6.3", - "resolved": "https://registry.npmjs.org/@happy-dom/global-registrator/-/global-registrator-20.6.3.tgz", - "integrity": "sha512-CRuv8C6HqTd8BBA8pezx/tDtZQPjlr6oXxn3GshXoC6flVUnrCfe1MscDsqQNsRtQGt4lXT6agRTvDIxj+dvwg==", + "version": "20.7.0", + "resolved": "https://registry.npmjs.org/@happy-dom/global-registrator/-/global-registrator-20.7.0.tgz", + "integrity": "sha512-JdsfSUVeWDP8klYL4y4C4Fae0nAv2V/2W+gHhdiuktyKGZvbSZfJpsk4loakPhTtxt91KHdDroXCCZcFIJrfYQ==", "license": "MIT", "dependencies": { "@types/node": ">=20.0.0", - "happy-dom": "^20.6.3" + "happy-dom": "^20.7.0" }, "engines": { "node": ">=20.0.0" @@ -5290,19 +5284,15 @@ "license": "MIT" }, "node_modules/@ota-meshi/ast-token-store": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@ota-meshi/ast-token-store/-/ast-token-store-0.2.1.tgz", - "integrity": "sha512-+8oB1wcOSWJCR6vAm2ioSLas7SoPwp+8tZ1Tcy8DSVEHMip6jxxlGu6EsRzJLAYVCyzKQ38B5pAqSbon1l1rmA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@ota-meshi/ast-token-store/-/ast-token-store-0.3.0.tgz", + "integrity": "sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==", "license": "MIT", "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "@eslint/markdown": "^7.4.0", - "eslint": ">=9.0.0" } }, "node_modules/@oxc-project/types": { @@ -6459,9 +6449,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", "cpu": [ "x64" ], @@ -6595,65 +6585,65 @@ } }, "node_modules/@sentry-internal/browser-utils": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.39.0.tgz", - "integrity": "sha512-W6WODonMGiI13Az5P7jd/m2lj/JpIyuVKg7wE4X+YdlMehLspAv6I7gRE4OBSumS14ZjdaYDpD/lwtnBwKAzcA==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.40.0.tgz", + "integrity": "sha512-3CDeVNBXYOIvBVdT0SOdMZx5LzYDLuhGK/z7A14sYZz4Cd2+f4mSeFDaEOoH/g2SaY2CKR5KGkAADy8IyjZ21w==", "license": "MIT", "dependencies": { - "@sentry/core": "10.39.0" + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/feedback": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.39.0.tgz", - "integrity": "sha512-cRXmmDeOr5FzVsBNRLU4WDEuC3fhuD0XV362EWl4DI3XBGao8ukaueKcLIKic5WZx6uXimjWw/UJmDLgxeCqkg==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.40.0.tgz", + "integrity": "sha512-V/ixkcdCNMo04KgsCEeNEu966xUUTD6czKT2LOAO5siZACqFjT/Rp9VR1n7QQrVo3sL7P3QNiTHtX0jaeWbwzg==", "license": "MIT", "dependencies": { - "@sentry/core": "10.39.0" + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.39.0.tgz", - "integrity": "sha512-obZoYOrUfxIYBHkmtPpItRdE38VuzF1VIxSgZ8Mbtq/9UvCWh+eOaVWU2stN/cVu1KYuYX0nQwBvdN28L6y/JA==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.40.0.tgz", + "integrity": "sha512-vsH2Ut0KIIQIHNdS3zzEGLJ2C9btbpvJIWAVk7l7oft66JzlUNC89qNaQ5SAypjLQx4Ln2V/ZTqfEoNzXOAsoQ==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.39.0", - "@sentry/core": "10.39.0" + "@sentry-internal/browser-utils": "10.40.0", + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.39.0.tgz", - "integrity": "sha512-TTiX0XWCcqTqFGJjEZYObk93j/sJmXcqPzcu0cN2mIkKnnaHDY3w74SHZCshKqIr0AOQdt1HDNa36s3TCdt0Jw==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.40.0.tgz", + "integrity": "sha512-wzQwilFHO2baeCt0dTMf0eW+rgK8O+mkisf9sQzPXzG3Krr/iVtFg1T5T1Th3YsCsEdn6yQ3hcBPLEXjMSvccg==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "10.39.0", - "@sentry/core": "10.39.0" + "@sentry-internal/replay": "10.40.0", + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/astro": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/astro/-/astro-10.39.0.tgz", - "integrity": "sha512-4SG6gWBhBq/8FEim/wN1TUdJMc0vzEzgDZQ16CuXmaeKGabkR2SJOzQb5HzCwIDR/sRKJWPc9m9l3zbxG3VYsg==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/astro/-/astro-10.40.0.tgz", + "integrity": "sha512-QepUtgoKa6GfwezBU/9wpjuJ/HYJhK93p7syn9UB1rbhxQ/EUUvAZTZDRw7vAuhuRqGEPERjmO02k4jhM1MpLg==", "license": "MIT", "dependencies": { - "@sentry/browser": "10.39.0", - "@sentry/core": "10.39.0", - "@sentry/node": "10.39.0", - "@sentry/vite-plugin": "^4.8.0" + "@sentry/browser": "10.40.0", + "@sentry/core": "10.40.0", + "@sentry/node": "10.40.0", + "@sentry/vite-plugin": "^5.1.0" }, "engines": { "node": ">=18.19.1" @@ -6663,47 +6653,67 @@ } }, "node_modules/@sentry/babel-plugin-component-annotate": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.9.0.tgz", - "integrity": "sha512-TJ7sVoa2Bf36lpJjBAzpNDC5Hg+evjsQnqUPeDx9Nz/YFw0u9rK1cwvi95gVWpx7PJSDCkljIv3aw0m4RatHpQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-5.1.1.tgz", + "integrity": "sha512-x2wEpBHwsTyTF2rWsLKJlzrRF1TTIGOfX+ngdE+Yd5DBkoS58HwQv824QOviPGQRla4/ypISqAXzjdDPL/zalg==", "license": "MIT", "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@sentry/browser": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.39.0.tgz", - "integrity": "sha512-I50W/1PDJWyqgNrGufGhBYCmmO3Bb159nx2Ut2bKoVveTfgH/hLEtDyW0kHo8Fu454mW+ukyXfU4L4s+kB9aaw==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.40.0.tgz", + "integrity": "sha512-nCt3FKUMFad0C6xl5wCK0Jz+qT4Vev4fv6HJRn0YoNRRDQCfsUVxAz7pNyyiPNGM/WCDp9wJpGJsRvbBRd2anw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.39.0", - "@sentry-internal/feedback": "10.39.0", - "@sentry-internal/replay": "10.39.0", - "@sentry-internal/replay-canvas": "10.39.0", - "@sentry/core": "10.39.0" + "@sentry-internal/browser-utils": "10.40.0", + "@sentry-internal/feedback": "10.40.0", + "@sentry-internal/replay": "10.40.0", + "@sentry-internal/replay-canvas": "10.40.0", + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/bundler-plugin-core": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.9.0.tgz", - "integrity": "sha512-gOVgHG5BrxCFmZow1XovlDr1FH/gO/LfD8OKci1rryeqHVBLr3+S4yS4ACl+E5lfQPym8Ve1BKh793d1rZ0dyA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-5.1.1.tgz", + "integrity": "sha512-F+itpwR9DyQR7gEkrXd2tigREPTvtF5lC8qu6e4anxXYRTui1+dVR0fXNwjpyAZMhIesLfXRN7WY7ggdj7hi0Q==", "license": "MIT", "dependencies": { "@babel/core": "^7.18.5", - "@sentry/babel-plugin-component-annotate": "4.9.0", - "@sentry/cli": "^2.57.0", + "@sentry/babel-plugin-component-annotate": "5.1.1", + "@sentry/cli": "^2.58.5", "dotenv": "^16.3.1", "find-up": "^5.0.0", - "glob": "^10.5.0", - "magic-string": "0.30.8", - "unplugin": "1.0.1" + "glob": "^13.0.6", + "magic-string": "~0.30.8" }, "engines": { - "node": ">= 14" + "node": ">= 18" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/@sentry/bundler-plugin-core/node_modules/dotenv": { @@ -6718,10 +6728,67 @@ "url": "https://dotenvx.com" } }, + "node_modules/@sentry/bundler-plugin-core/node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/lru-cache": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@sentry/cli": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.58.4.tgz", - "integrity": "sha512-ArDrpuS8JtDYEvwGleVE+FgR+qHaOp77IgdGSacz6SZy6Lv90uX0Nu4UrHCQJz8/xwIcNxSqnN22lq0dH4IqTg==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.58.5.tgz", + "integrity": "sha512-tavJ7yGUZV+z3Ct2/ZB6mg339i08sAk6HDkgqmSRuQEu2iLS5sl9HIvuXfM6xjv8fwlgFOSy++WNABNAcGHUbg==", "hasInstallScript": true, "license": "FSL-1.1-MIT", "dependencies": { @@ -6738,20 +6805,20 @@ "node": ">= 10" }, "optionalDependencies": { - "@sentry/cli-darwin": "2.58.4", - "@sentry/cli-linux-arm": "2.58.4", - "@sentry/cli-linux-arm64": "2.58.4", - "@sentry/cli-linux-i686": "2.58.4", - "@sentry/cli-linux-x64": "2.58.4", - "@sentry/cli-win32-arm64": "2.58.4", - "@sentry/cli-win32-i686": "2.58.4", - "@sentry/cli-win32-x64": "2.58.4" + "@sentry/cli-darwin": "2.58.5", + "@sentry/cli-linux-arm": "2.58.5", + "@sentry/cli-linux-arm64": "2.58.5", + "@sentry/cli-linux-i686": "2.58.5", + "@sentry/cli-linux-x64": "2.58.5", + "@sentry/cli-win32-arm64": "2.58.5", + "@sentry/cli-win32-i686": "2.58.5", + "@sentry/cli-win32-x64": "2.58.5" } }, "node_modules/@sentry/cli-darwin": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.58.4.tgz", - "integrity": "sha512-kbTD+P4X8O+nsNwPxCywtj3q22ecyRHWff98rdcmtRrvwz8CKi/T4Jxn/fnn2i4VEchy08OWBuZAqaA5Kh2hRQ==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.58.5.tgz", + "integrity": "sha512-lYrNzenZFJftfwSya7gwrHGxtE+Kob/e1sr9lmHMFOd4utDlmq0XFDllmdZAMf21fxcPRI1GL28ejZ3bId01fQ==", "license": "FSL-1.1-MIT", "optional": true, "os": [ @@ -6762,9 +6829,9 @@ } }, "node_modules/@sentry/cli-linux-arm": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.58.4.tgz", - "integrity": "sha512-rdQ8beTwnN48hv7iV7e7ZKucPec5NJkRdrrycMJMZlzGBPi56LqnclgsHySJ6Kfq506A2MNuQnKGaf/sBC9REA==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.58.5.tgz", + "integrity": "sha512-KtHweSIomYL4WVDrBrYSYJricKAAzxUgX86kc6OnlikbyOhoK6Fy8Vs6vwd52P6dvWPjgrMpUYjW2M5pYXQDUw==", "cpu": [ "arm" ], @@ -6780,9 +6847,9 @@ } }, "node_modules/@sentry/cli-linux-arm64": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.58.4.tgz", - "integrity": "sha512-0g0KwsOozkLtzN8/0+oMZoOuQ0o7W6O+hx+ydVU1bktaMGKEJLMAWxOQNjsh1TcBbNIXVOKM/I8l0ROhaAb8Ig==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.58.5.tgz", + "integrity": "sha512-/4gywFeBqRB6tR/iGMRAJ3HRqY6Z7Yp4l8ZCbl0TDLAfHNxu7schEw4tSnm2/Hh9eNMiOVy4z58uzAWlZXAYBQ==", "cpu": [ "arm64" ], @@ -6798,9 +6865,9 @@ } }, "node_modules/@sentry/cli-linux-i686": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.58.4.tgz", - "integrity": "sha512-NseoIQAFtkziHyjZNPTu1Gm1opeQHt7Wm1LbLrGWVIRvUOzlslO9/8i6wETUZ6TjlQxBVRgd3Q0lRBG2A8rFYA==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.58.5.tgz", + "integrity": "sha512-G7261dkmyxqlMdyvyP06b+RTIVzp1gZNgglj5UksxSouSUqRd/46W/2pQeOMPhloDYo9yLtCN2YFb3Mw4aUsWw==", "cpu": [ "x86", "ia32" @@ -6817,9 +6884,9 @@ } }, "node_modules/@sentry/cli-linux-x64": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.58.4.tgz", - "integrity": "sha512-d3Arz+OO/wJYTqCYlSN3Ktm+W8rynQ/IMtSZLK8nu0ryh5mJOh+9XlXY6oDXw4YlsM8qCRrNquR8iEI1Y/IH+Q==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.58.5.tgz", + "integrity": "sha512-rP04494RSmt86xChkQ+ecBNRYSPbyXc4u0IA7R7N1pSLCyO74e5w5Al+LnAq35cMfVbZgz5Sm0iGLjyiUu4I1g==", "cpu": [ "x64" ], @@ -6835,9 +6902,9 @@ } }, "node_modules/@sentry/cli-win32-arm64": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.58.4.tgz", - "integrity": "sha512-bqYrF43+jXdDBh0f8HIJU3tbvlOFtGyRjHB8AoRuMQv9TEDUfENZyCelhdjA+KwDKYl48R1Yasb4EHNzsoO83w==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.58.5.tgz", + "integrity": "sha512-AOJ2nCXlQL1KBaCzv38m3i2VmSHNurUpm7xVKd6yAHX+ZoVBI8VT0EgvwmtJR2TY2N2hNCC7UrgRmdUsQ152bA==", "cpu": [ "arm64" ], @@ -6851,9 +6918,9 @@ } }, "node_modules/@sentry/cli-win32-i686": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.58.4.tgz", - "integrity": "sha512-3triFD6jyvhVcXOmGyttf+deKZcC1tURdhnmDUIBkiDPJKGT/N5xa4qAtHJlAB/h8L9jgYih9bvJnvvFVM7yug==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.58.5.tgz", + "integrity": "sha512-EsuboLSOnlrN7MMPJ1eFvfMDm+BnzOaSWl8eYhNo8W/BIrmNgpRUdBwnWn9Q2UOjJj5ZopukmsiMYtU/D7ml9g==", "cpu": [ "x86", "ia32" @@ -6868,9 +6935,9 @@ } }, "node_modules/@sentry/cli-win32-x64": { - "version": "2.58.4", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.58.4.tgz", - "integrity": "sha512-cSzN4PjM1RsCZ4pxMjI0VI7yNCkxiJ5jmWncyiwHXGiXrV1eXYdQ3n1LhUYLZ91CafyprR0OhDcE+RVZ26Qb5w==", + "version": "2.58.5", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.58.5.tgz", + "integrity": "sha512-IZf+XIMiQwj+5NzqbOQfywlOitmCV424Vtf9c+ep61AaVScUFD1TSrQbOcJJv5xGxhlxNOMNgMeZhdexdzrKZg==", "cpu": [ "x64" ], @@ -6884,23 +6951,24 @@ } }, "node_modules/@sentry/core": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.39.0.tgz", - "integrity": "sha512-xCLip2mBwCdRrvXHtVEULX0NffUTYZZBhEUGht0WFL+GNdNQ7gmBOGOczhZlrf2hgFFtDO0fs1xiP9bqq5orEQ==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.40.0.tgz", + "integrity": "sha512-/wrcHPp9Avmgl6WBimPjS4gj810a1wU5oX9fF1bzJfeIIbF3jTsAbv0oMbgDp0cSDnkwv2+NvcPnn3+c5J6pBA==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry/node": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.39.0.tgz", - "integrity": "sha512-dx66DtU/xkCTPEDsjU+mYSIEbzu06pzKNQcDA2wvx7wvwsUciZ5yA32Ce/o6p2uHHgy0/joJX9rP5J/BIijaOA==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.40.0.tgz", + "integrity": "sha512-HQETLoNZTUUM8PBxFPT4X0qepzk5NcyWg3jyKUmF7Hh/19KSJItBXXZXxx+8l3PC2eASXUn70utXi65PoXEHWA==", "license": "MIT", "dependencies": { + "@fastify/otel": "0.16.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/context-async-hooks": "^2.5.0", - "@opentelemetry/core": "^2.5.0", + "@opentelemetry/context-async-hooks": "^2.5.1", + "@opentelemetry/core": "^2.5.1", "@opentelemetry/instrumentation": "^0.211.0", "@opentelemetry/instrumentation-amqplib": "0.58.0", "@opentelemetry/instrumentation-connect": "0.54.0", @@ -6924,29 +6992,27 @@ "@opentelemetry/instrumentation-redis": "0.59.0", "@opentelemetry/instrumentation-tedious": "0.30.0", "@opentelemetry/instrumentation-undici": "0.21.0", - "@opentelemetry/resources": "^2.5.0", - "@opentelemetry/sdk-trace-base": "^2.5.0", + "@opentelemetry/resources": "^2.5.1", + "@opentelemetry/sdk-trace-base": "^2.5.1", "@opentelemetry/semantic-conventions": "^1.39.0", "@prisma/instrumentation": "7.2.0", - "@sentry/core": "10.39.0", - "@sentry/node-core": "10.39.0", - "@sentry/opentelemetry": "10.39.0", - "import-in-the-middle": "^2.0.6", - "minimatch": "^9.0.0" + "@sentry/core": "10.40.0", + "@sentry/node-core": "10.40.0", + "@sentry/opentelemetry": "10.40.0", + "import-in-the-middle": "^2.0.6" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/node-core": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.39.0.tgz", - "integrity": "sha512-xdeBG00TmtAcGvXnZNbqOCvnZ5kY3s5aT/L8wUQ0w0TT2KmrC9XL/7UHUfJ45TLbjl10kZOtaMQXgUjpwSJW+g==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.40.0.tgz", + "integrity": "sha512-ciZGOF54rJH9Fkg7V3v4gmWVufnJRqQQOrn0KStuo49vfPQAJLGePDx+crQv0iNVoLc6Hmrr6E7ebNHSb4NSAw==", "license": "MIT", "dependencies": { - "@apm-js-collab/tracing-hooks": "^0.3.1", - "@sentry/core": "10.39.0", - "@sentry/opentelemetry": "10.39.0", + "@sentry/core": "10.40.0", + "@sentry/opentelemetry": "10.40.0", "import-in-the-middle": "^2.0.6" }, "engines": { @@ -6986,12 +7052,12 @@ } }, "node_modules/@sentry/opentelemetry": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.39.0.tgz", - "integrity": "sha512-eU8t/pyxjy7xYt6PNCVxT+8SJw5E3pnupdcUNN4ClqG4O5lX4QCDLtId48ki7i30VqrLtR7vmCHMSvqXXdvXPA==", + "version": "10.40.0", + "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.40.0.tgz", + "integrity": "sha512-Zx6T258qlEhQfdghIlazSTbK7uRO0pXWw4/4/VPR8pMOiRPh8dAoJg8AB0L55PYPMpVdXxNf7L9X0EZoDYibJw==", "license": "MIT", "dependencies": { - "@sentry/core": "10.39.0" + "@sentry/core": "10.40.0" }, "engines": { "node": ">=18" @@ -7004,84 +7070,100 @@ "@opentelemetry/semantic-conventions": "^1.39.0" } }, + "node_modules/@sentry/rollup-plugin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@sentry/rollup-plugin/-/rollup-plugin-5.1.1.tgz", + "integrity": "sha512-1d5NkdRR6aKWBP7czkY8sFFWiKnfmfRpQOj+m9bJTsyTjbMiEQJst6315w5pCVlRItPhBqpAraqAhutZFgvyVg==", + "license": "MIT", + "dependencies": { + "@sentry/bundler-plugin-core": "5.1.1", + "magic-string": "~0.30.8" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "rollup": ">=3.2.0" + } + }, "node_modules/@sentry/vite-plugin": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-4.9.0.tgz", - "integrity": "sha512-1olEMpZnwZS4UdboB25w5sZYJSlwbxJaieoL0c7FDNMyyns5GhXSl6mK8Lpx9w3rIc88gw9JOdsehdd6YrlLOA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-5.1.1.tgz", + "integrity": "sha512-i6NWUDi2SDikfSUeMJvJTRdwEKYSfTd+mvBO2Ja51S1YK+hnickBuDfD+RvPerIXLuyRu3GamgNPbNqgCGUg/Q==", "license": "MIT", "dependencies": { - "@sentry/bundler-plugin-core": "4.9.0", - "unplugin": "1.0.1" + "@sentry/bundler-plugin-core": "5.1.1", + "@sentry/rollup-plugin": "5.1.1" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@shikijs/core": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", - "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz", + "integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.22.0", + "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", - "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz", + "integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.22.0", + "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", - "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.22.0", + "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", - "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.22.0" + "@shikijs/types": "3.23.0" } }, "node_modules/@shikijs/themes": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", - "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.22.0" + "@shikijs/types": "3.23.0" } }, "node_modules/@shikijs/transformers": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.22.0.tgz", - "integrity": "sha512-E7eRV7mwDBjueLF6852n2oYeJYxBq3NSsDk+uyruYAXONv4U8holGmIrT+mPRJQ1J1SNOH6L8G19KRzmBawrFw==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.23.0.tgz", + "integrity": "sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==", "license": "MIT", "dependencies": { - "@shikijs/core": "3.22.0", - "@shikijs/types": "3.22.0" + "@shikijs/core": "3.23.0", + "@shikijs/types": "3.23.0" } }, "node_modules/@shikijs/types": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", - "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", "license": "MIT", "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", @@ -7194,9 +7276,9 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.0.tgz", - "integrity": "sha512-Yv+fn/o2OmL5fh/Ir62VXItdShnUxfpkMA4Y7jdeC8O81WPB8Kf6TT6GSHvnqgSwDzlB5iT7kDpeXxLsUS0T6Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz", + "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", @@ -7205,45 +7287,36 @@ "lightningcss": "1.31.1", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.2.0" - } - }, - "node_modules/@tailwindcss/node/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "tailwindcss": "4.2.1" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.0.tgz", - "integrity": "sha512-AZqQzADaj742oqn2xjl5JbIOzZB/DGCYF/7bpvhA8KvjUj9HJkag6bBuwZvH1ps6dfgxNHyuJVlzSr2VpMgdTQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.1.tgz", + "integrity": "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==", "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.2.0", - "@tailwindcss/oxide-darwin-arm64": "4.2.0", - "@tailwindcss/oxide-darwin-x64": "4.2.0", - "@tailwindcss/oxide-freebsd-x64": "4.2.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.2.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.2.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.2.0", - "@tailwindcss/oxide-linux-x64-musl": "4.2.0", - "@tailwindcss/oxide-wasm32-wasi": "4.2.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.2.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.2.0" + "@tailwindcss/oxide-android-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-arm64": "4.2.1", + "@tailwindcss/oxide-darwin-x64": "4.2.1", + "@tailwindcss/oxide-freebsd-x64": "4.2.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", + "@tailwindcss/oxide-linux-x64-musl": "4.2.1", + "@tailwindcss/oxide-wasm32-wasi": "4.2.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.0.tgz", - "integrity": "sha512-F0QkHAVaW/JNBWl4CEKWdZ9PMb0khw5DCELAOnu+RtjAfx5Zgw+gqCHFvqg3AirU1IAd181fwOtJQ5I8Yx5wtw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz", + "integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==", "cpu": [ "arm64" ], @@ -7257,9 +7330,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.0.tgz", - "integrity": "sha512-I0QylkXsBsJMZ4nkUNSR04p6+UptjcwhcVo3Zu828ikiEqHjVmQL9RuQ6uT/cVIiKpvtVA25msu/eRV97JeNSA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.1.tgz", + "integrity": "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==", "cpu": [ "arm64" ], @@ -7273,9 +7346,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.0.tgz", - "integrity": "sha512-6TmQIn4p09PBrmnkvbYQ0wbZhLtbaksCDx7Y7R3FYYx0yxNA7xg5KP7dowmQ3d2JVdabIHvs3Hx4K3d5uCf8xg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz", + "integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==", "cpu": [ "x64" ], @@ -7289,9 +7362,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.0.tgz", - "integrity": "sha512-qBudxDvAa2QwGlq9y7VIzhTvp2mLJ6nD/G8/tI70DCDoneaUeLWBJaPcbfzqRIWraj+o969aDQKvKW9dvkUizw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz", + "integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==", "cpu": [ "x64" ], @@ -7305,9 +7378,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.0.tgz", - "integrity": "sha512-7XKkitpy5NIjFZNUQPeUyNJNJn1CJeV7rmMR+exHfTuOsg8rxIO9eNV5TSEnqRcaOK77zQpsyUkBWmPy8FgdSg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz", + "integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==", "cpu": [ "arm" ], @@ -7321,9 +7394,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.0.tgz", - "integrity": "sha512-Mff5a5Q3WoQR01pGU1gr29hHM1N93xYrKkGXfPw/aRtK4bOc331Ho4Tgfsm5WDGvpevqMpdlkCojT3qlCQbCpA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz", + "integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==", "cpu": [ "arm64" ], @@ -7337,9 +7410,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.0.tgz", - "integrity": "sha512-XKcSStleEVnbH6W/9DHzZv1YhjE4eSS6zOu2eRtYAIh7aV4o3vIBs+t/B15xlqoxt6ef/0uiqJVB6hkHjWD/0A==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz", + "integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==", "cpu": [ "arm64" ], @@ -7353,9 +7426,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.0.tgz", - "integrity": "sha512-/hlXCBqn9K6fi7eAM0RsobHwJYa5V/xzWspVTzxnX+Ft9v6n+30Pz8+RxCn7sQL/vRHHLS30iQPrHQunu6/vJA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz", + "integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==", "cpu": [ "x64" ], @@ -7369,9 +7442,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.0.tgz", - "integrity": "sha512-lKUaygq4G7sWkhQbfdRRBkaq4LY39IriqBQ+Gk6l5nKq6Ay2M2ZZb1tlIyRNgZKS8cbErTwuYSor0IIULC0SHw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz", + "integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==", "cpu": [ "x64" ], @@ -7385,9 +7458,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.0.tgz", - "integrity": "sha512-xuDjhAsFdUuFP5W9Ze4k/o4AskUtI8bcAGU4puTYprr89QaYFmhYOPfP+d1pH+k9ets6RoE23BXZM1X1jJqoyw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz", + "integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -7413,68 +7486,10 @@ "node": ">=14.0.0" } }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.8.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.8.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "inBundle": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { - "version": "2.8.1", - "inBundle": true, - "license": "0BSD", - "optional": true - }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.0.tgz", - "integrity": "sha512-2UU/15y1sWDEDNJXxEIrfWKC2Yb4YgIW5Xz2fKFqGzFWfoMHWFlfa1EJlGO2Xzjkq/tvSarh9ZTjvbxqWvLLXA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz", + "integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==", "cpu": [ "arm64" ], @@ -7488,9 +7503,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.0.tgz", - "integrity": "sha512-CrFadmFoc+z76EV6LPG1jx6XceDsaCG3lFhyLNo/bV9ByPrE+FnBPckXQVP4XRkN76h3Fjt/a+5Er/oA/nCBvQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz", + "integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==", "cpu": [ "x64" ], @@ -7516,14 +7531,14 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.0.tgz", - "integrity": "sha512-da9mFCaHpoOgtQiWtDGIikTrSpUFBtIZCG3jy/u2BGV+l/X1/pbxzmIUxNt6JWm19N3WtGi4KlJdSH/Si83WOA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.1.tgz", + "integrity": "sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==", "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.2.0", - "@tailwindcss/oxide": "4.2.0", - "tailwindcss": "4.2.0" + "@tailwindcss/node": "4.2.1", + "@tailwindcss/oxide": "4.2.1", + "tailwindcss": "4.2.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" @@ -8147,16 +8162,23 @@ "license": "MIT" }, "node_modules/@types/jsdom": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-27.0.0.tgz", - "integrity": "sha512-NZyFl/PViwKzdEkQg96gtnB8wm+1ljhdDay9ahn4hgb+SfVtPCbm3TlmDUFXTA+MGN3CijicnMhG18SI5H3rFw==", + "version": "28.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-28.0.0.tgz", + "integrity": "sha512-A8TBQQC/xAOojy9kM8E46cqT00sF0h7dWjV8t8BJhUi2rG6JRh7XXQo/oLoENuZIQEpXsxLccLCnknyQd7qssQ==", "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "parse5": "^7.0.0", + "undici-types": "^7.21.0" } }, + "node_modules/@types/jsdom/node_modules/undici-types": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.22.0.tgz", + "integrity": "sha512-RKZvifiL60xdsIuC80UY0dq8Z7DbJUV8/l2hOVbyZAxBzEeQU4Z58+4ZzJ6WN2Lidi9KzT5EbiGX+PI/UGYuRw==", + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -8227,18 +8249,18 @@ } }, "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "version": "25.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.2.tgz", + "integrity": "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q==", "license": "MIT", "dependencies": { "undici-types": "~7.18.0" } }, "node_modules/@types/nodemailer": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-7.0.10.tgz", - "integrity": "sha512-tP+9WggTFN22Zxh0XFyst7239H0qwiRCogsk7v9aQS79sYAJY+WEbTHbNYcxUMaalHKmsNpxmoTe35hBEMMd6g==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-7.0.11.tgz", + "integrity": "sha512-E+U4RzR2dKrx+u3N4DlsmLaDC6mMZOM/TPROxA0UAPiTgI0y4CEFBmZE+coGWTjakDriRsXG368lNk1u9Q0a2g==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -8408,16 +8430,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz", - "integrity": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", + "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.56.0", - "@typescript-eslint/type-utils": "8.56.0", - "@typescript-eslint/utils": "8.56.0", - "@typescript-eslint/visitor-keys": "8.56.0", + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/type-utils": "8.56.1", + "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -8430,7 +8452,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.56.0", + "@typescript-eslint/parser": "^8.56.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -8445,15 +8467,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.0.tgz", - "integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", + "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.56.0", - "@typescript-eslint/types": "8.56.0", - "@typescript-eslint/typescript-estree": "8.56.0", - "@typescript-eslint/visitor-keys": "8.56.0", + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3" }, "engines": { @@ -8469,13 +8491,13 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.0.tgz", - "integrity": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", + "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.56.0", - "@typescript-eslint/types": "^8.56.0", + "@typescript-eslint/tsconfig-utils": "^8.56.1", + "@typescript-eslint/types": "^8.56.1", "debug": "^4.4.3" }, "engines": { @@ -8490,13 +8512,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz", - "integrity": "sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", + "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.0", - "@typescript-eslint/visitor-keys": "8.56.0" + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8507,9 +8529,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz", - "integrity": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", + "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8523,14 +8545,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz", - "integrity": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", + "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.0", - "@typescript-eslint/typescript-estree": "8.56.0", - "@typescript-eslint/utils": "8.56.0", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/utils": "8.56.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -8547,9 +8569,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.0.tgz", - "integrity": "sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", + "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8560,17 +8582,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz", - "integrity": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", + "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.56.0", - "@typescript-eslint/tsconfig-utils": "8.56.0", - "@typescript-eslint/types": "8.56.0", - "@typescript-eslint/visitor-keys": "8.56.0", + "@typescript-eslint/project-service": "8.56.1", + "@typescript-eslint/tsconfig-utils": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/visitor-keys": "8.56.1", "debug": "^4.4.3", - "minimatch": "^9.0.5", + "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" @@ -8586,6 +8608,42 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", @@ -8599,15 +8657,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.0.tgz", - "integrity": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", + "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.56.0", - "@typescript-eslint/types": "8.56.0", - "@typescript-eslint/typescript-estree": "8.56.0" + "@typescript-eslint/scope-manager": "8.56.1", + "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8622,12 +8680,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz", - "integrity": "sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", + "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/types": "8.56.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -8639,9 +8697,9 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz", - "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "license": "Apache-2.0", "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -9203,12 +9261,12 @@ } }, "node_modules/@vercel/backends": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@vercel/backends/-/backends-0.0.35.tgz", - "integrity": "sha512-jO0kfaNvpaM3atPbMD/ebzZrVpzKD8vUlqpI/ry61/XSzL69tcxr7fogG5zyp0p9UUZh6lTVSp8/bdGazUD7kA==", + "version": "0.0.38", + "resolved": "https://registry.npmjs.org/@vercel/backends/-/backends-0.0.38.tgz", + "integrity": "sha512-4aSa2itjwA4zm5q6DVHYElcBcULw2CqGfv+mT7pBCX74Rieuhy8oIjEh4a1ATIaicqgFUIBCPulanQh4ezjRfg==", "license": "Apache-2.0", "dependencies": { - "@vercel/build-utils": "13.4.2", + "@vercel/build-utils": "13.6.0", "@vercel/nft": "1.3.0", "execa": "3.2.0", "fs-extra": "11.1.0", @@ -9273,24 +9331,24 @@ } }, "node_modules/@vercel/backends/node_modules/balanced-match": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", - "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/backends/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/backends/node_modules/estree-walker": { @@ -9314,17 +9372,17 @@ } }, "node_modules/@vercel/backends/node_modules/glob": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9340,31 +9398,31 @@ } }, "node_modules/@vercel/backends/node_modules/minimatch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", - "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vercel/backends/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9402,49 +9460,46 @@ } }, "node_modules/@vercel/blob": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vercel/blob/-/blob-1.0.2.tgz", - "integrity": "sha512-Im/KeFH4oPx7UsM+QiteimnE07bIUD7JK6CBafI9Z0jRFogaialTBMiZj8EKk/30ctUYsrpIIyP9iIY1YxWnUQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@vercel/blob/-/blob-2.3.0.tgz", + "integrity": "sha512-oYWiJbWRQ7gz9Mj0X/NHFJ3OcLMOBzq/2b3j6zeNrQmtFo6dHwU8FAwNpxVIYddVMd+g8eqEi7iRueYx8FtM0Q==", "license": "Apache-2.0", "dependencies": { "async-retry": "^1.3.3", "is-buffer": "^2.0.5", "is-node-process": "^1.2.0", "throttleit": "^2.1.0", - "undici": "^5.28.4" + "undici": "^6.23.0" }, "engines": { - "node": ">=16.14" + "node": ">=20.0.0" } }, "node_modules/@vercel/blob/node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, "engines": { - "node": ">=14.0" + "node": ">=18.17" } }, "node_modules/@vercel/build-utils": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-13.4.2.tgz", - "integrity": "sha512-zPdDa311EZg4h1tFDSuJHqbvDoBKgdCsD6w3ZAHa0eqqAngLAb62zja4uBjoNBWucSQ1z94Ig8rKtU+4uHZiSg==", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-13.6.0.tgz", + "integrity": "sha512-oq99MNhoXJqEy7Cp7L9fGRoKyN2qDZX/7pIos7jNZHOl12Bya+iddWRX8RryNnPZ2OapBUMWGwyEYSkFCItYWw==", "license": "Apache-2.0", "dependencies": { - "@vercel/python-analysis": "0.5.0" + "@vercel/python-analysis": "0.8.0" } }, "node_modules/@vercel/cervel": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@vercel/cervel/-/cervel-0.0.22.tgz", - "integrity": "sha512-BZ6olCAs851U0BI0G1t8AAbmu0lMDd/aNbSEM9R5A1THkPUtuCqgF4YsAIdonsd+nbbEY1pgigj3mJfSrsYnlg==", + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@vercel/cervel/-/cervel-0.0.25.tgz", + "integrity": "sha512-5T1kKzD03VOsqcnI6fv7pscwkIYXPHK1wxT0de0xel33L4q+yZm+ZMYNzdz8ysSwM9drHHdyZx0si09VNwfe5w==", "license": "Apache-2.0", "dependencies": { - "@vercel/backends": "0.0.35" + "@vercel/backends": "0.0.38" }, "bin": { "cervel": "bin/cervel.mjs" @@ -9463,12 +9518,12 @@ } }, "node_modules/@vercel/elysia": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@vercel/elysia/-/elysia-0.1.38.tgz", - "integrity": "sha512-n4GijB4CvRLceMJ/ZqiVjUX7AmWCWR3DWDaRYs9Ek9KhKL6yv/yqOmNOxlK+qlscJwBMVvvVBzXjKBs0cW8iqg==", + "version": "0.1.41", + "resolved": "https://registry.npmjs.org/@vercel/elysia/-/elysia-0.1.41.tgz", + "integrity": "sha512-2u/t9EEko7DS/Jb7UWmf8lhkIlM+FIxtiB9MV2Mm5glojLoCTXWJuI51do4wOq/10FXM+HiZs0pEUYZr/Z46Dw==", "license": "Apache-2.0", "dependencies": { - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2" } }, @@ -9479,14 +9534,14 @@ "license": "Apache-2.0" }, "node_modules/@vercel/express": { - "version": "0.1.47", - "resolved": "https://registry.npmjs.org/@vercel/express/-/express-0.1.47.tgz", - "integrity": "sha512-8lOLdmEpWypd3du84nwQa8obMrKeJ0UCle/qKDvdzYar1aW4KxnlnKvVYk7HvVWGlNZk9tyfLnOSwc1mHHBUOg==", + "version": "0.1.50", + "resolved": "https://registry.npmjs.org/@vercel/express/-/express-0.1.50.tgz", + "integrity": "sha512-IWbWxQi5YZVDf98V7GI2IWTKZxPdiJXhUlK7xyysoGzIIEGHMeXWvK8rG4gJtbPEQJkY2mkG0CqIy+4DVFq6wA==", "license": "Apache-2.0", "dependencies": { - "@vercel/cervel": "0.0.22", + "@vercel/cervel": "0.0.25", "@vercel/nft": "1.1.1", - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2", "fs-extra": "11.1.0", "path-to-regexp": "8.3.0", @@ -9543,24 +9598,24 @@ } }, "node_modules/@vercel/express/node_modules/balanced-match": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", - "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/express/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/express/node_modules/estree-walker": { @@ -9584,17 +9639,17 @@ } }, "node_modules/@vercel/express/node_modules/glob": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9610,31 +9665,31 @@ } }, "node_modules/@vercel/express/node_modules/minimatch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", - "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vercel/express/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9672,12 +9727,12 @@ } }, "node_modules/@vercel/fastify": { - "version": "0.1.41", - "resolved": "https://registry.npmjs.org/@vercel/fastify/-/fastify-0.1.41.tgz", - "integrity": "sha512-UEylPMHaAVzh+zwr2vPjLtQdwAUjHbxPCH+nbeC9z+BLw37DRuEq+DMQULxvUCYdk//r329nRs9oUv1lw1JxYQ==", + "version": "0.1.44", + "resolved": "https://registry.npmjs.org/@vercel/fastify/-/fastify-0.1.44.tgz", + "integrity": "sha512-WSFSqLt0oSjXn2hSUBmZ7qeK+40mnH86EcnRfeixlJzGmHV9zCXqUSKlzqhB9ADIs3oEcTNymLg3gv4ILuXB/A==", "license": "Apache-2.0", "dependencies": { - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2" } }, @@ -9837,13 +9892,13 @@ } }, "node_modules/@vercel/gatsby-plugin-vercel-builder": { - "version": "2.0.137", - "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.137.tgz", - "integrity": "sha512-yV+QGS6oEboy6dArbHy3+5bgc/MiRwBZL5VRSU5fbeln2s18iBoumvJjIMTKd9nCEM9dqtewJwcBMH90fKmDTQ==", + "version": "2.0.140", + "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.140.tgz", + "integrity": "sha512-MTq2VynZaPlJUGm3MpzhCTwelohDrTYtrSvArCYF4dbLTA1rk7GOSpkYp1iENDvj9He5GRODun0QA7MandcCrw==", "license": "Apache-2.0", "dependencies": { "@sinclair/typebox": "0.25.24", - "@vercel/build-utils": "13.4.2", + "@vercel/build-utils": "13.6.0", "esbuild": "0.27.0", "etag": "1.8.1", "fs-extra": "11.1.0" @@ -10321,29 +10376,29 @@ } }, "node_modules/@vercel/go": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@vercel/go/-/go-3.4.1.tgz", - "integrity": "sha512-VASkp8D3FG77zesloUiMSGMZhLkeYdSPlakyssTiU30UO3+ydbEP4SRKj9YhXNCYu7cY5xKY2gJx9PsoDhrW4g==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vercel/go/-/go-3.4.3.tgz", + "integrity": "sha512-LDT4wpx7SW2UJHd3rOL4+2m2V4w7a5zjyuU0pu0yDBiuxp9bEh7QuAH5qZC7pINGLC3vGftiFVzynd5N454sVA==", "license": "Apache-2.0" }, "node_modules/@vercel/h3": { - "version": "0.1.47", - "resolved": "https://registry.npmjs.org/@vercel/h3/-/h3-0.1.47.tgz", - "integrity": "sha512-QZxUfsYE3O2QRYUitfpZj1P1rDg4ULpldSglNbb1cmZjMbZ8k4CB7LKfdHcno3rztYtc+64ea/auXG/oUQWWuw==", + "version": "0.1.50", + "resolved": "https://registry.npmjs.org/@vercel/h3/-/h3-0.1.50.tgz", + "integrity": "sha512-dbngrwqAoBQ5nWoe20aB3Kg1IiTQX/gmqj/hpcK8OS3bFAvXsfmiQPUp8G5b5+Oldkoj9R9hkF5n422IfmT/BA==", "license": "Apache-2.0", "dependencies": { - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2" } }, "node_modules/@vercel/hono": { - "version": "0.2.41", - "resolved": "https://registry.npmjs.org/@vercel/hono/-/hono-0.2.41.tgz", - "integrity": "sha512-KJv0IhesG3TNIHpSTukIWJMryQRXkSDd043hNNtY6uc+IslE/QBNgyiujWkSpnxJqSUyU0qdyuFvRDE7p23aGw==", + "version": "0.2.44", + "resolved": "https://registry.npmjs.org/@vercel/hono/-/hono-0.2.44.tgz", + "integrity": "sha512-SCG+yPU6klFuvMPHnWAOUV+9d9Yhw+bBCRrMt/9FSaBguTcB0Ao24UADpf2heti3klkH0lO9LW5ot2NTQ0wOJg==", "license": "Apache-2.0", "dependencies": { "@vercel/nft": "1.1.1", - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2", "fs-extra": "11.1.0", "path-to-regexp": "8.3.0", @@ -10400,24 +10455,24 @@ } }, "node_modules/@vercel/hono/node_modules/balanced-match": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", - "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/hono/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/hono/node_modules/estree-walker": { @@ -10441,17 +10496,17 @@ } }, "node_modules/@vercel/hono/node_modules/glob": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10467,31 +10522,31 @@ } }, "node_modules/@vercel/hono/node_modules/minimatch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", - "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vercel/hono/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10539,29 +10594,29 @@ } }, "node_modules/@vercel/koa": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@vercel/koa/-/koa-0.1.21.tgz", - "integrity": "sha512-S1fkeEObzCzMyVo2LE3fV2XKF+b7lROGHC/unFOzMZ4I+dO9plCWcK6N0a3ma33dE3BJPC68V/zh6JcjUjrNLQ==", + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/@vercel/koa/-/koa-0.1.24.tgz", + "integrity": "sha512-j27u2GGbkzHDhlMc5a0kB7lItn799j48+DKf0oDobR12S7qOLSjSIIAbYrYi/0z8MNFfpkMfuV/TjWcG3BQesQ==", "license": "Apache-2.0", "dependencies": { - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2" } }, "node_modules/@vercel/nestjs": { - "version": "0.2.42", - "resolved": "https://registry.npmjs.org/@vercel/nestjs/-/nestjs-0.2.42.tgz", - "integrity": "sha512-6qh3PDion0Ricmk11Y8Yg9Wc0REXH2iOy77RdOdgIfirempLVV+Y//69Nv1KhMl2Re7isllZoetICx9m8iCN0Q==", + "version": "0.2.45", + "resolved": "https://registry.npmjs.org/@vercel/nestjs/-/nestjs-0.2.45.tgz", + "integrity": "sha512-syNMpMkBOIclvnH5AJ98kf8ubwjrWS/BtQjIrrY2o830NWRSHFLXB9VjnbCbCLmDJF3Oum4FfkDkg3D0L9M5hA==", "license": "Apache-2.0", "dependencies": { - "@vercel/node": "5.6.5", + "@vercel/node": "5.6.8", "@vercel/static-config": "3.1.2" } }, "node_modules/@vercel/next": { - "version": "4.15.29", - "resolved": "https://registry.npmjs.org/@vercel/next/-/next-4.15.29.tgz", - "integrity": "sha512-XoK7zdoyicR1fp823ZRWg6cfweIJBH9HTvxNpZFQq2tQOhAqX2XFC3fM3a7LSAJAGG+oUMBU9NsyoxKZ+Szl/Q==", + "version": "4.15.35", + "resolved": "https://registry.npmjs.org/@vercel/next/-/next-4.15.35.tgz", + "integrity": "sha512-TSzRkDJjXeh/TZ5Lq5iYSsHvCLFW062vJc5VCtihzhG0OrVAQ3bUCkYvu7OTSXq373R0lHn2DGNmLxB3sszavQ==", "license": "Apache-2.0", "dependencies": { "@vercel/nft": "1.1.1" @@ -10616,24 +10671,24 @@ } }, "node_modules/@vercel/next/node_modules/balanced-match": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", - "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/next/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/next/node_modules/estree-walker": { @@ -10643,17 +10698,17 @@ "license": "MIT" }, "node_modules/@vercel/next/node_modules/glob": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10669,31 +10724,31 @@ } }, "node_modules/@vercel/next/node_modules/minimatch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", - "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vercel/next/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10778,16 +10833,16 @@ } }, "node_modules/@vercel/node": { - "version": "5.6.5", - "resolved": "https://registry.npmjs.org/@vercel/node/-/node-5.6.5.tgz", - "integrity": "sha512-J2RovZMrjltu55ptLM6bZrttSOX/hrbMA9rZicAzGqdbSEg5Pn5FG44cAQ1VS+5+0gn3IwZJygVMzK8KY990LA==", + "version": "5.6.8", + "resolved": "https://registry.npmjs.org/@vercel/node/-/node-5.6.8.tgz", + "integrity": "sha512-xVxx+RdPvzTCoxJTWHQzDaIb9Q0cbqGfaE+hbNZn6QCuDNoRl2/+b0nrfjdl/FjRCXSibF95j6frBDWu+XcUkg==", "license": "Apache-2.0", "dependencies": { "@edge-runtime/node-utils": "2.3.0", "@edge-runtime/primitives": "4.1.0", "@edge-runtime/vm": "3.2.0", "@types/node": "20.11.0", - "@vercel/build-utils": "13.4.2", + "@vercel/build-utils": "13.6.0", "@vercel/error-utils": "2.0.3", "@vercel/nft": "1.1.1", "@vercel/static-config": "3.1.2", @@ -11290,24 +11345,24 @@ } }, "node_modules/@vercel/node/node_modules/balanced-match": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", - "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/node/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/node/node_modules/cjs-module-lexer": { @@ -11370,17 +11425,17 @@ "license": "MIT" }, "node_modules/@vercel/node/node_modules/glob": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11396,15 +11451,15 @@ } }, "node_modules/@vercel/node/node_modules/minimatch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", - "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11431,16 +11486,16 @@ } }, "node_modules/@vercel/node/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11490,18 +11545,18 @@ } }, "node_modules/@vercel/python": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/@vercel/python/-/python-6.14.1.tgz", - "integrity": "sha512-BiVAQ8bHW/sYthwbO2iBTLETRKzFABynPBY1Y/jpsksGKN9oPQ8Q2MJDn8QT4ARk015x6dsj/FeJvsaQuOTxyA==", + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@vercel/python/-/python-6.17.0.tgz", + "integrity": "sha512-gCwanDwFO4ceLYke80KhYyGf/zQoStxPamOuLvkmeje57PCBCjl2R4O5x1FdRst/ppQV4aKgu7cETySK2ifMFQ==", "license": "Apache-2.0", "dependencies": { - "@vercel/python-analysis": "0.5.0" + "@vercel/python-analysis": "0.8.0" } }, "node_modules/@vercel/python-analysis": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@vercel/python-analysis/-/python-analysis-0.5.0.tgz", - "integrity": "sha512-OHe2XXoB2KleshyYzBs9X3xdKRFXY9m9v+fQQE9WRlTvzvO5nhvtFEXYD/L9w5M3MH5JK9XMC+ZcTE9ssgJQ6Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@vercel/python-analysis/-/python-analysis-0.8.0.tgz", + "integrity": "sha512-MCdOi+d7OBK/1ZlWozkLYd9F12w5T8osbeWw/Z33RFfXdiXQUs1utvRRg70n1Gi9yiRh+n9ElsmjrJ+olkGqTA==", "license": "Apache-2.0", "dependencies": { "@bytecodealliance/preview2-shim": "0.17.6", @@ -11748,9 +11803,9 @@ } }, "node_modules/@vercel/remix-builder": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-5.5.10.tgz", - "integrity": "sha512-E4fqjBaztj/5JG8HCbvqO/JZyP3b+hpse+aAMb9twvgyIRfkkl+146liFF2I8/M/cc1PWkSfaqa8LF0+5x4egA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-5.6.0.tgz", + "integrity": "sha512-neTpO4aGksYcPJjTbAEUhWmsOdFqgx02H47RUsXBKHdMTW4ZKrL9oAKT3pD+Bv9kUgj7uRzqAr8JeiPILPWybg==", "license": "Apache-2.0", "dependencies": { "@vercel/error-utils": "2.0.3", @@ -11761,15 +11816,6 @@ "ts-morph": "12.0.0" } }, - "node_modules/@vercel/remix-builder/node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/@vercel/remix-builder/node_modules/@rollup/pluginutils": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", @@ -11819,27 +11865,24 @@ } }, "node_modules/@vercel/remix-builder/node_modules/balanced-match": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", - "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/remix-builder/node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@vercel/remix-builder/node_modules/estree-walker": { @@ -11849,32 +11892,17 @@ "license": "MIT" }, "node_modules/@vercel/remix-builder/node_modules/glob": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz", - "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.0", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vercel/remix-builder/node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/cliui": "^9.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11890,31 +11918,31 @@ } }, "node_modules/@vercel/remix-builder/node_modules/minimatch": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", - "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vercel/remix-builder/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11946,9 +11974,9 @@ } }, "node_modules/@vercel/ruby": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.3.1.tgz", - "integrity": "sha512-r9WdHILtb3pca75RMPJnSeLSOhBtNt4qZgU+tqRfoS90vEa9Rr6EC2XaD/Wyfm2N5dHSlahASTgp8uPoN4aLZA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.3.2.tgz", + "integrity": "sha512-okIgMmPEePyDR9TZYaKM4oftcxVHM5Dbdl7V/tIdh3lq8MGLi7HR5vvQglmZUwZOeovE6MVtezxl960EOzeIiQ==", "license": "Apache-2.0" }, "node_modules/@vercel/rust": { @@ -12012,13 +12040,13 @@ "license": "ISC" }, "node_modules/@vercel/static-build": { - "version": "2.8.39", - "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.8.39.tgz", - "integrity": "sha512-nouznsgd56X0tD4Xw0uGvJFtt754WFdzXybGfvLHm9asP5Vtx40Ak/xCMgn8VJDJIdwlgp3zhWwKHKooaixCGA==", + "version": "2.8.42", + "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.8.42.tgz", + "integrity": "sha512-KIaIXYmvwQt2BUPknYbZOXZKWFCaQFOYvPaPM+B7T2b9aEeyft84pDEES2nx0duw4A6ai/qZBOfigJMG3Yz96g==", "license": "Apache-2.0", "dependencies": { "@vercel/gatsby-plugin-vercel-analytics": "1.0.11", - "@vercel/gatsby-plugin-vercel-builder": "2.0.137", + "@vercel/gatsby-plugin-vercel-builder": "2.0.140", "@vercel/static-config": "3.1.2", "ts-morph": "12.0.0" } @@ -12151,15 +12179,6 @@ } } }, - "node_modules/@vitest/mocker/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/@vitest/pretty-format": { "version": "4.0.18", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.18.tgz", @@ -12205,15 +12224,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/snapshot/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/@vitest/snapshot/node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -12425,9 +12435,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -12467,9 +12477,9 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -14244,9 +14254,9 @@ } }, "node_modules/astro": { - "version": "5.17.3", - "resolved": "https://registry.npmjs.org/astro/-/astro-5.17.3.tgz", - "integrity": "sha512-69dcfPe8LsHzklwj+hl+vunWUbpMB6pmg35mACjetxbJeUNNys90JaBM8ZiwsPK689SAj/4Zqb1ayaANls9/MA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.18.0.tgz", + "integrity": "sha512-CHiohwJIS4L0G6/IzE1Fx3dgWqXBCXus/od0eGUfxrZJD2um2pE7ehclMmgL/fXqbU7NfE1Ze2pq34h2QaA6iQ==", "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.13.0", @@ -15016,15 +15026,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/astro/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/astro/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", @@ -15958,12 +15959,15 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.19", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", - "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", + "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/basic-ftp": { @@ -16002,18 +16006,6 @@ "node": "*" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -17246,12 +17238,12 @@ "license": "Apache-2.0" }, "node_modules/css-functions-list": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", - "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "license": "MIT", "engines": { - "node": ">=12 || >=16" + "node": ">=12" } }, "node_modules/css-select": { @@ -19218,14 +19210,14 @@ } }, "node_modules/eslint": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.0.tgz", - "integrity": "sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.2.tgz", + "integrity": "sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.0", + "@eslint/config-array": "^0.23.2", "@eslint/config-helpers": "^0.5.2", "@eslint/core": "^1.1.0", "@eslint/plugin-kit": "^0.6.0", @@ -19233,13 +19225,13 @@ "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.0", - "eslint-visitor-keys": "^5.0.0", - "espree": "^11.1.0", + "eslint-scope": "^9.1.1", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.1.1", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -19250,7 +19242,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.1.1", + "minimatch": "^10.2.1", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -19518,9 +19510,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "62.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.6.0.tgz", - "integrity": "sha512-Z18zZD1Q2m9usqFbAzb30z+lF8bzE4WiUy+dfOXljJlZ1Jm5uhkuAWfGV97FYyh+WlKfrvpDYs+s1z45eZWMfA==", + "version": "62.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.7.1.tgz", + "integrity": "sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==", "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.84.0", @@ -19534,7 +19526,7 @@ "html-entities": "^2.6.0", "object-deep-merge": "^2.0.0", "parse-imports-exports": "^0.2.4", - "semver": "^7.7.3", + "semver": "^7.7.4", "spdx-expression-parse": "^4.0.0", "to-valid-identifier": "^1.0.0" }, @@ -19542,7 +19534,7 @@ "node": "^20.19.0 || ^22.13.0 || >=24" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" } }, "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { @@ -19575,9 +19567,9 @@ } }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -19647,9 +19639,9 @@ } }, "node_modules/eslint-plugin-security": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz", - "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-4.0.0.tgz", + "integrity": "sha512-tfuQT8K/Li1ZxhFzyD8wPIKtlzZxqBcPr9q0jFMQ77wWAbKBVEhaMPVQRTMTvCMUDhwBe5vPVqQPwAGk/ASfxQ==", "license": "Apache-2.0", "dependencies": { "safe-regex": "^2.1.1" @@ -19662,14 +19654,14 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-3.2.1.tgz", - "integrity": "sha512-/oFj7MWk56AKLelLSUb7zN1OKDI9kR+uKEzbf/sGu7Bov0tJs3qwtMcu+VCcEtFAFD7KZe0LSYhyy0Uq8hKF9g==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-3.3.0.tgz", + "integrity": "sha512-kRja5paNrMfZnbNqDbZSFrSHz5x7jmGBQq7d6z/+wRvWD4Y0yb1fbjojBg3ReMewFhBB7nD2nPC86+m3HmILJA==", "license": "MIT", "dependencies": { "@eslint/core": "^1.0.1", "@eslint/plugin-kit": "^0.6.0", - "@ota-meshi/ast-token-store": "^0.2.1", + "@ota-meshi/ast-token-store": "^0.3.0", "debug": "^4.3.2", "diff-sequences": "^29.0.0", "escape-string-regexp": "5.0.0", @@ -19726,10 +19718,31 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.0.tgz", - "integrity": "sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.1.tgz", + "integrity": "sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==", "license": "BSD-2-Clause", "dependencies": { "@types/esrecurse": "^4.3.1", @@ -19745,9 +19758,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz", - "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "license": "Apache-2.0", "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -19757,14 +19770,14 @@ } }, "node_modules/eslint/node_modules/espree": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.0.tgz", - "integrity": "sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.1.tgz", + "integrity": "sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==", "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.0" + "eslint-visitor-keys": "^5.0.1" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -19774,15 +19787,15 @@ } }, "node_modules/eslint/node_modules/minimatch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -21072,9 +21085,9 @@ "license": "MIT" }, "node_modules/happy-dom": { - "version": "20.6.3", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.6.3.tgz", - "integrity": "sha512-QAMY7d228dHs8gb9NG4SJ3OxQo4r+NGN8pOXGZ3SGfQf/XYuuYubrtZ25QVY2WoUQdskhRXSXb4R4mcRk+hV1w==", + "version": "20.7.0", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.7.0.tgz", + "integrity": "sha512-hR/uLYQdngTyEfxnOoa+e6KTcfBFyc1hgFj/Cc144A5JJUuHFYqIEBDcD4FeGqUeKLRZqJ9eN9u7/GDjYEgS1g==", "license": "MIT", "dependencies": { "@types/node": ">=20.0.0", @@ -22469,18 +22482,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", @@ -23119,9 +23120,9 @@ "license": "ISC" }, "node_modules/isomorphic-git": { - "version": "1.37.1", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.37.1.tgz", - "integrity": "sha512-3r98kY+X24i6za2zwoNnISGobykIdc4aP7ScJGHpN3wbWSCbJZ2Kp/8WIsHJwvOCVUBjUHNkcB+4ty5iNv6RQA==", + "version": "1.37.2", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.37.2.tgz", + "integrity": "sha512-HCQBBKmXIMPdHgYGstSBNp6MNmVcMQBbUqJF8xfywFmlpNseO4KKex59YlXqNxhRxmv3fUZwvNWvMyOdc1VvhA==", "license": "MIT", "dependencies": { "async-lock": "^1.4.1", @@ -23687,12 +23688,6 @@ "node": ">=6" } }, - "node_modules/known-css-properties": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", - "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", - "license": "MIT" - }, "node_modules/kolorist": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", @@ -23784,9 +23779,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.12.37", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.37.tgz", - "integrity": "sha512-rDU6bkpuMs8YRt/UpkuYEAsYSoNuDEbrE41I3KNvmXREGH6DGBJ8Wbak4by29wNOQ27zk4g4HL82zf0OGhwRuw==", + "version": "1.12.38", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.38.tgz", + "integrity": "sha512-vwzxmasAy9hZigxtqTbFEwp8ZdZ975TiqVDwj5bKx5sR+zi5ucUQy9mbVTkKM9GzqdLdxux/hTw2nmN5J7POMA==", "license": "MIT" }, "node_modules/libsql": { @@ -25061,15 +25056,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/magicast": { @@ -25990,9 +25982,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -27747,10 +27739,10 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -27871,9 +27863,9 @@ } }, "node_modules/nanostores": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-1.1.0.tgz", - "integrity": "sha512-yJBmDJr18xy47dbNVlHcgdPrulSn1nhSE6Ns9vTG+Nx9VPT6iV1MD6aQFp/t52zpf82FhLLTXAXr30NuCnxvwA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-1.1.1.tgz", + "integrity": "sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg==", "funding": [ { "type": "github", @@ -28263,9 +28255,9 @@ } }, "node_modules/npm": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-11.10.0.tgz", - "integrity": "sha512-i8hE43iSIAMFuYVi8TxsEISdELM4fIza600aLjJ0ankGPLqd0oTPKMJqAcO/QWm307MbSlWGzJcNZ0lGMQgHPA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.11.0.tgz", + "integrity": "sha512-82gRxKrh/eY5UnNorkTFcdBQAGpgjWehkfGVqAGlJjejEtJZGGJUqjo3mbBTNbc5BTnPKGVtGPBZGhElujX5cw==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -28283,7 +28275,6 @@ "cacache", "chalk", "ci-info", - "cli-columns", "fastest-levenshtein", "fs-minipass", "glob", @@ -28344,12 +28335,12 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^9.3.0", - "@npmcli/config": "^10.7.0", + "@npmcli/arborist": "^9.4.0", + "@npmcli/config": "^10.7.1", "@npmcli/fs": "^5.0.0", "@npmcli/map-workspaces": "^5.0.3", "@npmcli/metavuln-calculator": "^9.0.3", - "@npmcli/package-json": "^7.0.4", + "@npmcli/package-json": "^7.0.5", "@npmcli/promise-spawn": "^9.0.1", "@npmcli/redact": "^4.0.0", "@npmcli/run-script": "^10.0.3", @@ -28359,29 +28350,28 @@ "cacache": "^20.0.3", "chalk": "^5.6.2", "ci-info": "^4.4.0", - "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^13.0.2", + "glob": "^13.0.6", "graceful-fs": "^4.2.11", "hosted-git-info": "^9.0.2", "ini": "^6.0.0", - "init-package-json": "^8.2.4", + "init-package-json": "^8.2.5", "is-cidr": "^6.0.3", "json-parse-even-better-errors": "^5.0.0", "libnpmaccess": "^10.0.3", - "libnpmdiff": "^8.1.1", - "libnpmexec": "^10.2.1", - "libnpmfund": "^7.0.15", + "libnpmdiff": "^8.1.3", + "libnpmexec": "^10.2.3", + "libnpmfund": "^7.0.17", "libnpmorg": "^8.0.1", - "libnpmpack": "^9.1.1", + "libnpmpack": "^9.1.3", "libnpmpublish": "^11.1.3", "libnpmsearch": "^9.0.1", "libnpmteam": "^8.0.2", "libnpmversion": "^8.0.3", - "make-fetch-happen": "^15.0.3", - "minimatch": "^10.1.1", - "minipass": "^7.1.1", + "make-fetch-happen": "^15.0.4", + "minimatch": "^10.2.2", + "minipass": "^7.1.3", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^12.2.0", @@ -28394,7 +28384,7 @@ "npm-registry-fetch": "^19.1.1", "npm-user-validate": "^4.0.0", "p-map": "^7.0.4", - "pacote": "^21.3.1", + "pacote": "^21.4.0", "parse-conflict-json": "^5.0.1", "proc-log": "^6.1.0", "qrcode-terminal": "^0.12.0", @@ -28403,7 +28393,7 @@ "spdx-expression-parse": "^4.0.0", "ssri": "^13.0.1", "supports-color": "^10.2.2", - "tar": "^7.5.7", + "tar": "^7.5.9", "text-table": "~0.2.0", "tiny-relative-date": "^2.0.2", "treeverse": "^3.0.0", @@ -28439,9 +28429,27 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/@gar/promise-retry": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "retry": "^0.13.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@gar/promise-retry/node_modules/retry": { + "version": "0.13.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/npm/node_modules/@isaacs/balanced-match": { "version": "4.0.1", - "inBundle": true, "license": "MIT", "engines": { "node": "20 || >=22" @@ -28449,7 +28457,6 @@ }, "node_modules/npm/node_modules/@isaacs/brace-expansion": { "version": "5.0.1", - "inBundle": true, "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" @@ -28490,7 +28497,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "9.3.0", + "version": "9.4.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -28536,7 +28543,7 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "10.7.0", + "version": "10.7.1", "inBundle": true, "license": "ISC", "dependencies": { @@ -28565,16 +28572,16 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "7.0.1", + "version": "7.0.2", "inBundle": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/promise-spawn": "^9.0.0", "ini": "^6.0.0", "lru-cache": "^11.2.1", "npm-pick-manifest": "^11.0.1", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^6.0.0" }, @@ -28643,7 +28650,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "7.0.4", + "version": "7.0.5", "inBundle": true, "license": "ISC", "dependencies": { @@ -28653,7 +28660,7 @@ "json-parse-even-better-errors": "^5.0.0", "proc-log": "^6.0.0", "semver": "^7.5.3", - "validate-npm-package-license": "^3.0.4" + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -28809,14 +28816,6 @@ "node": ">= 14" } }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/aproba": { "version": "2.1.0", "inBundle": true, @@ -28827,6 +28826,14 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/balanced-match": { + "version": "4.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/npm/node_modules/bin-links": { "version": "6.0.0", "inBundle": true, @@ -28853,6 +28860,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "5.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/npm/node_modules/cacache": { "version": "20.0.3", "inBundle": true, @@ -28908,28 +28926,13 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "5.0.2", + "version": "5.0.3", "inBundle": true, "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "5.0.0" - }, "engines": { "node": ">=20" } }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/npm/node_modules/cmd-shim": { "version": "8.0.0", "inBundle": true, @@ -28981,14 +28984,8 @@ "node": ">=0.3.1" } }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", - "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -29033,16 +29030,16 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "13.0.2", + "version": "13.0.6", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.2", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -29094,7 +29091,7 @@ } }, "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", + "version": "0.7.2", "inBundle": true, "license": "MIT", "optional": true, @@ -29103,6 +29100,10 @@ }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/npm/node_modules/ignore-walk": { @@ -29133,7 +29134,7 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "8.2.4", + "version": "8.2.5", "inBundle": true, "license": "ISC", "dependencies": { @@ -29142,7 +29143,6 @@ "promzard": "^3.0.1", "read": "^5.0.1", "semver": "^7.7.2", - "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^7.0.0" }, "engines": { @@ -29159,7 +29159,6 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", - "inBundle": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -29179,14 +29178,6 @@ "node": ">=20" } }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/isexe": { "version": "4.0.0", "inBundle": true, @@ -29242,11 +29233,11 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "8.1.1", + "version": "8.1.3", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@npmcli/arborist": "^9.4.0", "@npmcli/installed-package-contents": "^4.0.0", "binary-extensions": "^3.0.0", "diff": "^8.0.2", @@ -29260,18 +29251,18 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "10.2.1", + "version": "10.2.3", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@gar/promise-retry": "^1.0.0", + "@npmcli/arborist": "^9.4.0", "@npmcli/package-json": "^7.0.0", "@npmcli/run-script": "^10.0.0", "ci-info": "^4.0.0", "npm-package-arg": "^13.0.0", "pacote": "^21.0.2", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "read": "^5.0.1", "semver": "^7.3.7", "signal-exit": "^4.1.0", @@ -29282,11 +29273,11 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "7.0.15", + "version": "7.0.17", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0" + "@npmcli/arborist": "^9.4.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -29305,11 +29296,11 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "9.1.1", + "version": "9.1.3", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@npmcli/arborist": "^9.4.0", "@npmcli/run-script": "^10.0.0", "npm-package-arg": "^13.0.0", "pacote": "^21.0.2" @@ -29383,10 +29374,11 @@ } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "15.0.3", + "version": "15.0.4", "inBundle": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/agent": "^4.0.0", "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", @@ -29396,7 +29388,6 @@ "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "ssri": "^13.0.0" }, "engines": { @@ -29404,23 +29395,23 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "10.1.2", + "version": "10.2.2", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/minipass": { - "version": "7.1.2", + "version": "7.1.3", "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -29437,7 +29428,7 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "5.0.1", + "version": "5.0.2", "inBundle": true, "license": "MIT", "dependencies": { @@ -29449,7 +29440,7 @@ "node": "^20.17.0 || >=22.9.0" }, "optionalDependencies": { - "encoding": "^0.1.13" + "iconv-lite": "^0.7.2" } }, "node_modules/npm/node_modules/minipass-flush": { @@ -29474,6 +29465,11 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", "inBundle": true, @@ -29496,6 +29492,11 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/minipass-sized": { "version": "2.0.0", "inBundle": true, @@ -29629,7 +29630,7 @@ } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "10.0.3", + "version": "10.0.4", "inBundle": true, "license": "ISC", "dependencies": { @@ -29704,10 +29705,11 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "21.3.1", + "version": "21.4.0", "inBundle": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/git": "^7.0.0", "@npmcli/installed-package-contents": "^4.0.0", "@npmcli/package-json": "^7.0.0", @@ -29721,7 +29723,6 @@ "npm-pick-manifest": "^11.0.1", "npm-registry-fetch": "^19.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "sigstore": "^4.0.0", "ssri": "^13.0.0", "tar": "^7.4.3" @@ -29747,7 +29748,7 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "2.0.1", + "version": "2.0.2", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -29755,7 +29756,7 @@ "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -29943,7 +29944,6 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", - "inBundle": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -29952,7 +29952,6 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", - "inBundle": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -29974,7 +29973,7 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.22", + "version": "3.0.23", "inBundle": true, "license": "CC0-1.0" }, @@ -29989,30 +29988,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/supports-color": { "version": "10.2.2", "inBundle": true, @@ -30025,7 +30000,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "7.5.7", + "version": "7.5.9", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -30039,14 +30014,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "inBundle": true, @@ -30149,7 +30116,6 @@ }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", - "inBundle": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -30158,7 +30124,6 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", - "inBundle": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -30208,9 +30173,12 @@ } }, "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", + "version": "5.0.0", "inBundle": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, "node_modules/nth-check": { "version": "2.1.1", @@ -31605,9 +31573,9 @@ } }, "node_modules/preact": { - "version": "10.28.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.3.tgz", - "integrity": "sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==", + "version": "10.28.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.4.tgz", + "integrity": "sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -35431,17 +35399,17 @@ } }, "node_modules/shiki": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", - "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz", + "integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==", "license": "MIT", "dependencies": { - "@shikijs/core": "3.22.0", - "@shikijs/engine-javascript": "3.22.0", - "@shikijs/engine-oniguruma": "3.22.0", - "@shikijs/langs": "3.22.0", - "@shikijs/themes": "3.22.0", - "@shikijs/types": "3.22.0", + "@shikijs/core": "3.23.0", + "@shikijs/engine-javascript": "3.23.0", + "@shikijs/engine-oniguruma": "3.23.0", + "@shikijs/langs": "3.23.0", + "@shikijs/themes": "3.23.0", + "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } @@ -36553,9 +36521,9 @@ } }, "node_modules/stylelint": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.3.0.tgz", - "integrity": "sha512-1POV91lcEMhj6SLVaOeA0KlS9yattS+qq+cyWqP/nYzWco7K5jznpGH1ExngvPlTM9QF1Kjd2bmuzJu9TH2OcA==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.4.0.tgz", + "integrity": "sha512-3kQ2/cHv3Zt8OBg+h2B8XCx9evEABQIrv4hh3uXahGz/ZEHrTR80zxBiK2NfXNaSoyBzxO1pjsz1Vhdzwn5XSw==", "funding": [ { "type": "opencollective", @@ -36570,15 +36538,14 @@ "dependencies": { "@csstools/css-calc": "^3.1.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.0.26", + "@csstools/css-syntax-patches-for-csstree": "^1.0.27", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", "@csstools/selector-specificity": "^6.0.0", - "balanced-match": "^3.0.1", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", + "css-functions-list": "^3.3.3", "css-tree": "^3.1.0", "debug": "^4.4.3", "fast-glob": "^3.3.3", @@ -36592,7 +36559,6 @@ "import-meta-resolve": "^4.2.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", "mathml-tag-names": "^4.0.0", "meow": "^14.0.0", "micromatch": "^4.0.8", @@ -36734,15 +36700,6 @@ "postcss-selector-parser": "^7.1.1" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-3.0.1.tgz", - "integrity": "sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==", - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/stylelint/node_modules/file-entry-cache": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", @@ -37032,9 +36989,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.0.tgz", - "integrity": "sha512-yYzTZ4++b7fNYxFfpnberEEKu43w44aqDMNM9MHMmcKuCH7lL8jJ4yJ7LGHv7rSwiqM0nkiobF9I6cLlpS2P7Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", + "integrity": "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==", "license": "MIT" }, "node_modules/tapable": { @@ -37257,13 +37214,13 @@ } }, "node_modules/timezones-ical-library": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/timezones-ical-library/-/timezones-ical-library-2.1.0.tgz", - "integrity": "sha512-DVZD9tpb0RktNRj6ptY8oLidpF4V1NSeQ1p956yWOasauZdYD5lsX9DRsQ7OctwE83zBSLtbD78eenCUkf8B1w==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/timezones-ical-library/-/timezones-ical-library-2.1.2.tgz", + "integrity": "sha512-VW7gTRzrveUNdLaztWKlsgHRn1eagubRA/HHembnrh9xYDtDRwRWN+zWcNIE3QM+TpXikSJLp/jwxYQv7IJJvg==", "license": "Apache-2.0", "engines": { - "node": ">=24.11.1", - "npm": ">=11.6.2" + "node": ">=22.20.0", + "npm": ">=10.9.3" } }, "node_modules/tiny-inflate": { @@ -38334,15 +38291,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.56.0.tgz", - "integrity": "sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==", + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.56.1.tgz", + "integrity": "sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.56.0", - "@typescript-eslint/parser": "8.56.0", - "@typescript-eslint/typescript-estree": "8.56.0", - "@typescript-eslint/utils": "8.56.0" + "@typescript-eslint/eslint-plugin": "8.56.1", + "@typescript-eslint/parser": "8.56.1", + "@typescript-eslint/typescript-estree": "8.56.1", + "@typescript-eslint/utils": "8.56.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -39025,66 +38982,6 @@ "node": ">= 0.8" } }, - "node_modules/unplugin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", - "integrity": "sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==", - "license": "MIT", - "dependencies": { - "acorn": "^8.8.1", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" - } - }, - "node_modules/unplugin/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/unplugin/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/unplugin/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/unrs-resolver": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", @@ -39518,33 +39415,33 @@ } }, "node_modules/vercel": { - "version": "50.19.1", - "resolved": "https://registry.npmjs.org/vercel/-/vercel-50.19.1.tgz", - "integrity": "sha512-F0u2ouDVdi4a4nLUAqM7KMLX38hhXWlvjvy9oGtVWrAtdGV0JLMB67REJAPMd+PMEXKXbAfpL8fziI3yiDcKvQ==", + "version": "50.25.0", + "resolved": "https://registry.npmjs.org/vercel/-/vercel-50.25.0.tgz", + "integrity": "sha512-cwnynaiphRLrDG7Oep+pYguml9nKySLNsptmOMF5EMMvD7i6X6SWPbdEIMhgchROy3pFhA4l8pTiSaO2+QK7wA==", "license": "Apache-2.0", "dependencies": { - "@vercel/backends": "0.0.35", - "@vercel/blob": "1.0.2", - "@vercel/build-utils": "13.4.2", + "@vercel/backends": "0.0.38", + "@vercel/blob": "2.3.0", + "@vercel/build-utils": "13.6.0", "@vercel/detect-agent": "1.1.0", - "@vercel/elysia": "0.1.38", - "@vercel/express": "0.1.47", - "@vercel/fastify": "0.1.41", + "@vercel/elysia": "0.1.41", + "@vercel/express": "0.1.50", + "@vercel/fastify": "0.1.44", "@vercel/fun": "1.3.0", - "@vercel/go": "3.4.1", - "@vercel/h3": "0.1.47", - "@vercel/hono": "0.2.41", + "@vercel/go": "3.4.3", + "@vercel/h3": "0.1.50", + "@vercel/hono": "0.2.44", "@vercel/hydrogen": "1.3.5", - "@vercel/koa": "0.1.21", - "@vercel/nestjs": "0.2.42", - "@vercel/next": "4.15.29", - "@vercel/node": "5.6.5", - "@vercel/python": "6.14.1", + "@vercel/koa": "0.1.24", + "@vercel/nestjs": "0.2.45", + "@vercel/next": "4.15.35", + "@vercel/node": "5.6.8", + "@vercel/python": "6.17.0", "@vercel/redwood": "2.4.9", - "@vercel/remix-builder": "5.5.10", - "@vercel/ruby": "2.3.1", + "@vercel/remix-builder": "5.6.0", + "@vercel/ruby": "2.3.2", "@vercel/rust": "1.0.5", - "@vercel/static-build": "2.8.39", + "@vercel/static-build": "2.8.42", "chokidar": "4.0.0", "esbuild": "0.27.0", "form-data": "^4.0.0", @@ -41159,15 +41056,6 @@ "vitest": ">=0.16.0" } }, - "node_modules/vitest/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/vitest/node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -41490,21 +41378,6 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, - "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", - "license": "MIT" - }, "node_modules/webstackbuilders-corporate-website-companion-server": { "resolved": "servers/companion", "link": true diff --git a/package.json b/package.json index 800ba2618..079232154 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "prepare": "node .husky/prepare.js" }, "dependencies": { - "@adobe/remark-gridtables": "^3.0.17", + "@adobe/remark-gridtables": "^3.0.18", "@astrojs/check": "0.9.6", "@astrojs/db": "^0.19.0", "@astrojs/mdx": "4.3.13", @@ -80,19 +80,19 @@ "@github/relative-time-element": "^5.0.0", "@glidejs/glide": "^3.7.1", "@googlemaps/extended-component-library": "^0.6.14", - "@happy-dom/global-registrator": "^20.6.3", + "@happy-dom/global-registrator": "^20.7.0", "@lighthousejs/types": "^0.0.3", "@nanostores/lit": "^0.2.3", "@nanostores/persistent": "^1.3.3", "@playwright/browser-chromium": "^1.58.2", "@playwright/test": "1.58.2", "@semantic-ui/astro-lit": "^5.1.1", - "@sentry/astro": "^10.39.0", - "@sentry/browser": "^10.39.0", - "@shikijs/transformers": "^3.22.0", + "@sentry/astro": "^10.40.0", + "@sentry/browser": "^10.40.0", + "@shikijs/transformers": "^3.23.0", "@tailwindcss/forms": "0.5.11", "@tailwindcss/typography": "0.5.19", - "@tailwindcss/vite": "^4.2.0", + "@tailwindcss/vite": "^4.2.1", "@testing-library/dom": "10.4.1", "@testing-library/preact": "3.2.4", "@testing-library/user-event": "14.6.1", @@ -105,15 +105,15 @@ "@types/glidejs__glide": "^3.6.6", "@types/hast": "^3.0.4", "@types/js-cookie": "^3.0.6", - "@types/jsdom": "^27.0.0", - "@types/node": "^25.3.0", - "@types/nodemailer": "^7.0.10", + "@types/jsdom": "^28.0.0", + "@types/node": "^25.3.2", + "@types/nodemailer": "^7.0.11", "@types/pubsub-js": "^1.8.6", "@types/react": "^19.2.14", "@types/sanitize-html": "^2.16.0", "@types/to-ico": "1.1.3", - "@typescript-eslint/eslint-plugin": "8.56.0", - "@typescript-eslint/parser": "8.56.0", + "@typescript-eslint/eslint-plugin": "8.56.1", + "@typescript-eslint/parser": "8.56.1", "@uppy/audio": "^3.1.0", "@uppy/box": "^4.1.0", "@uppy/core": "^5.2.0", @@ -128,11 +128,11 @@ "@vitest/coverage-v8": "^4.0.18", "@webcomponents/template-shadowroot": "^0.2.1", "alex": "^11.0.1", - "astro": "5.17.3", + "astro": "5.18.0", "astro-link-validator": "github:rodgtr1/astro-link-validator", "astro-og-canvas": "^0.10.1", "astro-vtbot": "^2.1.11", - "baseline-browser-mapping": "^2.9.19", + "baseline-browser-mapping": "^2.10.0", "canvas-confetti": "^1.9.4", "confusing-browser-globals": "1.0.11", "cross-env": "^10.1.0", @@ -143,37 +143,37 @@ "email-validator": "^2.0.4", "embla-carousel": "^8.6.0", "embla-carousel-autoplay": "^8.6.0", - "eslint": "10.0.0", + "eslint": "10.0.2", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-astro": "1.6.0", "eslint-plugin-import": "2.32.0", - "eslint-plugin-jsdoc": "62.6.0", + "eslint-plugin-jsdoc": "62.7.1", "eslint-plugin-jsx-a11y": "6.10.2", - "eslint-plugin-security": "3.0.1", - "eslint-plugin-yml": "3.2.1", + "eslint-plugin-security": "4.0.0", + "eslint-plugin-yml": "3.3.0", "focus-trap": "8.0.0", "gsap": "^3.14.2", - "happy-dom": "^20.6.1", + "happy-dom": "^20.7.0", "html-element-attributes": "^3.5.0", "husky": "^9.1.7", "install": "^0.13.0", "is-whitespace-character": "^2.0.1", - "isomorphic-git": "^1.37.1", + "isomorphic-git": "^1.37.2", "js-cookie": "^3.0.5", "jsdom": "^28.1.0", - "libphonenumber-js": "1.12.37", + "libphonenumber-js": "1.12.38", "lighthouse": "^13.0.3", "lit": "^3.3.2", "markdownlint-cli2": "^0.21.0", "md-attr-parser": "^1.3.0", "mermaid": "^11.12.3", - "nanostores": "^1.1.0", + "nanostores": "^1.1.1", "nodemailer": "^8.0.1", - "npm": "^11.10.0", + "npm": "^11.11.0", "playwright-lighthouse": "^4.0.0", "postcss": "8.5.6", "postcss-html": "1.8.1", - "preact": "^10.28.3", + "preact": "^10.28.4", "prettier": "3.8.1", "prettier-plugin-astro": "0.14.1", "pubsub-js": "^1.9.5", @@ -208,27 +208,27 @@ "sanitize-html": "^2.17.1", "schema-dts": "^1.1.5", "sharp": "^0.34.5", - "shiki": "^3.22.0", + "shiki": "^3.23.0", "space-separated-tokens": "^2.0.2", - "stylelint": "^17.3.0", + "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", "stylelint-declaration-block-no-ignored-properties": "3.0.0", "stylelint-order": "7.0.1", - "tailwindcss": "^4.1.18", + "tailwindcss": "^4.2.1", "temp-dir": "3.0.0", - "timezones-ical-library": "^2.1.0", + "timezones-ical-library": "^2.1.2", "title-case": "4.3.2", "to-ico": "1.1.5", "tslib": "2.8.1", "typescript": "5.9.3", - "typescript-eslint": "8.56.0", + "typescript-eslint": "8.56.1", "unified": "^11.0.5", "unist": "^0.0.1", "unist-util-inspect": "^8.1.0", "unist-util-is": "^6.0.1", "unist-util-visit": "^5.1.0", "uuid": "^13.0.0", - "vercel": "^50.19.1", + "vercel": "^50.25.0", "vite": "^7.3.1", "vitest": "4.0.18", "vitest-axe": "0.1.0", @@ -236,6 +236,6 @@ "zod": "4.3.6" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.57.1" + "@rollup/rollup-linux-x64-gnu": "^4.59.0" } } diff --git a/src/components/Breadcrumbs/breadcrumb-1.png b/src/components/Breadcrumbs/breadcrumb-1.png deleted file mode 100644 index b56cdcdaa..000000000 Binary files a/src/components/Breadcrumbs/breadcrumb-1.png and /dev/null differ diff --git a/src/components/Breadcrumbs/breadcrumb-2.jpg b/src/components/Breadcrumbs/breadcrumb-2.jpg deleted file mode 100644 index 9172197cb..000000000 Binary files a/src/components/Breadcrumbs/breadcrumb-2.jpg and /dev/null differ diff --git a/src/components/Breadcrumbs/breadcrumb-3.jpg b/src/components/Breadcrumbs/breadcrumb-3.jpg deleted file mode 100644 index c96fbb484..000000000 Binary files a/src/components/Breadcrumbs/breadcrumb-3.jpg and /dev/null differ diff --git a/src/components/Breadcrumbs/index.astro b/src/components/Breadcrumbs/index.astro index d6eb66016..eb3198a88 100644 --- a/src/components/Breadcrumbs/index.astro +++ b/src/components/Breadcrumbs/index.astro @@ -37,7 +37,7 @@ const breadcrumbSchema = { breadcrumbs.length > 1 && ( -
+ {showProgressBar && } + + diff --git a/src/pages/tags/[tag].astro b/src/pages/tags/[tag].astro index e379b80a6..2c125e8c1 100644 --- a/src/pages/tags/[tag].astro +++ b/src/pages/tags/[tag].astro @@ -3,6 +3,7 @@ import { type CollectionEntry, getCollection, render } from 'astro:content' import { Picture } from 'astro:assets' import { isDev } from '@lib/config/environmentServer' import BaseLayout from '@layouts/BaseLayout.astro' +import Icon from '@components/Icon/index.astro' export interface Params { tag: string @@ -65,11 +66,11 @@ const paginatedContent = sortedContent.slice(startIndex, endIndex) section="Tags" > -

+

{item.data.title} -

+ {item.data.description && ( -

+

{item.data.description}

)} +
+ Learn more + +
diff --git a/src/pages/testing/icons.astro b/src/pages/testing/icons.astro index d064b2219..a86693903 100644 --- a/src/pages/testing/icons.astro +++ b/src/pages/testing/icons.astro @@ -34,7 +34,7 @@ const description = 'Preview every marker icon to verify styling and availabilit
{iconNames.map(iconName => (
- + {iconName} diff --git a/src/styles/reset.css b/src/styles/reset.css index b2c50e9fa..9632c0d33 100644 --- a/src/styles/reset.css +++ b/src/styles/reset.css @@ -14,7 +14,24 @@ } html { - overflow-x: hidden; + overflow: hidden; + } + + body { + overflow: hidden; + } + + /** + * Scroll viewport container — the only element that scrolls. + * Lives inside Container, below the fixed header. Its scrollbar + * physically starts at the bottom of the header, preventing the + * scrollbar from being hidden behind the fixed-position header. + * + * On article pages the top margin equals the progress-bar height + * so the scrollbar sits below the progress bar too. + */ + #scroll-viewport { + scrollbar-gutter: stable; } /**