diff --git a/examples/vite-7/index.html b/examples/vite-7/index.html new file mode 100644 index 0000000..d9e5a65 --- /dev/null +++ b/examples/vite-7/index.html @@ -0,0 +1,11 @@ + + + + + + + +
+ + + diff --git a/examples/vite-7/package.json b/examples/vite-7/package.json new file mode 100644 index 0000000..6a63678 --- /dev/null +++ b/examples/vite-7/package.json @@ -0,0 +1,25 @@ +{ + "name": "example", + "private": "true", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "test": "vitest --browser.headless --run", + "test-dev": "vitest" + }, + "devDependencies": { + "@solidjs/testing-library": "^0.8.10", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/user-event": "^14.6.1", + "@vitest/browser": "^3.0.7", + "playwright": "^1.50.1", + "vite": "^7.0.0", + "vite-plugin-solid": "workspace:*", + "vitest": "^3.0.7" + }, + "dependencies": { + "solid-js": "catalog:" + } +} diff --git a/examples/vite-7/src/App.tsx b/examples/vite-7/src/App.tsx new file mode 100644 index 0000000..16c1f7f --- /dev/null +++ b/examples/vite-7/src/App.tsx @@ -0,0 +1,64 @@ +import { onCleanup, onMount } from "solid-js"; +import { CounterProvider, useCounter } from "./CounterContext"; + +const title = 'Count'; + +function Count() { + const counter = useCounter(); + onMount(() => { + console.log('Mounted Count'); + }); + onCleanup(() => { + console.log('Unmounted Count'); + }); + return ( +

{title}: {counter.value()}

+ ); +} + +function Increment() { + const counter = useCounter(); + onMount(() => { + console.log('Mounted Increment'); + }); + onCleanup(() => { + console.log('Unmounted Increment'); + }); + return ( + + ); +} + +function Decrement() { + const counter = useCounter(); + onMount(() => { + console.log('Mounted Decrement'); + }); + onCleanup(() => { + console.log('Unmounted Decrement'); + }); + return ( + + ); +} + +export default function App() { + onMount(() => { + console.log('Mounted App'); + }); + onCleanup(() => { + console.log('Unmounted App'); + }); + + return ( + + + + + + ); +} \ No newline at end of file diff --git a/examples/vite-7/src/CounterContext.tsx b/examples/vite-7/src/CounterContext.tsx new file mode 100644 index 0000000..6a79d5b --- /dev/null +++ b/examples/vite-7/src/CounterContext.tsx @@ -0,0 +1,43 @@ +import { createContext, createSignal, JSX, onCleanup, onMount, useContext } from "solid-js"; + +interface CounterContext { + value(): number; + increment(): void; + decrement(): void; +} + + +const CounterContext = createContext(); + +export function useCounter() { + const ctx = useContext(CounterContext); + if (!ctx) { + throw new Error('Missing CounterContext'); + } + return ctx; +} + +export function CounterProvider(props: { children: JSX.Element }) { + const [value, setValue] = createSignal(0); + + function increment() { + setValue((c) => c + 1); + } + + function decrement() { + setValue((c) => c - 1); + } + onMount(() => { + console.log('Mounted CounterProvider'); + }); + onCleanup(() => { + console.log('Unmounted CounterProvider'); + }); + + return ( + +

Counter

+ {props.children} +
+ ); +} diff --git a/examples/vite-7/src/main.tsx b/examples/vite-7/src/main.tsx new file mode 100644 index 0000000..c85fed5 --- /dev/null +++ b/examples/vite-7/src/main.tsx @@ -0,0 +1,8 @@ +import { render } from 'solid-js/web'; +import App from './App'; + +const app = document.getElementById('app'); + +if (app) { + render(() => , app); +} \ No newline at end of file diff --git a/examples/vite-7/tests/App.test.tsx b/examples/vite-7/tests/App.test.tsx new file mode 100644 index 0000000..efe51d3 --- /dev/null +++ b/examples/vite-7/tests/App.test.tsx @@ -0,0 +1,21 @@ +/// +import { render } from '@solidjs/testing-library'; +import { page } from '@vitest/browser/context'; +import { expect, test } from 'vitest'; + +import App from '../src/App.jsx'; + +test('App', async () => { + const root = page.elementLocator(render(() => ).baseElement); + + const count = root.getByText('Count:'); + await expect.element(count).toHaveTextContent('Count: 0'); + + const incrementButton = root.getByText('Increment'); + await incrementButton.click(); + await expect.element(count).toHaveTextContent('Count: 1'); + + const decrementButton = root.getByText('Decrement'); + await decrementButton.click(); + await expect.element(count).toHaveTextContent('Count: 0'); +}); diff --git a/examples/vite-7/tests/tsconfig.json b/examples/vite-7/tests/tsconfig.json new file mode 100644 index 0000000..416b900 --- /dev/null +++ b/examples/vite-7/tests/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "types": [ + "@testing-library/jest-dom" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx" + ] +} diff --git a/examples/vite-7/tsconfig.json b/examples/vite-7/tsconfig.json new file mode 100644 index 0000000..dc6abb7 --- /dev/null +++ b/examples/vite-7/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "moduleResolution": "node", + "jsx": "preserve", + "jsxImportSource": "solid-js", + "types": ["vite/client"], + "baseUrl": ".", + "paths": { + "@/*": ["./pages/*"], + "@@/*": ["./assets/*"] + } + } +} diff --git a/examples/vite-7/vite.config.ts b/examples/vite-7/vite.config.ts new file mode 100644 index 0000000..044b4b7 --- /dev/null +++ b/examples/vite-7/vite.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite'; +import solidPlugin from 'vite-plugin-solid'; + +export default defineConfig({ + plugins: [ + solidPlugin(), + ], +}); \ No newline at end of file diff --git a/examples/vite-7/vitest.config.ts b/examples/vite-7/vitest.config.ts new file mode 100644 index 0000000..eb10c0e --- /dev/null +++ b/examples/vite-7/vitest.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from 'vitest/config'; +import solidPlugin from '../../src/index.js'; + +export default defineConfig({ + plugins: [solidPlugin()], + resolve: { + conditions: ['development', 'browser'], + }, + test: { + environment: 'node', + browser: { + enabled: true, + provider: 'playwright', + instances: [{ browser: 'chromium' }], + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0408bf4..af7d7ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,6 +161,37 @@ importers: specifier: ^3.0.7 version: 3.0.7(@types/node@18.19.66)(@vitest/browser@3.0.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@18.19.66)(typescript@5.7.2)) + examples/vite-7: + dependencies: + solid-js: + specifier: 'catalog:' + version: 1.9.4 + devDependencies: + '@solidjs/testing-library': + specifier: ^0.8.10 + version: 0.8.10(solid-js@1.9.4) + '@testing-library/jest-dom': + specifier: ^6.6.3 + version: 6.6.3 + '@testing-library/user-event': + specifier: ^14.6.1 + version: 14.6.1(@testing-library/dom@10.4.0) + '@vitest/browser': + specifier: ^3.0.7 + version: 3.0.7(@types/node@18.19.66)(playwright@1.50.1)(typescript@5.7.2)(vite@7.0.6(@types/node@18.19.66))(vitest@3.0.7) + playwright: + specifier: ^1.50.1 + version: 1.50.1 + vite: + specifier: ^7.0.0 + version: 7.0.6(@types/node@18.19.66) + vite-plugin-solid: + specifier: workspace:* + version: link:../.. + vitest: + specifier: ^3.0.7 + version: 3.0.7(@types/node@18.19.66)(@vitest/browser@3.0.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@18.19.66)(typescript@5.7.2)) + packages: '@adobe/css-tools@4.4.1': @@ -1512,6 +1543,11 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.46.1': + resolution: {integrity: sha512-oENme6QxtLCqjChRUUo3S6X8hjCXnWmJWnedD7VbGML5GUtaOtAyx+fEEXnBXVf0CBZApMQU0Idwi0FmyxzQhw==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.27.4': resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} cpu: [arm64] @@ -1522,6 +1558,11 @@ packages: cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.46.1': + resolution: {integrity: sha512-OikvNT3qYTl9+4qQ9Bpn6+XHM+ogtFadRLuT2EXiFQMiNkXFLQfNVppi5o28wvYdHL2s3fM0D/MZJ8UkNFZWsw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.27.4': resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} cpu: [arm64] @@ -1532,6 +1573,11 @@ packages: cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.46.1': + resolution: {integrity: sha512-EFYNNGij2WllnzljQDQnlFTXzSJw87cpAs4TVBAWLdkvic5Uh5tISrIL6NRcxoh/b2EFBG/TK8hgRrGx94zD4A==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.27.4': resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} cpu: [x64] @@ -1542,6 +1588,11 @@ packages: cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.46.1': + resolution: {integrity: sha512-ZaNH06O1KeTug9WI2+GRBE5Ujt9kZw4a1+OIwnBHal92I8PxSsl5KpsrPvthRynkhMck4XPdvY0z26Cym/b7oA==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.27.4': resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} cpu: [arm64] @@ -1552,6 +1603,11 @@ packages: cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.46.1': + resolution: {integrity: sha512-n4SLVebZP8uUlJ2r04+g2U/xFeiQlw09Me5UFqny8HGbARl503LNH5CqFTb5U5jNxTouhRjai6qPT0CR5c/Iig==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.27.4': resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} cpu: [x64] @@ -1562,6 +1618,11 @@ packages: cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.46.1': + resolution: {integrity: sha512-8vu9c02F16heTqpvo3yeiu7Vi1REDEC/yES/dIfq3tSXe6mLndiwvYr3AAvd1tMNUqE9yeGYa5w7PRbI5QUV+w==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} cpu: [arm] @@ -1572,6 +1633,11 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.46.1': + resolution: {integrity: sha512-K4ncpWl7sQuyp6rWiGUvb6Q18ba8mzM0rjWJ5JgYKlIXAau1db7hZnR0ldJvqKWWJDxqzSLwGUhA4jp+KqgDtQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.27.4': resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} cpu: [arm] @@ -1582,6 +1648,11 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.46.1': + resolution: {integrity: sha512-YykPnXsjUjmXE6j6k2QBBGAn1YsJUix7pYaPLK3RVE0bQL2jfdbfykPxfF8AgBlqtYbfEnYHmLXNa6QETjdOjQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.27.4': resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} cpu: [arm64] @@ -1592,6 +1663,11 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.46.1': + resolution: {integrity: sha512-kKvqBGbZ8i9pCGW3a1FH3HNIVg49dXXTsChGFsHGXQaVJPLA4f/O+XmTxfklhccxdF5FefUn2hvkoGJH0ScWOA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.27.4': resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} cpu: [arm64] @@ -1602,11 +1678,21 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.46.1': + resolution: {integrity: sha512-zzX5nTw1N1plmqC9RGC9vZHFuiM7ZP7oSWQGqpbmfjK7p947D518cVK1/MQudsBdcD84t6k70WNczJOct6+hdg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.46.1': + resolution: {integrity: sha512-O8CwgSBo6ewPpktFfSDgB6SJN9XDcPSvuwxfejiddbIC/hn9Tg6Ai0f0eYDf3XvB/+PIWzOQL+7+TZoB8p9Yuw==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} cpu: [ppc64] @@ -1617,6 +1703,11 @@ packages: cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.46.1': + resolution: {integrity: sha512-JnCfFVEKeq6G3h3z8e60kAp8Rd7QVnWCtPm7cxx+5OtP80g/3nmPtfdCXbVl063e3KsRnGSKDHUQMydmzc/wBA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.27.4': resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} cpu: [riscv64] @@ -1627,6 +1718,16 @@ packages: cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.46.1': + resolution: {integrity: sha512-dVxuDqS237eQXkbYzQQfdf/njgeNw6LZuVyEdUaWwRpKHhsLI+y4H/NJV8xJGU19vnOJCVwaBFgr936FHOnJsQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.46.1': + resolution: {integrity: sha512-CvvgNl2hrZrTR9jXK1ye0Go0HQRT6ohQdDfWR47/KFKiLd5oN5T14jRdUVGF4tnsN8y9oSfMOqH6RuHh+ck8+w==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.27.4': resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} cpu: [s390x] @@ -1637,6 +1738,11 @@ packages: cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.46.1': + resolution: {integrity: sha512-x7ANt2VOg2565oGHJ6rIuuAon+A8sfe1IeUx25IKqi49OjSr/K3awoNqr9gCwGEJo9OuXlOn+H2p1VJKx1psxA==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.27.4': resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} cpu: [x64] @@ -1647,6 +1753,11 @@ packages: cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.46.1': + resolution: {integrity: sha512-9OADZYryz/7E8/qt0vnaHQgmia2Y0wrjSSn1V/uL+zw/i7NUhxbX4cHXdEQ7dnJgzYDS81d8+tf6nbIdRFZQoQ==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.27.4': resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} cpu: [x64] @@ -1657,6 +1768,11 @@ packages: cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.46.1': + resolution: {integrity: sha512-NuvSCbXEKY+NGWHyivzbjSVJi68Xfq1VnIvGmsuXs6TCtveeoDRKutI5vf2ntmNnVq64Q4zInet0UDQ+yMB6tA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.27.4': resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} cpu: [arm64] @@ -1667,6 +1783,11 @@ packages: cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.46.1': + resolution: {integrity: sha512-mWz+6FSRb82xuUMMV1X3NGiaPFqbLN9aIueHleTZCc46cJvwTlvIh7reQLk4p97dv0nddyewBhwzryBHH7wtPw==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.27.4': resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} cpu: [ia32] @@ -1677,6 +1798,11 @@ packages: cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.46.1': + resolution: {integrity: sha512-7Thzy9TMXDw9AU4f4vsLNBxh7/VOKuXi73VH3d/kHGr0tZ3x/ewgL9uC7ojUKmH1/zvmZe2tLapYcZllk3SO8Q==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.27.4': resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} cpu: [x64] @@ -1687,6 +1813,11 @@ packages: cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.46.1': + resolution: {integrity: sha512-7GVB4luhFmGUNXXJhH2jJwZCFB3pIOixv2E3s17GQHBFUOQaISlt7aGcQgqvCaDSxTZJUzlK/QJ1FN8S94MrzQ==} + cpu: [x64] + os: [win32] + '@skypack/package-check@0.2.2': resolution: {integrity: sha512-T4Wyi9lUuz0a1C2OHuzqZ0aFOCI0AmaGTb2LP9sHgWdoHXlB3JU02gfBpa0Y081G/gFsJYpQ/R0iCJRzF/nknw==} hasBin: true @@ -1736,6 +1867,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -2429,6 +2563,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -2857,6 +2999,11 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2976,6 +3123,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -3010,6 +3161,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -3154,6 +3309,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.46.1: + resolution: {integrity: sha512-33xGNBsDJAkzt0PvninskHlWnTIPgDtTwhg0U38CUoNP/7H6wI2Cz6dUeoNPbjdTdsYTGuiFFASuUOWovH0SyQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -3332,6 +3492,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3635,6 +3799,46 @@ packages: yaml: optional: true + vite@7.0.6: + resolution: {integrity: sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.0.4: resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} peerDependencies: @@ -5107,111 +5311,171 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.34.8': optional: true + '@rollup/rollup-android-arm-eabi@4.46.1': + optional: true + '@rollup/rollup-android-arm64@4.27.4': optional: true '@rollup/rollup-android-arm64@4.34.8': optional: true + '@rollup/rollup-android-arm64@4.46.1': + optional: true + '@rollup/rollup-darwin-arm64@4.27.4': optional: true '@rollup/rollup-darwin-arm64@4.34.8': optional: true + '@rollup/rollup-darwin-arm64@4.46.1': + optional: true + '@rollup/rollup-darwin-x64@4.27.4': optional: true '@rollup/rollup-darwin-x64@4.34.8': optional: true + '@rollup/rollup-darwin-x64@4.46.1': + optional: true + '@rollup/rollup-freebsd-arm64@4.27.4': optional: true '@rollup/rollup-freebsd-arm64@4.34.8': optional: true + '@rollup/rollup-freebsd-arm64@4.46.1': + optional: true + '@rollup/rollup-freebsd-x64@4.27.4': optional: true '@rollup/rollup-freebsd-x64@4.34.8': optional: true + '@rollup/rollup-freebsd-x64@4.46.1': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.34.8': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.46.1': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.27.4': optional: true '@rollup/rollup-linux-arm-musleabihf@4.34.8': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.46.1': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.27.4': optional: true '@rollup/rollup-linux-arm64-gnu@4.34.8': optional: true + '@rollup/rollup-linux-arm64-gnu@4.46.1': + optional: true + '@rollup/rollup-linux-arm64-musl@4.27.4': optional: true '@rollup/rollup-linux-arm64-musl@4.34.8': optional: true + '@rollup/rollup-linux-arm64-musl@4.46.1': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.46.1': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.46.1': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.27.4': optional: true '@rollup/rollup-linux-riscv64-gnu@4.34.8': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.46.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.46.1': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.27.4': optional: true '@rollup/rollup-linux-s390x-gnu@4.34.8': optional: true + '@rollup/rollup-linux-s390x-gnu@4.46.1': + optional: true + '@rollup/rollup-linux-x64-gnu@4.27.4': optional: true '@rollup/rollup-linux-x64-gnu@4.34.8': optional: true + '@rollup/rollup-linux-x64-gnu@4.46.1': + optional: true + '@rollup/rollup-linux-x64-musl@4.27.4': optional: true '@rollup/rollup-linux-x64-musl@4.34.8': optional: true + '@rollup/rollup-linux-x64-musl@4.46.1': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.27.4': optional: true '@rollup/rollup-win32-arm64-msvc@4.34.8': optional: true + '@rollup/rollup-win32-arm64-msvc@4.46.1': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.27.4': optional: true '@rollup/rollup-win32-ia32-msvc@4.34.8': optional: true + '@rollup/rollup-win32-ia32-msvc@4.46.1': + optional: true + '@rollup/rollup-win32-x64-msvc@4.27.4': optional: true '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true + '@rollup/rollup-win32-x64-msvc@4.46.1': + optional: true + '@skypack/package-check@0.2.2': dependencies: kleur: 4.1.5 @@ -5274,6 +5538,8 @@ snapshots: '@types/estree@1.0.6': {} + '@types/estree@1.0.8': {} + '@types/node@12.20.55': {} '@types/node@18.19.66': @@ -5316,6 +5582,27 @@ snapshots: - utf-8-validate - vite + '@vitest/browser@3.0.7(@types/node@18.19.66)(playwright@1.50.1)(typescript@5.7.2)(vite@7.0.6(@types/node@18.19.66))(vitest@3.0.7)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) + '@vitest/mocker': 3.0.7(msw@2.7.3(@types/node@18.19.66)(typescript@5.7.2))(vite@7.0.6(@types/node@18.19.66)) + '@vitest/utils': 3.0.7 + magic-string: 0.30.17 + msw: 2.7.3(@types/node@18.19.66)(typescript@5.7.2) + sirv: 3.0.1 + tinyrainbow: 2.0.0 + vitest: 3.0.7(@types/node@18.19.66)(@vitest/browser@3.0.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@18.19.66)(typescript@5.7.2)) + ws: 8.18.1 + optionalDependencies: + playwright: 1.50.1 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - typescript + - utf-8-validate + - vite + '@vitest/expect@3.0.7': dependencies: '@vitest/spy': 3.0.7 @@ -5332,6 +5619,15 @@ snapshots: msw: 2.7.3(@types/node@18.19.66)(typescript@5.7.2) vite: 6.2.0(@types/node@18.19.66) + '@vitest/mocker@3.0.7(msw@2.7.3(@types/node@18.19.66)(typescript@5.7.2))(vite@7.0.6(@types/node@18.19.66))': + dependencies: + '@vitest/spy': 3.0.7 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.3(@types/node@18.19.66)(typescript@5.7.2) + vite: 7.0.6(@types/node@18.19.66) + '@vitest/pretty-format@3.0.7': dependencies: tinyrainbow: 2.0.0 @@ -6044,6 +6340,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.6(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -6482,6 +6782,8 @@ snapshots: mute-stream@2.0.0: {} + nanoid@3.3.11: {} + nanoid@3.3.8: {} node-releases@2.0.18: {} @@ -6565,6 +6867,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pify@2.3.0: {} pify@4.0.1: {} @@ -6595,6 +6899,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prettier@2.8.8: {} prettier@3.4.1: {} @@ -6766,6 +7076,32 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.34.8 fsevents: 2.3.3 + rollup@4.46.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.46.1 + '@rollup/rollup-android-arm64': 4.46.1 + '@rollup/rollup-darwin-arm64': 4.46.1 + '@rollup/rollup-darwin-x64': 4.46.1 + '@rollup/rollup-freebsd-arm64': 4.46.1 + '@rollup/rollup-freebsd-x64': 4.46.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.1 + '@rollup/rollup-linux-arm-musleabihf': 4.46.1 + '@rollup/rollup-linux-arm64-gnu': 4.46.1 + '@rollup/rollup-linux-arm64-musl': 4.46.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.1 + '@rollup/rollup-linux-ppc64-gnu': 4.46.1 + '@rollup/rollup-linux-riscv64-gnu': 4.46.1 + '@rollup/rollup-linux-riscv64-musl': 4.46.1 + '@rollup/rollup-linux-s390x-gnu': 4.46.1 + '@rollup/rollup-linux-x64-gnu': 4.46.1 + '@rollup/rollup-linux-x64-musl': 4.46.1 + '@rollup/rollup-win32-arm64-msvc': 4.46.1 + '@rollup/rollup-win32-ia32-msvc': 4.46.1 + '@rollup/rollup-win32-x64-msvc': 4.46.1 + fsevents: 2.3.3 + rrweb-cssom@0.8.0: optional: true @@ -6945,6 +7281,11 @@ snapshots: tinyexec@0.3.2: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} @@ -7116,6 +7457,18 @@ snapshots: '@types/node': 18.19.66 fsevents: 2.3.3 + vite@7.0.6(@types/node@18.19.66): + dependencies: + esbuild: 0.25.0 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.1 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 18.19.66 + fsevents: 2.3.3 + vitefu@1.0.4(vite@6.0.9(@types/node@18.19.66)): optionalDependencies: vite: 6.0.9(@types/node@18.19.66)