diff --git a/.changeset/virtual-solid2-migration.md b/.changeset/virtual-solid2-migration.md new file mode 100644 index 000000000..97cf74734 --- /dev/null +++ b/.changeset/virtual-solid2-migration.md @@ -0,0 +1,17 @@ +--- +"@solid-primitives/virtual": major +--- + +Migrate to Solid.js v2.0 (beta.10) + +## Breaking Changes + +**Peer dependency**: `solid-js@^2.0.0-beta.10` and `@solidjs/web@^2.0.0-beta.10` are now required. + +### `@solid-primitives/virtual` + +- **`createVirtualList`**: returns `[Accessor, onScroll]` — the first element is now an Accessor that must be called to read `containerHeight`, `viewerTop`, and `visibleItems`. + +- **`VirtualList` children**: the child render function now receives `(item: Accessor, index: Accessor)` — `item` is an Accessor and must be called as `item()` to get the value. This matches Solid 2.0's `` component behavior. + +- **`{ ownedWrite: true }`**: the internal scroll offset signal uses `ownedWrite` to allow writes from the `onScroll` event handler outside the owning reactive scope. diff --git a/packages/virtual/README.md b/packages/virtual/README.md index 306f760db..bf7f13488 100644 --- a/packages/virtual/README.md +++ b/packages/virtual/README.md @@ -34,7 +34,7 @@ function MyComp(): JSX.Element { const rowHeight = 10; const overscanCount = 5; - const [{ containerHeight, viewerTop, visibleItems }, onScroll] = createVirtualList({ + const [virtual, onScroll] = createVirtualList({ // the list of items - can be a signal items, // the height of the root element of the virtualizedList - can be a signal @@ -59,20 +59,20 @@ function MyComp(): JSX.Element { style={{ position: "relative", width: "100%", - // list container element's height must be set to containerHeight() - height: `${containerHeight()}px`, + // list container element's height must be set to virtual().containerHeight + height: `${virtual().containerHeight}px`, }} >
- {/* only visibleItems() are ultimately rendered */} - - {item =>
{item}
} + {/* only virtual().visibleItems are ultimately rendered */} + + {item =>
{item()}
}
@@ -100,7 +100,8 @@ function MyComp(): JSX.Element { > { // the flowComponent that will be used to transform the items into rows in the list - item =>
{item}
+ // item is an Accessor — call it to get the value + item =>
{item()}
} ``` diff --git a/packages/virtual/dev/index.tsx b/packages/virtual/dev/index.tsx index bb715cc8f..dd0ee8a61 100644 --- a/packages/virtual/dev/index.tsx +++ b/packages/virtual/dev/index.tsx @@ -1,5 +1,5 @@ -import { createSignal, onMount, onCleanup, type Component } from "solid-js"; -import { isServer } from "solid-js/web"; +import { createSignal, onSettled, onCleanup, type Component } from "solid-js"; +import { isServer } from "@solidjs/web"; import { VirtualList } from "../src/index.jsx"; const intl = new Intl.NumberFormat(); @@ -71,7 +71,7 @@ const App: Component = () => { rootHeight={rootHeight()} rowHeight={rowHeight()} > - {item => } + {item => } @@ -113,7 +113,7 @@ type VirtualListItemProps = { }; const VirtualListItem: Component = props => { - onMount(() => { + onSettled(() => { if (!isServer) console.log("item added:", props.item); }); diff --git a/packages/virtual/package.json b/packages/virtual/package.json index b546758ac..497a19975 100644 --- a/packages/virtual/package.json +++ b/packages/virtual/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/virtual", - "version": "0.2.3", + "version": "0.3.0", "description": "A virtualized list component for performantly rendering lists with many elements", "author": "Spencer Whitehead ", "contributors": [], @@ -48,7 +48,7 @@ "scripts": { "dev": "node --import=@nothing-but/node-resolve-ts --experimental-transform-types ../../scripts/dev.ts", "build": "node --import=@nothing-but/node-resolve-ts --experimental-transform-types ../../scripts/build.ts", - "vitest": "vitest -c ../../configs/vitest.config.ts", + "vitest": "vitest -c vitest.config.ts", "test": "pnpm run vitest", "test:ssr": "pnpm run vitest --mode ssr" }, @@ -56,9 +56,13 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.10", + "solid-js": "^2.0.0-beta.10" }, "devDependencies": { - "solid-js": "^1.9.7" + "@babel/core": "^7.27.0", + "@solidjs/web": "2.0.0-beta.10", + "babel-preset-solid": "2.0.0-beta.10", + "solid-js": "2.0.0-beta.10" } } diff --git a/packages/virtual/src/index.tsx b/packages/virtual/src/index.tsx index dbebd2b4c..a672d0696 100644 --- a/packages/virtual/src/index.tsx +++ b/packages/virtual/src/index.tsx @@ -1,5 +1,6 @@ import { For, createSignal } from "solid-js"; -import type { Accessor, JSX } from "solid-js"; +import type { Accessor } from "solid-js"; +import type { JSX } from "@solidjs/web"; import { access } from "@solid-primitives/utils"; import type { MaybeAccessor } from "@solid-primitives/utils"; @@ -34,36 +35,39 @@ export function createVirtualList({ rowHeight, overscanCount, }: VirtualListConfig): VirtualListReturn { - items = access(items) || ([] as any as T); - rootHeight = access(rootHeight); - rowHeight = access(rowHeight); - overscanCount = access(overscanCount) || 1; + const [offset, setOffset] = createSignal(0, { ownedWrite: true }); - const [offset, setOffset] = createSignal(0); - - const getFirstIdx = () => Math.max(0, Math.floor(offset() / rowHeight) - overscanCount); - - const getLastIdx = () => - Math.min( - items.length, - Math.floor(offset() / rowHeight) + Math.ceil(rootHeight / rowHeight) + overscanCount, - ); + const getItems = () => (access(items) || []) as unknown as T; + const getRootHeight = () => access(rootHeight); + const getRowHeight = () => access(rowHeight); + const getOverscanCount = () => access(overscanCount) || 1; return [ - () => ({ - containerHeight: items.length * rowHeight, - viewerTop: getFirstIdx() * rowHeight, - visibleItems: items.slice(getFirstIdx(), getLastIdx()) as unknown as T, - }), + () => { + const resolvedItems = getItems(); + const rowH = getRowHeight(); + const currentOffset = offset(); + const overscan = getOverscanCount(); + const firstIdx = Math.max(0, Math.floor(currentOffset / rowH) - overscan); + const lastIdx = Math.min( + resolvedItems.length, + Math.floor(currentOffset / rowH) + Math.ceil(getRootHeight() / rowH) + overscan, + ); + return { + containerHeight: resolvedItems.length * rowH, + viewerTop: firstIdx * rowH, + visibleItems: resolvedItems.slice(firstIdx, lastIdx) as unknown as T, + }; + }, e => { - // @ts-expect-error - if (e.target?.scrollTop !== undefined) setOffset(e.target.scrollTop); + const target = e.target as HTMLElement | null; + if (target?.scrollTop !== undefined) setOffset(target.scrollTop); }, ]; } type VirtualListProps = { - children: (item: T[number], index: Accessor) => U; + children: (item: Accessor, index: Accessor) => U; each: T | undefined | null | false; fallback?: JSX.Element; overscanCount?: number; diff --git a/packages/virtual/test/index.test.tsx b/packages/virtual/test/index.test.tsx index f30abccb0..6ea7fee6b 100644 --- a/packages/virtual/test/index.test.tsx +++ b/packages/virtual/test/index.test.tsx @@ -1,6 +1,6 @@ import { describe, test, expect } from "vitest"; -import { render } from "solid-js/web"; -import { DOMElement } from "solid-js/jsx-runtime"; +import { createRoot, flush } from "solid-js"; +import { render } from "@solidjs/web"; import { createVirtualList, VirtualList } from "../src/index.jsx"; @@ -10,7 +10,7 @@ const ROOT = document.createElement("div"); const SCROLL_EVENT = new Event("scroll"); -const TARGETED_SCROLL_EVENT = (el: DOMElement) => ({ ...SCROLL_EVENT, target: el }); +const TARGETED_SCROLL_EVENT = (el: Element) => ({ ...SCROLL_EVENT, target: el }); function getScrollContainer() { const scrollContainer = ROOT.querySelector("div"); @@ -21,144 +21,171 @@ function getScrollContainer() { } describe("createVirtualList", () => { - test("returns containerHeight representing the size of the list container element within the root", () => { - const [virtual] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); - - expect(virtual().containerHeight).toEqual(10_000); - }); - - test("returns viewerTop representing the location of the list viewer element within the list container", () => { - const [virtual] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); - - expect(virtual().viewerTop).toEqual(0); - }); - - test("returns visibleList representing the subset of items to render", () => { - const [virtual] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); - - expect(virtual().visibleItems).toEqual([0, 1, 2]); - }); - - test("returns onScroll which sets viewerTop and visibleItems based on rootElement's scrolltop", () => { - const el = document.createElement("div"); + test("returns containerHeight representing the size of the list container element within the root", () => + createRoot(dispose => { + const [virtual] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); + + expect(virtual().containerHeight).toEqual(10_000); + dispose(); + })); + + test("returns viewerTop representing the location of the list viewer element within the list container", () => + createRoot(dispose => { + const [virtual] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); + + expect(virtual().viewerTop).toEqual(0); + dispose(); + })); + + test("returns visibleList representing the subset of items to render", () => + createRoot(dispose => { + const [virtual] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); + + expect(virtual().visibleItems).toEqual([0, 1, 2]); + dispose(); + })); + + test("returns onScroll which sets viewerTop and visibleItems based on rootElement's scrolltop", () => + createRoot(dispose => { + const el = document.createElement("div"); + + const [virtual, onScroll] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); + + expect(virtual().visibleItems).toEqual([0, 1, 2]); + expect(virtual().viewerTop).toEqual(0); + + el.scrollTop += 10; + + // no change until onScroll is called + expect(virtual().visibleItems).toEqual([0, 1, 2]); + expect(virtual().viewerTop).toEqual(0); + + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); + + expect(virtual().visibleItems).toEqual([0, 1, 2, 3]); + expect(virtual().viewerTop).toEqual(0); + + el.scrollTop += 10; + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); + + expect(virtual().visibleItems).toEqual([1, 2, 3, 4]); + expect(virtual().viewerTop).toEqual(10); + + el.scrollTop -= 10; + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); + + expect(virtual().visibleItems).toEqual([0, 1, 2, 3]); + expect(virtual().viewerTop).toEqual(0); + + el.scrollTop -= 10; + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); + + expect(virtual().visibleItems).toEqual([0, 1, 2]); + expect(virtual().viewerTop).toEqual(0); + + dispose(); + })); + + test("onScroll handles reaching the bottom of the list", () => + createRoot(dispose => { + const el = document.createElement("div"); + + const [virtual, onScroll] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); + + expect(virtual().visibleItems).toEqual([0, 1, 2]); + expect(virtual().viewerTop).toEqual(0); + + el.scrollTop += 9_980; + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); + + expect(virtual().visibleItems).toEqual([997, 998, 999]); + expect(virtual().viewerTop).toEqual(9_970); + + dispose(); + })); + + test("visibleList takes `overscanCount` into account", () => + createRoot(dispose => { + const el = document.createElement("div"); + + const [virtual, onScroll] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + overscanCount: 2, + }); - const [virtual, onScroll] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); + el.scrollTop += 100; + onScroll(TARGETED_SCROLL_EVENT(el)); + flush(); - expect(virtual().visibleItems).toEqual([0, 1, 2]); - expect(virtual().viewerTop).toEqual(0); + expect(virtual().visibleItems).toEqual([8, 9, 10, 11, 12, 13]); + + dispose(); + })); - el.scrollTop += 10; + test("overscanCount defaults to 1 if undefined or zero", () => + createRoot(dispose => { + const [virtualUndefined] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + }); - // no change until onScroll is called - expect(virtual().visibleItems).toEqual([0, 1, 2]); - expect(virtual().viewerTop).toEqual(0); + expect(virtualUndefined().visibleItems).toEqual([0, 1, 2]); - onScroll(TARGETED_SCROLL_EVENT(el)); + const [virtualZero] = createVirtualList({ + items: TEST_LIST, + rootHeight: 20, + rowHeight: 10, + overscanCount: 0, + }); - expect(virtual().visibleItems).toEqual([0, 1, 2, 3]); - expect(virtual().viewerTop).toEqual(0); - - el.scrollTop += 10; - onScroll(TARGETED_SCROLL_EVENT(el)); - - expect(virtual().visibleItems).toEqual([1, 2, 3, 4]); - expect(virtual().viewerTop).toEqual(10); - - el.scrollTop -= 10; - onScroll(TARGETED_SCROLL_EVENT(el)); - - expect(virtual().visibleItems).toEqual([0, 1, 2, 3]); - expect(virtual().viewerTop).toEqual(0); - - el.scrollTop -= 10; - onScroll(TARGETED_SCROLL_EVENT(el)); - - expect(virtual().visibleItems).toEqual([0, 1, 2]); - expect(virtual().viewerTop).toEqual(0); - }); + expect(virtualZero().visibleItems).toEqual([0, 1, 2]); - test("onScroll handles reaching the bottom of the list", () => { - const el = document.createElement("div"); + dispose(); + })); - const [virtual, onScroll] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); + test("handles empty list", () => + createRoot(dispose => { + const [virtual] = createVirtualList({ + items: [], + rootHeight: 20, + rowHeight: 10, + overscanCount: 0, + }); - expect(virtual().visibleItems).toEqual([0, 1, 2]); - expect(virtual().viewerTop).toEqual(0); + expect(virtual().containerHeight).toEqual(0); + expect(virtual().viewerTop).toEqual(0); + expect(virtual().visibleItems).toEqual([]); - el.scrollTop += 9_980; - onScroll(TARGETED_SCROLL_EVENT(el)); - - expect(virtual().visibleItems).toEqual([997, 998, 999]); - expect(virtual().viewerTop).toEqual(9_970); - }); - - test("visibleList takes `overscanCount` into account", () => { - const el = document.createElement("div"); - - const [virtual, onScroll] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - overscanCount: 2, - }); - - el.scrollTop += 100; - onScroll(TARGETED_SCROLL_EVENT(el)); - - expect(virtual().visibleItems).toEqual([8, 9, 10, 11, 12, 13]); - }); - - test("overscanCount defaults to 1 if undefined or zero", () => { - const [virtualUndefined] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - }); - - expect(virtualUndefined().visibleItems).toEqual([0, 1, 2]); - - const [virtualZero] = createVirtualList({ - items: TEST_LIST, - rootHeight: 20, - rowHeight: 10, - overscanCount: 0, - }); - - expect(virtualZero().visibleItems).toEqual([0, 1, 2]); - }); - - test("handles empty list", () => { - const [virtual] = createVirtualList({ - items: [], - rootHeight: 20, - rowHeight: 10, - overscanCount: 0, - }); - - expect(virtual().containerHeight).toEqual(0); - expect(virtual().viewerTop).toEqual(0); - expect(virtual().visibleItems).toEqual([]); - }); + dispose(); + })); }); describe("VirtualList", () => { @@ -166,7 +193,7 @@ describe("VirtualList", () => { const dispose = render( () => ( - {item =>
} + {item =>
} ), ROOT, @@ -184,7 +211,7 @@ describe("VirtualList", () => { const dispose = render( () => ( - {item =>
} + {item =>
} ), ROOT, @@ -193,6 +220,7 @@ describe("VirtualList", () => { const scrollContainer = getScrollContainer(); scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-0")).not.toBeNull(); expect(ROOT.querySelector("#item-1")).not.toBeNull(); @@ -201,6 +229,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop += 10; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-0")).not.toBeNull(); expect(ROOT.querySelector("#item-1")).not.toBeNull(); @@ -210,6 +239,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop += 10; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-0")).toBeNull(); expect(ROOT.querySelector("#item-1")).not.toBeNull(); @@ -220,6 +250,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop -= 10; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-0")).not.toBeNull(); expect(ROOT.querySelector("#item-1")).not.toBeNull(); @@ -229,6 +260,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop -= 10; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-0")).not.toBeNull(); expect(ROOT.querySelector("#item-1")).not.toBeNull(); @@ -242,7 +274,7 @@ describe("VirtualList", () => { const dispose = render( () => ( - {item =>
} + {item =>
} ), ROOT, @@ -252,6 +284,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop += 9_980; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-996")).toBeNull(); expect(ROOT.querySelector("#item-997")).not.toBeNull(); @@ -266,7 +299,7 @@ describe("VirtualList", () => { const dispose = render( () => ( - {item =>
} + {item =>
} ), ROOT, @@ -276,6 +309,7 @@ describe("VirtualList", () => { scrollContainer.scrollTop += 100; scrollContainer.dispatchEvent(SCROLL_EVENT); + flush(); expect(ROOT.querySelector("#item-7")).toBeNull(); expect(ROOT.querySelector("#item-8")).not.toBeNull(); @@ -293,7 +327,7 @@ describe("VirtualList", () => { const dispose = render( () => ( - {item =>
} + {item =>
} ), ROOT, @@ -308,7 +342,7 @@ describe("VirtualList", () => { const dispose = render( () => ( } rootHeight={20} rowHeight={10}> - {item =>
} + {item =>
} ), ROOT, diff --git a/packages/virtual/test/server.test.tsx b/packages/virtual/test/server.test.tsx index b70da7ff0..2a6583f8f 100644 --- a/packages/virtual/test/server.test.tsx +++ b/packages/virtual/test/server.test.tsx @@ -1,5 +1,5 @@ import { describe, test, expect } from "vitest"; -import { renderToString } from "solid-js/web"; +import { renderToString } from "@solidjs/web"; import { VirtualList } from "../src/index.jsx"; const TEST_LIST = Array.from({ length: 1000 }, (_, i) => i); @@ -8,7 +8,7 @@ describe("VirtualList", () => { test("doesn't break in SSR", () => { const virtualListStr = renderToString(() => ( - {item =>
{item}
} + {item =>
{item()}
}
)); diff --git a/packages/virtual/vitest.config.ts b/packages/virtual/vitest.config.ts new file mode 100644 index 000000000..d32a8b47c --- /dev/null +++ b/packages/virtual/vitest.config.ts @@ -0,0 +1,73 @@ +import { defineConfig } from "vitest/config"; +import type { Plugin } from "vite"; + +function solidBabelPlugin(testSSR: boolean): Plugin { + return { + name: "solid-babel-transform", + config() { + return { esbuild: { jsx: "preserve" } }; + }, + async transform(source, id) { + if (!/\.[mc]?[tj]sx$/i.test(id) || /node_modules/.test(id)) return null; + id = id.replace(/\?.*$/, ""); + + const { transformAsync } = await import("@babel/core"); + const babelSolid = (await import("babel-preset-solid")).default; + + const parserPlugins: string[] = ["jsx"]; + if (/\.[mc]?tsx$/i.test(id)) parserPlugins.push("typescript"); + + const result = await transformAsync(source, { + filename: id, + sourceFileName: id, + presets: [ + [ + babelSolid, + { + moduleName: "@solidjs/web", + generate: testSSR ? "ssr" : "dom", + omitNestedClosingTags: false, + }, + ], + ], + plugins: [], + ast: false, + sourceMaps: true, + configFile: false, + babelrc: false, + parserOpts: { plugins: parserPlugins as any }, + }); + + if (!result || !result.code) return null; + return { code: result.code, map: result.map }; + }, + }; +} + +export default defineConfig(({ mode }) => { + const testSSR = mode === "test:ssr" || mode === "ssr"; + + return { + plugins: [solidBabelPlugin(testSSR)], + test: { + watch: false, + isolate: false, + passWithNoTests: true, + environment: testSSR ? "node" : "jsdom", + transformMode: { + web: [/\.[jt]sx$/], + }, + ...(testSSR + ? { include: ["test/server.test.{ts,tsx}"] } + : { + include: ["test/*.test.{ts,tsx}"], + exclude: ["test/server.test.{ts,tsx}"], + }), + }, + resolve: { + conditions: testSSR + ? ["@solid-primitives/source", "node"] + : ["@solid-primitives/source", "browser", "development"], + }, + }; +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac080626e..04e32bff8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1013,9 +1013,18 @@ importers: specifier: workspace:^ version: link:../utils devDependencies: + '@babel/core': + specifier: ^7.27.0 + version: 7.29.0 + '@solidjs/web': + specifier: 2.0.0-beta.10 + version: 2.0.0-beta.10(solid-js@2.0.0-beta.10) + babel-preset-solid: + specifier: 2.0.0-beta.10 + version: 2.0.0-beta.10(@babel/core@7.29.0)(solid-js@2.0.0-beta.10) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.10 + version: 2.0.0-beta.10 packages/websocket: devDependencies: @@ -1162,10 +1171,6 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@ardatan/relay-compiler@12.0.0': resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} hasBin: true @@ -1191,18 +1196,10 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.3': resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} engines: {node: '>=6.9.0'} - '@babel/core@7.27.4': - resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} - engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} @@ -1219,10 +1216,6 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.28.6': resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} @@ -1245,20 +1238,10 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.6': resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} @@ -1299,10 +1282,6 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.29.2': resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} @@ -3545,6 +3524,11 @@ packages: peerDependencies: '@babel/core': ^7.20.12 + babel-plugin-jsx-dom-expressions@0.50.0-next.6: + resolution: {integrity: sha512-D7SSrMu1EupiCFT3hBhWJj0EWzaI27HV1ysbLSKFcH1ROZe61DmnNVchrnr5QeAw5O8bqSdlMDLdEqMYzi4tTA==} + peerDependencies: + '@babel/core': ^7.20.12 + babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} @@ -3558,6 +3542,15 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-solid@2.0.0-beta.10: + resolution: {integrity: sha512-lzGgPsh1fVtBJDl+UWLTCgimzPMda7X2Xzq7asCCOq/zHRwiF5vF3Eb3xj65dGyi7YpgVROTwJEpj+XiroKaww==} + peerDependencies: + '@babel/core': ^7.0.0 + solid-js: ^2.0.0-beta.10 + peerDependenciesMeta: + solid-js: + optional: true + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -7608,20 +7601,15 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.3 '@babel/runtime': 7.27.6 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - babel-preset-fbjs: 3.4.0(@babel/core@7.27.4) + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.29.0) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5 @@ -7669,30 +7657,8 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.5': {} - '@babel/compat-data@7.29.3': {} - '@babel/core@7.27.4': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.29.0': dependencies: '@babel/code-frame': 7.29.0 @@ -7731,15 +7697,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.27.6 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.0 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.29.0 '@babel/helper-compilation-targets@7.28.6': dependencies: @@ -7749,15 +7707,15 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -7766,21 +7724,14 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.27.6 - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.29.0 '@babel/helper-module-imports@7.28.6': dependencies: @@ -7789,15 +7740,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -7809,23 +7751,23 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -7837,11 +7779,6 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.27.6': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 - '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 @@ -7849,47 +7786,42 @@ snapshots: '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.4)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.27.4)': - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.27.4) - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/compat-data': 7.29.3 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.29.0) - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': @@ -7897,14 +7829,9 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': @@ -7912,156 +7839,156 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-classes@7.25.0(@babel/core@7.27.4)': + '@babel/plugin-transform-classes@7.25.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/template': 7.28.6 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.27.4)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.27.4)': + '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.27.4) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.29.0) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.27.4)': + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.27.4)': + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.27.4)': + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/preset-typescript@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -8085,7 +8012,7 @@ snapshots: '@babel/generator': 7.27.5 '@babel/parser': 7.27.5 '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: @@ -8824,11 +8751,11 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.2(graphql@16.9.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/parser': 7.27.5 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.3 + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@graphql-tools/utils': 10.3.4(graphql@16.9.0) graphql: 16.9.0 tslib: 2.8.1 @@ -8986,7 +8913,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.8': @@ -8997,8 +8924,8 @@ snapshots: '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} @@ -9006,8 +8933,8 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -9021,7 +8948,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@kamilkisiela/fast-url-parser@1.1.4': {} @@ -9111,7 +9038,7 @@ snapshots: '@netlify/zip-it-and-ship-it@12.1.4(rollup@4.43.0)': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.3 '@babel/types': 7.27.6 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 2.1.2 @@ -9746,9 +9673,9 @@ snapshots: '@tanstack/directive-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@tanstack/router-utils': 1.121.0 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 @@ -9783,7 +9710,7 @@ snapshots: '@babel/core': 7.29.0 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) - '@babel/template': 7.27.2 + '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 '@tanstack/router-core': 1.169.1 @@ -9801,10 +9728,10 @@ snapshots: '@tanstack/router-utils@1.121.0': dependencies: - '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.3 + '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) ansis: 4.1.0 diff: 8.0.2 transitivePeerDependencies: @@ -9827,9 +9754,9 @@ snapshots: '@tanstack/server-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.27.4 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) '@babel/template': 7.27.2 '@babel/traverse': 7.27.4 '@babel/types': 7.27.6 @@ -9965,23 +9892,23 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/braces@3.0.5': {} @@ -10266,7 +10193,7 @@ snapshots: '@vue/compiler-core@3.5.16': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.3 '@vue/shared': 3.5.16 entities: 4.5.0 estree-walker: 2.0.2 @@ -10279,7 +10206,7 @@ snapshots: '@vue/compiler-sfc@3.5.16': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.3 '@vue/compiler-core': 3.5.16 '@vue/compiler-dom': 3.5.16 '@vue/compiler-ssr': 3.5.16 @@ -10517,10 +10444,10 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/parser': 7.27.5 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -10528,60 +10455,77 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.3 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.27.4): + babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.29.0): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.0 + html-entities: 2.3.3 + parse5: 7.3.0 + validate-html-nesting: 1.2.2 + + babel-plugin-jsx-dom-expressions@0.50.0-next.6(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.0 html-entities: 2.3.3 parse5: 7.3.0 validate-html-nesting: 1.2.2 babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-fbjs@3.4.0(@babel/core@7.27.4): - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.4) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.27.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.27.4) - '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.27.4) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.27.4) - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.27.4) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.27.4) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.27.4) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.27.4) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.27.4) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.27.4) + babel-preset-fbjs@3.4.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.29.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color - babel-preset-solid@1.9.6(@babel/core@7.27.4): + babel-preset-solid@1.9.6(@babel/core@7.29.0): dependencies: - '@babel/core': 7.27.4 - babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.27.4) + '@babel/core': 7.29.0 + babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.29.0) + + babel-preset-solid@2.0.0-beta.10(@babel/core@7.29.0)(solid-js@2.0.0-beta.10): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jsx-dom-expressions: 0.50.0-next.6(@babel/core@7.29.0) + optionalDependencies: + solid-js: 2.0.0-beta.10 bail@2.0.2: {} @@ -11295,9 +11239,9 @@ snapshots: esbuild-plugin-solid@0.6.0(esbuild@0.25.5)(solid-js@2.0.0-beta.10): dependencies: - '@babel/core': 7.27.4 - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) - babel-preset-solid: 1.9.6(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) + babel-preset-solid: 1.9.6(@babel/core@7.29.0) esbuild: 0.25.5 solid-js: 2.0.0-beta.10 transitivePeerDependencies: @@ -12464,13 +12408,13 @@ snapshots: magicast@0.2.11: dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 recast: 0.23.11 magicast@0.3.5: dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 source-map-js: 1.2.1 map-cache@0.2.2: {} @@ -13038,7 +12982,7 @@ snapshots: node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.3 nopt@8.1.0: dependencies: @@ -13228,14 +13172,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 index-to-position: 1.1.0 type-fest: 4.41.0 @@ -14032,8 +13976,8 @@ snapshots: solid-refresh@0.6.3(solid-js@2.0.0-beta.10): dependencies: '@babel/generator': 7.27.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/types': 7.27.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/types': 7.29.0 solid-js: 2.0.0-beta.10 transitivePeerDependencies: - supports-color @@ -14616,9 +14560,9 @@ snapshots: vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.29.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) '@types/micromatch': 4.0.9 '@vinxi/listhen': 1.5.6 boxen: 8.0.1 @@ -14712,9 +14656,9 @@ snapshots: vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.10)(vite@6.3.5(@types/node@22.15.31)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.6(@babel/core@7.27.4) + babel-preset-solid: 1.9.6(@babel/core@7.29.0) merge-anything: 5.1.7 solid-js: 2.0.0-beta.10 solid-refresh: 0.6.3(solid-js@2.0.0-beta.10) @@ -14725,9 +14669,9 @@ snapshots: vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.10)(vite@8.0.10(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.6.1)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.6(@babel/core@7.27.4) + babel-preset-solid: 1.9.6(@babel/core@7.29.0) merge-anything: 5.1.7 solid-js: 2.0.0-beta.10 solid-refresh: 0.6.3(solid-js@2.0.0-beta.10) @@ -14738,9 +14682,9 @@ snapshots: vite-plugin-solid@2.11.6(solid-js@2.0.0-beta.10)(vite@6.3.5(@types/node@22.15.31)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.6(@babel/core@7.27.4) + babel-preset-solid: 1.9.6(@babel/core@7.29.0) merge-anything: 5.1.7 solid-js: 2.0.0-beta.10 solid-refresh: 0.6.3(solid-js@2.0.0-beta.10)