From 9fd7326d2762dde5443f94cb37a41454c0bb5bc4 Mon Sep 17 00:00:00 2001 From: Abraham Date: Tue, 26 Nov 2024 18:17:40 -0600 Subject: [PATCH 1/4] chore: improve file-upload validate docs (#2058) --- website/data/components/file-upload.mdx | 36 ++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/website/data/components/file-upload.mdx b/website/data/components/file-upload.mdx index 51bf7c59f7..673892876b 100644 --- a/website/data/components/file-upload.mdx +++ b/website/data/components/file-upload.mdx @@ -170,10 +170,12 @@ const [state, send] = useMachine( ## Applying custom validation To apply custom validation, set the `validate` attribute to a function that -returns an array of errors. +returns an **array of error strings**. -The returned error must be one of `TOO_MANY_FILES`, `FILE_INVALID_TYPE` -,`FILE_TOO_LARGE`, or `FILE_TOO_SMALL` +The returned array can contain any string as an error message. While zagjs +supports default errors such as `TOO_MANY_FILES`, `FILE_INVALID_TYPE`, +`FILE_TOO_LARGE`, or `FILE_TOO_SMALL`, you can return any string that represents +your custom validation errors. ```jsx const [state, send] = useMachine( @@ -188,6 +190,34 @@ const [state, send] = useMachine( ) ``` +Apply multiple validation errors: + +```js +const [state, send] = useMachine( + fileUpload.machine({ + validate(file) { + const errors = [] + + if (file.size > 1024 * 1024 * 10) { + errors.push("FILE_TOO_LARGE") // Default error enum + } + + if (!file.name.endsWith(".pdf")) { + errors.push("ONLY_PDF_ALLOWED") // Custom error + } + + if (file.size < 1024) { + errors.push("FILE_TOO_SMALL") // Default error enum + } + + return errors.length > 0 ? errors : null + }, + }), +) +``` + +> Return `null` if no validation errors are detected. + ## Disabling drag and drop To disable the drag and drop functionalty, set the `allowDrop` context property From 3e7a57617a38e07363248a9a417e01f3c33fe8fe Mon Sep 17 00:00:00 2001 From: Abraham Date: Tue, 26 Nov 2024 18:18:28 -0600 Subject: [PATCH 2/4] fix: angle-slider max value (#2049) * fix: angle-slider max value * chore: add clamps --- .changeset/clever-oranges-deny.md | 5 +++++ packages/machines/angle-slider/src/angle-slider.machine.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/clever-oranges-deny.md diff --git a/.changeset/clever-oranges-deny.md b/.changeset/clever-oranges-deny.md new file mode 100644 index 0000000000..d711e75d24 --- /dev/null +++ b/.changeset/clever-oranges-deny.md @@ -0,0 +1,5 @@ +--- +"@zag-js/angle-slider": patch +--- + +Fix angle slider max value diff --git a/packages/machines/angle-slider/src/angle-slider.machine.ts b/packages/machines/angle-slider/src/angle-slider.machine.ts index bd6fb37674..add222f40c 100644 --- a/packages/machines/angle-slider/src/angle-slider.machine.ts +++ b/packages/machines/angle-slider/src/angle-slider.machine.ts @@ -8,7 +8,7 @@ import { dom } from "./angle-slider.dom" import type { MachineContext, MachineState, UserDefinedContext } from "./angle-slider.types" const MIN_VALUE = 0 -const MAX_VALUE = 360 +const MAX_VALUE = 359 export function machine(userContext: UserDefinedContext) { const ctx = compact(userContext) @@ -176,6 +176,8 @@ const invoke = { const set = { value: (ctx: MachineContext, value: number) => { if (ctx.value === value) return + if (value < MIN_VALUE || value > MAX_VALUE) return + ctx.value = value invoke.valueChange(ctx) }, From 4ceb7c849ac60a75b51e146d52ac8633d90cdba2 Mon Sep 17 00:00:00 2001 From: Abraham Date: Tue, 26 Nov 2024 18:19:05 -0600 Subject: [PATCH 3/4] chore(svelte): merge-props tests (#2048) * fix(svelte): merge-props style * chore: add changeset * chore: add tests for svelte merge-props --- packages/frameworks/svelte/src/merge-props.ts | 16 ++-- .../frameworks/svelte/src/normalize-props.ts | 2 +- .../svelte/tests/merge-props.test.ts | 89 +++++++++++++++++++ 3 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 packages/frameworks/svelte/tests/merge-props.test.ts diff --git a/packages/frameworks/svelte/src/merge-props.ts b/packages/frameworks/svelte/src/merge-props.ts index 97e1a20c0e..d9f4da9b22 100644 --- a/packages/frameworks/svelte/src/merge-props.ts +++ b/packages/frameworks/svelte/src/merge-props.ts @@ -1,4 +1,5 @@ import { mergeProps as zagMergeProps } from "@zag-js/core" +import { toStyleString } from "./normalize-props" const CSS_REGEX = /((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g @@ -13,21 +14,14 @@ const serialize = (style: string): CSSObject => { return res } -const css = (style: CSSObject | string | undefined): string => { - if (typeof style === "string") style = serialize(style) - - const mergedString = Object.entries(style as CSSObject) - .map(([key, value]) => `${key}: ${value}`) - .join("; ") - - return mergedString -} - export function mergeProps(...args: Record[]) { const merged = zagMergeProps(...args) if ("style" in merged) { - merged.style = css(merged.style) + if (typeof merged.style === "string") { + merged.style = serialize(merged.style) + } + merged.style = toStyleString(merged.style) } return merged diff --git a/packages/frameworks/svelte/src/normalize-props.ts b/packages/frameworks/svelte/src/normalize-props.ts index fb01d4a334..371660ed45 100644 --- a/packages/frameworks/svelte/src/normalize-props.ts +++ b/packages/frameworks/svelte/src/normalize-props.ts @@ -19,7 +19,7 @@ export type PropTypes = SvelteHTMLElements & { style?: HTMLAttributes["style"] } -function toStyleString(style: Record) { +export function toStyleString(style: Record) { let string = "" for (let key in style) { diff --git a/packages/frameworks/svelte/tests/merge-props.test.ts b/packages/frameworks/svelte/tests/merge-props.test.ts new file mode 100644 index 0000000000..b65e20904b --- /dev/null +++ b/packages/frameworks/svelte/tests/merge-props.test.ts @@ -0,0 +1,89 @@ +import { describe, it, expect, vi } from "vitest" +import { mergeProps } from "../src" + +describe("mergeProps for Svelte", () => { + it("handles one argument", () => { + const onClick = () => {} + const className = "primary" + const id = "test_id" + + const props = mergeProps({ onClick, className, id }) + + expect(props.onClick).toBe(onClick) + expect(props.className).toBe(className) + expect(props.id).toBe(id) + }) + + it("combines handlers", () => { + let count = 0 + const mockFn = vi.fn(() => { + count++ + }) + + const props = mergeProps({ onClick: mockFn }, { onClick: mockFn }, { onClick: mockFn }) + + props.onClick() + expect(mockFn).toHaveBeenCalledTimes(3) + expect(count).toBe(3) + }) + + it("combines css classes", () => { + const className1 = "primary" + const className2 = "hover" + const className3 = "focus" + + const props = mergeProps({ class: className1 }, { class: className2 }, { class: className3 }) + expect(props.class).toBe("primary hover focus") + + const props2 = mergeProps({ className: className1 }, { className: className2 }, { className: className3 }) + expect(props2.className).toBe("primary hover focus") + }) + + it("combines styles", () => { + const apiStyles = + 'margin:24px;padding:2;background-image:url("http://example.com/image.png");border:1px solid #123456;--x:123;' + + const objStyles = { + margin: "10px", + fontSize: "2rem", + } + const stringStyles = "margin:10px;font-size:2rem;" + + const propsFromObj = mergeProps({ style: apiStyles }, { style: objStyles }) + const propsFromString = mergeProps({ style: apiStyles }, { style: stringStyles }) + + const result = + 'margin:10px;padding:2;background-image:url("http://example.com/image.png");border:1px solid #123456;--x:123;font-size:2rem;' + + expect(propsFromObj.style).toBe(result) + expect(propsFromString.style).toBe(result) + }) + + it("last value overwrites the event listeners", () => { + const mockFn = vi.fn() + const message1 = "click1" + const message2 = "click2" + + const props = mergeProps( + { onEvent: () => mockFn(message1) }, + { onEvent: () => mockFn(message2) }, + { onEvent: "overwrites" }, + ) + + expect(props.onEvent).toBe("overwrites") + }) + + it("works with Svelte-specific props", () => { + const cb1 = vi.fn() + const cb2 = vi.fn() + + const combined = mergeProps({ onClick: cb1 }, { onClick: cb2 }) + + combined.onClick("foo") + + expect(cb1).toHaveBeenCalledTimes(1) + expect(cb1).toHaveBeenCalledWith("foo") + expect(cb2).toHaveBeenCalledTimes(1) + expect(cb2).toHaveBeenCalledWith("foo") + }) +}) From 594532594288f77782475009dd11266c932b4dd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 00:20:54 +0000 Subject: [PATCH 4/4] fix(deps): update dependency proxy-compare to v3.0.1 (#2051) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/frameworks/preact/package.json | 2 +- packages/frameworks/react/package.json | 2 +- packages/store/package.json | 2 +- pnpm-lock.yaml | 44 ++++++++++++------------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/frameworks/preact/package.json b/packages/frameworks/preact/package.json index c39f9e842e..c055254e24 100644 --- a/packages/frameworks/preact/package.json +++ b/packages/frameworks/preact/package.json @@ -29,7 +29,7 @@ "@zag-js/core": "workspace:*", "@zag-js/store": "workspace:*", "@zag-js/types": "workspace:*", - "proxy-compare": "3.0.0" + "proxy-compare": "3.0.1" }, "devDependencies": { "@types/react-dom": "18.3.1", diff --git a/packages/frameworks/react/package.json b/packages/frameworks/react/package.json index 065aed7c09..4321253bb0 100644 --- a/packages/frameworks/react/package.json +++ b/packages/frameworks/react/package.json @@ -28,7 +28,7 @@ "@zag-js/core": "workspace:*", "@zag-js/store": "workspace:*", "@zag-js/types": "workspace:*", - "proxy-compare": "3.0.0" + "proxy-compare": "3.0.1" }, "devDependencies": { "@types/react": "18.3.12", diff --git a/packages/store/package.json b/packages/store/package.json index 10898490a8..b0a7be3f12 100644 --- a/packages/store/package.json +++ b/packages/store/package.json @@ -32,7 +32,7 @@ "url": "https://github.com/chakra-ui/zag/issues" }, "dependencies": { - "proxy-compare": "3.0.0" + "proxy-compare": "3.0.1" }, "clean-package": "../../clean-package.config.json", "main": "src/index.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39f2ebda91..49246256a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2295,8 +2295,8 @@ importers: specifier: workspace:* version: link:../../types proxy-compare: - specifier: 3.0.0 - version: 3.0.0 + specifier: 3.0.1 + version: 3.0.1 react: specifier: '>=18.0.0' version: 18.3.1 @@ -2329,8 +2329,8 @@ importers: specifier: workspace:* version: link:../../types proxy-compare: - specifier: 3.0.0 - version: 3.0.0 + specifier: 3.0.1 + version: 3.0.1 devDependencies: '@types/react': specifier: 18.3.12 @@ -3600,8 +3600,8 @@ importers: packages/store: dependencies: proxy-compare: - specifier: 3.0.0 - version: 3.0.0 + specifier: 3.0.1 + version: 3.0.1 devDependencies: clean-package: specifier: 2.2.0 @@ -11503,8 +11503,8 @@ packages: protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - proxy-compare@3.0.0: - resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} + proxy-compare@3.0.1: + resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} proxy-memoize@3.0.1: resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==} @@ -18244,7 +18244,7 @@ snapshots: '@typescript-eslint/parser': 8.15.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.2(eslint@8.57.1) @@ -18264,7 +18264,7 @@ snapshots: '@typescript-eslint/parser': 8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) eslint: 9.15.0(jiti@2.4.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.15.0(jiti@2.4.0)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0(jiti@2.4.0)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.15.0(jiti@2.4.0)) eslint-plugin-react: 7.37.2(eslint@9.15.0(jiti@2.4.0)) @@ -18301,13 +18301,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -18320,13 +18320,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.15.0(jiti@2.4.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.17.1 eslint: 9.15.0(jiti@2.4.0) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0(jiti@2.4.0)) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -18339,25 +18339,25 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.15.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0(jiti@2.4.0)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3) eslint: 9.15.0(jiti@2.4.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.15.0(jiti@2.4.0)) transitivePeerDependencies: - supports-color @@ -18383,7 +18383,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -18412,7 +18412,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.15.0(jiti@2.4.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)))(eslint@9.15.0(jiti@2.4.0)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0(jiti@2.4.0)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -22124,11 +22124,11 @@ snapshots: protocols@2.0.1: {} - proxy-compare@3.0.0: {} + proxy-compare@3.0.1: {} proxy-memoize@3.0.1: dependencies: - proxy-compare: 3.0.0 + proxy-compare: 3.0.1 ps-tree@1.2.0: dependencies: