diff --git a/.api-report/mafs.api.md b/.api-report/mafs.api.md index ec8d33e6..d2d2d4b8 100644 --- a/.api-report/mafs.api.md +++ b/.api-report/mafs.api.md @@ -102,7 +102,7 @@ export const Line: { }; // @public (undocumented) -export function Mafs({ width: propWidth, height: propHeight, pan, zoom, viewBox, preserveAspectRatio, children, ssr, onClick, }: MafsProps): JSX_2.Element; +export function Mafs({ width: propWidth, height: propHeight, pan, zoom, viewBox, preserveAspectRatio, children, ssr, debug, onClick, }: MafsProps): JSX_2.Element; // @public (undocumented) export namespace Mafs { @@ -127,6 +127,7 @@ export type MafsProps = React_2.PropsWithChildren<{ preserveAspectRatio?: "contain" | false; onClick?: (point: vec.Vector2, event: MouseEvent) => void; ssr?: boolean; + debug?: boolean; }>; // @public (undocumented) diff --git a/docs/app/guides/display/debug/page.tsx b/docs/app/guides/display/debug/page.tsx index 78beae8e..15ad4cde 100644 --- a/docs/app/guides/display/debug/page.tsx +++ b/docs/app/guides/display/debug/page.tsx @@ -5,6 +5,7 @@ import Link from "next/link" import CodeAndExample from "components/CodeAndExample" import PizzaSliceExample from "guide-examples/custom/pizza-slice" +import DebugExample from "guide-examples/debug/DebugExample" import Example from "guide-examples/debug/PaneVisualizerExample" import type { Metadata } from "next" @@ -16,8 +17,23 @@ export default function DebugPage() { return ( <>

- Mafs provides a few utilities for debugging or experimentation, underneath the{" "} - Debug namespace. + Mafs provides several utilities for debugging your visualizations. Perhaps the most useful + utility the debug prop on Mafs. Adding this prop will force a + larger SVG viewBox and add a red border around the actual viewBox. +

+ + + +

+ In the above example, you can gain an insight into how Mafs lazy-loads the coordinate grid + and the function being visualized. In the bottom left corner, there is also some debug + information pinned to the viewport. More on that below. +

+ +

Other utilities

+ +

+ Mafs also provides some debug components under the Debug namespace.

