From c1d414411585ce2eaf11b6c47c6fc03dc9ccc2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Pallar=C3=A9s?= Date: Fri, 2 Aug 2024 11:21:34 +0200 Subject: [PATCH] feat(console): remove `lodash.*` in favor of leaner implementations (#6978) The following packages are removed: - `lodash.debounce` and `@types/lodash.debounce` - `lodash.escape` and `@types/lodash.escape` - `lodash.throttle` and `@types/lodash.throttle` - `lodash.uniq` and `@types/lodash.uniq` --- .../console/design-system/package.json | 5 +- .../design-system/src/text-highlight.tsx | 4 +- .../console/design-system/src/tree.tsx | 7 +- apps/wing-console/console/server/package.json | 4 +- apps/wing-console/console/server/src/index.ts | 2 +- .../console/server/src/router/app.ts | 2 +- apps/wing-console/console/ui/package.json | 6 +- .../turn-ascii-colors-into-html.ts | 4 +- .../use-map.bridge-connections.ts | 2 +- .../ui/src/features/explorer-pane/use-map.ts | 2 +- .../features/hierarchy-pane/use-hierarchy.tsx | 2 +- .../logs-pane/console-logs-filters.tsx | 4 +- .../{uniq-by => utilities}/.eslintignore | 0 .../{uniq-by => utilities}/.eslintrc.json | 0 .../{uniq-by => utilities}/package.json | 2 +- .../packages/utilities/src/debounce.ts | 25 +++++ .../utilities/src/escape-html.test.ts | 9 ++ .../packages/utilities/src/escape-html.ts | 22 +++++ .../packages/utilities/src/index.ts | 4 + .../packages/utilities/src/throttle.ts | 13 +++ .../src/uniq-by.test.ts} | 2 +- .../src/index.ts => utilities/src/uniq-by.ts} | 0 .../{uniq-by => utilities}/tsconfig.json | 0 pnpm-lock.yaml | 98 ++++--------------- 24 files changed, 111 insertions(+), 108 deletions(-) rename apps/wing-console/packages/{uniq-by => utilities}/.eslintignore (100%) rename apps/wing-console/packages/{uniq-by => utilities}/.eslintrc.json (100%) rename apps/wing-console/packages/{uniq-by => utilities}/package.json (93%) create mode 100644 apps/wing-console/packages/utilities/src/debounce.ts create mode 100644 apps/wing-console/packages/utilities/src/escape-html.test.ts create mode 100644 apps/wing-console/packages/utilities/src/escape-html.ts create mode 100644 apps/wing-console/packages/utilities/src/index.ts create mode 100644 apps/wing-console/packages/utilities/src/throttle.ts rename apps/wing-console/packages/{uniq-by/src/index.test.ts => utilities/src/uniq-by.test.ts} (93%) rename apps/wing-console/packages/{uniq-by/src/index.ts => utilities/src/uniq-by.ts} (100%) rename apps/wing-console/packages/{uniq-by => utilities}/tsconfig.json (100%) diff --git a/apps/wing-console/console/design-system/package.json b/apps/wing-console/console/design-system/package.json index 33536843ad7..22b44981505 100644 --- a/apps/wing-console/console/design-system/package.json +++ b/apps/wing-console/console/design-system/package.json @@ -35,8 +35,6 @@ "@tailwindcss/typography": "^0.5.13", "classnames": "^2.5.1", "framer-motion": "^10.18.0", - "lodash.escape": "^4.0.1", - "lodash.uniq": "^4.5.0", "nanoid": "^4.0.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -47,14 +45,13 @@ "@babel/core": "^7.24.7", "@storybook/react": "^7.6.19", "@testing-library/react": "^14.3.1", - "@types/lodash.escape": "^4.0.9", - "@types/lodash.uniq": "^4.5.9", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.1", "@vitest/coverage-v8": "^1.6.0", "@wingconsole/eslint-plugin": "workspace:^", "@wingconsole/tsconfig": "workspace:^", + "@wingconsole/utilities": "workspace:^", "bump-pack": "workspace:^", "eslint": "^8.57.0", "happy-dom": "^9.20.3", diff --git a/apps/wing-console/console/design-system/src/text-highlight.tsx b/apps/wing-console/console/design-system/src/text-highlight.tsx index 3ca7e85b07a..48625fae85f 100644 --- a/apps/wing-console/console/design-system/src/text-highlight.tsx +++ b/apps/wing-console/console/design-system/src/text-highlight.tsx @@ -1,4 +1,4 @@ -import escape from "lodash.escape"; +import { escapeHtml } from "@wingconsole/utilities"; import { memo, useEffect, useState } from "react"; import type { Theme } from "./theme-provider.js"; @@ -38,7 +38,7 @@ const highlightJson = (value: string, theme: Theme) => { } else if (/null/.test(match)) { className = palette.null; } - return `${escape(match)}`; + return `${escapeHtml(match)}`; }, )}`; }, diff --git a/apps/wing-console/console/design-system/src/tree.tsx b/apps/wing-console/console/design-system/src/tree.tsx index ed36d92c91b..dd72571b56b 100644 --- a/apps/wing-console/console/design-system/src/tree.tsx +++ b/apps/wing-console/console/design-system/src/tree.tsx @@ -1,5 +1,4 @@ import classNames from "classnames"; -import uniq from "lodash.uniq"; import type { KeyboardEvent, Ref } from "react"; import { useState, useEffect, useCallback, forwardRef } from "react"; @@ -66,14 +65,14 @@ const useSelectionRange = ({ .slice(slice.start, slice.end + 1) .map((newEntry) => newEntry.id); - onSelectionChange( - uniq([ + onSelectionChange([ + ...new Set([ ...newShiftEntries, ...selectedEntries.filter( (newEntry) => !previousRangeSelection.includes(newEntry), ), ]), - ); + ]); setPreviousRangeSelection(newShiftEntries); } else { setRangeOrigin(index); diff --git a/apps/wing-console/console/server/package.json b/apps/wing-console/console/server/package.json index 88a715f9074..3c0dc65097e 100644 --- a/apps/wing-console/console/server/package.json +++ b/apps/wing-console/console/server/package.json @@ -29,13 +29,12 @@ "@trpc/server": "^10.45.2", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", - "@types/lodash.throttle": "^4.1.9", "@types/ws": "^8.5.10", "@vitest/coverage-v8": "^1.6.0", "@wingconsole/error-message": "workspace:^", "@wingconsole/eslint-plugin": "workspace:^", "@wingconsole/tsconfig": "workspace:^", - "@wingconsole/uniq-by": "workspace:^", + "@wingconsole/utilities": "workspace:^", "bump-pack": "workspace:^", "chokidar": "^3.6.0", "constructs": "^10.3.0", @@ -46,7 +45,6 @@ "eslint": "^8.57.0", "express": "^4.19.2", "get-port": "^6.1.2", - "lodash.throttle": "^4.1.1", "nanoid": "^4.0.2", "node-fetch": "^3.3.2", "tsup": "^8.1.0", diff --git a/apps/wing-console/console/server/src/index.ts b/apps/wing-console/console/server/src/index.ts index 13a74489156..97e88b45574 100644 --- a/apps/wing-console/console/server/src/index.ts +++ b/apps/wing-console/console/server/src/index.ts @@ -1,7 +1,7 @@ import type { inferRouterInputs } from "@trpc/server"; +import { throttle } from "@wingconsole/utilities"; import Emittery from "emittery"; import type { Express } from "express"; -import throttle from "lodash.throttle"; import type { Config } from "./config.js"; import type { LogSource } from "./consoleLogger.js"; diff --git a/apps/wing-console/console/server/src/router/app.ts b/apps/wing-console/console/server/src/router/app.ts index dbbb98a48bc..84c0b26342f 100644 --- a/apps/wing-console/console/server/src/router/app.ts +++ b/apps/wing-console/console/server/src/router/app.ts @@ -1,6 +1,6 @@ import { TRPCError } from "@trpc/server"; import { observable } from "@trpc/server/observable"; -import { uniqBy } from "@wingconsole/uniq-by"; +import { uniqBy } from "@wingconsole/utilities"; import type { UIComponent } from "@winglang/sdk/lib/core/tree.js"; import type { ResourceRunningState } from "@winglang/sdk/lib/simulator/simulator.js"; import { z } from "zod"; diff --git a/apps/wing-console/console/ui/package.json b/apps/wing-console/console/ui/package.json index ba84635eb0b..df12b78f1f0 100644 --- a/apps/wing-console/console/ui/package.json +++ b/apps/wing-console/console/ui/package.json @@ -37,7 +37,6 @@ "@trpc/client": "^10.45.2", "@trpc/react-query": "^10.45.2", "@trpc/server": "^10.45.2", - "@types/lodash.escape": "^4.0.9", "@wingconsole/design-system": "workspace:^", "classnames": "^2.5.1", "elkjs": "^0.8.2", @@ -45,8 +44,6 @@ "jszip": "^3.10.1", "linkify-react": "^4.1.3", "linkifyjs": "^4.1.3", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", "nanoid": "^4.0.2", "react-dom": "^18.3.1", "react-markdown": "^9.0.1", @@ -66,7 +63,6 @@ "@types/cors": "^2.8.17", "@types/d3-selection": "^3.0.10", "@types/d3-zoom": "^3.0.8", - "@types/lodash.debounce": "^4.0.9", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react-swc": "^3.7.0", @@ -74,9 +70,9 @@ "@wingconsole/eslint-plugin": "workspace:^", "@wingconsole/server": "workspace:^", "@wingconsole/tsconfig": "workspace:^", - "@wingconsole/uniq-by": "workspace:^", "@wingconsole/use-loading": "workspace:^", "@wingconsole/use-persistent-state": "workspace:^", + "@wingconsole/utilities": "workspace:^", "@winglang/sdk": "workspace:^", "autoprefixer": "^10.4.19", "bump-pack": "workspace:^", diff --git a/apps/wing-console/console/ui/src/features/blue-screen-of-death/turn-ascii-colors-into-html.ts b/apps/wing-console/console/ui/src/features/blue-screen-of-death/turn-ascii-colors-into-html.ts index aaa286de2a9..63f22d3ac9c 100644 --- a/apps/wing-console/console/ui/src/features/blue-screen-of-death/turn-ascii-colors-into-html.ts +++ b/apps/wing-console/console/ui/src/features/blue-screen-of-death/turn-ascii-colors-into-html.ts @@ -1,4 +1,4 @@ -import escape from "lodash.escape"; +import { escapeHtml } from "@wingconsole/utilities"; export type AsciiColor = | "black" @@ -58,6 +58,6 @@ export const turnAsciiColorsIntoHtml = ( } else if (color) { return ``; } - return options?.escapeHtml === false ? match : escape(match); + return options?.escapeHtml === false ? match : escapeHtml(match); }); }; diff --git a/apps/wing-console/console/ui/src/features/explorer-pane/use-map.bridge-connections.ts b/apps/wing-console/console/ui/src/features/explorer-pane/use-map.bridge-connections.ts index 020a8c9c57a..4228152817f 100644 --- a/apps/wing-console/console/ui/src/features/explorer-pane/use-map.bridge-connections.ts +++ b/apps/wing-console/console/ui/src/features/explorer-pane/use-map.bridge-connections.ts @@ -1,4 +1,4 @@ -import { uniqBy } from "@wingconsole/uniq-by"; +import { uniqBy } from "@wingconsole/utilities"; export type Connection = { source: T; diff --git a/apps/wing-console/console/ui/src/features/explorer-pane/use-map.ts b/apps/wing-console/console/ui/src/features/explorer-pane/use-map.ts index a5be733ae5a..77f5673ea56 100644 --- a/apps/wing-console/console/ui/src/features/explorer-pane/use-map.ts +++ b/apps/wing-console/console/ui/src/features/explorer-pane/use-map.ts @@ -1,5 +1,5 @@ import type { MapItem } from "@wingconsole/server"; -import { uniqBy } from "@wingconsole/uniq-by"; +import { uniqBy } from "@wingconsole/utilities"; import type { ElkExtendedEdge } from "elkjs"; import { useCallback, useMemo } from "react"; diff --git a/apps/wing-console/console/ui/src/features/hierarchy-pane/use-hierarchy.tsx b/apps/wing-console/console/ui/src/features/hierarchy-pane/use-hierarchy.tsx index 9ccc38163ad..e3e5f07dd29 100644 --- a/apps/wing-console/console/ui/src/features/hierarchy-pane/use-hierarchy.tsx +++ b/apps/wing-console/console/ui/src/features/hierarchy-pane/use-hierarchy.tsx @@ -1,6 +1,6 @@ import { ResourceIcon } from "@wingconsole/design-system"; import type { ExplorerItem } from "@wingconsole/server"; -import { uniqBy } from "@wingconsole/uniq-by"; +import { uniqBy } from "@wingconsole/utilities"; import type { ReactNode } from "react"; import { useEffect, useRef, useState } from "react"; diff --git a/apps/wing-console/console/ui/src/features/logs-pane/console-logs-filters.tsx b/apps/wing-console/console/ui/src/features/logs-pane/console-logs-filters.tsx index 4ce01d63ae1..8b712dace59 100644 --- a/apps/wing-console/console/ui/src/features/logs-pane/console-logs-filters.tsx +++ b/apps/wing-console/console/ui/src/features/logs-pane/console-logs-filters.tsx @@ -11,9 +11,9 @@ import { useTheme, } from "@wingconsole/design-system"; import type { LogLevel } from "@wingconsole/server"; -import { uniqBy } from "@wingconsole/uniq-by"; +import { uniqBy } from "@wingconsole/utilities"; +import { debounce } from "@wingconsole/utilities"; import classNames from "classnames"; -import debounce from "lodash.debounce"; import { memo, useCallback, useEffect, useMemo, useState } from "react"; export const LOG_LEVELS: LogLevel[] = ["verbose", "info", "warn", "error"]; diff --git a/apps/wing-console/packages/uniq-by/.eslintignore b/apps/wing-console/packages/utilities/.eslintignore similarity index 100% rename from apps/wing-console/packages/uniq-by/.eslintignore rename to apps/wing-console/packages/utilities/.eslintignore diff --git a/apps/wing-console/packages/uniq-by/.eslintrc.json b/apps/wing-console/packages/utilities/.eslintrc.json similarity index 100% rename from apps/wing-console/packages/uniq-by/.eslintrc.json rename to apps/wing-console/packages/utilities/.eslintrc.json diff --git a/apps/wing-console/packages/uniq-by/package.json b/apps/wing-console/packages/utilities/package.json similarity index 93% rename from apps/wing-console/packages/uniq-by/package.json rename to apps/wing-console/packages/utilities/package.json index 4fa9c5bd943..f35c7bf4041 100644 --- a/apps/wing-console/packages/uniq-by/package.json +++ b/apps/wing-console/packages/utilities/package.json @@ -1,5 +1,5 @@ { - "name": "@wingconsole/uniq-by", + "name": "@wingconsole/utilities", "version": "0.0.0", "private": true, "exports": "./src/index.ts", diff --git a/apps/wing-console/packages/utilities/src/debounce.ts b/apps/wing-console/packages/utilities/src/debounce.ts new file mode 100644 index 00000000000..73286e06ae4 --- /dev/null +++ b/apps/wing-console/packages/utilities/src/debounce.ts @@ -0,0 +1,25 @@ +export function debounce void>( + function_: T, + wait: number, + immediate: boolean = false, +): (...arguments_: Parameters) => void { + let timeout: NodeJS.Timeout | undefined; + + return (...arguments_: Parameters): void => { + const later = () => { + timeout = undefined; + if (!immediate) { + function_(...arguments_); + } + }; + + const callNow = immediate && !timeout; + + clearTimeout(timeout); + timeout = setTimeout(later, wait); + + if (callNow) { + function_(...arguments_); + } + }; +} diff --git a/apps/wing-console/packages/utilities/src/escape-html.test.ts b/apps/wing-console/packages/utilities/src/escape-html.test.ts new file mode 100644 index 00000000000..02ee2bb8040 --- /dev/null +++ b/apps/wing-console/packages/utilities/src/escape-html.test.ts @@ -0,0 +1,9 @@ +import { expect, test } from "vitest"; + +import { escapeHtml } from "./escape-html.js"; + +test("escapes html characters", () => { + expect(escapeHtml(`
Wing & Console
`)).toEqual( + `<div class="class" id='1'>Wing & Console</div>`, + ); +}); diff --git a/apps/wing-console/packages/utilities/src/escape-html.ts b/apps/wing-console/packages/utilities/src/escape-html.ts new file mode 100644 index 00000000000..fca5cf4d0be --- /dev/null +++ b/apps/wing-console/packages/utilities/src/escape-html.ts @@ -0,0 +1,22 @@ +const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", +}; + +const regExp = /["&'<>]/g; + +const escaper = (match: string) => { + return htmlEscapes[match as CHARACTERS_TO_ESCAPE]; +}; + +type CHARACTERS_TO_ESCAPE = keyof typeof htmlEscapes; + +/** + * Converts the characters "&", "<", ">", '"', "'" to their corresponding HTML entities. + */ +export function escapeHtml(html: string) { + return html.replaceAll(regExp, escaper); +} diff --git a/apps/wing-console/packages/utilities/src/index.ts b/apps/wing-console/packages/utilities/src/index.ts new file mode 100644 index 00000000000..9cfaf8dd6c5 --- /dev/null +++ b/apps/wing-console/packages/utilities/src/index.ts @@ -0,0 +1,4 @@ +export * from "./debounce.js"; +export * from "./escape-html.js"; +export * from "./throttle.js"; +export * from "./uniq-by.js"; diff --git a/apps/wing-console/packages/utilities/src/throttle.ts b/apps/wing-console/packages/utilities/src/throttle.ts new file mode 100644 index 00000000000..a67737b962d --- /dev/null +++ b/apps/wing-console/packages/utilities/src/throttle.ts @@ -0,0 +1,13 @@ +export function throttle void>( + function_: T, + timeFrame: number, +): (...arguments_: Parameters) => void { + let lastTime = 0; + return (...arguments_) => { + const now = Date.now(); + if (now - lastTime >= timeFrame) { + function_(...arguments_); + lastTime = now; + } + }; +} diff --git a/apps/wing-console/packages/uniq-by/src/index.test.ts b/apps/wing-console/packages/utilities/src/uniq-by.test.ts similarity index 93% rename from apps/wing-console/packages/uniq-by/src/index.test.ts rename to apps/wing-console/packages/utilities/src/uniq-by.test.ts index fd1a68ee60e..431344ebbfa 100644 --- a/apps/wing-console/packages/uniq-by/src/index.test.ts +++ b/apps/wing-console/packages/utilities/src/uniq-by.test.ts @@ -1,6 +1,6 @@ import { expect, test } from "vitest"; -import { uniqBy } from "./index.js"; +import { uniqBy } from "./uniq-by.js"; test("deduplicates items using identity as iteratee", () => { expect(uniqBy([1, 2], (number) => number)).toEqual([1, 2]); diff --git a/apps/wing-console/packages/uniq-by/src/index.ts b/apps/wing-console/packages/utilities/src/uniq-by.ts similarity index 100% rename from apps/wing-console/packages/uniq-by/src/index.ts rename to apps/wing-console/packages/utilities/src/uniq-by.ts diff --git a/apps/wing-console/packages/uniq-by/tsconfig.json b/apps/wing-console/packages/utilities/tsconfig.json similarity index 100% rename from apps/wing-console/packages/uniq-by/tsconfig.json rename to apps/wing-console/packages/utilities/tsconfig.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b3364a42d03..c8003dd9dbd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -558,12 +558,6 @@ importers: framer-motion: specifier: ^10.18.0 version: 10.18.0(react-dom@18.3.1)(react@18.3.1) - lodash.escape: - specifier: ^4.0.1 - version: 4.0.1 - lodash.uniq: - specifier: ^4.5.0 - version: 4.5.0 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -589,12 +583,6 @@ importers: '@testing-library/react': specifier: ^14.3.1 version: 14.3.1(react-dom@18.3.1)(react@18.3.1) - '@types/lodash.escape': - specifier: ^4.0.9 - version: 4.0.9 - '@types/lodash.uniq': - specifier: ^4.5.9 - version: 4.5.9 '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -613,6 +601,9 @@ importers: '@wingconsole/tsconfig': specifier: workspace:^ version: link:../../tools/tsconfig + '@wingconsole/utilities': + specifier: workspace:^ + version: link:../../packages/utilities bump-pack: specifier: workspace:^ version: link:../../../../tools/bump-pack @@ -668,9 +659,6 @@ importers: '@types/express': specifier: ^4.17.21 version: 4.17.21 - '@types/lodash.throttle': - specifier: ^4.1.9 - version: 4.1.9 '@types/ws': specifier: ^8.5.10 version: 8.5.10 @@ -686,9 +674,9 @@ importers: '@wingconsole/tsconfig': specifier: workspace:^ version: link:../../tools/tsconfig - '@wingconsole/uniq-by': + '@wingconsole/utilities': specifier: workspace:^ - version: link:../../packages/uniq-by + version: link:../../packages/utilities bump-pack: specifier: workspace:^ version: link:../../../../tools/bump-pack @@ -719,9 +707,6 @@ importers: get-port: specifier: ^6.1.2 version: 6.1.2 - lodash.throttle: - specifier: ^4.1.1 - version: 4.1.1 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -767,9 +752,6 @@ importers: '@trpc/server': specifier: ^10.45.2 version: 10.45.2 - '@types/lodash.escape': - specifier: ^4.0.9 - version: 4.0.9 '@wingconsole/design-system': specifier: workspace:^ version: link:../design-system @@ -791,12 +773,6 @@ importers: linkifyjs: specifier: ^4.1.3 version: 4.1.3 - lodash.debounce: - specifier: ^4.0.8 - version: 4.0.8 - lodash.escape: - specifier: ^4.0.1 - version: 4.0.1 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -849,9 +825,6 @@ importers: '@types/d3-zoom': specifier: ^3.0.8 version: 3.0.8 - '@types/lodash.debounce': - specifier: ^4.0.9 - version: 4.0.9 '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -870,15 +843,15 @@ importers: '@wingconsole/tsconfig': specifier: workspace:^ version: link:../../tools/tsconfig - '@wingconsole/uniq-by': - specifier: workspace:^ - version: link:../../packages/uniq-by '@wingconsole/use-loading': specifier: workspace:^ version: link:../../packages/use-loading '@wingconsole/use-persistent-state': specifier: workspace:^ version: link:../../packages/use-persistent-state + '@wingconsole/utilities': + specifier: workspace:^ + version: link:../../packages/utilities '@winglang/sdk': specifier: workspace:^ version: link:../../../../libs/wingsdk @@ -928,8 +901,11 @@ importers: specifier: ^5.5.2 version: 5.5.2 - apps/wing-console/packages/uniq-by: + apps/wing-console/packages/use-loading: devDependencies: + '@types/react': + specifier: ^18.3.3 + version: 18.3.3 '@wingconsole/eslint-plugin': specifier: workspace:^ version: link:../../tools/eslint-plugin @@ -939,11 +915,8 @@ importers: typescript: specifier: ^5.5.2 version: 5.5.2 - vitest: - specifier: ^1.6.0 - version: 1.6.0(happy-dom@9.20.3) - apps/wing-console/packages/use-loading: + apps/wing-console/packages/use-persistent-state: devDependencies: '@types/react': specifier: ^18.3.3 @@ -958,11 +931,8 @@ importers: specifier: ^5.5.2 version: 5.5.2 - apps/wing-console/packages/use-persistent-state: + apps/wing-console/packages/utilities: devDependencies: - '@types/react': - specifier: ^18.3.3 - version: 18.3.3 '@wingconsole/eslint-plugin': specifier: workspace:^ version: link:../../tools/eslint-plugin @@ -972,6 +942,9 @@ importers: typescript: specifier: ^5.5.2 version: 5.5.2 + vitest: + specifier: ^1.6.0 + version: 1.6.0(happy-dom@9.20.3) apps/wing-console/tools/eslint-plugin: dependencies: @@ -10795,37 +10768,15 @@ packages: '@types/node': 20.14.8 dev: true - /@types/lodash.debounce@4.0.9: - resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} - dependencies: - '@types/lodash': 4.17.5 - dev: true - - /@types/lodash.escape@4.0.9: - resolution: {integrity: sha512-YR9R6RU9D36OWrhVZ+r4fY8mMXQtofnLXAcE6CkKIxdH66uiCdEjkhxx/eiJnYpxjOFmPbWBUUvdv8lckO823Q==} - dependencies: - '@types/lodash': 4.17.5 - /@types/lodash.once@4.1.9: resolution: {integrity: sha512-nvZ7GYfyZB6CUmXL+7HSXg53rFpc49FsKuRmMiCIGhgJB/yyTip8uHk4mxGyVJOl87dXPlf3qy42WsjOcIrnmg==} dependencies: '@types/lodash': 4.17.5 dev: true - /@types/lodash.throttle@4.1.9: - resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} - dependencies: - '@types/lodash': 4.17.5 - dev: true - - /@types/lodash.uniq@4.5.9: - resolution: {integrity: sha512-2Vd5avnDMNLbDSnUwwgwExKXvX9W3CN72rodT+ikGqGHXn7gVK6BM6Z+kHonbpGgCI2BzM+QDMHrkgKoofOi6A==} - dependencies: - '@types/lodash': 4.17.5 - dev: true - /@types/lodash@4.17.5: resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} + dev: true /@types/long@4.0.2: resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} @@ -18029,6 +17980,7 @@ packages: /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -18038,10 +17990,6 @@ packages: resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} dev: true - /lodash.escape@4.0.1: - resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} - dev: false - /lodash.flatten@4.4.0: resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} dev: true @@ -18086,18 +18034,10 @@ packages: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: true - /lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} dev: true - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false - /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}