You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During animated (GIF and WebM) chart export on /stats/npm, each frame is rendered off-screen into an unattached container element using @tanstack/charts/svg/resources. The root SVG is rendered with width="100%" and height="100%".
When getSvgDimensions attempted to read svg.width.baseVal.value (and height), Chromium-based browsers threw NotSupportedError: Failed to read the 'value' property from 'SVGLength': Could not resolve relative length. because relative percentage lengths cannot be resolved on elements that lack a layout viewport. The existing fallbacks (viewBox and bounding box) were never evaluated because the property access threw immediately.
Changes:
Extract SVG dimension resolution into src/components/npm-stats/svgDimensions.ts.
Skip attempting to resolve baseVal.value when unitType is SVG_LENGTHTYPE_PERCENTAGE (returning 0 to immediately engage the fallback chain).
Catch NotSupportedError when reading baseVal.value and return 0, ensuring the existing viewBox fallback is used without masking unexpected errors.
Add unit tests in tests/npm-svg-dimensions.test.ts covering percentage lengths, throwing accessors, absolute pixel lengths, and unexpected error re-throwing.
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
During animated (GIF and WebM) chart export on
/stats/npm, each frame is rendered off-screen into an unattached container element using@tanstack/charts/svg/resources. The root SVG is rendered withwidth="100%"andheight="100%".When
getSvgDimensionsattempted to readsvg.width.baseVal.value(andheight), Chromium-based browsers threwNotSupportedError: Failed to read the 'value' property from 'SVGLength': Could not resolve relative length.because relative percentage lengths cannot be resolved on elements that lack a layout viewport. The existing fallbacks (viewBoxand bounding box) were never evaluated because the property access threw immediately.Changes:
src/components/npm-stats/svgDimensions.ts.baseVal.valuewhenunitTypeisSVG_LENGTHTYPE_PERCENTAGE(returning0to immediately engage the fallback chain).NotSupportedErrorwhen readingbaseVal.valueand return0, ensuring the existingviewBoxfallback is used without masking unexpected errors.tests/npm-svg-dimensions.test.tscovering percentage lengths, throwing accessors, absolute pixel lengths, and unexpected error re-throwing.Fixes TANSTACK-COM-5DS
@sentry <feedback>: Autofix iterates on these changes@sentry stop iterating: Autofix stops iterating on this runThis PR was automatically generated by Sentry. You can adjust this setting at any time.