Skip to content

chore(deps): bump the npm-major group across 1 directory with 7 updates - #548

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/ui/npm-major-fcf5d540ac
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/ui/npm-major-fcf5d540ac

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the npm-major group with 7 updates in the /ui directory:

Package From To
@solidjs/router 0.16.2 1.0.0
maplibre-gl 5.24.0 6.11.2
@testing-library/jest-dom 6.9.1 7.0.1
@vitest/coverage-v8 4.1.10 5.0.2
jsdom 29.1.1 30.1.1
typescript 6.0.3 7.0.2
vitest 4.1.10 5.0.2

Updates @solidjs/router from 0.16.2 to 1.0.0

Changelog

Sourced from @​solidjs/router's changelog.

1.0.0

Major Changes

  • Declare the router stable as 1.0.0. This is a version realignment, not a breaking change: the code is functionally identical to the 0.16 line, which has held API-stable for years, and ^1.0.0 finally gets normal caret semantics instead of the pinned-minor treatment resolvers give 0.x releases. It also aligns major numbers across the ecosystem — router 1.x pairs with Solid 1.x (and SolidStart 2.0), while the in-progress Solid 2 router moves from 1.0.0-next.* to 2.0.0-next.* prereleases under the next tag.

Patch Changes

  • 1211a89: Restore scroll with a single scroll once routing settles, dropping the ResizeObserver that re-asserted the offset while the document was still growing (<Router scrollRestoration>, added in 0.16.3). Settling after the navigation commits is what makes the offset reachable, and it is the strategy every peer router ships (SvelteKit, TanStack Router, React Router, Next); TanStack's equivalent MutationObserver sits commented out in their source. The chase carried real downside for a case none of them try to cover: with no bound, a target that is never reachable (a list that is genuinely shorter now) left the observer connected for the life of the page, re-clamping the viewport to the bottom on every subsequent resize, and scroll-induced layout changes can feed it back into itself. It was also untestable in jsdom, which has no ResizeObserver, so the branch had no coverage. Content committing after the navigation settles — an image without reserved space, a boundary below the fold — now keeps whatever offset the document can hold.

0.16.3