diff --git a/docs/components/guide-examples/debug/DebugExample.tsx b/docs/components/guide-examples/debug/DebugExample.tsx new file mode 100644 index 00000000..62317ab5 --- /dev/null +++ b/docs/components/guide-examples/debug/DebugExample.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import { Mafs, Coordinates, Plot } from "mafs" + +export default function Example() { + const [debug, setDebug] = React.useState(true) + + return ( +
+ {/* Set the `debug` prop on Mafs to get a bird's eye view. */} + + + Math.sin(x * Math.PI)} /> + + +
+ ) +} diff --git a/e2e/generated-vrt.spec.tsx b/e2e/generated-vrt.spec.tsx index 47ba0935..ad50b19a 100644 --- a/e2e/generated-vrt.spec.tsx +++ b/e2e/generated-vrt.spec.tsx @@ -20,6 +20,7 @@ import VectorFieldExample from "../docs/components/guide-examples/VectorFieldExa import PizzaMarch from "../docs/components/guide-examples/custom/pizza-march" import PizzaSlice from "../docs/components/guide-examples/custom/pizza-slice" import PointCloud from "../docs/components/guide-examples/custom/point-cloud" +import DebugExample from "../docs/components/guide-examples/debug/DebugExample" import PaneVisualizerExample from "../docs/components/guide-examples/debug/PaneVisualizerExample" import DynamicMovablePoints from "../docs/components/guide-examples/display/DynamicMovablePoints" import PointsAlongFunction from "../docs/components/guide-examples/display/PointsAlongFunction" @@ -188,6 +189,15 @@ test("guide-examples/custom/PointCloud", async ({ mount, page }) => , )) +test("guide-examples/debug/DebugExample", async ({ mount, page }) => + await visualTest( + mount, + page, + + + , + )) + test("guide-examples/debug/PaneVisualizerExample", async ({ mount, page }) => await visualTest( mount, diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png new file mode 100644 index 00000000..34cbbd04 Binary files /dev/null and b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Chrome-darwin.png differ diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png new file mode 100644 index 00000000..67274f7d Binary files /dev/null and b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-Mobile-Safari-darwin.png differ diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png new file mode 100644 index 00000000..e35bcf78 Binary files /dev/null and b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-chromium-darwin.png differ diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png new file mode 100644 index 00000000..92dcf7a3 Binary files /dev/null and b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-firefox-darwin.png differ diff --git a/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png new file mode 100644 index 00000000..1ca842fa Binary files /dev/null and b/e2e/generated-vrt.spec.tsx-snapshots/guide-examples-debug-DebugExample-1-webkit-darwin.png differ diff --git a/src/view/Mafs.tsx b/src/view/Mafs.tsx index 7c3bea22..55d878de 100644 --- a/src/view/Mafs.tsx +++ b/src/view/Mafs.tsx @@ -12,6 +12,7 @@ import invariant from "tiny-invariant" import { useCamera } from "../gestures/useCamera" import { useWheelEnabler } from "../gestures/useWheelEnabler" import { TestContext } from "../context/TestContext" +import { Debug } from "../debug" export type MafsProps = React.PropsWithChildren<{ width?: number | "auto" @@ -49,6 +50,9 @@ export type MafsProps = React.PropsWithChildren<{ * this prop is now ignored. */ ssr?: boolean + + /** Take a peek outside the viewbox to make sure things are rendering properly. */ + debug?: boolean }> export function Mafs({ @@ -60,6 +64,7 @@ export function Mafs({ preserveAspectRatio = "contain", children, ssr = false, + debug = false, onClick = undefined, }: MafsProps) { const testContext = React.useContext(TestContext) @@ -92,6 +97,7 @@ export function Mafs({ preserveAspectRatio={preserveAspectRatio} ssr={ssr} onClick={onClick} + debug={debug} > {children} @@ -105,7 +111,9 @@ type MafsCanvasProps = { height: number desiredCssWidth: string rootRef: React.RefObject -} & Required> & +} & Required< + Pick +> & Pick function MafsCanvas({ @@ -119,6 +127,7 @@ function MafsCanvas({ preserveAspectRatio, children, onClick, + debug, }: MafsCanvasProps) { let minZoom = 1 let maxZoom = 1 @@ -306,7 +315,12 @@ function MafsCanvas({ {children} + {debug && ( + + )} + {debug && } diff --git a/tests/frameworks/nextjs/package.json b/tests/frameworks/nextjs/package.json index 0c114056..ae91e1ec 100644 --- a/tests/frameworks/nextjs/package.json +++ b/tests/frameworks/nextjs/package.json @@ -15,7 +15,7 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@types/node": "^20.16.11", + "@types/node": "^20.16.13", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.1", "typescript": "^5.6.3" diff --git a/tests/frameworks/pnpm-lock.yaml b/tests/frameworks/pnpm-lock.yaml index dba134fa..79593aaf 100644 --- a/tests/frameworks/pnpm-lock.yaml +++ b/tests/frameworks/pnpm-lock.yaml @@ -22,8 +22,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@types/node': - specifier: ^20.16.11 - version: 20.16.11 + specifier: ^20.16.13 + version: 20.16.13 '@types/react': specifier: ^18.3.11 version: 18.3.11 @@ -47,8 +47,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@eslint/js': - specifier: ^9.12.0 - version: 9.12.0 + specifier: ^9.13.0 + version: 9.13.0 '@types/react': specifier: ^18.3.11 version: 18.3.11 @@ -56,17 +56,17 @@ importers: specifier: ^18.3.1 version: 18.3.1 '@vitejs/plugin-react': - specifier: ^4.3.2 - version: 4.3.2(vite@5.4.9(@types/node@20.16.11)) + specifier: ^4.3.3 + version: 4.3.3(vite@5.4.9(@types/node@20.16.13)) eslint: - specifier: ^9.12.0 - version: 9.12.0 + specifier: ^9.13.0 + version: 9.13.0 eslint-plugin-react-hooks: specifier: 5.1.0-rc-fb9a90fa48-20240614 - version: 5.1.0-rc-fb9a90fa48-20240614(eslint@9.12.0) + version: 5.1.0-rc-fb9a90fa48-20240614(eslint@9.13.0) eslint-plugin-react-refresh: - specifier: ^0.4.12 - version: 0.4.12(eslint@9.12.0) + specifier: ^0.4.13 + version: 0.4.13(eslint@9.13.0) globals: specifier: ^15.11.0 version: 15.11.0 @@ -74,11 +74,11 @@ importers: specifier: ^5.6.3 version: 5.6.3 typescript-eslint: - specifier: ^8.9.0 - version: 8.9.0(eslint@9.12.0)(typescript@5.6.3) + specifier: ^8.10.0 + version: 8.10.0(eslint@9.13.0)(typescript@5.6.3) vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@20.16.11) + version: 5.4.9(@types/node@20.16.13) packages: @@ -325,24 +325,24 @@ packages: resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.6.0': - resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + '@eslint/core@0.7.0': + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.12.0': - resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + '@eslint/plugin-kit@0.2.1': + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.0': @@ -555,8 +555,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@20.16.11': - resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} + '@types/node@20.16.13': + resolution: {integrity: sha512-GjQ7im10B0labo8ZGXDGROUl9k0BNyDgzfGpb4g/cl+4yYDWVKcozANF4FGr4/p0O/rAkQClM6Wiwkije++1Tg==} '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} @@ -567,8 +567,8 @@ packages: '@types/react@18.3.11': resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} - '@typescript-eslint/eslint-plugin@8.9.0': - resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==} + '@typescript-eslint/eslint-plugin@8.10.0': + resolution: {integrity: sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -578,8 +578,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.9.0': - resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==} + '@typescript-eslint/parser@8.10.0': + resolution: {integrity: sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -588,12 +588,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.9.0': - resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} + '@typescript-eslint/scope-manager@8.10.0': + resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.9.0': - resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==} + '@typescript-eslint/type-utils@8.10.0': + resolution: {integrity: sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -601,12 +601,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.9.0': - resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} + '@typescript-eslint/types@8.10.0': + resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.9.0': - resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} + '@typescript-eslint/typescript-estree@8.10.0': + resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -614,14 +614,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.9.0': - resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} + '@typescript-eslint/utils@8.10.0': + resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.9.0': - resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} + '@typescript-eslint/visitor-keys@8.10.0': + resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@use-gesture/core@10.3.1': @@ -632,8 +632,8 @@ packages: peerDependencies: react: '>= 16.8.0' - '@vitejs/plugin-react@4.3.2': - resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==} + '@vitejs/plugin-react@4.3.3': + resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 @@ -747,8 +747,8 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - electron-to-chromium@1.5.39: - resolution: {integrity: sha512-4xkpSR6CjuiaNyvwiWDI85N9AxsvbPawB8xc7yzLPonYTuP19BVgYweKyUMFtHEZgIcHWMt1ks5Cqx2m+6/Grg==} + electron-to-chromium@1.5.41: + resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} @@ -773,8 +773,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.12: - resolution: {integrity: sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==} + eslint-plugin-react-refresh@0.4.13: + resolution: {integrity: sha512-f1EppwrpJRWmqDTyvAyomFVDYRtrS7iTEqv3nokETnMiMzs2SSTmKRTACce4O2p4jYyowiSMvpdwC/RLcMFhuQ==} peerDependencies: eslint: '>=7' @@ -790,8 +790,8 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.12.0: - resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -977,7 +977,7 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} mafs@file:mafs.tgz: - resolution: {integrity: sha512-EOgHHsVxWq7oGmdUJhZJ+Fr3b37xP1i3EBWuQahy/3ZOiOo2xvxLd6KChF1Lf00b6xRvOFyixuHpWexBE8uffA==, tarball: file:mafs.tgz} + resolution: {integrity: sha512-AyLu9cKkFYc11fgJnuOXhBJPvyPuzQCsImsvmr/6KARMQTsFLk5UnphfQmQVWAXwDVA0lv1ed52FoMRXf3vmwA==, tarball: file:mafs.tgz} version: 0.20.1 engines: {node: '>=20.11.0'} peerDependencies: @@ -1055,8 +1055,8 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1190,8 +1190,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.9.0: - resolution: {integrity: sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==} + typescript-eslint@8.10.0: + resolution: {integrity: sha512-YIu230PeN7z9zpu/EtqCIuRVHPs4iSlqW6TEvjbyDAE3MZsSl2RXBo+5ag+lbABCG8sFM1WVKEXhlQ8Ml8A3Fw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1279,7 +1279,7 @@ snapshots: '@babel/code-frame@7.25.7': dependencies: '@babel/highlight': 7.25.7 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/compat-data@7.25.8': {} @@ -1360,7 +1360,7 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/parser@7.25.8': dependencies: @@ -1469,9 +1469,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)': dependencies: - eslint: 9.12.0 + eslint: 9.13.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -1484,7 +1484,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.6.0': {} + '@eslint/core@0.7.0': {} '@eslint/eslintrc@3.1.0': dependencies: @@ -1500,11 +1500,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.12.0': {} + '@eslint/js@9.13.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.0': + '@eslint/plugin-kit@0.2.1': dependencies: levn: 0.4.1 @@ -1659,7 +1659,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@20.16.11': + '@types/node@20.16.13': dependencies: undici-types: 6.19.8 @@ -1674,15 +1674,15 @@ snapshots: '@types/prop-types': 15.7.13 csstype: 3.1.3 - '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 - eslint: 9.12.0 + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/type-utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.10.0 + eslint: 9.13.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -1692,28 +1692,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + '@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.10.0 debug: 4.3.7 - eslint: 9.12.0 + eslint: 9.13.0 optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.9.0': + '@typescript-eslint/scope-manager@8.10.0': dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 - '@typescript-eslint/type-utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -1722,12 +1722,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.9.0': {} + '@typescript-eslint/types@8.10.0': {} - '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/visitor-keys': 8.10.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -1739,20 +1739,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': + '@typescript-eslint/utils@8.10.0(eslint@9.13.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - eslint: 9.12.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) + '@typescript-eslint/scope-manager': 8.10.0 + '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) + eslint: 9.13.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.9.0': + '@typescript-eslint/visitor-keys@8.10.0': dependencies: - '@typescript-eslint/types': 8.9.0 + '@typescript-eslint/types': 8.10.0 eslint-visitor-keys: 3.4.3 '@use-gesture/core@10.3.1': {} @@ -1762,14 +1762,14 @@ snapshots: '@use-gesture/core': 10.3.1 react: 18.3.1 - '@vitejs/plugin-react@4.3.2(vite@5.4.9(@types/node@20.16.11))': + '@vitejs/plugin-react@4.3.3(vite@5.4.9(@types/node@20.16.13))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.8) '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.8) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.9(@types/node@20.16.11) + vite: 5.4.9(@types/node@20.16.13) transitivePeerDependencies: - supports-color @@ -1814,7 +1814,7 @@ snapshots: browserslist@4.24.0: dependencies: caniuse-lite: 1.0.30001669 - electron-to-chromium: 1.5.39 + electron-to-chromium: 1.5.41 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) @@ -1873,7 +1873,7 @@ snapshots: deep-is@0.1.4: {} - electron-to-chromium@1.5.39: {} + electron-to-chromium@1.5.41: {} esbuild@0.21.5: optionalDependencies: @@ -1907,13 +1907,13 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-plugin-react-hooks@5.1.0-rc-fb9a90fa48-20240614(eslint@9.12.0): + eslint-plugin-react-hooks@5.1.0-rc-fb9a90fa48-20240614(eslint@9.13.0): dependencies: - eslint: 9.12.0 + eslint: 9.13.0 - eslint-plugin-react-refresh@0.4.12(eslint@9.12.0): + eslint-plugin-react-refresh@0.4.13(eslint@9.13.0): dependencies: - eslint: 9.12.0 + eslint: 9.13.0 eslint-scope@8.1.0: dependencies: @@ -1924,15 +1924,15 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.12.0: + eslint@9.13.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 + '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.12.0 - '@eslint/plugin-kit': 0.2.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.1 @@ -2192,20 +2192,20 @@ snapshots: path-key@3.1.1: {} - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.1.0 + picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.1.0 + picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -2309,11 +2309,11 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.9.0(eslint@9.12.0)(typescript@5.6.3): + typescript-eslint@8.10.0(eslint@9.13.0)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.10.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.10.0(eslint@9.13.0)(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -2328,7 +2328,7 @@ snapshots: dependencies: browserslist: 4.24.0 escalade: 3.2.0 - picocolors: 1.1.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: @@ -2340,13 +2340,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vite@5.4.9(@types/node@20.16.11): + vite@5.4.9(@types/node@20.16.13): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 20.16.11 + '@types/node': 20.16.13 fsevents: 2.3.3 which@2.0.2: diff --git a/tests/frameworks/vite/package.json b/tests/frameworks/vite/package.json index e506df7c..f8a770de 100644 --- a/tests/frameworks/vite/package.json +++ b/tests/frameworks/vite/package.json @@ -15,16 +15,16 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@eslint/js": "^9.12.0", + "@eslint/js": "^9.13.0", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.1", - "@vitejs/plugin-react": "^4.3.2", - "eslint": "^9.12.0", + "@vitejs/plugin-react": "^4.3.3", + "eslint": "^9.13.0", "eslint-plugin-react-hooks": "5.1.0-rc-fb9a90fa48-20240614", - "eslint-plugin-react-refresh": "^0.4.12", + "eslint-plugin-react-refresh": "^0.4.13", "globals": "^15.11.0", "typescript": "^5.6.3", - "typescript-eslint": "^8.9.0", + "typescript-eslint": "^8.10.0", "vite": "^5.4.9" } }