From 95ed302769f87d65d6ebefa3de86e7b8b911cc7f Mon Sep 17 00:00:00 2001 From: 0xkenj1 Date: Mon, 29 Jul 2024 19:21:32 -0300 Subject: [PATCH] feat: logger --- .../.prettierignore => .prettierignore | 0 packages/blocknumber/.prettierignore | 3 - packages/blocknumber/package.json | 3 +- .../src/providers/evmBlockNumberProvider.ts | 12 +- packages/shared/package.json | 22 + packages/shared/src/constants.ts | 0 packages/shared/src/index.ts | 3 + packages/shared/src/logger.ts | 59 ++ packages/shared/src/types/index.ts | 1 + packages/shared/src/types/logger.ts | 11 + packages/shared/tests/logger.spec.ts | 24 + packages/shared/tsconfig.build.json | 9 + packages/shared/tsconfig.json | 4 + packages/shared/vitest.config.ts | 22 + pnpm-lock.yaml | 542 ++++++++---------- pnpm-workspace.yaml | 2 +- 16 files changed, 417 insertions(+), 300 deletions(-) rename packages/automated-dispute/.prettierignore => .prettierignore (100%) delete mode 100644 packages/blocknumber/.prettierignore create mode 100644 packages/shared/package.json create mode 100644 packages/shared/src/constants.ts create mode 100644 packages/shared/src/index.ts create mode 100644 packages/shared/src/logger.ts create mode 100644 packages/shared/src/types/index.ts create mode 100644 packages/shared/src/types/logger.ts create mode 100644 packages/shared/tests/logger.spec.ts create mode 100644 packages/shared/tsconfig.build.json create mode 100644 packages/shared/tsconfig.json create mode 100644 packages/shared/vitest.config.ts diff --git a/packages/automated-dispute/.prettierignore b/.prettierignore similarity index 100% rename from packages/automated-dispute/.prettierignore rename to .prettierignore diff --git a/packages/blocknumber/.prettierignore b/packages/blocknumber/.prettierignore deleted file mode 100644 index 3da65e6..0000000 --- a/packages/blocknumber/.prettierignore +++ /dev/null @@ -1,3 +0,0 @@ -# Generated files -node_modules -dist \ No newline at end of file diff --git a/packages/blocknumber/package.json b/packages/blocknumber/package.json index d5ad406..1173e7c 100644 --- a/packages/blocknumber/package.json +++ b/packages/blocknumber/package.json @@ -17,6 +17,7 @@ "author": "", "license": "ISC", "dependencies": { - "viem": "2.17.10" + "viem": "2.17.10", + "@ebo-agent/shared": "workspace:*" } } diff --git a/packages/blocknumber/src/providers/evmBlockNumberProvider.ts b/packages/blocknumber/src/providers/evmBlockNumberProvider.ts index 8bbf88f..2fe6ed4 100644 --- a/packages/blocknumber/src/providers/evmBlockNumberProvider.ts +++ b/packages/blocknumber/src/providers/evmBlockNumberProvider.ts @@ -1,3 +1,4 @@ +import { ILogger } from "@ebo-agent/shared"; import { Block, PublicClient } from "viem"; import { @@ -46,6 +47,7 @@ export class EvmBlockNumberProvider implements BlockNumberProvider { constructor( client: PublicClient, searchConfig: { blocksLookback?: bigint; deltaMultiplier?: bigint }, + private logger: ILogger, ) { this.client = client; this.searchConfig = { @@ -64,7 +66,7 @@ export class EvmBlockNumberProvider implements BlockNumberProvider { this.validateBlockNumber(upperBoundBlock); - logger.info( + this.logger.info( `Working with latest block (number: ${upperBoundBlock.number}, timestamp: ${upperBoundBlock.timestamp})...`, ); @@ -134,14 +136,14 @@ export class EvmBlockNumberProvider implements BlockNumberProvider { const baseStep = (lastBlock.number - candidateBlockNumber) * deltaMultiplier; - logger.info("Calculating lower bound for binary search..."); + this.logger.info("Calculating lower bound for binary search..."); let searchCount = 0n; while (candidateBlockNumber >= 0) { const candidate = await this.client.getBlock({ blockNumber: candidateBlockNumber }); if (candidate.timestamp < timestamp) { - logger.info(`Estimated lower bound at block ${candidate.number}.`); + this.logger.info(`Estimated lower bound at block ${candidate.number}.`); return candidate; } @@ -167,7 +169,7 @@ export class EvmBlockNumberProvider implements BlockNumberProvider { * @returns the estimated block time */ private async estimateBlockTime(lastBlock: BlockWithNumber, blocksLookback: bigint) { - logger.info("Estimating block time..."); + this.logger.info("Estimating block time..."); const pastBlock = await this.client.getBlock({ blockNumber: lastBlock.number - BigInt(blocksLookback), @@ -175,7 +177,7 @@ export class EvmBlockNumberProvider implements BlockNumberProvider { const estimatedBlockTime = (lastBlock.timestamp - pastBlock.timestamp) / blocksLookback; - logger.info(`Estimated block time: ${estimatedBlockTime}.`); + this.logger.info(`Estimated block time: ${estimatedBlockTime}.`); return estimatedBlockTime; } diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000..a2616ff --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,22 @@ +{ + "name": "@ebo-agent/shared", + "version": "1.0.0", + "description": "", + "main": "./dist/index.js", + "type": "module", + "scripts": { + "build": "tsc -p tsconfig.build.json", + "lint": "eslint .", + "lint:fix": "pnpm lint --fix", + "format": "prettier --check .", + "format:fix": "prettier --write .", + "test": "vitest run", + "coverage": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "winston": "3.13.1" + } +} diff --git a/packages/shared/src/constants.ts b/packages/shared/src/constants.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts new file mode 100644 index 0000000..7f3d504 --- /dev/null +++ b/packages/shared/src/index.ts @@ -0,0 +1,3 @@ +export * from "./constants.js"; +export * from "./logger.js"; +export * from "./types/index.js"; diff --git a/packages/shared/src/logger.ts b/packages/shared/src/logger.ts new file mode 100644 index 0000000..fc2c678 --- /dev/null +++ b/packages/shared/src/logger.ts @@ -0,0 +1,59 @@ +import { createLogger, format, transports, Logger as WinstonLogger } from "winston"; + +import { ILogger, LogLevel } from "./index.js"; + +export class Logger implements ILogger { + private logger: WinstonLogger; + private static instance: Logger | null; + + private constructor(private level: LogLevel) { + this.logger = createLogger({ + level: this.level, + format: format.combine( + format.colorize(), + format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), + format.errors({ stack: true }), + format.printf(({ level, message, timestamp, stack }) => { + return `${timestamp} ${level}: ${stack || message}`; + }), + ), + transports: [new transports.Console()], + }); + } + /** + * Returns the instance of the Logger class. + * @param level The log level to be used by the logger. + * @returns The instance of the Logger class. + */ + public static getInstance(level?: LogLevel): Logger { + if (!Logger.instance) { + if (!level) { + throw new Error("Initial configuration is required for the first instantiation."); + } + Logger.instance = new Logger(level); + } else { + Logger.instance.warn( + `Logger instance already exists. Returning the existing instance with log level ${Logger.instance.level}.`, + ); + } + + return Logger.instance; + } + + info(message: string) { + this.logger.info(message); + } + error(error: Error | string): void { + if (error instanceof Error) { + this.logger.error(error); + } else { + this.logger.error(new Error(error)); + } + } + warn(message: string) { + this.logger.warn(message); + } + debug(message: string) { + this.logger.debug(message); + } +} diff --git a/packages/shared/src/types/index.ts b/packages/shared/src/types/index.ts new file mode 100644 index 0000000..d81cc32 --- /dev/null +++ b/packages/shared/src/types/index.ts @@ -0,0 +1 @@ +export * from "./logger.js"; diff --git a/packages/shared/src/types/logger.ts b/packages/shared/src/types/logger.ts new file mode 100644 index 0000000..08a234f --- /dev/null +++ b/packages/shared/src/types/logger.ts @@ -0,0 +1,11 @@ +/** + * Generic logger interface. + */ +export interface ILogger { + error: (error: Error | string) => void; + info: (message: string) => void; + warn: (message: string) => void; + debug: (message: string) => void; +} + +export type LogLevel = "error" | "warn" | "info" | "debug"; diff --git a/packages/shared/tests/logger.spec.ts b/packages/shared/tests/logger.spec.ts new file mode 100644 index 0000000..83137f3 --- /dev/null +++ b/packages/shared/tests/logger.spec.ts @@ -0,0 +1,24 @@ +import { describe, expect, it } from "vitest"; + +import { Logger } from "../src/logger.js"; + +describe("Logger Singleton", () => { + it("creates a logger instance with the given log level", () => { + const logger = Logger.getInstance("info"); + expect(logger).toBeInstanceOf(Logger); + expect(() => Logger.getInstance()).not.toThrow(); + }); + + it("throws an error if no log level is provided on first instantiation", () => { + Logger["instance"] = null; + expect(() => Logger.getInstance()).toThrow( + new Error("Initial configuration is required for the first instantiation."), + ); + }); + + it("returns the same instance if called multiple times", () => { + const logger1 = Logger.getInstance("info"); + const logger2 = Logger.getInstance("warn"); + expect(logger1).toBe(logger2); + }); +}); diff --git a/packages/shared/tsconfig.build.json b/packages/shared/tsconfig.build.json new file mode 100644 index 0000000..4b3e8f3 --- /dev/null +++ b/packages/shared/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "declaration": true, + "outDir": "dist" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "build", "tests", "vitest.config.ts"] +} diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..66bb87a --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src/**/*"] +} diff --git a/packages/shared/vitest.config.ts b/packages/shared/vitest.config.ts new file mode 100644 index 0000000..371ae0a --- /dev/null +++ b/packages/shared/vitest.config.ts @@ -0,0 +1,22 @@ +import path from "path"; +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, // Use Vitest's global API without importing it in each file + environment: "node", // Use the Node.js environment + include: ["tests/**/*.spec.ts"], // Include test files + exclude: ["node_modules", "dist"], // Exclude certain directories + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], // Coverage reporters + exclude: ["node_modules", "dist", "src/**/*.d.ts"], // Files to exclude from coverage + }, + }, + resolve: { + alias: { + // Setup path alias based on tsconfig paths + "@": path.resolve(__dirname, "src"), + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9056ea..27d3911 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: 7.16.1(eslint@8.57.0)(typescript@5.5.3) "@vitest/coverage-v8": specifier: ^2.0.3 - version: 2.0.3(vitest@2.0.3(@types/node@20.14.12)) + version: 2.0.4(vitest@2.0.3(@types/node@20.14.12)) eslint: specifier: 8.57.0 version: 8.57.0 @@ -71,10 +71,19 @@ importers: packages/blocknumber: dependencies: + "@ebo-agent/shared": + specifier: workspace:* + version: link:../shared viem: specifier: 2.17.10 version: 2.17.10(typescript@5.5.3) + packages/shared: + dependencies: + winston: + specifier: 3.13.1 + version: 3.13.1 + packages: "@adraffy/ens-normalize@1.10.0": resolution: @@ -96,10 +105,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/compat-data@7.24.9": + "@babel/compat-data@7.25.0": resolution: { - integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==, + integrity: sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==, } engines: { node: ">=6.9.0" } @@ -110,10 +119,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/generator@7.24.10": + "@babel/generator@7.25.0": resolution: { - integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==, + integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==, } engines: { node: ">=6.9.0" } @@ -124,27 +133,6 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helper-environment-visitor@7.24.7": - resolution: - { - integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==, - } - engines: { node: ">=6.9.0" } - - "@babel/helper-function-name@7.24.7": - resolution: - { - integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==, - } - engines: { node: ">=6.9.0" } - - "@babel/helper-hoist-variables@7.24.7": - resolution: - { - integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==, - } - engines: { node: ">=6.9.0" } - "@babel/helper-module-imports@7.24.7": resolution: { @@ -152,10 +140,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helper-module-transforms@7.24.9": + "@babel/helper-module-transforms@7.25.0": resolution: { - integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==, + integrity: sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==, } engines: { node: ">=6.9.0" } peerDependencies: @@ -168,13 +156,6 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helper-split-export-declaration@7.24.7": - resolution: - { - integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==, - } - engines: { node: ">=6.9.0" } - "@babel/helper-string-parser@7.24.8": resolution: { @@ -196,10 +177,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helpers@7.24.8": + "@babel/helpers@7.25.0": resolution: { - integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==, + integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==, } engines: { node: ">=6.9.0" } @@ -210,32 +191,32 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/parser@7.24.8": + "@babel/parser@7.25.0": resolution: { - integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==, + integrity: sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==, } engines: { node: ">=6.0.0" } hasBin: true - "@babel/template@7.24.7": + "@babel/template@7.25.0": resolution: { - integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==, + integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==, } engines: { node: ">=6.9.0" } - "@babel/traverse@7.24.8": + "@babel/traverse@7.25.1": resolution: { - integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==, + integrity: sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==, } engines: { node: ">=6.9.0" } - "@babel/types@7.24.9": + "@babel/types@7.25.0": resolution: { - integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==, + integrity: sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==, } engines: { node: ">=6.9.0" } @@ -757,130 +738,130 @@ packages: } engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } - "@rollup/rollup-android-arm-eabi@4.18.1": + "@rollup/rollup-android-arm-eabi@4.19.1": resolution: { - integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==, + integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==, } cpu: [arm] os: [android] - "@rollup/rollup-android-arm64@4.18.1": + "@rollup/rollup-android-arm64@4.19.1": resolution: { - integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==, + integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==, } cpu: [arm64] os: [android] - "@rollup/rollup-darwin-arm64@4.18.1": + "@rollup/rollup-darwin-arm64@4.19.1": resolution: { - integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==, + integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==, } cpu: [arm64] os: [darwin] - "@rollup/rollup-darwin-x64@4.18.1": + "@rollup/rollup-darwin-x64@4.19.1": resolution: { - integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==, + integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==, } cpu: [x64] os: [darwin] - "@rollup/rollup-linux-arm-gnueabihf@4.18.1": + "@rollup/rollup-linux-arm-gnueabihf@4.19.1": resolution: { - integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==, + integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm-musleabihf@4.18.1": + "@rollup/rollup-linux-arm-musleabihf@4.19.1": resolution: { - integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==, + integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm64-gnu@4.18.1": + "@rollup/rollup-linux-arm64-gnu@4.19.1": resolution: { - integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==, + integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-arm64-musl@4.18.1": + "@rollup/rollup-linux-arm64-musl@4.19.1": resolution: { - integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==, + integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-powerpc64le-gnu@4.18.1": + "@rollup/rollup-linux-powerpc64le-gnu@4.19.1": resolution: { - integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==, + integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==, } cpu: [ppc64] os: [linux] - "@rollup/rollup-linux-riscv64-gnu@4.18.1": + "@rollup/rollup-linux-riscv64-gnu@4.19.1": resolution: { - integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==, + integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==, } cpu: [riscv64] os: [linux] - "@rollup/rollup-linux-s390x-gnu@4.18.1": + "@rollup/rollup-linux-s390x-gnu@4.19.1": resolution: { - integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==, + integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==, } cpu: [s390x] os: [linux] - "@rollup/rollup-linux-x64-gnu@4.18.1": + "@rollup/rollup-linux-x64-gnu@4.19.1": resolution: { - integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==, + integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==, } cpu: [x64] os: [linux] - "@rollup/rollup-linux-x64-musl@4.18.1": + "@rollup/rollup-linux-x64-musl@4.19.1": resolution: { - integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==, + integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==, } cpu: [x64] os: [linux] - "@rollup/rollup-win32-arm64-msvc@4.18.1": + "@rollup/rollup-win32-arm64-msvc@4.19.1": resolution: { - integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==, + integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==, } cpu: [arm64] os: [win32] - "@rollup/rollup-win32-ia32-msvc@4.18.1": + "@rollup/rollup-win32-ia32-msvc@4.19.1": resolution: { - integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==, + integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==, } cpu: [ia32] os: [win32] - "@rollup/rollup-win32-x64-msvc@4.18.1": + "@rollup/rollup-win32-x64-msvc@4.19.1": resolution: { - integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==, + integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==, } cpu: [x64] os: [win32] @@ -1039,13 +1020,13 @@ packages: integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, } - "@vitest/coverage-v8@2.0.3": + "@vitest/coverage-v8@2.0.4": resolution: { - integrity: sha512-53d+6jXFdYbasXBmsL6qaGIfcY5eBQq0sP57AjdasOcSiGNj4qxkkpDKIitUNfjxcfAfUfQ8BD0OR2fSey64+g==, + integrity: sha512-i4lx/Wpg5zF1h2op7j0wdwuEQxaL/YTwwQaKuKMHYj7MMh8c7I4W7PNfOptZBCSBZI0z1qwn64o0pM/pA8Tz1g==, } peerDependencies: - vitest: 2.0.3 + vitest: 2.0.4 "@vitest/expect@2.0.3": resolution: @@ -1059,6 +1040,12 @@ packages: integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==, } + "@vitest/pretty-format@2.0.4": + resolution: + { + integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==, + } + "@vitest/runner@2.0.3": resolution: { @@ -1139,12 +1126,12 @@ packages: integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, } - ansi-escapes@6.2.1: + ansi-escapes@7.0.0: resolution: { - integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==, + integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==, } - engines: { node: ">=14.16" } + engines: { node: ">=18" } ansi-regex@5.0.1: resolution: @@ -1266,10 +1253,10 @@ packages: } engines: { node: ">=6" } - caniuse-lite@1.0.30001642: + caniuse-lite@1.0.30001643: resolution: { - integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==, + integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==, } chai@5.1.1: @@ -1307,12 +1294,12 @@ packages: } engines: { node: ">= 16" } - cli-cursor@4.0.0: + cli-cursor@5.0.0: resolution: { - integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, + integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: ">=18" } cli-truncate@4.0.0: resolution: @@ -1467,10 +1454,10 @@ packages: } engines: { node: ">=12" } - debug@4.3.5: + debug@4.3.6: resolution: { - integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==, + integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==, } engines: { node: ">=6.0" } peerDependencies: @@ -1526,10 +1513,10 @@ packages: integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, } - electron-to-chromium@1.4.829: + electron-to-chromium@1.5.2: resolution: { - integrity: sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==, + integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==, } emoji-regex@10.3.0: @@ -1563,6 +1550,13 @@ packages: } engines: { node: ">=6" } + environment@1.1.0: + resolution: + { + integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==, + } + engines: { node: ">=18" } + error-ex@1.3.2: resolution: { @@ -2153,12 +2147,6 @@ packages: integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, } - js-tokens@9.0.0: - resolution: - { - integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, - } - js-yaml@4.1.0: resolution: { @@ -2259,10 +2247,10 @@ packages: engines: { node: ">=18.12.0" } hasBin: true - listr2@8.2.3: + listr2@8.2.4: resolution: { - integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==, + integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==, } engines: { node: ">=18.0.0" } @@ -2334,10 +2322,10 @@ packages: integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, } - log-update@6.0.0: + log-update@6.1.0: resolution: { - integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==, + integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==, } engines: { node: ">=18" } @@ -2366,10 +2354,10 @@ packages: integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, } - magic-string@0.30.10: + magic-string@0.30.11: resolution: { - integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==, + integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==, } magicast@0.3.4: @@ -2418,19 +2406,19 @@ packages: } engines: { node: ">=8.6" } - mimic-fn@2.1.0: + mimic-fn@4.0.0: resolution: { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, } - engines: { node: ">=6" } + engines: { node: ">=12" } - mimic-fn@4.0.0: + mimic-function@5.0.1: resolution: { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==, } - engines: { node: ">=12" } + engines: { node: ">=18" } minimatch@3.1.2: resolution: @@ -2464,6 +2452,12 @@ packages: integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, } + ms@2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } + nanoid@3.3.7: resolution: { @@ -2478,10 +2472,10 @@ packages: integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, } - node-releases@2.0.17: + node-releases@2.0.18: resolution: { - integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==, + integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, } npm-run-path@5.3.0: @@ -2503,19 +2497,19 @@ packages: integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, } - onetime@5.1.2: + onetime@6.0.0: resolution: { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, } - engines: { node: ">=6" } + engines: { node: ">=12" } - onetime@6.0.0: + onetime@7.0.0: resolution: { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==, } - engines: { node: ">=12" } + engines: { node: ">=18" } optionator@0.9.4: resolution: @@ -2655,10 +2649,10 @@ packages: engines: { node: ">=0.10" } hasBin: true - postcss@8.4.39: + postcss@8.4.40: resolution: { - integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==, + integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==, } engines: { node: ^10 || ^12 || >=14 } @@ -2732,12 +2726,12 @@ packages: } engines: { node: ">=8" } - restore-cursor@4.0.0: + restore-cursor@5.1.0: resolution: { - integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, + integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: ">=18" } reusify@1.0.4: resolution: @@ -2760,10 +2754,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.18.1: + rollup@4.19.1: resolution: { - integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==, + integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==, } engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true @@ -2822,12 +2816,6 @@ packages: integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, } - signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } - signal-exit@4.1.0: resolution: { @@ -2956,12 +2944,6 @@ packages: } engines: { node: ">=8" } - strip-literal@2.1.0: - resolution: - { - integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, - } - supports-color@5.5.0: resolution: { @@ -3242,10 +3224,10 @@ packages: engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true - vite@5.3.4: + vite@5.3.5: resolution: { - integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==, + integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==, } engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true @@ -3449,95 +3431,77 @@ snapshots: "@babel/highlight": 7.24.7 picocolors: 1.0.1 - "@babel/compat-data@7.24.9": {} + "@babel/compat-data@7.25.0": {} "@babel/core@7.24.9": dependencies: "@ampproject/remapping": 2.3.0 "@babel/code-frame": 7.24.7 - "@babel/generator": 7.24.10 + "@babel/generator": 7.25.0 "@babel/helper-compilation-targets": 7.24.8 - "@babel/helper-module-transforms": 7.24.9(@babel/core@7.24.9) - "@babel/helpers": 7.24.8 - "@babel/parser": 7.24.8 - "@babel/template": 7.24.7 - "@babel/traverse": 7.24.8 - "@babel/types": 7.24.9 + "@babel/helper-module-transforms": 7.25.0(@babel/core@7.24.9) + "@babel/helpers": 7.25.0 + "@babel/parser": 7.25.0 + "@babel/template": 7.25.0 + "@babel/traverse": 7.25.1 + "@babel/types": 7.25.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - "@babel/generator@7.24.10": + "@babel/generator@7.25.0": dependencies: - "@babel/types": 7.24.9 + "@babel/types": 7.25.0 "@jridgewell/gen-mapping": 0.3.5 "@jridgewell/trace-mapping": 0.3.25 jsesc: 2.5.2 "@babel/helper-compilation-targets@7.24.8": dependencies: - "@babel/compat-data": 7.24.9 + "@babel/compat-data": 7.25.0 "@babel/helper-validator-option": 7.24.8 browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 - "@babel/helper-environment-visitor@7.24.7": - dependencies: - "@babel/types": 7.24.9 - - "@babel/helper-function-name@7.24.7": - dependencies: - "@babel/template": 7.24.7 - "@babel/types": 7.24.9 - - "@babel/helper-hoist-variables@7.24.7": - dependencies: - "@babel/types": 7.24.9 - "@babel/helper-module-imports@7.24.7": dependencies: - "@babel/traverse": 7.24.8 - "@babel/types": 7.24.9 + "@babel/traverse": 7.25.1 + "@babel/types": 7.25.0 transitivePeerDependencies: - supports-color - "@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)": + "@babel/helper-module-transforms@7.25.0(@babel/core@7.24.9)": dependencies: "@babel/core": 7.24.9 - "@babel/helper-environment-visitor": 7.24.7 "@babel/helper-module-imports": 7.24.7 "@babel/helper-simple-access": 7.24.7 - "@babel/helper-split-export-declaration": 7.24.7 "@babel/helper-validator-identifier": 7.24.7 + "@babel/traverse": 7.25.1 transitivePeerDependencies: - supports-color "@babel/helper-simple-access@7.24.7": dependencies: - "@babel/traverse": 7.24.8 - "@babel/types": 7.24.9 + "@babel/traverse": 7.25.1 + "@babel/types": 7.25.0 transitivePeerDependencies: - supports-color - "@babel/helper-split-export-declaration@7.24.7": - dependencies: - "@babel/types": 7.24.9 - "@babel/helper-string-parser@7.24.8": {} "@babel/helper-validator-identifier@7.24.7": {} "@babel/helper-validator-option@7.24.8": {} - "@babel/helpers@7.24.8": + "@babel/helpers@7.25.0": dependencies: - "@babel/template": 7.24.7 - "@babel/types": 7.24.9 + "@babel/template": 7.25.0 + "@babel/types": 7.25.0 "@babel/highlight@7.24.7": dependencies: @@ -3546,32 +3510,29 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - "@babel/parser@7.24.8": + "@babel/parser@7.25.0": dependencies: - "@babel/types": 7.24.9 + "@babel/types": 7.25.0 - "@babel/template@7.24.7": + "@babel/template@7.25.0": dependencies: "@babel/code-frame": 7.24.7 - "@babel/parser": 7.24.8 - "@babel/types": 7.24.9 + "@babel/parser": 7.25.0 + "@babel/types": 7.25.0 - "@babel/traverse@7.24.8": + "@babel/traverse@7.25.1": dependencies: "@babel/code-frame": 7.24.7 - "@babel/generator": 7.24.10 - "@babel/helper-environment-visitor": 7.24.7 - "@babel/helper-function-name": 7.24.7 - "@babel/helper-hoist-variables": 7.24.7 - "@babel/helper-split-export-declaration": 7.24.7 - "@babel/parser": 7.24.8 - "@babel/types": 7.24.9 - debug: 4.3.5 + "@babel/generator": 7.25.0 + "@babel/parser": 7.25.0 + "@babel/template": 7.25.0 + "@babel/types": 7.25.0 + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color - "@babel/types@7.24.9": + "@babel/types@7.25.0": dependencies: "@babel/helper-string-parser": 7.24.8 "@babel/helper-validator-identifier": 7.24.7 @@ -3781,7 +3742,7 @@ snapshots: "@eslint/eslintrc@2.1.4": dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3797,7 +3758,7 @@ snapshots: "@humanwhocodes/config-array@0.11.14": dependencies: "@humanwhocodes/object-schema": 2.0.3 - debug: 4.3.5 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3809,10 +3770,10 @@ snapshots: "@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3)": dependencies: "@babel/core": 7.24.9 - "@babel/generator": 7.24.10 - "@babel/parser": 7.24.8 - "@babel/traverse": 7.24.8 - "@babel/types": 7.24.9 + "@babel/generator": 7.25.0 + "@babel/parser": 7.25.0 + "@babel/traverse": 7.25.1 + "@babel/types": 7.25.0 prettier: 3.3.3 semver: 7.6.3 transitivePeerDependencies: @@ -3874,52 +3835,52 @@ snapshots: "@pkgr/core@0.1.1": {} - "@rollup/rollup-android-arm-eabi@4.18.1": + "@rollup/rollup-android-arm-eabi@4.19.1": optional: true - "@rollup/rollup-android-arm64@4.18.1": + "@rollup/rollup-android-arm64@4.19.1": optional: true - "@rollup/rollup-darwin-arm64@4.18.1": + "@rollup/rollup-darwin-arm64@4.19.1": optional: true - "@rollup/rollup-darwin-x64@4.18.1": + "@rollup/rollup-darwin-x64@4.19.1": optional: true - "@rollup/rollup-linux-arm-gnueabihf@4.18.1": + "@rollup/rollup-linux-arm-gnueabihf@4.19.1": optional: true - "@rollup/rollup-linux-arm-musleabihf@4.18.1": + "@rollup/rollup-linux-arm-musleabihf@4.19.1": optional: true - "@rollup/rollup-linux-arm64-gnu@4.18.1": + "@rollup/rollup-linux-arm64-gnu@4.19.1": optional: true - "@rollup/rollup-linux-arm64-musl@4.18.1": + "@rollup/rollup-linux-arm64-musl@4.19.1": optional: true - "@rollup/rollup-linux-powerpc64le-gnu@4.18.1": + "@rollup/rollup-linux-powerpc64le-gnu@4.19.1": optional: true - "@rollup/rollup-linux-riscv64-gnu@4.18.1": + "@rollup/rollup-linux-riscv64-gnu@4.19.1": optional: true - "@rollup/rollup-linux-s390x-gnu@4.18.1": + "@rollup/rollup-linux-s390x-gnu@4.19.1": optional: true - "@rollup/rollup-linux-x64-gnu@4.18.1": + "@rollup/rollup-linux-x64-gnu@4.19.1": optional: true - "@rollup/rollup-linux-x64-musl@4.18.1": + "@rollup/rollup-linux-x64-musl@4.19.1": optional: true - "@rollup/rollup-win32-arm64-msvc@4.18.1": + "@rollup/rollup-win32-arm64-msvc@4.19.1": optional: true - "@rollup/rollup-win32-ia32-msvc@4.18.1": + "@rollup/rollup-win32-ia32-msvc@4.19.1": optional: true - "@rollup/rollup-win32-x64-msvc@4.18.1": + "@rollup/rollup-win32-x64-msvc@4.19.1": optional: true "@scure/base@1.1.7": {} @@ -3979,7 +3940,7 @@ snapshots: "@typescript-eslint/types": 7.16.1 "@typescript-eslint/typescript-estree": 7.16.1(typescript@5.5.3) "@typescript-eslint/visitor-keys": 7.16.1 - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 optionalDependencies: typescript: 5.5.3 @@ -3995,7 +3956,7 @@ snapshots: dependencies: "@typescript-eslint/typescript-estree": 7.16.1(typescript@5.5.3) "@typescript-eslint/utils": 7.16.1(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -4009,7 +3970,7 @@ snapshots: dependencies: "@typescript-eslint/types": 7.16.1 "@typescript-eslint/visitor-keys": 7.16.1 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -4038,19 +3999,18 @@ snapshots: "@ungap/structured-clone@1.2.0": {} - "@vitest/coverage-v8@2.0.3(vitest@2.0.3(@types/node@20.14.12))": + "@vitest/coverage-v8@2.0.4(vitest@2.0.3(@types/node@20.14.12))": dependencies: "@ampproject/remapping": 2.3.0 "@bcoe/v8-coverage": 0.2.3 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.10 + magic-string: 0.30.11 magicast: 0.3.4 std-env: 3.7.0 - strip-literal: 2.1.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 vitest: 2.0.3(@types/node@20.14.12) @@ -4068,6 +4028,10 @@ snapshots: dependencies: tinyrainbow: 1.2.0 + "@vitest/pretty-format@2.0.4": + dependencies: + tinyrainbow: 1.2.0 + "@vitest/runner@2.0.3": dependencies: "@vitest/utils": 2.0.3 @@ -4076,7 +4040,7 @@ snapshots: "@vitest/snapshot@2.0.3": dependencies: "@vitest/pretty-format": 2.0.3 - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 "@vitest/spy@2.0.3": @@ -4123,7 +4087,9 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-escapes@6.2.1: {} + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 ansi-regex@5.0.1: {} @@ -4168,16 +4134,16 @@ snapshots: browserslist@4.23.2: dependencies: - caniuse-lite: 1.0.30001642 - electron-to-chromium: 1.4.829 - node-releases: 2.0.17 + caniuse-lite: 1.0.30001643 + electron-to-chromium: 1.5.2 + node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.2) cac@6.7.14: {} callsites@3.1.0: {} - caniuse-lite@1.0.30001642: {} + caniuse-lite@1.0.30001643: {} chai@5.1.1: dependencies: @@ -4202,9 +4168,9 @@ snapshots: check-error@2.1.1: {} - cli-cursor@4.0.0: + cli-cursor@5.0.0: dependencies: - restore-cursor: 4.0.0 + restore-cursor: 5.1.0 cli-truncate@4.0.0: dependencies: @@ -4298,7 +4264,7 @@ snapshots: dargs@8.1.0: {} - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -4322,7 +4288,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.829: {} + electron-to-chromium@1.5.2: {} emoji-regex@10.3.0: {} @@ -4334,6 +4300,8 @@ snapshots: env-paths@2.2.1: {} + environment@1.1.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -4403,7 +4371,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -4674,7 +4642,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: "@jridgewell/trace-mapping": 0.3.25 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -4694,8 +4662,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -4735,10 +4701,10 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5 + debug: 4.3.6 execa: 8.0.1 lilconfig: 3.1.2 - listr2: 8.2.3 + listr2: 8.2.4 micromatch: 4.0.7 pidtree: 0.6.0 string-argv: 0.3.2 @@ -4746,12 +4712,12 @@ snapshots: transitivePeerDependencies: - supports-color - listr2@8.2.3: + listr2@8.2.4: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.0.0 + log-update: 6.1.0 rfdc: 1.4.1 wrap-ansi: 9.0.0 @@ -4781,10 +4747,10 @@ snapshots: lodash.upperfirst@4.3.1: {} - log-update@6.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 6.2.1 - cli-cursor: 4.0.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 @@ -4794,7 +4760,7 @@ snapshots: "@colors/colors": 1.6.0 "@types/triple-beam": 1.3.5 fecha: 4.2.3 - ms: 2.1.2 + ms: 2.1.3 safe-stable-stringify: 2.4.3 triple-beam: 1.4.1 @@ -4808,14 +4774,14 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@0.30.10: + magic-string@0.30.11: dependencies: "@jridgewell/sourcemap-codec": 1.5.0 magicast@0.3.4: dependencies: - "@babel/parser": 7.24.8 - "@babel/types": 7.24.9 + "@babel/parser": 7.25.0 + "@babel/types": 7.25.0 source-map-js: 1.2.0 make-dir@4.0.0: @@ -4835,10 +4801,10 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4853,11 +4819,13 @@ snapshots: ms@2.1.2: {} + ms@2.1.3: {} + nanoid@3.3.7: {} natural-compare@1.4.0: {} - node-releases@2.0.17: {} + node-releases@2.0.18: {} npm-run-path@5.3.0: dependencies: @@ -4871,14 +4839,14 @@ snapshots: dependencies: fn.name: 1.1.0 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4944,7 +4912,7 @@ snapshots: pidtree@0.6.0: {} - postcss@8.4.39: + postcss@8.4.40: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -4976,10 +4944,10 @@ snapshots: resolve-from@5.0.0: {} - restore-cursor@4.0.0: + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + onetime: 7.0.0 + signal-exit: 4.1.0 reusify@1.0.4: {} @@ -4989,26 +4957,26 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.18.1: + rollup@4.19.1: dependencies: "@types/estree": 1.0.5 optionalDependencies: - "@rollup/rollup-android-arm-eabi": 4.18.1 - "@rollup/rollup-android-arm64": 4.18.1 - "@rollup/rollup-darwin-arm64": 4.18.1 - "@rollup/rollup-darwin-x64": 4.18.1 - "@rollup/rollup-linux-arm-gnueabihf": 4.18.1 - "@rollup/rollup-linux-arm-musleabihf": 4.18.1 - "@rollup/rollup-linux-arm64-gnu": 4.18.1 - "@rollup/rollup-linux-arm64-musl": 4.18.1 - "@rollup/rollup-linux-powerpc64le-gnu": 4.18.1 - "@rollup/rollup-linux-riscv64-gnu": 4.18.1 - "@rollup/rollup-linux-s390x-gnu": 4.18.1 - "@rollup/rollup-linux-x64-gnu": 4.18.1 - "@rollup/rollup-linux-x64-musl": 4.18.1 - "@rollup/rollup-win32-arm64-msvc": 4.18.1 - "@rollup/rollup-win32-ia32-msvc": 4.18.1 - "@rollup/rollup-win32-x64-msvc": 4.18.1 + "@rollup/rollup-android-arm-eabi": 4.19.1 + "@rollup/rollup-android-arm64": 4.19.1 + "@rollup/rollup-darwin-arm64": 4.19.1 + "@rollup/rollup-darwin-x64": 4.19.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.19.1 + "@rollup/rollup-linux-arm-musleabihf": 4.19.1 + "@rollup/rollup-linux-arm64-gnu": 4.19.1 + "@rollup/rollup-linux-arm64-musl": 4.19.1 + "@rollup/rollup-linux-powerpc64le-gnu": 4.19.1 + "@rollup/rollup-linux-riscv64-gnu": 4.19.1 + "@rollup/rollup-linux-s390x-gnu": 4.19.1 + "@rollup/rollup-linux-x64-gnu": 4.19.1 + "@rollup/rollup-linux-x64-musl": 4.19.1 + "@rollup/rollup-win32-arm64-msvc": 4.19.1 + "@rollup/rollup-win32-ia32-msvc": 4.19.1 + "@rollup/rollup-win32-x64-msvc": 4.19.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5031,8 +4999,6 @@ snapshots: siginfo@2.0.0: {} - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} simple-swizzle@0.2.2: @@ -5097,10 +5063,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -5258,10 +5220,10 @@ snapshots: vite-node@2.0.3(@types/node@20.14.12): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.14.12) + vite: 5.3.5(@types/node@20.14.12) transitivePeerDependencies: - "@types/node" - less @@ -5272,11 +5234,11 @@ snapshots: - supports-color - terser - vite@5.3.4(@types/node@20.14.12): + vite@5.3.5(@types/node@20.14.12): dependencies: esbuild: 0.21.5 - postcss: 8.4.39 - rollup: 4.18.1 + postcss: 8.4.40 + rollup: 4.19.1 optionalDependencies: "@types/node": 20.14.12 fsevents: 2.3.3 @@ -5285,21 +5247,21 @@ snapshots: dependencies: "@ampproject/remapping": 2.3.0 "@vitest/expect": 2.0.3 - "@vitest/pretty-format": 2.0.3 + "@vitest/pretty-format": 2.0.4 "@vitest/runner": 2.0.3 "@vitest/snapshot": 2.0.3 "@vitest/spy": 2.0.3 "@vitest/utils": 2.0.3 chai: 5.1.1 - debug: 4.3.5 + debug: 4.3.6 execa: 8.0.1 - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.8.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.14.12) + vite: 5.3.5(@types/node@20.14.12) vite-node: 2.0.3(@types/node@20.14.12) why-is-node-running: 2.3.0 optionalDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e32ff20..c2c15ad 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,2 @@ packages: - - "packages/**" \ No newline at end of file + - "packages/**"