Patch Changes

  • 31501fd: Add opt-in explicit scroll restoration for back/forward navigation: <Router scrollRestoration> (#577). The browser's native same-document heuristic loses the saved offset when the destination route forces a layout while the document is still short — any component that measures itself on mount is enough to trigger it. When enabled the router sets history.scrollRestoration = "manual", captures positions continuously keyed by the history entry depth it already tracks, persists them across reloads, and restores after the navigation settles — retrying as the document grows if the target offset isn't reachable yet, cancelled by the first user scroll. Off by default on 0.x; no behavior changes unless enabled.
Commits

Updates maplibre-gl from 5.24.0 to 6.11.2

Release notes

Sourced from maplibre-gl's releases.

v6.11.2

✨ Features and improvements

  • Improve rendering performance by uploading each tile's projection data once per frame instead of before every draw call (#8545) (by @​birkskyum)
  • Support multiple glyph variants in requests, caches, and atlases (#8488) (by @​NEKOYASAN)

🐞 Bug fixes

  • Fix Map#once(type, layerId, listener) unsubscribing on the first event that misses the layer instead of the first event that hits it (#8499) (by @​cherenkov)
  • Remove hillshade gradient toward the poles (#8551) (by @​birkskyum)
  • Fix camera settings being undone during camera movement with terrain or transformCameraUpdate (#8550) (by @​birkskyum)
  • Fix zooming and panning with the pointer above the horizon moving the map in the opposite direction (#8544) (by @​birkskyum)
  • Fix the camera jumping when a drag over terrain ends at a pitch above 84° (#8541) (by @​birkskyum)
  • Ease the center elevation over terrain during easeTo and flyTo instead of holding it and jumping when the animation ends (#8543) (by @​johncarmack1984)
  • Fix fitBounds and cameraForBounds throwing on the globe projection when the padding exceeds the viewport, instead of warning and returning undefined as on mercator (#8538) (by @​drakeo338)
  • Keep raster tiles sharp at a fractional devicePixelRatio, where the canvas covered a different number of device pixels than its backing store held and the compositor rescaled it (#1590) (by @​zdila)

v6.11.1

🐞 Bug fixes

  • Fix missing promoteId when merging queued updateData diffs in geojson source (#8500) (by @​cherenkov)
  • Sanitize attribution with an allow list of tags and attributes rather than a list of known-dangerous ones (#8532) (by @​HarelM)
  • Fix the camera jumping or bobbing around gestures over terrain, and ignoring terrain that loads after easeTo/flyTo (#8471) (by @​johncarmack1984)
  • Stop sending a vector tile to the worker when it was dropped while its request was being transformed or while the worker was still starting up, which left the parsed tile in the worker for the lifetime of the map (#8516) (by @​cherenkov)

v6.11.0

✨ Features and improvements

  • Fire a contextmenu map event on long press for touch devices (#373) (by @​kirthi-b)
  • Transition paint, light and sky properties that read global-state from the value they had when the state changes, where they snapped to the new value while holding idle for the transition duration (#8395) (by @​avosa)
  • Speed up cross-tile symbol matching for sources with promoteId by keying symbols on their feature id as well as their label (#8470, continues #7665) (by @​bradymadden97 and @​johncarmack1984)
  • Add Map#calculateAnchoredCameraOptions to calculate camera options that place a geographic anchor at a screen position without moving the map (#8288) (by @​xavierjs)
  • Skip the loaded-tile scan for constant symbol-height-offset layers when computing tile coverage (#8424) (by @​clement-igonet)
  • Type and document that an addProtocol handler may return an ImageBitmap or HTMLImageElement for an image resource, so decoded pixels are not encoded and decoded again (#8515) (by @​MannXo)

🐞 Bug fixes

  • Fade the globe atmosphere in with the camera's altitude, so the sky keeps the horizon until the atmosphere takes over from space (#8464) (by @​birkskyum)
  • Report worker script failures through the map error event (#8018) (by @​xavierjs)
  • Fix slow panning and zooming in Firefox on macOS since 6.8.0 (#8468) (by @​timsluis and @​birkskyum)
  • Keep source-specific tile LOD settings from changing internal terrain render-to-texture tile selection (#8048) (by @​DoFabien)
  • Fix map.setSky() silently keeping the old sky and firing no error event when the value included a -transition key (#8375) (by @​Yasser-Ameur)
  • Fix markers and popups misplaced after a projection change or by terrain that loads after the map settled. (#8433) (by @​patte)
  • Insert sanitized attribution HTML as DOM nodes instead of re-parsing a serialized string (#8528) (by @​cherenkov)

v6.10.0

✨ Features and improvements

... (truncated)

Changelog

Sourced from maplibre-gl's changelog.

6.11.2

✨ Features and improvements

  • Improve rendering performance by uploading each tile's projection data once per frame instead of before every draw call (#8545) (by @​birkskyum)
  • Support multiple glyph variants in requests, caches, and atlases (#8488) (by @​NEKOYASAN)

🐞 Bug fixes

  • Fix Map#once(type, layerId, listener) unsubscribing on the first event that misses the layer instead of the first event that hits it (#8499) (by @​cherenkov)
  • Remove hillshade gradient toward the poles (#8551) (by @​birkskyum)
  • Fix camera settings being undone during camera movement with terrain or transformCameraUpdate (#8550) (by @​birkskyum)
  • Fix zooming and panning with the pointer above the horizon moving the map in the opposite direction (#8544) (by @​birkskyum)
  • Fix the camera jumping when a drag over terrain ends at a pitch above 84° (#8541) (by @​birkskyum)
  • Ease the center elevation over terrain during easeTo and flyTo instead of holding it and jumping when the animation ends (#8543) (by @​johncarmack1984)
  • Fix fitBounds and cameraForBounds throwing on the globe projection when the padding exceeds the viewport, instead of warning and returning undefined as on mercator (#8538) (by @​drakeo338)
  • Keep raster tiles sharp at a fractional devicePixelRatio, where the canvas covered a different number of device pixels than its backing store held and the compositor rescaled it (#1590) (by @​zdila)

6.11.1

🐞 Bug fixes

  • Fix missing promoteId when merging queued updateData diffs in geojson source (#8500) (by @​cherenkov)
  • Sanitize attribution with an allow list of tags and attributes rather than a list of known-dangerous ones (#8532) (by @​HarelM)
  • Fix the camera jumping or bobbing around gestures over terrain, and ignoring terrain that loads after easeTo/flyTo (#8471) (by @​johncarmack1984)
  • Stop sending a vector tile to the worker when it was dropped while its request was being transformed or while the worker was still starting up, which left the parsed tile in the worker for the lifetime of the map (#8516) (by @​cherenkov)

6.11.0

✨ Features and improvements

  • Fire a contextmenu map event on long press for touch devices (#373) (by @​kirthi-b)
  • Transition paint, light and sky properties that read global-state from the value they had when the state changes, where they snapped to the new value while holding idle for the transition duration (#8395) (by @​avosa)
  • Speed up cross-tile symbol matching for sources with promoteId by keying symbols on their feature id as well as their label (#8470, continues #7665) (by @​bradymadden97 and @​johncarmack1984)
  • Add Map#calculateAnchoredCameraOptions to calculate camera options that place a geographic anchor at a screen position without moving the map (#8288) (by @​xavierjs)
  • Skip the loaded-tile scan for constant symbol-height-offset layers when computing tile coverage (#8424) (by @​clement-igonet)
  • Type and document that an addProtocol handler may return an ImageBitmap or HTMLImageElement for an image resource, so decoded pixels are not encoded and decoded again (#8515) (by @​MannXo)

🐞 Bug fixes

  • Fade the globe atmosphere in with the camera's altitude, so the sky keeps the horizon until the atmosphere takes over from space (#8464) (by @​birkskyum)
  • Report worker script failures through the map error event (#8018) (by @​xavierjs)
  • Fix slow panning and zooming in Firefox on macOS since 6.8.0 (#8468) (by @​timsluis and @​birkskyum)
  • Keep source-specific tile LOD settings from changing internal terrain render-to-texture tile selection (#8048) (by @​DoFabien)
  • Fix map.setSky() silently keeping the old sky and firing no error event when the value included a -transition key (#8375) (by @​Yasser-Ameur)
  • Fix markers and popups misplaced after a projection change or by terrain that loads after the map settled. (#8433) (by @​patte)
  • Insert sanitized attribution HTML as DOM nodes instead of re-parsing a serialized string (#8528) (by @​cherenkov)

6.10.0

... (truncated)

Commits
  • acb7b72 Bump js version to 6.11.2 (#8555)
  • d28f844 fix: Map#once with layerId unsubscribes only after a real hit (#8499)
  • 99d0160 Support multiple glyph variants (#8488)
  • 98268d3 Fix globe cameraForBoxAndBearing throwing when padding exceeds the viewport (...
  • f560a83 Size the canvas to whole device pixels (#8513)
  • 7a897d0 Remove hillshade gradient toward the poles (#8551)
  • 0dff33a Fix camera settings being undone during camera movement (#8550)
  • c2031bf GM2.8 Upload projection data once per tile instead of once per draw (#8545)
  • 728a44c Fix zoom and drag above the horizon moving the map the wrong way (#8544)
  • 3dfdce0 refactor: one method builds the mercator animation's end transform (#8546)
  • Additional commits viewable in compare view

Updates @testing-library/jest-dom from 6.9.1 to 7.0.1

Release notes

Sourced from @​testing-library/jest-dom's releases.

v7.0.1

7.0.1 (2026-08-09)

Bug Fixes

  • declare vitest as an optional peer dependency (#733) (3782c78)

v7.0.0

7.0.0 (2026-07-20)

Features

  • add toContainAnyBy* and toContainOneBy* query matchers (1e39089)

BREAKING CHANGES

  • @​testing-library/dom is now a required peer dependency. The minimum supported Node.js version is now 22.

Repaired release for testing-library/jest-dom#731

v6.10.0

6.10.0 (2026-07-20)

Features

  • add toContainAnyBy* and toContainOneBy* query matchers (#731) (cae44df)
Commits
  • 3782c78 fix: declare vitest as an optional peer dependency (#733)
  • 1e39089 feat: add toContainAnyBy* and toContainOneBy* query matchers
  • cae44df feat: add toContainAnyBy* and toContainOneBy* query matchers (#731)
  • 55c07ce ci: switch release to npm trusted publishing (#726)
  • 213256f docs: move toHaveSelection from the deprecated section (#717)
  • See full diff in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​testing-library/jest-dom since your current version.


Updates @vitest/coverage-v8 from 4.1.10 to 5.0.2

Release notes

Sourced from @​vitest/coverage-v8's releases.

v5.0.2

   🐞 Bug Fixes

    View changes on GitHub

v5.0.1

   🚀 Features

   🐞 Bug Fixes

... (truncated)

Commits

Updates jsdom from 29.1.1 to 30.1.1

Release notes

Sourced from jsdom's releases.

v30.1.1

  • Fixed spurious window blur and focusout events and incorrect event.relatedTarget values when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@​asamuzaK)
  • Fixed focus and blur behavior across frames, and focusing the document's viewport through document.documentElement.focus(). (@​asamuzaK)
  • Fixed focus targets removed or disabled by blur listeners becoming active, and text selections made by focus and blur listeners being overwritten. (@​asamuzaK)
  • Fixed element.focus() incorrectly focusing disabled form controls and <input type="hidden"> elements with tabindex="". (@​scttcper)
  • Fixed invalid style.setProperty() calls changing existing !important priorities, serialized styles, or mutation records. (@​FedgeNo)
  • Fixed !important handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. (@​FedgeNo)
  • Fixed <noscript> parsing with includeNodeLocations: true or inside frames to honor the runScripts option.
  • Fixed the storageQuota option being ignored by frames.
  • Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark.
  • Fixed exceptions caused by truncated charset parameters in <meta> elements, and encoding detection incorrectly using incomplete <meta> tags. (@​FedgeNo)
  • Fixed XML serialization errors for namespaces named constructor, toString, __proto__, or "null", and incorrect reuse of namespace prefixes declared on sibling elements.
  • Fixed element.innerHTML and element.outerHTML in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.
  • Fixed selector matching for :lang(), :nth-child(... of ...) after mutations, and :has() with duplicate IDs or nested logical pseudo-classes. (@​asamuzaK)

v30.1.0

jsdom is feeling the AGI!

This release is dedicated to @​scttcper, who unleashed @​codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.

We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.

Thanks to @​scttcper, as well as all the other contributors of this release (most of whom were AI-assisted).

  • Added named access to elements on document, such as document.myForm for <form name="myForm">. (@​vojtisprime11)
  • Added QuotaExceededError, including its use for storage quota errors and oversized crypto.getRandomValues() requests.
  • Added support for the relaxed DOM naming rules when creating elements, attributes, and document types.
  • Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. (@​scttcper, @​erezrokah)
  • Improved performance of getComputedStyle(), style changes, and CSS serialization. (@​scttcper, @​jhult)
  • Improved performance of event dispatch, form control and label lookups, and updates to <select> elements and radio button groups. (@​scttcper)
  • Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. (@​scttcper)
  • Changed window.close() to preserve access to the document and its DOM through retained references.
  • Fixed element.querySelectorAll() returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. (@​asamuzaK)
  • Fixed case sensitivity in CSS attribute selectors, including selectors matching data-state="", title="", and other case-sensitive values. (@​asamuzaK)
  • Fixed document.querySelector() failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. (@​vojtisprime11)
  • Fixed :focus matching in shadow trees. (@​asamuzaK)
  • Fixed DOM insertion and replacement, including valid document.replaceChildren() calls, invalid document element and doctype placements, and mutations during element.replaceWith().
  • Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees.
  • Fixed queued events and navigation continuing after window.close() or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. (@​scttcper)
  • Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading.
  • Fixed request cancellation across redirects, during pending requestInterceptor() callbacks, and when reusing an XMLHttpRequest after aborting it.
  • Fixed resource loading and JSDOM.fromURL() potentially hanging when response handling throws and response stream cleanup does not finish.
  • Fixed successful cached resource loads being treated as aborted.
  • Fixed getComputedStyle() and document.styleSheets using the wrong stylesheet order after inserting or updating <style> elements.
  • Fixed getComputedStyle() ignoring nested @import and @media rules in imported stylesheets, and returning stale results after imports finish loading.
  • Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees.
  • Fixed repeated getComputedStyle() calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. (@​scttcper)
  • Fixed computed border widths, including borderless elements incorrectly reporting 16px, which regressed in v30.0.0. (@​Alberto-BaseNet)
  • Fixed getComputedStyle() to resolve 'font-weight' keywords to numeric values. (@​tianrking)
  • Fixed getComputedStyle() to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in 'font-size' math functions. (@​soroushm)

... (truncated)

Commits
  • 0a117f4 30.1.1
  • 103f67d Remove unnecessary window cleanup from API tests
  • cdda00a Test HTTP/2 document and subresource loading
  • 7ab92ce Update @​asamuzakjp/dom-selector to v9.2.1
  • d940c20 Share jsdom settings across descendant windows
  • 6ba40cb Fix and simplify option propagation
  • 3b3be70 Preserve CSS priorities across declaration updates
  • 97b2758 Align focusing and unfocusing with HTML
  • b7b460b Update w3c-xmlserializer to v6
  • 71d562f Update html-encoding-sniffer to v7
  • Additional commits viewable in compare view

Updates typescript from 6.0.3 to 7.0.2

Release notes

Sourced from typescript's releases.

TypeScript 7.0.2

https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/

This tag was originally released at: https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2

Commits
  • 1e4744d Merge branch 'main' into ts7-release
  • a5a219cmicrosoft/typescript-go#4558
  • ecfe30d Update status localization
  • 5de25b5 Hide executable name in TypeScript status
  • d7ce74a Show bundled TypeScript version for packaged servers
  • 29be66a Correct TS 7 release version to 7.0.2
  • ed2bd1b Merge branch 'main' into ts7-release
  • 8873075 Bump the github-actions group across 1 directory with 3 updates (microsoft/ty...
  • 9427131 Set up stable / nightly extension split, other prep (microsoft/typescript-go#...
  • d4eaca5microsoft/typescript-go#4549
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by microsoft1es, a new releaser for typescript since your current version.


Updates vitest from 4.1.10 to 5.0.2

Release notes

Sourced from vitest's releases.

v5.0.2

   🐞 Bug Fixes

    View changes on GitHub

v5.0.1

   🚀 Features

   🐞 Bug Fixes

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 11, 2026
Bumps the npm-major group with 7 updates in the /ui directory:

| Package | From | To |
| --- | --- | --- |
| [@solidjs/router](https://github.com/solidjs/solid-router) | `0.16.2` | `1.0.0` |
| [maplibre-gl](https://github.com/maplibre/maplibre-gl-js) | `5.24.0` | `6.11.2` |
| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.10` | `5.0.2` |
| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.1.1` |
| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.10` | `5.0.2` |



Updates `@solidjs/router` from 0.16.2 to 1.0.0
- [Release notes](https://github.com/solidjs/solid-router/releases)
- [Changelog](https://github.com/solidjs/solid-router/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid-router/commits)

Updates `maplibre-gl` from 5.24.0 to 6.11.2
- [Release notes](https://github.com/maplibre/maplibre-gl-js/releases)
- [Changelog](https://github.com/maplibre/maplibre-gl-js/blob/main/CHANGELOG.md)
- [Commits](maplibre/maplibre-gl-js@v5.24.0...v6.11.2)

Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.1
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](testing-library/jest-dom@v6.9.1...v7.0.1)

Updates `@vitest/coverage-v8` from 4.1.10 to 5.0.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.2/packages/coverage-v8)

Updates `jsdom` from 29.1.1 to 30.1.1
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](jsdom/jsdom@v29.1.1...v30.1.1)

Updates `typescript` from 6.0.3 to 7.0.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v6.0.3...v7.0.2)

Updates `vitest` from 4.1.10 to 5.0.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.2/packages/vitest)

---
updated-dependencies:
- dependency-name: "@solidjs/router"
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 5.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: jsdom
  dependency-version: 30.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: maplibre-gl
  dependency-version: 6.8.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-major
- dependency-name: vitest
  dependency-version: 5.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/ui/npm-major-fcf5d540ac branch from 251afa0 to b7bd717 Compare October 2, 2026 15:45
@fank
fank self-requested a review October 2, 2026 21:53
@fank

fank commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Ratatoskr reviewed this pull request.

Changes requested on b7bd717b. See the review.

Finished 2026-10-02 21:58 UTC.

@fank fank left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request changes: 3 blocking findings. npm ci fails, the production build breaks on maplibre-gl 6, and TypeScript 7 breaks ESLint.

Review details

I chose request changes because the PR can't be installed or built as it stands. The UI check job already fails at its first step. The same npm ci runs in the Dockerfile (line 4), so merging would also break the release image build on main.

I reproduced all of the following locally on head b7bd717b, using a scratch copy of ui/ and Node 24.

Blocking

1. npm ci fails: maplibre-gl@6 conflicts with the peer range of @maplibre/maplibre-gl-leaflet@0.1.3

The lockfile still pins @maplibre/maplibre-gl-leaflet to 0.1.3. That version's peer range is maplibre-gl@"^2.4.0 || ^3.3.1 || ^4.3.2 || ^5.0.0", so npm fails with ERESOLVE. This matches the failing CI run (job 110911653184).

0.1.4 is published, and its peer range adds ^6.0.0. The fix is to bump it in ui/package.json and regenerate the lockfile in the same PR.

2. The production build fails even when you force past the peer conflict

maplibre-gl 6 is ESM-only: its exports["."] has only types and import. @maplibre/maplibre-gl-leaflet@0.1.3 is a UMD bundle that does require('maplibre-gl'). The dynamic import in src/renderers/leaflet/leafletRenderer.ts:386 pulls in that UMD bundle, so npm run build fails with:

"." is not exported under the conditions ["solid", "module", "browser", "production", "require"] from package .../node_modules/maplibre-gl

Bumping to @maplibre/maplibre-gl-leaflet@^0.1.4 fixed the build in my scratch copy. That version ships an ESM entry (dist/leaflet-maplibre-gl.mjs) that imports maplibre-gl as ESM. It still assigns L.maplibreGL, which leafletRenderer.ts:387 relies on. I did not check the MapLibre basemap at runtime in a browser. maplibre-gl 6 is a major release, so someone should load a recording with a MapLibre style before merging.

3. TypeScript 7 breaks npx eslint src/

@typescript-eslint/parser and @typescript-eslint/eslint-plugin 8.x (latest is 8.71.0) declare typescript: ">=4.8.4 <6.1.0". That is a second peer conflict, which npm ci will report once item 1 is fixed. If you force past it, ESLint crashes at load time:

Error: typescript-eslint does not support TS 7.0.

npx tsc --noEmit passes with TS 7.0.2, so only the lint step is affected. typescript-eslint has no TS 7 support yet (typescript-eslint/typescript-eslint#10940). Keep typescript on ^6.0.3 for now, or follow the side-by-side TS 6/TS 7 setup that the TS 7 announcement describes. I'd also add a Dependabot ignore rule for typescript major versions so this group doesn't keep proposing it.

Needs a test fix

4. jsdom 30 breaks AboutModal.test.tsx > close button calls onClose

With the PR's dependencies, 1 of 1628 tests fails, every time:

TypeError: Cannot read properties of null (reading 'querySelector')
  at src/pages/recording-playback/__tests__/AboutModal.test.tsx:67-68

To isolate the cause, I swapped only jsdom back to 29.1.1 in the PR tree, and the test passed. It also passes on main. The test uses modal.querySelector("[class*='header']"), but the element's class comes from ui.dialogHeader (AboutModal.tsx:47), which has a capital H. jsdom 30.1.0 fixed attribute selectors to be case-sensitive, as the spec requires, so the lowercase substring no longer matches.

The component is fine; the test only passed because of the old jsdom bug. A robust fix would be to query the close button by role or label, or to add a data-testid. Changing the selector to [class*='Header'] would also work but is still brittle.

Fine as far as I can tell

  • @solidjs/router 0.16.2 → 1.0.0: the changelog calls this a version realignment, and nothing in the diff or test suite showed a problem.
  • @testing-library/jest-dom 7: its new required peer @testing-library/dom@10.4.1 is already in the lockfile.
  • vitest and @vitest/coverage-v8 5.0.2: apart from item 4, the suite and coverage ran normally (1627 of 1628 tests passed).

Checks run

Command Result
npm ci ERESOLVE (matches CI)
npm ci --legacy-peer-deps ok
npx tsc --noEmit exit 0
npx eslint src/ exit 2, TS 7 unsupported
npm run test:coverage 1 failed / 1627 passed
npm run build fails on maplibre-gl exports
npm run build after @maplibre/maplibre-gl-leaflet@^0.1.4 builds
AboutModal.test.tsx on main 12/12 pass
AboutModal.test.tsx on PR deps with jsdom@29.1.1 12/12 pass

This PR had no earlier review threads to follow up on.

Since four of the seven bumps need code or config changes, it may be easier to split them: maplibre-gl + maplibre-gl-leaflet together, jsdom + the test fix together, and TypeScript held back until typescript-eslint supports it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant