From 67efa6e43775a3966b4321a4e3474bf1df5c30cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Pallar=C3=A9s?= Date: Fri, 2 Aug 2024 10:24:13 +0200 Subject: [PATCH] chore(console): remove `lodash.uniqby` in favor of a leaner implementation --- apps/wing-console/console/server/package.json | 3 +- .../console/server/src/router/app.ts | 4 +- apps/wing-console/console/ui/package.json | 3 +- .../use-map.bridge-connections.ts | 10 +- .../ui/src/features/explorer-pane/use-map.ts | 5 +- .../features/hierarchy-pane/use-hierarchy.tsx | 4 +- .../logs-pane/console-logs-filters.tsx | 4 +- .../packages/uniq-by/.eslintignore | 1 + .../packages/uniq-by/.eslintrc.json | 4 + .../packages/uniq-by/package.json | 23 ++ .../packages/uniq-by/src/index.test.ts | 24 ++ .../packages/uniq-by/src/index.ts | 20 ++ .../packages/uniq-by/tsconfig.json | 4 + pnpm-lock.yaml | 255 +++--------------- 14 files changed, 130 insertions(+), 234 deletions(-) create mode 100644 apps/wing-console/packages/uniq-by/.eslintignore create mode 100644 apps/wing-console/packages/uniq-by/.eslintrc.json create mode 100644 apps/wing-console/packages/uniq-by/package.json create mode 100644 apps/wing-console/packages/uniq-by/src/index.test.ts create mode 100644 apps/wing-console/packages/uniq-by/src/index.ts create mode 100644 apps/wing-console/packages/uniq-by/tsconfig.json diff --git a/apps/wing-console/console/server/package.json b/apps/wing-console/console/server/package.json index cf96421b2f1..88a715f9074 100644 --- a/apps/wing-console/console/server/package.json +++ b/apps/wing-console/console/server/package.json @@ -30,12 +30,12 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/lodash.throttle": "^4.1.9", - "@types/lodash.uniqby": "^4.7.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:^", "bump-pack": "workspace:^", "chokidar": "^3.6.0", "constructs": "^10.3.0", @@ -47,7 +47,6 @@ "express": "^4.19.2", "get-port": "^6.1.2", "lodash.throttle": "^4.1.1", - "lodash.uniqby": "^4.7.0", "nanoid": "^4.0.2", "node-fetch": "^3.3.2", "tsup": "^8.1.0", diff --git a/apps/wing-console/console/server/src/router/app.ts b/apps/wing-console/console/server/src/router/app.ts index 13d8bc02983..dbbb98a48bc 100644 --- a/apps/wing-console/console/server/src/router/app.ts +++ b/apps/wing-console/console/server/src/router/app.ts @@ -1,8 +1,8 @@ import { TRPCError } from "@trpc/server"; import { observable } from "@trpc/server/observable"; +import { uniqBy } from "@wingconsole/uniq-by"; import type { UIComponent } from "@winglang/sdk/lib/core/tree.js"; import type { ResourceRunningState } from "@winglang/sdk/lib/simulator/simulator.js"; -import uniqby from "lodash.uniqby"; import { z } from "zod"; import type { LogEntry } from "../consoleLogger.js"; @@ -303,7 +303,7 @@ export const createAppRouter = () => { // we keep only one connection per resource and direction (because the SDK currently has // no way to distinguish between multiple connections to the same resource). // Also, we need to filter out connections to hidden nodes. - const connections = uniqby(simulator.connections(), (connection) => { + const connections = uniqBy(simulator.connections(), (connection) => { return `${connection.source}-${connection.target}`; }).filter((connection) => { return connectionsBasicFilter(connection, nodeMap, !!showTests); diff --git a/apps/wing-console/console/ui/package.json b/apps/wing-console/console/ui/package.json index e43401fcae5..ba84635eb0b 100644 --- a/apps/wing-console/console/ui/package.json +++ b/apps/wing-console/console/ui/package.json @@ -47,7 +47,6 @@ "linkifyjs": "^4.1.3", "lodash.debounce": "^4.0.8", "lodash.escape": "^4.0.1", - "lodash.uniqby": "^4.7.0", "nanoid": "^4.0.2", "react-dom": "^18.3.1", "react-markdown": "^9.0.1", @@ -68,7 +67,6 @@ "@types/d3-selection": "^3.0.10", "@types/d3-zoom": "^3.0.8", "@types/lodash.debounce": "^4.0.9", - "@types/lodash.uniqby": "^4.7.9", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react-swc": "^3.7.0", @@ -76,6 +74,7 @@ "@wingconsole/eslint-plugin": "workspace:^", "@wingconsole/server": "workspace:^", "@wingconsole/tsconfig": "workspace:^", + "@wingconsole/uniq-by": "workspace:^", "@wingconsole/use-loading": "workspace:^", "@wingconsole/use-persistent-state": "workspace:^", "@winglang/sdk": "workspace:^", 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 ebcfcfd1448..020a8c9c57a 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 "lodash.uniqby"; +import { uniqBy } from "@wingconsole/uniq-by"; export type Connection = { source: T; @@ -27,12 +27,12 @@ const resolveConnections = ( (c) => getNodeId(c[type]) === getNodeId(node), ); const invertedType = type === "source" ? "target" : "source"; - const nodes = uniqby( + const nodes = uniqBy( connections.map((connection) => connection[invertedType]), (node) => getNodeId(node), ); - return uniqby( + return uniqBy( nodes.flatMap((node) => { return resolveConnections( node, @@ -77,7 +77,7 @@ export interface BridgeConnectionsOptions { } export const bridgeConnections = (options: BridgeConnectionsOptions) => { - return uniqby( + return uniqBy( options.connections.flatMap((connection) => { const sources = resolveConnections( connection.source, @@ -95,7 +95,7 @@ export const bridgeConnections = (options: BridgeConnectionsOptions) => { options.getNodeId, options.resolveNode, ); - return uniqby( + return uniqBy( sources.flatMap((source) => { return targets.map((target) => { return { 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 18950d044da..a5be733ae5a 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,8 +1,7 @@ import type { MapItem } from "@wingconsole/server"; -import type { ConnectionData } from "@winglang/sdk/lib/simulator/index.js"; +import { uniqBy } from "@wingconsole/uniq-by"; import type { ElkExtendedEdge } from "elkjs"; -import uniqBy from "lodash.uniqby"; -import { useCallback, useEffect, useMemo } from "react"; +import { useCallback, useMemo } from "react"; import { trpc } from "../../trpc.js"; 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 ebcdf66c116..9ccc38163ad 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,8 +1,8 @@ import { ResourceIcon } from "@wingconsole/design-system"; import type { ExplorerItem } from "@wingconsole/server"; -import uniqBy from "lodash.uniqby"; +import { uniqBy } from "@wingconsole/uniq-by"; import type { ReactNode } from "react"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { trpc } from "../../trpc.js"; import { RunningStateIndicator } from "../running-state-indicator/running-state-indicator.js"; 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 3a13074f38b..4ce01d63ae1 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 classNames from "classnames"; import debounce from "lodash.debounce"; -import uniqby from "lodash.uniqby"; import { memo, useCallback, useEffect, useMemo, useState } from "react"; export const LOG_LEVELS: LogLevel[] = ["verbose", "info", "warn", "error"]; @@ -154,7 +154,7 @@ export const ConsoleLogsFilters = memo( if (!resources) { return []; } - const resourceTypes = uniqby( + const resourceTypes = uniqBy( resources .sort((a, b) => a.type?.localeCompare(b.type ?? "") ?? 0) .filter((resource) => resource.type !== undefined), diff --git a/apps/wing-console/packages/uniq-by/.eslintignore b/apps/wing-console/packages/uniq-by/.eslintignore new file mode 100644 index 00000000000..2ccbe4656c6 --- /dev/null +++ b/apps/wing-console/packages/uniq-by/.eslintignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/apps/wing-console/packages/uniq-by/.eslintrc.json b/apps/wing-console/packages/uniq-by/.eslintrc.json new file mode 100644 index 00000000000..96e9873fe04 --- /dev/null +++ b/apps/wing-console/packages/uniq-by/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "root": true, + "extends": ["plugin:@wingconsole/browser"] +} diff --git a/apps/wing-console/packages/uniq-by/package.json b/apps/wing-console/packages/uniq-by/package.json new file mode 100644 index 00000000000..4fa9c5bd943 --- /dev/null +++ b/apps/wing-console/packages/uniq-by/package.json @@ -0,0 +1,23 @@ +{ + "name": "@wingconsole/uniq-by", + "version": "0.0.0", + "private": true, + "exports": "./src/index.ts", + "types": "./src/index.ts", + "sideEffects": false, + "type": "module", + "scripts": { + "tsc": "tsc --build", + "test": "vitest", + "eslint": "eslint --ext .js,.cjs,.ts,.cts,.mts,.tsx --no-error-on-unmatched-pattern . --fix" + }, + "devDependencies": { + "@wingconsole/eslint-plugin": "workspace:^", + "@wingconsole/tsconfig": "workspace:^", + "typescript": "^5.5.2", + "vitest": "^1.6.0" + }, + "volta": { + "extends": "../../../../package.json" + } +} diff --git a/apps/wing-console/packages/uniq-by/src/index.test.ts b/apps/wing-console/packages/uniq-by/src/index.test.ts new file mode 100644 index 00000000000..fd1a68ee60e --- /dev/null +++ b/apps/wing-console/packages/uniq-by/src/index.test.ts @@ -0,0 +1,24 @@ +import { expect, test } from "vitest"; + +import { uniqBy } from "./index.js"; + +test("deduplicates items using identity as iteratee", () => { + expect(uniqBy([1, 2], (number) => number)).toEqual([1, 2]); + expect(uniqBy([1, 2, 3, 1, 2], (number) => number)).toEqual([1, 2, 3]); +}); + +test("deduplicates items using a custom iteratee", () => { + expect( + uniqBy( + [ + { id: 1, name: "John" }, + { id: 2, name: "Sarah" }, + { id: 1, name: "Repeated" }, + ], + (object) => object.id, + ), + ).toEqual([ + { id: 1, name: "John" }, + { id: 2, name: "Sarah" }, + ]); +}); diff --git a/apps/wing-console/packages/uniq-by/src/index.ts b/apps/wing-console/packages/uniq-by/src/index.ts new file mode 100644 index 00000000000..386a97d3db0 --- /dev/null +++ b/apps/wing-console/packages/uniq-by/src/index.ts @@ -0,0 +1,20 @@ +/** + * Creates a duplicate-free version of an array, in which only the first occurrence of each element is kept. + * The iteratee is invoked for each element in the array to generate the criterion by which uniqueness is computed. + * + * @param array - The array to inspect. + * @param iteratee - The iteratee invoked per element. + * @returns Returns the new duplicate-free array. + */ +export function uniqBy(array: T[], iteratee: (item: T) => U): T[] { + const seen = new Set(); + return array.filter((item) => { + const key = iteratee(item); + if (seen.has(key)) { + return false; + } else { + seen.add(key); + return true; + } + }); +} diff --git a/apps/wing-console/packages/uniq-by/tsconfig.json b/apps/wing-console/packages/uniq-by/tsconfig.json new file mode 100644 index 00000000000..ee6b37721d7 --- /dev/null +++ b/apps/wing-console/packages/uniq-by/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@wingconsole/tsconfig", + "include": ["src/**/*"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a465171cf0..b3364a42d03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -533,7 +533,7 @@ importers: version: 5.5.2 vite: specifier: ^5.3.1 - version: 5.3.1 + version: 5.3.1(@types/node@20.14.8) apps/wing-console/console/design-system: dependencies: @@ -651,7 +651,7 @@ importers: version: 0.4.0 debug: specifier: ^4.3.5 - version: 4.3.5 + version: 4.3.5(supports-color@5.5.0) launch-editor: specifier: ^2.8.0 version: 2.8.0 @@ -671,9 +671,6 @@ importers: '@types/lodash.throttle': specifier: ^4.1.9 version: 4.1.9 - '@types/lodash.uniqby': - specifier: ^4.7.9 - version: 4.7.9 '@types/ws': specifier: ^8.5.10 version: 8.5.10 @@ -689,6 +686,9 @@ importers: '@wingconsole/tsconfig': specifier: workspace:^ version: link:../../tools/tsconfig + '@wingconsole/uniq-by': + specifier: workspace:^ + version: link:../../packages/uniq-by bump-pack: specifier: workspace:^ version: link:../../../../tools/bump-pack @@ -722,9 +722,6 @@ importers: lodash.throttle: specifier: ^4.1.1 version: 4.1.1 - lodash.uniqby: - specifier: ^4.7.0 - version: 4.7.0 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -733,13 +730,13 @@ importers: version: 3.3.2 tsup: specifier: ^8.1.0 - version: 8.1.0(typescript@5.5.2) + version: 8.1.0(postcss@8.4.39)(typescript@5.5.2) typescript: specifier: ^5.5.2 version: 5.5.2 vitest: specifier: ^1.6.0 - version: 1.6.0 + version: 1.6.0(happy-dom@9.20.3) ws: specifier: ^8.17.1 version: 8.17.1 @@ -800,9 +797,6 @@ importers: lodash.escape: specifier: ^4.0.1 version: 4.0.1 - lodash.uniqby: - specifier: ^4.7.0 - version: 4.7.0 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -858,9 +852,6 @@ importers: '@types/lodash.debounce': specifier: ^4.0.9 version: 4.0.9 - '@types/lodash.uniqby': - specifier: ^4.7.9 - version: 4.7.9 '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -879,6 +870,9 @@ 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 @@ -934,6 +928,21 @@ importers: specifier: ^5.5.2 version: 5.5.2 + apps/wing-console/packages/uniq-by: + devDependencies: + '@wingconsole/eslint-plugin': + specifier: workspace:^ + version: link:../../tools/eslint-plugin + '@wingconsole/tsconfig': + specifier: workspace:^ + version: link:../../tools/tsconfig + 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: devDependencies: '@types/react': @@ -3732,7 +3741,7 @@ packages: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -5059,7 +5068,7 @@ packages: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6108,7 +6117,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -6277,7 +6286,7 @@ packages: deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10815,12 +10824,6 @@ packages: '@types/lodash': 4.17.5 dev: true - /@types/lodash.uniqby@4.7.9: - resolution: {integrity: sha512-rjrXji/seS6BZJRgXrU2h6FqxRVufsbq/HE0Tx0SdgbtlWr2YmD/M64BlYEYYlaMcpZwy32IYVkMfUMYlPuv0w==} - dependencies: - '@types/lodash': 4.17.5 - dev: true - /@types/lodash@4.17.5: resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} @@ -11654,7 +11657,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.14.8) transitivePeerDependencies: - supports-color dev: true @@ -11666,7 +11669,7 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.4 @@ -11677,7 +11680,7 @@ packages: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0 + vitest: 1.6.0(happy-dom@9.20.3) transitivePeerDependencies: - supports-color dev: true @@ -13404,7 +13407,7 @@ packages: /codespan-wasm@0.4.0: resolution: {integrity: sha512-TVS9MyHIeTV1Zm/wBpgjY1Lyx49Ikj7mccrBrCwWc0/oM7MoeHtVPWwM+Q9CBKWJTZLwp7D1s8PT6NnCqvQrhA==} dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color dev: false @@ -13993,17 +13996,6 @@ packages: dependencies: ms: 2.1.3 - /debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - /debug@4.3.5(supports-color@5.5.0): resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -14345,7 +14337,7 @@ packages: dependencies: semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240731 + typescript: 5.6.0-dev.20240802 dev: true /dset@3.1.3: @@ -15235,7 +15227,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -17166,7 +17158,7 @@ packages: engines: {node: '>=10'} dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -18106,9 +18098,6 @@ packages: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: false - /lodash.uniqby@4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -19967,22 +19956,6 @@ packages: yaml: 1.10.2 dev: true - /postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 3.1.2 - yaml: 2.4.5 - dev: true - /postcss-load-config@4.0.2(postcss@8.4.38): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} @@ -22482,7 +22455,7 @@ packages: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@5.5.0) esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 @@ -22500,45 +22473,6 @@ packages: - ts-node dev: true - /tsup@8.1.0(typescript@5.5.2): - resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - dependencies: - bundle-require: 4.2.1(esbuild@0.21.5) - cac: 6.7.14 - chokidar: 3.6.0 - debug: 4.3.5 - esbuild: 0.21.5 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 4.0.2 - resolve-from: 5.0.0 - rollup: 4.18.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tree-kill: 1.2.2 - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -22779,8 +22713,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript@5.6.0-dev.20240731: - resolution: {integrity: sha512-XNueWVxo4buZCEMor0GB/x7ZpzbPzowRNc42fznRinFzGipR+v+Dgelpd6cJvdkN7/TSFASN2M2jQxDeZnk95A==} + /typescript@5.6.0-dev.20240802: + resolution: {integrity: sha512-aPQg1SL05JivtUdMmXq3BBa9NqhNbDvOlDPXvCf3K+kZ5jkxDdf2El6BLEkkzxkWOczoxma8l40ppGsC6pF40A==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -23133,27 +23067,6 @@ packages: vfile-message: 4.0.2 dev: false - /vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.5 - pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.3.1 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-node@1.6.0(@types/node@20.14.8): resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -23175,41 +23088,6 @@ packages: - terser dev: true - /vite@5.3.1: - resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.21.5 - postcss: 8.4.39 - rollup: 4.18.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /vite@5.3.1(@types/node@20.14.8): resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -23246,61 +23124,6 @@ packages: fsevents: 2.3.3 dev: true - /vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.4.1 - debug: 4.3.5 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 - pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.8.0 - tinypool: 0.8.4 - vite: 5.3.1 - vite-node: 1.6.0 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vitest@1.6.0(@types/node@20.14.8): resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0}