From 4e375902943c356f269e9f596103fd681ee9afb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20Emir=20=C5=9Een?= Date: Mon, 5 Aug 2024 10:30:38 +0300 Subject: [PATCH] refactor(devtools): update element selection for the x-ray feature (#6228) --- .changeset/modern-panthers-clean.md | 13 ++ .changeset/thirty-files-crash.md | 7 + examples/base-material-ui/package.json | 1 + examples/base-material-ui/src/App.tsx | 94 ++++----- packages/devtools/package.json | 1 + .../src/components/devtools-selector.tsx | 1 + .../src/components/selectable-elements.tsx | 41 ++-- .../src/utilities/selector-helpers.ts | 157 +++++++++++++++ .../devtools/src/utilities/use-selector.tsx | 116 +---------- pnpm-lock.yaml | 183 +++++------------- 10 files changed, 307 insertions(+), 307 deletions(-) create mode 100644 .changeset/modern-panthers-clean.md create mode 100644 .changeset/thirty-files-crash.md create mode 100644 packages/devtools/src/utilities/selector-helpers.ts diff --git a/.changeset/modern-panthers-clean.md b/.changeset/modern-panthers-clean.md new file mode 100644 index 000000000000..16f5662a3dcd --- /dev/null +++ b/.changeset/modern-panthers-clean.md @@ -0,0 +1,13 @@ +--- +"@refinedev/devtools": patch +--- + +refactor(devtools): check both parent and child nodes for representation + +Previously, Refine Devtools's X-Ray feature looked for the representation of the components by looking at the parent nodes until a proper `stateNode` was found. This was problematic when the parent node was not a proper HTML element. A lack of type checking caused the feature to break in runtime in some cases. + +Adding only a type check for the `stateNode` is not enough since there may be cases where there are no proper HTML elements in the parent nodes. This change adds a check for the child nodes as well. This way, the feature will look for the representation in both the parent and child nodes. + +First check for a representation node will be done in the child nodes. If a proper representation is not found, an element will be searched in the parent nodes. If a no proper representation is found in the parent nodes, `document.body` will be used as the representation. + +[Resolves #6219](https://github.com/refinedev/refine/issues/6219) diff --git a/.changeset/thirty-files-crash.md b/.changeset/thirty-files-crash.md new file mode 100644 index 000000000000..ca8e4a51d886 --- /dev/null +++ b/.changeset/thirty-files-crash.md @@ -0,0 +1,7 @@ +--- +"@refinedev/devtools": patch +--- + +fix(devtools): styling issues in the X-Ray feature + +A minimum size was set for the X-Ray feature's overlay to prevent it from being too small. diff --git a/examples/base-material-ui/package.json b/examples/base-material-ui/package.json index 778e283d393e..a241c6c55a88 100644 --- a/examples/base-material-ui/package.json +++ b/examples/base-material-ui/package.json @@ -29,6 +29,7 @@ "@mui/x-data-grid": "^6.6.0", "@refinedev/cli": "^2.16.36", "@refinedev/core": "^4.53.0", + "@refinedev/devtools": "^1.2.6", "@refinedev/mui": "^5.19.0", "@refinedev/react-hook-form": "^4.8.20", "@refinedev/react-router-v6": "^4.5.11", diff --git a/examples/base-material-ui/src/App.tsx b/examples/base-material-ui/src/App.tsx index 5b904011d0a6..95553835c0f7 100644 --- a/examples/base-material-ui/src/App.tsx +++ b/examples/base-material-ui/src/App.tsx @@ -15,6 +15,7 @@ import routerProvider, { UnsavedChangesNotifier, DocumentTitleHandler, } from "@refinedev/react-router-v6"; +import { DevtoolsProvider, DevtoolsPanel } from "@refinedev/devtools"; import { BrowserRouter, Routes, Route, Outlet } from "react-router-dom"; import { PostList, PostCreate, PostEdit, PostShow } from "../src/pages/posts"; @@ -26,55 +27,58 @@ const App: React.FC = () => { - - + + - - - - - } - > + ]} + options={{ + syncWithLocation: true, + warnWhenUnsavedChanges: true, + }} + > + } - /> + element={ + + + + } + > + } + /> - - } /> - } /> - } /> - } /> - + + } /> + } /> + } /> + } /> + - } /> - - - - - - + } /> + + + + + + + + ); diff --git a/packages/devtools/package.json b/packages/devtools/package.json index f17bb7ae949b..a71c9f357ae8 100644 --- a/packages/devtools/package.json +++ b/packages/devtools/package.json @@ -52,6 +52,7 @@ "@types/jest": "^29.2.4", "@types/lodash": "^4.14.171", "@types/node": "^18.16.2", + "@types/react-reconciler": "^0.28.8", "@types/testing-library__jest-dom": "^5.14.3", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", diff --git a/packages/devtools/src/components/devtools-selector.tsx b/packages/devtools/src/components/devtools-selector.tsx index e81f48608ed6..d45cbb6aad70 100644 --- a/packages/devtools/src/components/devtools-selector.tsx +++ b/packages/devtools/src/components/devtools-selector.tsx @@ -53,6 +53,7 @@ export const DevtoolsSelector = ({ width: 100%; transform: rotate(0deg); transition: transform 0.2s ease-in-out; + line-height: 1; } .refine-devtools-selector-button:hover { diff --git a/packages/devtools/src/components/selectable-elements.tsx b/packages/devtools/src/components/selectable-elements.tsx index 443c82dc9238..704af62690cc 100644 --- a/packages/devtools/src/components/selectable-elements.tsx +++ b/packages/devtools/src/components/selectable-elements.tsx @@ -4,6 +4,22 @@ import { createPortal } from "react-dom"; import { ApplyStyles } from "./apply-styles"; import { SelectorIcon } from "./icons/selector-button"; +const MIN_SIZE = 22; + +const getPosition = (element: HTMLElement, document: Document) => { + const { top, left, width, height } = element.getBoundingClientRect(); + const { scrollLeft, scrollTop } = document.documentElement; + const positionLeft = left + scrollLeft - Math.max(0, MIN_SIZE - width) / 2; + const positionTop = top + scrollTop - Math.max(0, MIN_SIZE - height) / 2; + + return { + left: positionLeft, + top: positionTop, + width: Math.max(MIN_SIZE, width), + height: Math.max(MIN_SIZE, height), + }; +}; + const SelectableElement = ({ element, name, @@ -13,14 +29,7 @@ const SelectableElement = ({ name: string; onSelect: (name: string) => void; }) => { - const [position] = React.useState(() => { - const { top, left, width, height } = element.getBoundingClientRect(); - const { scrollLeft, scrollTop } = document.documentElement; - const positionLeft = left + scrollLeft; - const positionTop = top + scrollTop; - - return { left: positionLeft, top: positionTop, width, height }; - }); + const [position] = React.useState(() => getPosition(element, document)); const elementRef = React.useRef(null); @@ -28,15 +37,10 @@ const SelectableElement = ({ // use scroll event listener const onScroll = debounce( () => { - const { top, left, width, height } = element.getBoundingClientRect(); - const { scrollLeft, scrollTop } = document.documentElement; - const positionLeft = left + scrollLeft; - const positionTop = top + scrollTop; - - elementRef.current?.style.setProperty("left", `${positionLeft}px`); - elementRef.current?.style.setProperty("top", `${positionTop}px`); - elementRef.current?.style.setProperty("width", `${width}px`); - elementRef.current?.style.setProperty("height", `${height}px`); + const nextPos = getPosition(element, document); + (["left", "top", "width", "height"] as const).forEach((prop) => { + elementRef.current?.style.setProperty(prop, `${nextPos[prop]}px`); + }); elementRef.current?.style.setProperty("opacity", "1"); }, 200, @@ -247,6 +251,9 @@ export const SelectableElements = ({ max-width: 200px; padding-right: 8px; } + .selector-xray-box:hover .selector-xray-info-title { + z-index: 90; + } ` } diff --git a/packages/devtools/src/utilities/selector-helpers.ts b/packages/devtools/src/utilities/selector-helpers.ts new file mode 100644 index 000000000000..9f7f267fa9d9 --- /dev/null +++ b/packages/devtools/src/utilities/selector-helpers.ts @@ -0,0 +1,157 @@ +import { + getElementFromFiber, + getFiberFromElement, + getFirstFiberHasName, + getFirstStateNodeFiber, + getNameFromFiber, + getParentOfFiber, +} from "@aliemir/dom-to-fiber-utils"; + +type Fiber = Exclude, null>; + +export type SelectableElement = { + element: HTMLElement; + name: string; +}; + +const getChildOfFiber = (fiber: Fiber | null) => { + if (!fiber) { + return null; + } + + return fiber.child; +}; + +const getFirstHTMLElementFromFiberByChild = (fiber: Fiber | null) => { + let child = fiber; + + while (child) { + const element = getElementFromFiber(child); + if (element && element instanceof HTMLElement) { + return element; + } + + child = getChildOfFiber(child) as Fiber; + } + + return null; +}; + +const getFirstHTMLElementFromFiberByParent = (fiber: Fiber | null) => { + let parent = fiber; + + while (parent) { + const element = getElementFromFiber(parent); + if (element && element instanceof HTMLElement) { + return element; + } + + parent = getParentOfFiber(parent) as Fiber; + } + + return null; +}; + +const getFirstHTMLElementFromFiber = ( + fiber: Fiber | null, +): [element: HTMLElement, "child" | "parent" | "body"] => { + let element = getFirstHTMLElementFromFiberByChild(fiber); + + if (element) { + return [element, "child"]; + } + + element = getFirstHTMLElementFromFiberByParent(fiber); + + if (element) { + return [element, "parent"]; + } + + return [document.body, "body"]; +}; + +const selectFiber = (start: Fiber | null, activeTraceItems: string[]) => { + let fiber = start; + let firstParentOfNodeWithName: Fiber | null = null; + let fiberWithStateNode: Fiber | null = null; + + let acceptedName = false; + + while (!acceptedName && fiber) { + // Get the first fiber node that has a name (look up the tree) + firstParentOfNodeWithName = getFirstFiberHasName(fiber); + // Get the first fiber node that has a state node (look up the tree) + fiberWithStateNode = getFirstStateNodeFiber(firstParentOfNodeWithName); + acceptedName = activeTraceItems.includes( + getNameFromFiber(firstParentOfNodeWithName) ?? "", + ); + if (!acceptedName) { + fiber = getParentOfFiber(fiber); + } + } + + if (fiberWithStateNode && firstParentOfNodeWithName) { + return { + stateNode: fiberWithStateNode, + nameFiber: firstParentOfNodeWithName, + }; + } + return { + stateNode: null, + nameFiber: null, + }; +}; + +export const filterInvisibleNodes = (nodes: SelectableElement[]) => { + return nodes.filter( + (item) => item.element.offsetWidth > 0 && item.element.offsetHeight > 0, + ); +}; + +export const getUniqueNodes = (nodes: SelectableElement[]) => { + const uniques: SelectableElement[] = []; + + nodes.forEach((node) => { + const isElementExist = uniques.find( + (item) => item.element === node.element && item.name === node.name, + ); + if (!isElementExist) { + uniques.push(node); + } + }); + + return uniques; +}; + +export const traverseDom = ( + node: HTMLElement | null, + activeTraceItems: string[], +): SelectableElement[] => { + if (!node) { + return []; + } + + const items: SelectableElement[] = []; + + const fiber = getFiberFromElement(node); + const targetFiber = selectFiber(fiber, activeTraceItems); + + if (targetFiber.nameFiber) { + const [element] = getFirstHTMLElementFromFiber(targetFiber.nameFiber); + const name = getNameFromFiber(targetFiber.nameFiber); + if (element && name) { + items.push({ + element, + name, + }); + } + } + + for (let i = 0; i < node?.children?.length ?? 0; i++) { + items.push( + ...traverseDom(node.children[i] as HTMLElement, activeTraceItems), + ); + } + + return items; +}; diff --git a/packages/devtools/src/utilities/use-selector.tsx b/packages/devtools/src/utilities/use-selector.tsx index 7a22759018eb..6a661a1b9005 100644 --- a/packages/devtools/src/utilities/use-selector.tsx +++ b/packages/devtools/src/utilities/use-selector.tsx @@ -1,20 +1,12 @@ import React from "react"; -import { - getElementFromFiber, - getFiberFromElement, - getFirstFiberHasName, - getFirstStateNodeFiber, - getNameFromFiber, - getParentOfFiber, -} from "@aliemir/dom-to-fiber-utils"; import { DevToolsContext } from "@refinedev/devtools-shared"; -type Fiber = Exclude, null>; - -type SelectableElement = { - element: HTMLElement; - name: string; -}; +import { + filterInvisibleNodes, + getUniqueNodes, + traverseDom, + type SelectableElement, +} from "./selector-helpers"; export const useSelector = (active: boolean) => { const { httpUrl } = React.useContext(DevToolsContext); @@ -29,102 +21,14 @@ export const useSelector = (active: boolean) => { return data.data as string[]; }, [httpUrl]); - const selectAppropriateFiber = React.useCallback( - (start: Fiber | null, activeTraceItems: string[]) => { - let fiber = start; - let firstParentOfNodeWithName: Fiber | null; - let fiberWithStateNode: Fiber | null; - - let acceptedName = false; - - while (!acceptedName && fiber) { - // Get the first fiber node that has a name (look up the tree) - firstParentOfNodeWithName = getFirstFiberHasName(fiber); - // Get the first fiber node that has a state node (look up the tree) - fiberWithStateNode = getFirstStateNodeFiber(firstParentOfNodeWithName); - acceptedName = activeTraceItems.includes( - getNameFromFiber(firstParentOfNodeWithName) ?? "", - ); - if (!acceptedName) { - fiber = getParentOfFiber(fiber); - } - } - - if (fiberWithStateNode && firstParentOfNodeWithName) { - return { - stateNode: fiberWithStateNode, - nameFiber: firstParentOfNodeWithName, - }; - } - return { - stateNode: null, - nameFiber: null, - }; - }, - [], - ); - - const getUniqueNodes = React.useCallback((nodes: SelectableElement[]) => { - const uniques: SelectableElement[] = []; - - nodes.forEach((node) => { - const isElementExist = uniques.find( - (item) => item.element === node.element, - ); - if (!isElementExist) { - uniques.push(node); - } - }); - - return uniques; - }, []); - - const traverseBodyNodes = React.useCallback( - ( - node: HTMLElement | null, - activeTraceItems: string[], - ): SelectableElement[] => { - if (!node) { - return []; - } - - const items: SelectableElement[] = []; - - const fiber = getFiberFromElement(node); - const targetFiber = selectAppropriateFiber(fiber, activeTraceItems); - - if (targetFiber.nameFiber && targetFiber.stateNode) { - const element = getElementFromFiber(targetFiber.stateNode); - const name = getNameFromFiber(targetFiber.nameFiber); - if (element && name) { - items.push({ - element, - name, - }); - } - } - - for (let i = 0; i < node?.children?.length ?? 0; i++) { - items.push( - ...traverseBodyNodes( - node.children[i] as HTMLElement, - activeTraceItems, - ), - ); - } - - return items; - }, - [selectAppropriateFiber], - ); - const prepareSelector = React.useCallback(async () => { const fetchedTraceItems = await fetchTraceItems(); - const traversedNodes = traverseBodyNodes(document.body, fetchedTraceItems); - const uniqueNodes = getUniqueNodes(traversedNodes); + const traversedNodes = traverseDom(document.body, fetchedTraceItems); + const filterInvisible = filterInvisibleNodes(traversedNodes); + const uniqueNodes = getUniqueNodes(filterInvisible); setSelectableElements(uniqueNodes); - }, [fetchTraceItems, traverseBodyNodes, getUniqueNodes]); + }, [fetchTraceItems]); React.useEffect(() => { if (active) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a48fff4f2e61..b4da49c9153c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1498,6 +1498,9 @@ importers: '@refinedev/core': specifier: ^4.53.0 version: link:../../packages/core + '@refinedev/devtools': + specifier: ^1.2.6 + version: link:../../packages/devtools '@refinedev/mui': specifier: ^5.19.0 version: link:../../packages/mui @@ -9467,10 +9470,10 @@ importers: version: 2.0.1(react-dom@18.3.0(react@18.3.0))(react-hook-form@7.51.3(react@18.3.0))(react@18.3.0) '@medusajs/medusa': specifier: ^1.3.5 - version: 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + version: 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) '@medusajs/medusa-js': specifier: 1.3.3 - version: 1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + version: 1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) '@radix-ui/react-dropdown-menu': specifier: ^2.0.1 version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.0)(react-dom@18.3.0(react@18.3.0))(react@18.3.0) @@ -9521,7 +9524,7 @@ importers: version: 4.17.21 medusa-react: specifier: ^0.3.5 - version: 0.3.6(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)(react-query@3.39.3(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react@18.3.0) + version: 0.3.6(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)(react-query@3.39.3(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react@18.3.0) next: specifier: ^14.1.0 version: 14.2.3(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.0(react@18.3.0))(react@18.3.0)(sass@1.75.0) @@ -14279,6 +14282,9 @@ importers: '@types/node': specifier: ^18.16.2 version: 18.19.31 + '@types/react-reconciler': + specifier: ^0.28.8 + version: 0.28.8 '@types/testing-library__jest-dom': specifier: ^5.14.3 version: 5.14.9 @@ -23142,6 +23148,9 @@ packages: '@types/react-modal@3.16.3': resolution: {integrity: sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==} + '@types/react-reconciler@0.28.8': + resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} + '@types/react-router-dom@5.3.3': resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} @@ -26343,6 +26352,7 @@ packages: ethereum-bloom-filters@1.1.0: resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} + deprecated: do not use this package use package versions above as this can miss some topics ethereum-cryptography@0.1.3: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} @@ -41644,13 +41654,13 @@ snapshots: - supports-color - tedious - '@medusajs/link-modules@0.2.10(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/node@18.19.31)(pg@8.11.5)': + '@medusajs/link-modules@0.2.10(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/node@18.19.31)(pg@8.11.5)': dependencies: '@medusajs/modules-sdk': 1.12.10(@types/node@18.19.31) '@medusajs/types': 1.11.15 '@medusajs/utils': 1.11.8(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) - '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5)) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5)) awilix: 8.0.1 transitivePeerDependencies: - '@mikro-orm/better-sqlite' @@ -41723,9 +41733,9 @@ snapshots: - supports-color - tedious - '@medusajs/medusa-js@1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)': + '@medusajs/medusa-js@1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)': dependencies: - '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) axios: 0.24.0 form-data: 4.0.0 qs: 6.12.1 @@ -41757,10 +41767,10 @@ snapshots: - tedious - typeorm - '@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)': + '@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)': dependencies: '@medusajs/core-flows': 0.0.8(@types/node@18.19.31)(pg@8.11.5) - '@medusajs/link-modules': 0.2.10(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/node@18.19.31)(pg@8.11.5) + '@medusajs/link-modules': 0.2.10(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/node@18.19.31)(pg@8.11.5) '@medusajs/medusa-cli': 1.3.22(@types/node@18.19.31) '@medusajs/modules-sdk': 1.12.10(@types/node@18.19.31) '@medusajs/orchestration': 0.5.6(@types/node@18.19.31)(pg@8.11.5) @@ -41792,7 +41802,7 @@ snapshots: medusa-core-utils: 1.2.1 medusa-interfaces: 1.3.9 medusa-telemetry: 0.0.17 - medusa-test-utils: 1.1.43(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(axios@0.24.0)(express@4.19.2)(get-port@5.1.1)(pg-god@1.0.12)(pg@8.11.5) + medusa-test-utils: 1.1.43(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(axios@0.24.0)(express@4.19.2)(get-port@5.1.1)(pg-god@1.0.12)(pg@8.11.5) morgan: 1.10.0 multer: 1.4.5-lts.1 node-schedule: 2.1.1 @@ -41899,9 +41909,9 @@ snapshots: '@medusajs/utils@1.11.8(@types/node@18.19.31)(pg@8.11.5)': dependencies: '@medusajs/types': 1.11.15 - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7) + '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5)) awilix: 8.0.1 bignumber.js: 9.1.2 knex: 2.4.2(pg@8.11.5) @@ -41953,20 +41963,7 @@ snapshots: - supports-color - tedious - '@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7)': - dependencies: - acorn-loose: 8.3.0 - acorn-walk: 8.2.0 - dotenv: 16.3.1 - fs-extra: 11.1.1 - globby: 11.1.0 - mikro-orm: 5.9.7 - reflect-metadata: 0.1.13 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5)) - - '@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7)': + '@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7)': dependencies: acorn-loose: 8.3.0 acorn-walk: 8.2.0 @@ -41976,54 +41973,12 @@ snapshots: mikro-orm: 5.9.7 reflect-metadata: 0.1.13 optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5)) - - '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3)': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) - fs-extra: 11.1.1 - knex: 2.5.1(pg@8.11.3) - sqlstring: 2.3.3 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - pg: 8.11.3 - transitivePeerDependencies: - - pg-native - - supports-color - - tedious - - '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3)': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - fs-extra: 11.1.1 - knex: 2.5.1(pg@8.11.3) - sqlstring: 2.3.3 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - pg: 8.11.3 - transitivePeerDependencies: - - pg-native - - supports-color - - tedious - - '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.5)': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - fs-extra: 11.1.1 - knex: 2.5.1(pg@8.11.5) - sqlstring: 2.3.3 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - pg: 8.11.5 - transitivePeerDependencies: - - pg-native - - supports-color - - tedious + '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5) + '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5)) - '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3)': + '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3)': dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) fs-extra: 11.1.1 knex: 2.5.1(pg@8.11.3) sqlstring: 2.3.3 @@ -42037,7 +41992,7 @@ snapshots: '@mikro-orm/knex@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.5)': dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) fs-extra: 11.1.1 knex: 2.5.1(pg@8.11.5) sqlstring: 2.3.3 @@ -42049,29 +42004,9 @@ snapshots: - supports-color - tedious - '@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5)': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.5) - fs-extra: 11.1.1 - knex: 2.5.1(pg@8.11.5) - umzug: 3.3.1(@types/node@18.19.31) - transitivePeerDependencies: - - '@mikro-orm/entity-generator' - - '@types/node' - - better-sqlite3 - - mssql - - mysql - - mysql2 - - pg - - pg-native - - sqlite3 - - supports-color - - tedious - '@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5)': dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.5) fs-extra: 11.1.1 knex: 2.5.1(pg@8.11.5) @@ -42089,44 +42024,10 @@ snapshots: - supports-color - tedious - '@mikro-orm/postgresql@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))': + '@mikro-orm/postgresql@5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))': dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3) - pg: 8.11.3 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - transitivePeerDependencies: - - better-sqlite3 - - mssql - - mysql - - mysql2 - - pg-native - - sqlite3 - - supports-color - - tedious - - '@mikro-orm/postgresql@5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) - '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3) - pg: 8.11.3 - optionalDependencies: - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - transitivePeerDependencies: - - better-sqlite3 - - mssql - - mysql - - mysql2 - - pg-native - - sqlite3 - - supports-color - - tedious - - '@mikro-orm/postgresql@5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7)': - dependencies: - '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7) - '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3) + '@mikro-orm/core': 5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7) + '@mikro-orm/knex': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(pg@8.11.3) pg: 8.11.3 optionalDependencies: '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5) @@ -46715,6 +46616,10 @@ snapshots: dependencies: '@types/react': 18.3.0 + '@types/react-reconciler@0.28.8': + dependencies: + '@types/react': 18.3.0 + '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 @@ -55399,10 +55304,10 @@ snapshots: medusa-interfaces@1.3.9: {} - medusa-react@0.3.6(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)(react-query@3.39.3(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react@18.3.0): + medusa-react@0.3.6(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12)(react-query@3.39.3(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react@18.3.0): dependencies: - '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) - '@medusajs/medusa-js': 1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + '@medusajs/medusa-js': 1.3.3(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) lodash: 4.17.21 lodash-es: 4.17.21 react: 18.3.0 @@ -55449,16 +55354,16 @@ snapshots: transitivePeerDependencies: - debug - medusa-test-utils@1.1.43(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(axios@0.24.0)(express@4.19.2)(get-port@5.1.1)(pg-god@1.0.12)(pg@8.11.5): + medusa-test-utils@1.1.43(@medusajs/medusa@1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12))(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(axios@0.24.0)(express@4.19.2)(get-port@5.1.1)(pg-god@1.0.12)(pg@8.11.5): dependencies: '@medusajs/modules-sdk': 1.12.10(@types/node@18.19.31) '@medusajs/utils': 1.11.8(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5) - '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5)) + '@mikro-orm/migrations': 5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5) + '@mikro-orm/postgresql': 5.9.7(@mikro-orm/core@5.9.7)(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5)) medusa-core-utils: 1.2.1 randomatic: 3.1.1 optionalDependencies: - '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) + '@medusajs/medusa': 1.20.4(@mikro-orm/core@5.9.7(@mikro-orm/migrations@5.9.7)(@mikro-orm/postgresql@5.9.7))(@mikro-orm/migrations@5.9.7(@mikro-orm/core@5.9.7)(@types/node@18.19.31)(pg@8.11.5))(@types/ioredis-mock@8.2.5)(@types/node@18.19.31)(axios@0.24.0)(get-port@5.1.1)(medusa-interfaces@1.3.9)(pg-god@1.0.12) axios: 0.24.0 express: 4.19.2 get-port: 5.1.1