diff --git a/eslint.config.js b/eslint.config.js index 176259658e..6de340b6fd 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,9 +1,8 @@ import tseslint from "typescript-eslint"; +import perfectionist from "eslint-plugin-perfectionist"; import prettier from "eslint-plugin-prettier"; import promise from "eslint-plugin-promise"; -import simpleImportSort from "eslint-plugin-simple-import-sort"; import sonarjs from "eslint-plugin-sonarjs"; -import sortKeysFix from "eslint-plugin-sort-keys-fix"; import unicorn from "eslint-plugin-unicorn"; import unusedImports from "eslint-plugin-unused-imports"; import esImport from "eslint-plugin-import"; @@ -36,11 +35,10 @@ export default [ }, { plugins: { + perfectionist, prettier: prettier, promise: promise, - "simple-import-sort": simpleImportSort, sonarjs: sonarjs, - "sort-keys-fix": sortKeysFix, unicorn: unicorn, "unused-imports": unusedImports, import: esImport, @@ -111,6 +109,16 @@ export default [ "no-unneeded-ternary": "warn", "no-unused-expressions": "off", "no-unused-vars": "off", + "perfectionist/sort-imports": "warn", + "perfectionist/sort-exports": "error", + "perfectionist/sort-objects": [ + "warn", + { + type: "alphabetical", + order: "asc", + ignoreCase: false, + }, + ], "prefer-const": [ "warn", { @@ -125,8 +133,6 @@ export default [ ], "promise/always-return": "warn", "promise/param-names": "warn", - "simple-import-sort/exports": "error", - "simple-import-sort/imports": "warn", "sonarjs/cognitive-complexity": "warn", "sonarjs/no-all-duplicated-branches": "warn", "sonarjs/no-collapsible-if": "warn", @@ -138,13 +144,6 @@ export default [ "sonarjs/no-small-switch": "warn", "sonarjs/no-use-of-empty-return-value": "warn", "sonarjs/prefer-single-boolean-return": "off", - "sort-keys-fix/sort-keys-fix": [ - "warn", - "asc", - { - caseSensitive: true, - }, - ], "unicorn/consistent-destructuring": "warn", "unicorn/consistent-function-scoping": "warn", "unicorn/error-message": "warn", diff --git a/package.json b/package.json index f55157a219..160ca6c6d1 100644 --- a/package.json +++ b/package.json @@ -44,36 +44,35 @@ "workflows:unit": "node scripts/generate-unit-workflow.js" }, "devDependencies": { - "@eslint/compat": "^1.4.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.38.0", + "@eslint/compat": "^2.0.3", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "^10.0.1", "@types/node": "24.3.0", - "c8": "10.1.3", - "chalk": "5.6.0", - "cross-env": "10.0.0", + "c8": "11.0.0", + "chalk": "5.6.2", + "cross-env": "10.1.0", "depcheck": "1.4.7", - "eslint": "9.38.0", + "eslint": "10.1.0", "eslint-plugin-import": "2.32.0", - "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-perfectionist": "5.7.0", + "eslint-plugin-prettier": "5.5.5", "eslint-plugin-promise": "7.2.1", - "eslint-plugin-simple-import-sort": "12.1.1", - "eslint-plugin-sonarjs": "3.0.5", - "eslint-plugin-sort-keys-fix": "1.1.2", - "eslint-plugin-unicorn": "62.0.0", - "eslint-plugin-unused-imports": "4.3.0", + "eslint-plugin-sonarjs": "4.0.2", + "eslint-plugin-unicorn": "64.0.0", + "eslint-plugin-unused-imports": "4.4.1", "husky": "9.1.7", "lerna": "9.0.7", - "lint-staged": "16.2.6", + "lint-staged": "16.4.0", "madge": "8.0.0", - "npm-check-updates": "18.0.2", - "prettier": "3.6.2", - "sort-package-json": "3.4.0", - "tsx": "4.20.4", - "typedoc": "0.28.10", - "typescript": "5.9.2", - "typescript-eslint": "^8.46.2", + "npm-check-updates": "19.6.6", + "prettier": "3.8.1", + "sort-package-json": "3.6.1", + "tsx": "4.21.0", + "typedoc": "0.28.18", + "typescript": "6.0.2", + "typescript-eslint": "^8.58.0", "typesync": "0.14.3", - "yaml": "2.8.1" + "yaml": "2.8.3" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/packages/api-common/package.json b/packages/api-common/package.json index 7b117fcd6b..f2b4996595 100644 --- a/packages/api-common/package.json +++ b/packages/api-common/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@hapi/hoek": "11.0.7", "@mainsail/api-database": "workspace:*", "@mainsail/constants": "workspace:*", @@ -30,17 +30,17 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", - "joi": "18.0.0", + "ajv": "8.18.0", + "joi": "18.1.2", "micromatch": "4.0.8", - "rate-limiter-flexible": "7.2.0" + "rate-limiter-flexible": "10.0.1" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/ip": "1.1.3", "@types/micromatch": "4.0.10", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-common/source/controller.ts b/packages/api-common/source/controller.ts index 98ee0e8f8c..5bc5572433 100644 --- a/packages/api-common/source/controller.ts +++ b/packages/api-common/source/controller.ts @@ -1,24 +1,25 @@ +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { SchemaObject } from "./schemas.js"; +import { HapiRequest, RequestQuery } from "./types.js"; @injectable() export abstract class AbstractController { @inject(Identifiers.Application.Instance) protected readonly app!: Contracts.Kernel.Application; - protected getQueryPagination(query: Hapi.RequestQuery): Contracts.Api.Pagination { + protected getQueryPagination(query: RequestQuery): Contracts.Api.Pagination { return { limit: query.limit, offset: (query.page - 1) * query.limit || 0, }; } - protected getQueryCriteria(query: Hapi.RequestQuery, schemaObject: SchemaObject): unknown { + protected getQueryCriteria(query: RequestQuery, schemaObject: SchemaObject): unknown { const schemaObjectKeys = Object.keys(schemaObject); const criteria = {}; for (const [key, value] of Object.entries(query)) { @@ -29,7 +30,7 @@ export abstract class AbstractController { return criteria; } - protected getListingPage(request: Hapi.Request): Contracts.Api.Pagination { + protected getListingPage(request: HapiRequest): Contracts.Api.Pagination { const pagination = { limit: request.query.limit || 100, offset: (request.query.page - 1) * request.query.limit || 0, @@ -42,7 +43,7 @@ export abstract class AbstractController { return pagination; } - protected getListingOrder(request: Hapi.Request): Contracts.Api.Sorting { + protected getListingOrder(request: HapiRequest): Contracts.Api.Sorting { if (!request.query.orderBy) { return []; } diff --git a/packages/api-common/source/index.ts b/packages/api-common/source/index.ts index 1a07065d9f..9438b70728 100644 --- a/packages/api-common/source/index.ts +++ b/packages/api-common/source/index.ts @@ -3,4 +3,5 @@ export * as Plugins from "./plugins/index.js"; export * as Schemas from "./schemas.js"; export * from "./server.js"; export * from "./service-provider.js"; +export * as Types from "./types.js"; export * as Validation from "./validation/index.js"; diff --git a/packages/api-common/source/plugins/comma-separated-query.ts b/packages/api-common/source/plugins/comma-separated-query.ts index 56f1434379..dade6a44e6 100644 --- a/packages/api-common/source/plugins/comma-separated-query.ts +++ b/packages/api-common/source/plugins/comma-separated-query.ts @@ -1,4 +1,5 @@ import type Hapi from "@hapi/hapi"; + import { set } from "@mainsail/utils"; export const commaArrayQuery = { diff --git a/packages/api-common/source/plugins/database-ready.ts b/packages/api-common/source/plugins/database-ready.ts index f543d1a6e8..3ffc96dd7e 100644 --- a/packages/api-common/source/plugins/database-ready.ts +++ b/packages/api-common/source/plugins/database-ready.ts @@ -1,8 +1,9 @@ import type Hapi from "@hapi/hapi"; import type { Contracts as ApiDatabaseContracts } from "@mainsail/api-database"; -import { Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import type { Contracts } from "@mainsail/contracts"; +import { Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; + export const databaseReady = { getOnRequestHandler(app: Contracts.Kernel.Application) { const systemRepository = app.get( diff --git a/packages/api-common/source/plugins/dot-separated-query.ts b/packages/api-common/source/plugins/dot-separated-query.ts index eaedf2b394..f03f9cc186 100644 --- a/packages/api-common/source/plugins/dot-separated-query.ts +++ b/packages/api-common/source/plugins/dot-separated-query.ts @@ -1,4 +1,5 @@ import type Hapi from "@hapi/hapi"; + import { set } from "@mainsail/utils"; export const dotSeparatedQuery = { diff --git a/packages/api-common/source/plugins/pagination/extension.ts b/packages/api-common/source/plugins/pagination/extension.ts index c25b8342ab..105bfb47d3 100644 --- a/packages/api-common/source/plugins/pagination/extension.ts +++ b/packages/api-common/source/plugins/pagination/extension.ts @@ -1,20 +1,23 @@ // Based on https://github.com/fknop/hapi-pagination import type Hapi from "@hapi/hapi"; -import { applyToDefaults } from "@hapi/hoek"; import type { Utils } from "@mainsail/contracts"; + +import { applyToDefaults } from "@hapi/hoek"; import { assert, get } from "@mainsail/utils"; import Qs from "querystring"; +import type { HapiRequest } from "../../types.js"; + export class Extension { private readonly routePathPrefix = "/api"; public constructor(private readonly config: object) {} - public isValidRoute(request: Hapi.Request): boolean { + public isValidRoute(request: HapiRequest): boolean { return this.hasPagination(request); } - public onPreHandler(request: Hapi.Request, h: Hapi.ResponseToolkit): Hapi.Lifecycle.ReturnValue { + public onPreHandler(request: HapiRequest, h: Hapi.ResponseToolkit): Hapi.Lifecycle.ReturnValue { if (this.isValidRoute(request)) { const setParameter = (name, defaultValue) => { let value; @@ -38,7 +41,7 @@ export class Extension { return h.continue; } - public onPostHandler(request: Hapi.Request, h: Hapi.ResponseToolkit): Hapi.Lifecycle.ReturnValue { + public onPostHandler(request: HapiRequest, h: Hapi.ResponseToolkit): Hapi.Lifecycle.ReturnValue { if ("isBoom" in request.response) { return h.continue; } @@ -102,7 +105,7 @@ export class Extension { self: getUri(currentPage), totalCount: totalCount ? totalCount : 0, }, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + // eslint-disable-next-line perfectionist/sort-objects data: results, }; @@ -122,7 +125,7 @@ export class Extension { return h.continue; } - public hasPagination(request: Hapi.Request): boolean { + public hasPagination(request: HapiRequest): boolean { const pagination = this.getRoutePaginationOptions(request); if (!pagination) { @@ -132,7 +135,7 @@ export class Extension { return pagination.enabled !== undefined ? pagination.enabled : true; } - private getRoutePaginationOptions(request: Hapi.Request): { enabled: boolean } | undefined { + private getRoutePaginationOptions(request: HapiRequest): { enabled: boolean } | undefined { const { plugins } = request.route.settings; if (!plugins) { return undefined; diff --git a/packages/api-common/source/plugins/pagination/index.ts b/packages/api-common/source/plugins/pagination/index.ts index 42d86165c6..d27c33648c 100644 --- a/packages/api-common/source/plugins/pagination/index.ts +++ b/packages/api-common/source/plugins/pagination/index.ts @@ -1,16 +1,19 @@ // Based on https://github.com/fknop/hapi-pagination import type { Contracts } from "@mainsail/contracts"; -import { assert } from "@mainsail/utils"; import type Joi from "joi"; +import { assert } from "@mainsail/utils"; + +import type { HapiRequest } from "../../types.js"; + import { getConfig } from "./config.js"; import { Extension } from "./extension.js"; export const pagination = { name: "hapi-pagination", register(server: Contracts.Api.ApiServer, options: Joi.ValidationOptions): void { - const { error, config } = getConfig(options); + const { config, error } = getConfig(options); if (error) { throw error; @@ -19,8 +22,8 @@ export const pagination = { assert.defined(config); const extension = new Extension(config); - server.ext("onPreHandler", (request, h) => extension.onPreHandler(request, h)); - server.ext("onPostHandler", (request, h) => extension.onPostHandler(request, h)); + server.ext("onPreHandler", (request, h) => extension.onPreHandler(request as unknown as HapiRequest, h)); + server.ext("onPostHandler", (request, h) => extension.onPostHandler(request as unknown as HapiRequest, h)); }, version: "1.0.0", }; diff --git a/packages/api-common/source/plugins/rate-limit.ts b/packages/api-common/source/plugins/rate-limit.ts index 6dc4ead840..2b460bfa31 100644 --- a/packages/api-common/source/plugins/rate-limit.ts +++ b/packages/api-common/source/plugins/rate-limit.ts @@ -1,7 +1,8 @@ -import Boom from "@hapi/boom"; import type Hapi from "@hapi/hapi"; -import mm from "micromatch"; import type { RateLimiterRes } from "rate-limiter-flexible"; + +import Boom from "@hapi/boom"; +import mm from "micromatch"; import { RateLimiterMemory, RLWrapperBlackAndWhite } from "rate-limiter-flexible"; import { getIp } from "../utils/index.js"; diff --git a/packages/api-common/source/plugins/response-headers.ts b/packages/api-common/source/plugins/response-headers.ts index 52451d0109..4e6d6ca04d 100644 --- a/packages/api-common/source/plugins/response-headers.ts +++ b/packages/api-common/source/plugins/response-headers.ts @@ -1,8 +1,9 @@ import type Hapi from "@hapi/hapi"; import type { Contracts as ApiDatabaseContracts } from "@mainsail/api-database"; -import { Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import type { Contracts } from "@mainsail/contracts"; +import { Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; + export const responseHeaders = { getOnPreResponseHandler(app: Contracts.Kernel.Application) { const blockRepositoryFactory = app.get( diff --git a/packages/api-common/source/plugins/rpc-response-handler.ts b/packages/api-common/source/plugins/rpc-response-handler.ts index b09753cc9b..1a7091e663 100644 --- a/packages/api-common/source/plugins/rpc-response-handler.ts +++ b/packages/api-common/source/plugins/rpc-response-handler.ts @@ -1,6 +1,7 @@ import type { Boom } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; import type { ResponseObject, Server as HapiServer } from "@hapi/hapi"; + import { Enums } from "@mainsail/constants"; import { Utils as Utilities } from "../rcp/index.js"; diff --git a/packages/api-common/source/plugins/whitelist.ts b/packages/api-common/source/plugins/whitelist.ts index 8eb44f5f20..8c100a78d7 100644 --- a/packages/api-common/source/plugins/whitelist.ts +++ b/packages/api-common/source/plugins/whitelist.ts @@ -1,5 +1,6 @@ -import Boom from "@hapi/boom"; import type Hapi from "@hapi/hapi"; + +import Boom from "@hapi/boom"; import { isWhitelisted } from "@mainsail/utils"; import { getIp } from "../utils/index.js"; diff --git a/packages/api-common/source/rcp/processor.ts b/packages/api-common/source/rcp/processor.ts index af64088b24..7cac4047df 100644 --- a/packages/api-common/source/rcp/processor.ts +++ b/packages/api-common/source/rcp/processor.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; import { getRcpId, prepareRcpError } from "./utilities.js"; diff --git a/packages/api-common/source/rcp/utilities.ts b/packages/api-common/source/rcp/utilities.ts index 0a21792c81..96f9bb8c82 100644 --- a/packages/api-common/source/rcp/utilities.ts +++ b/packages/api-common/source/rcp/utilities.ts @@ -1,7 +1,8 @@ import type { Request } from "@hapi/hapi"; -import { Enums } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; +import { Enums } from "@mainsail/constants"; + export const getRcpId = (request: Request): Contracts.Api.RPC.Id => { const payload = request.payload as Record; @@ -18,11 +19,11 @@ export const getRcpId = (request: Request): Contracts.Api.RPC.Id => { }; export const errorMessageMap = { - [Enums.Api.RcpErrorCode.ParseError]: "Parse error", + [Enums.Api.RcpErrorCode.InternalError]: "Internal error", + [Enums.Api.RcpErrorCode.InvalidParameters]: "Invalid params", [Enums.Api.RcpErrorCode.InvalidRequest]: "Invalid request", [Enums.Api.RcpErrorCode.MethodNotFound]: "Method not found", - [Enums.Api.RcpErrorCode.InvalidParameters]: "Invalid params", - [Enums.Api.RcpErrorCode.InternalError]: "Internal error", + [Enums.Api.RcpErrorCode.ParseError]: "Parse error", }; export const prepareRcpError = ( diff --git a/packages/api-common/source/server.ts b/packages/api-common/source/server.ts index f54af2c140..5d02bac8fc 100644 --- a/packages/api-common/source/server.ts +++ b/packages/api-common/source/server.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; import { Plugin, @@ -9,7 +11,6 @@ import { } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { merge } from "@mainsail/utils"; import { readFileSync } from "fs"; diff --git a/packages/api-common/source/service-provider.ts b/packages/api-common/source/service-provider.ts index e2648f5208..538758b053 100644 --- a/packages/api-common/source/service-provider.ts +++ b/packages/api-common/source/service-provider.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { NamedPlugin, Plugin } from "@hapi/hapi"; import { Enums, Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import Joi from "joi"; diff --git a/packages/api-common/source/types.ts b/packages/api-common/source/types.ts new file mode 100644 index 0000000000..0fd7f3ccdd --- /dev/null +++ b/packages/api-common/source/types.ts @@ -0,0 +1,10 @@ +import type Hapi from "@hapi/hapi"; + +export interface RequestQuery { + // Restore previous type: + // https://github.com/hapijs/hapi/blob/a4ab15060c093cba58a5c568d5b1b1b3e123c5e3/lib/types/request.d.ts#L253C5-L253C24 + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any; +} + +export type HapiRequest = Hapi.Request<{ Query: RequestQuery }>; diff --git a/packages/api-common/source/utils/get-ip.ts b/packages/api-common/source/utils/get-ip.ts index 743f01786d..893e6395ec 100644 --- a/packages/api-common/source/utils/get-ip.ts +++ b/packages/api-common/source/utils/get-ip.ts @@ -1,8 +1,12 @@ import type { Request } from "@hapi/hapi"; +const headerToString = (value: string | string[] | undefined): string | undefined => + Array.isArray(value) ? value.join(",") : value; + export const getIp = (request: Request, trustProxy: boolean): string => { if (trustProxy) { - return request.headers["x-forwarded-for"]?.split(",")[0]?.trim() ?? request.info.remoteAddress; + const forwardedFor = headerToString(request.headers["x-forwarded-for"]); + return forwardedFor?.split(",")[0]?.trim() ?? request.info.remoteAddress; } return request.info.remoteAddress; diff --git a/packages/api-database/package.json b/packages/api-database/package.json index ea6f620242..4714941843 100644 --- a/packages/api-database/package.json +++ b/packages/api-database/package.json @@ -26,14 +26,14 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "dayjs": "1.11.13", - "pg": "8.16.3", - "typeorm": "0.3.26" + "dayjs": "1.11.20", + "pg": "8.20.0", + "typeorm": "0.3.28" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", - "@types/pg": "8.15.5", + "@types/pg": "8.20.0", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-database/source/migrations.ts b/packages/api-database/source/migrations.ts index 35615cf401..f67ab7a838 100644 --- a/packages/api-database/source/migrations.ts +++ b/packages/api-database/source/migrations.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DataSource, QueryFailedError } from "typeorm"; import { Migrations as ApiDatabaseContracts_Migrations } from "./contracts.js"; diff --git a/packages/api-database/source/models/index.ts b/packages/api-database/source/models/index.ts index 022e3ecb4d..5132610ebc 100644 --- a/packages/api-database/source/models/index.ts +++ b/packages/api-database/source/models/index.ts @@ -8,11 +8,11 @@ export * from "./peer.js"; export * from "./plugin.js"; export * from "./state.js"; export * from "./system.js"; -export * from "./token.js"; export * from "./token-action.js"; export * from "./token-holder.js"; export * from "./token-whitelist.js"; +export * from "./token.js"; export * from "./transaction.js"; export * from "./validator-round.js"; -export * from "./wallet.js"; export * from "./wallet-token-count.js"; +export * from "./wallet.js"; diff --git a/packages/api-database/source/repositories/api-node-repository.ts b/packages/api-database/source/repositories/api-node-repository.ts index b810073bdb..6166bc7936 100644 --- a/packages/api-database/source/repositories/api-node-repository.ts +++ b/packages/api-database/source/repositories/api-node-repository.ts @@ -1,7 +1,8 @@ import type { ApiNodeRepository, ApiNodeRepositoryExtension, RepositoryDataSource } from "../contracts.js"; +import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; + import { ApiNode } from "../models/api-node.js"; import { ApiNodeFilter } from "../search/filters/index.js"; -import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; export const makeApiNodeRepository = (dataSource: RepositoryDataSource): ApiNodeRepository => diff --git a/packages/api-database/source/repositories/block-repository.ts b/packages/api-database/source/repositories/block-repository.ts index c639079e32..cb85eb4869 100644 --- a/packages/api-database/source/repositories/block-repository.ts +++ b/packages/api-database/source/repositories/block-repository.ts @@ -1,7 +1,8 @@ import type { BlockRepository, BlockRepositoryExtension, RepositoryDataSource } from "../contracts.js"; +import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; + import { Block } from "../models/block.js"; import { BlockFilter } from "../search/filters/index.js"; -import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; export const makeBlockRepository = (dataSource: RepositoryDataSource): BlockRepository => diff --git a/packages/api-database/source/repositories/configuration-repository.ts b/packages/api-database/source/repositories/configuration-repository.ts index 2d2a86d29b..6b41f07e06 100644 --- a/packages/api-database/source/repositories/configuration-repository.ts +++ b/packages/api-database/source/repositories/configuration-repository.ts @@ -1,4 +1,5 @@ import type { ConfigurationRepository, ConfigurationRepositoryExtension, RepositoryDataSource } from "../contracts.js"; + import { Configuration } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/contract-repository.ts b/packages/api-database/source/repositories/contract-repository.ts index eba9e2caa1..51ac25c4b7 100644 --- a/packages/api-database/source/repositories/contract-repository.ts +++ b/packages/api-database/source/repositories/contract-repository.ts @@ -1,4 +1,5 @@ import type { ContractRepository, ContractRepositoryExtension, RepositoryDataSource } from "../contracts.js"; + import { Contract } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/legacy-cold-wallet-repository.ts b/packages/api-database/source/repositories/legacy-cold-wallet-repository.ts index 82636bddbb..6251594cc2 100644 --- a/packages/api-database/source/repositories/legacy-cold-wallet-repository.ts +++ b/packages/api-database/source/repositories/legacy-cold-wallet-repository.ts @@ -3,6 +3,7 @@ import type { LegacyColdWalletRepositoryExtension, RepositoryDataSource, } from "../contracts.js"; + import { LegacyColdWallet } from "../models/legacy-cold-wallet.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/multi-payment-repository.ts b/packages/api-database/source/repositories/multi-payment-repository.ts index 164437fab4..5bb3d84352 100644 --- a/packages/api-database/source/repositories/multi-payment-repository.ts +++ b/packages/api-database/source/repositories/multi-payment-repository.ts @@ -1,4 +1,5 @@ import type { MultiPaymentRepository, MultiPaymentRepositoryExtension, RepositoryDataSource } from "../contracts.js"; + import { MultiPayment } from "../models/multi-payments.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/peer-repository.ts b/packages/api-database/source/repositories/peer-repository.ts index d90fa1cf1f..e831a19815 100644 --- a/packages/api-database/source/repositories/peer-repository.ts +++ b/packages/api-database/source/repositories/peer-repository.ts @@ -1,7 +1,8 @@ import type { PeerRepository, PeerRepositoryExtension, RepositoryDataSource } from "../contracts.js"; +import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; + import { Peer } from "../models/peer.js"; import { PeerFilter } from "../search/filters/index.js"; -import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; export const makePeerRepository = (dataSource: RepositoryDataSource): PeerRepository => diff --git a/packages/api-database/source/repositories/plugin-repository.ts b/packages/api-database/source/repositories/plugin-repository.ts index a194ab3ee7..1a730c4356 100644 --- a/packages/api-database/source/repositories/plugin-repository.ts +++ b/packages/api-database/source/repositories/plugin-repository.ts @@ -1,4 +1,5 @@ import type { PluginRepository, PluginRepositoryExtension, RepositoryDataSource } from "../contracts.js"; + import { Plugin } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/repository-extension.ts b/packages/api-database/source/repositories/repository-extension.ts index 7e92ef7538..1fb169aa9a 100644 --- a/packages/api-database/source/repositories/repository-extension.ts +++ b/packages/api-database/source/repositories/repository-extension.ts @@ -6,10 +6,11 @@ import type { RepositoryExtension, ThisRepositoryExtension, } from "../contracts.js"; -import { QueryHelper } from "../search/index.js"; import type { Expression } from "../search/types/expressions.js"; import type { Expressions, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; +import { QueryHelper } from "../search/index.js"; + const getRepositoryExtension = (): RepositoryExtension & ThisRepositoryExtension => ({ addOrderBy(queryBuilder: SelectQueryBuilder, sorting: Sorting): void { diff --git a/packages/api-database/source/repositories/state-repository.ts b/packages/api-database/source/repositories/state-repository.ts index 7c9f1d2725..c5e6083efb 100644 --- a/packages/api-database/source/repositories/state-repository.ts +++ b/packages/api-database/source/repositories/state-repository.ts @@ -1,4 +1,5 @@ import type { RepositoryDataSource, StateRepository, StateRepositoryExtension } from "../contracts.js"; + import { State } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/system-repository.ts b/packages/api-database/source/repositories/system-repository.ts index a55d15a01d..66b66b3069 100644 --- a/packages/api-database/source/repositories/system-repository.ts +++ b/packages/api-database/source/repositories/system-repository.ts @@ -1,4 +1,5 @@ import type { RepositoryDataSource, SystemRepository, SystemRepositoryExtension } from "../contracts.js"; + import { System } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/token-action-repository.ts b/packages/api-database/source/repositories/token-action-repository.ts index 1c2d076dd1..a5759d4ec0 100644 --- a/packages/api-database/source/repositories/token-action-repository.ts +++ b/packages/api-database/source/repositories/token-action-repository.ts @@ -1,4 +1,5 @@ import type { RepositoryDataSource, TokenActionRepository, TokenActionRepositoryExtension } from "../contracts.js"; + import { TokenAction } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/token-holder-repository.ts b/packages/api-database/source/repositories/token-holder-repository.ts index 7e4bcda092..e9a9b13ed9 100644 --- a/packages/api-database/source/repositories/token-holder-repository.ts +++ b/packages/api-database/source/repositories/token-holder-repository.ts @@ -1,4 +1,5 @@ import type { RepositoryDataSource, TokenHolderRepository, TokenHolderRepositoryExtension } from "../contracts.js"; + import { TokenHolder } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/token-repository.ts b/packages/api-database/source/repositories/token-repository.ts index 28c0b8312c..13a86af1d5 100644 --- a/packages/api-database/source/repositories/token-repository.ts +++ b/packages/api-database/source/repositories/token-repository.ts @@ -1,4 +1,5 @@ import type { RepositoryDataSource, TokenRepository, TokenRepositoryExtension } from "../contracts.js"; + import { Token } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/token-whitelist-repository.ts b/packages/api-database/source/repositories/token-whitelist-repository.ts index 34914c7923..ba8cb31e83 100644 --- a/packages/api-database/source/repositories/token-whitelist-repository.ts +++ b/packages/api-database/source/repositories/token-whitelist-repository.ts @@ -3,6 +3,7 @@ import type { TokenWhitelistRepository, TokenWhitelistRepositoryExtension, } from "../contracts.js"; + import { TokenWhitelist } from "../models/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/transaction-repository.ts b/packages/api-database/source/repositories/transaction-repository.ts index 4c5989e618..742dd2cab8 100644 --- a/packages/api-database/source/repositories/transaction-repository.ts +++ b/packages/api-database/source/repositories/transaction-repository.ts @@ -7,9 +7,10 @@ import type { TransactionRepositoryExtension, WalletRepository, } from "../contracts.js"; +import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; + import { Transaction } from "../models/index.js"; import { TransactionFilter } from "../search/filters/transaction-filter.js"; -import type { Criteria, Options, Pagination, ResultsPage, Sorting } from "../search/types/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; export const makeTransactionRepository = (dataSource: RepositoryDataSource): TransactionRepository => diff --git a/packages/api-database/source/repositories/validator-round-repository.ts b/packages/api-database/source/repositories/validator-round-repository.ts index 55d46c4f67..079a943d69 100644 --- a/packages/api-database/source/repositories/validator-round-repository.ts +++ b/packages/api-database/source/repositories/validator-round-repository.ts @@ -3,6 +3,7 @@ import type { ValidatorRoundRepository, ValidatorRoundRepositoryExtension, } from "../contracts.js"; + import { ValidatorRound } from "../models/validator-round.js"; import { makeExtendedRepository } from "./repository-extension.js"; diff --git a/packages/api-database/source/repositories/wallet-repository.ts b/packages/api-database/source/repositories/wallet-repository.ts index e80a59b812..00cbb74d72 100644 --- a/packages/api-database/source/repositories/wallet-repository.ts +++ b/packages/api-database/source/repositories/wallet-repository.ts @@ -1,8 +1,9 @@ import type { RepositoryDataSource, WalletRepository, WalletRepositoryExtension } from "../contracts.js"; +import type { Criteria, Options, Pagination, ResultsPage, SortFragment, Sorting } from "../search/types/index.js"; + import { Wallet } from "../models/wallet.js"; import { WalletFilter } from "../search/filters/index.js"; import { ValidatorFilter } from "../search/filters/validator-filter.js"; -import type { Criteria, Options, Pagination, ResultsPage, SortFragment, Sorting } from "../search/types/index.js"; import { makeExtendedRepository } from "./repository-extension.js"; const convertToJsonbSorting = (sorting: Sorting, defaultSort: Sorting): Sorting => { diff --git a/packages/api-database/source/search/filters/api-node-filter.ts b/packages/api-database/source/search/filters/api-node-filter.ts index 0cacbe1730..c6ccd881ac 100644 --- a/packages/api-database/source/search/filters/api-node-filter.ts +++ b/packages/api-database/source/search/filters/api-node-filter.ts @@ -1,8 +1,9 @@ import type { ApiNode } from "../../models/index.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { ApiNodeCriteria, OrApiNodeCriteria } from "../types/criteria.js"; import type { Expression } from "../types/expressions.js"; +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; + export class ApiNodeFilter { public static async getExpression(...criteria: OrApiNodeCriteria[]): Promise> { const expressions = await Promise.all( diff --git a/packages/api-database/source/search/filters/block-filter.ts b/packages/api-database/source/search/filters/block-filter.ts index 95a2c77648..8f8f2fa474 100644 --- a/packages/api-database/source/search/filters/block-filter.ts +++ b/packages/api-database/source/search/filters/block-filter.ts @@ -1,8 +1,9 @@ import type { Block } from "../../models/block.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { BlockCriteria, OrBlockCriteria } from "../types/criteria.js"; import type { Expression } from "../types/expressions.js"; +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; + export class BlockFilter { public static async getExpression(...criteria: OrBlockCriteria[]): Promise> { const expressions = await Promise.all( diff --git a/packages/api-database/source/search/filters/peer-filter.ts b/packages/api-database/source/search/filters/peer-filter.ts index e9e07d566e..e945cc456d 100644 --- a/packages/api-database/source/search/filters/peer-filter.ts +++ b/packages/api-database/source/search/filters/peer-filter.ts @@ -1,8 +1,9 @@ import type { Peer } from "../../models/peer.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { OrPeerCriteria, PeerCriteria } from "../types/criteria.js"; import type { Expression } from "../types/expressions.js"; +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; + export class PeerFilter { public static async getExpression(...criteria: OrPeerCriteria[]): Promise> { const expressions = await Promise.all( diff --git a/packages/api-database/source/search/filters/transaction-filter.ts b/packages/api-database/source/search/filters/transaction-filter.ts index 5f6549a25c..48af97baac 100644 --- a/packages/api-database/source/search/filters/transaction-filter.ts +++ b/packages/api-database/source/search/filters/transaction-filter.ts @@ -1,9 +1,10 @@ import type { WalletRepository } from "../../contracts.js"; import type { Transaction } from "../../models/index.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { EqualCriteria, OrTransactionCriteria, TransactionCriteria } from "../types/criteria.js"; import type { Expression, MultiPaymentExpression } from "../types/expressions.js"; +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; + export class TransactionFilter { public static async getExpression( walletRepository: WalletRepository, diff --git a/packages/api-database/source/search/filters/validator-filter.ts b/packages/api-database/source/search/filters/validator-filter.ts index 8886b8cdde..d7ff7fa8e9 100644 --- a/packages/api-database/source/search/filters/validator-filter.ts +++ b/packages/api-database/source/search/filters/validator-filter.ts @@ -1,5 +1,4 @@ import type { Wallet } from "../../models/index.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { OrNumericCriteria, OrValidatorCriteria, @@ -10,6 +9,8 @@ import type { ValidatorResourceLastBlock, } from "../types/criteria.js"; import type { Expression, JsonFieldCastType } from "../types/expressions.js"; + +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import { WalletFilter } from "./wallet-filter.js"; export class ValidatorFilter { diff --git a/packages/api-database/source/search/filters/wallet-filter.ts b/packages/api-database/source/search/filters/wallet-filter.ts index 8cff4d1bab..7be905e676 100644 --- a/packages/api-database/source/search/filters/wallet-filter.ts +++ b/packages/api-database/source/search/filters/wallet-filter.ts @@ -1,10 +1,11 @@ import { isObject } from "@mainsail/utils"; import type { Wallet } from "../../models/index.js"; -import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; import type { EqualCriteria, NumericCriteria, OrWalletCriteria, WalletCriteria } from "../types/criteria.js"; import type { Expression, JsonFieldCastType, OrExpression } from "../types/expressions.js"; +import { handleAndCriteria, handleComparisonCriteria, handleOrCriteria, optimizeExpression } from "../search.js"; + export class WalletFilter { public static async getExpression(...criteria: OrWalletCriteria[]): Promise> { const expressions = await Promise.all( diff --git a/packages/api-database/source/utils/snake-naming-strategy.ts b/packages/api-database/source/utils/snake-naming-strategy.ts index cb17c5d502..4de6a26d41 100644 --- a/packages/api-database/source/utils/snake-naming-strategy.ts +++ b/packages/api-database/source/utils/snake-naming-strategy.ts @@ -2,6 +2,7 @@ // https://gist.github.com/recurrence/b6a4cb04a8ddf42eda4e4be520921bd2 import type { NamingStrategyInterface } from "typeorm"; + import { DefaultNamingStrategy } from "typeorm"; import { snakeCase } from "typeorm/util/StringUtils.js"; diff --git a/packages/api-development/package.json b/packages/api-development/package.json index 87bf49eb5c..cc1fd5d0f6 100644 --- a/packages/api-development/package.json +++ b/packages/api-development/package.json @@ -22,20 +22,20 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/api-common": "workspace:*", "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0", - "pretty-ms": "9.2.0", - "semver": "7.7.2" + "joi": "18.1.2", + "pretty-ms": "9.3.0", + "semver": "7.7.4" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-development/source/controllers/api-nodes.ts b/packages/api-development/source/controllers/api-nodes.ts index 1b81892d70..4889d211b6 100644 --- a/packages/api-development/source/controllers/api-nodes.ts +++ b/packages/api-development/source/controllers/api-nodes.ts @@ -1,7 +1,8 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { get } from "@mainsail/utils"; import { PeerResource } from "../resources/index.js"; @@ -12,7 +13,7 @@ export class ApiNodesController extends Controller { @inject(Identifiers.P2P.ApiNode.Repository) private readonly peerRepository!: Contracts.P2P.ApiNodeRepository; - public async index(request: Hapi.Request): Promise> { + public async index(request: Types.HapiRequest): Promise> { const allPeers: Contracts.P2P.ApiNode[] = [...this.peerRepository.getApiNodes()]; let results = allPeers; diff --git a/packages/api-development/source/controllers/blockchain.ts b/packages/api-development/source/controllers/blockchain.ts index 71e1fc91a2..fa564c362c 100644 --- a/packages/api-development/source/controllers/blockchain.ts +++ b/packages/api-development/source/controllers/blockchain.ts @@ -1,11 +1,12 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; + import { injectable } from "@mainsail/container"; import { Controller } from "./controller.js"; @injectable() export class BlockchainController extends Controller { - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const block = this.stateStore.getLastBlock(); return { diff --git a/packages/api-development/source/controllers/blocks.ts b/packages/api-development/source/controllers/blocks.ts index 0ebe0a2efd..016196e4f2 100644 --- a/packages/api-development/source/controllers/blocks.ts +++ b/packages/api-development/source/controllers/blocks.ts @@ -1,8 +1,9 @@ +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockResource } from "../resources/index.js"; import { Controller } from "./controller.js"; @@ -13,7 +14,7 @@ export class BlocksController extends Controller { private readonly database!: Contracts.Database.DatabaseService; public async index( - request: Hapi.Request, + request: Types.HapiRequest, ): Promise> | Boom.Boom> { const lastBlock = this.stateStore.getLastBlock(); @@ -34,18 +35,24 @@ export class BlocksController extends Controller { ); } - public async first(request: Hapi.Request): Promise<{ data: ReturnType } | Boom.Boom> { + public async first( + request: Types.HapiRequest, + ): Promise<{ data: ReturnType } | Boom.Boom> { const commit = this.stateStore.getGenesisCommit(); return this.respondWithResource(commit.block, BlockResource); } - public async last(request: Hapi.Request): Promise<{ data: ReturnType } | Boom.Boom> { + public async last( + request: Types.HapiRequest, + ): Promise<{ data: ReturnType } | Boom.Boom> { const block = this.stateStore.getLastBlock(); return this.respondWithResource(block, BlockResource); } - public async show(request: Hapi.Request): Promise<{ data: ReturnType } | Boom.Boom> { + public async show( + request: Types.HapiRequest, + ): Promise<{ data: ReturnType } | Boom.Boom> { const block = await this.getBlock(request.params.id); if (!block) { diff --git a/packages/api-development/source/controllers/consensus.ts b/packages/api-development/source/controllers/consensus.ts index e956b4bdd4..db531dd423 100644 --- a/packages/api-development/source/controllers/consensus.ts +++ b/packages/api-development/source/controllers/consensus.ts @@ -1,7 +1,8 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Controller } from "./controller.js"; @@ -16,7 +17,7 @@ export class ConsensusController extends Controller { @inject(Identifiers.ValidatorSet.Service) private readonly validatorSet!: Contracts.ValidatorSet.Service; - public async state(request: Hapi.Request): Promise { + public async state(request: Types.HapiRequest): Promise { const state = this.consensus.getState(); const roundStates = this.roundStateRepository.getRoundStates(); @@ -55,16 +56,10 @@ export class ConsensusController extends Controller { return { data: { blockNumber: state.blockNumber, - round: state.round, - step: state.step, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix - lockedRound: state.lockedRound, lockedValue: state.lockedValue ? state.lockedValue.getProposal()?.blockHeader.hash : null, - validRound: state.validRound, - validValue: state.validValue ? state.validValue.getProposal()?.blockHeader.hash : null, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix - precommits: collectMessages(precommits.sort((a, b) => b.round - a.round)), prevotes: collectMessages(prevotes.sort((a, b) => b.round - a.round)), + // eslint-disable-next-line perfectionist/sort-objects + lockedRound: state.lockedRound, proposals: proposals .sort((a, b) => b.round - a.round) .map((p) => ({ @@ -72,6 +67,12 @@ export class ConsensusController extends Controller { lockProof: p.lockProof, name: validators[p.validatorIndex].toString(), })), + round: state.round, + step: state.step, + // eslint-disable-next-line perfectionist/sort-objects + precommits: collectMessages(precommits.sort((a, b) => b.round - a.round)), + validRound: state.validRound, + validValue: state.validValue ? state.validValue.getProposal()?.blockHeader.hash : null, // validators: validators.map((v) => ({ // index: this.validatorSet.getValidatorIndexByWalletPublicKey(v.getWalletPublicKey()), diff --git a/packages/api-development/source/controllers/controller.ts b/packages/api-development/source/controllers/controller.ts index cb06da2371..a15c42d552 100644 --- a/packages/api-development/source/controllers/controller.ts +++ b/packages/api-development/source/controllers/controller.ts @@ -1,8 +1,9 @@ +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { SchemaObject } from "../schemas.js"; @@ -18,14 +19,14 @@ export class Controller { @inject(Identifiers.State.Store) protected readonly stateStore!: Contracts.State.Store; - protected getQueryPagination(query: Hapi.RequestQuery): Contracts.Api.Pagination { + protected getQueryPagination(query: Types.RequestQuery): Contracts.Api.Pagination { return { limit: query.limit, offset: (query.page - 1) * query.limit || 0, }; } - protected getQueryCriteria(query: Hapi.RequestQuery, schemaObject: SchemaObject): unknown { + protected getQueryCriteria(query: Types.RequestQuery, schemaObject: SchemaObject): unknown { const schemaObjectKeys = Object.keys(schemaObject); const criteria = {}; for (const [key, value] of Object.entries(query)) { @@ -36,7 +37,7 @@ export class Controller { return criteria; } - protected getListingPage(request: Hapi.Request): Contracts.Api.Pagination { + protected getListingPage(request: Types.HapiRequest): Contracts.Api.Pagination { const pagination = { limit: request.query.limit || 100, offset: (request.query.page - 1) * request.query.limit || 0, @@ -49,7 +50,7 @@ export class Controller { return pagination; } - protected getListingOrder(request: Hapi.Request): Contracts.Api.Sorting { + protected getListingOrder(request: Types.HapiRequest): Contracts.Api.Sorting { if (!request.query.orderBy) { return []; } diff --git a/packages/api-development/source/controllers/node.ts b/packages/api-development/source/controllers/node.ts index 7af1f806fc..649b3b081a 100644 --- a/packages/api-development/source/controllers/node.ts +++ b/packages/api-development/source/controllers/node.ts @@ -1,7 +1,8 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Controller } from "./controller.js"; @@ -13,7 +14,7 @@ export class NodeController extends Controller { @inject(Identifiers.Cryptography.Configuration) private readonly configuration!: Contracts.Crypto.Configuration; - public async status(request: Hapi.Request): Promise { + public async status(request: Types.HapiRequest): Promise { const lastBlock = this.stateStore.getLastBlock(); const networkBlockNumber = this.p2pService.getNetworkBlockNumberPercentile(90); @@ -26,7 +27,7 @@ export class NodeController extends Controller { }; } - public async configurationNode(request: Hapi.Request): Promise { + public async configurationNode(request: Types.HapiRequest): Promise { const network = this.configuration.all()!.network; return { @@ -45,7 +46,7 @@ export class NodeController extends Controller { }; } - public async configurationCrypto(request: Hapi.Request): Promise { + public async configurationCrypto(request: Types.HapiRequest): Promise { return { data: this.configuration.all(), }; diff --git a/packages/api-development/source/controllers/peers.ts b/packages/api-development/source/controllers/peers.ts index 42cc739f57..7521bed787 100644 --- a/packages/api-development/source/controllers/peers.ts +++ b/packages/api-development/source/controllers/peers.ts @@ -1,8 +1,9 @@ +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { get, orderBy } from "@mainsail/utils"; import semver from "semver"; @@ -18,7 +19,7 @@ export class PeersController extends Controller { private readonly peerDisposer!: Contracts.P2P.PeerDisposer; public async index( - request: Hapi.Request, + request: Types.HapiRequest, ): Promise> | Boom.Boom> { const allPeers: Contracts.P2P.Peer[] = [...this.peerRepository.getPeers()]; @@ -91,7 +92,9 @@ export class PeersController extends Controller { return super.toPagination(resultsPage, PeerResource); } - public async show(request: Hapi.Request): Promise<{ data: ReturnType } | Boom.Boom> { + public async show( + request: Types.HapiRequest, + ): Promise<{ data: ReturnType } | Boom.Boom> { if (!this.peerRepository.hasPeer(request.params.ip)) { return Boom.notFound("Peer not found"); } @@ -100,7 +103,7 @@ export class PeersController extends Controller { } public async banned( - request: Hapi.Request, + request: Types.HapiRequest, ): Promise> | Boom.Boom> { const result = this.peerDisposer.bannedPeers(); diff --git a/packages/api-development/source/controllers/round.ts b/packages/api-development/source/controllers/round.ts index c277ccf389..3acaa34342 100644 --- a/packages/api-development/source/controllers/round.ts +++ b/packages/api-development/source/controllers/round.ts @@ -1,7 +1,8 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Controller } from "./controller.js"; @@ -16,7 +17,7 @@ export class RoundController extends Controller { @inject(Identifiers.BlockchainUtils.RoundCalculator) private readonly roundCalculator!: Contracts.BlockchainUtils.RoundCalculator; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const roundValidators = this.validatorSet.getRoundValidators(); const orderedValidators = Array.from( diff --git a/packages/api-development/source/controllers/statistic.ts b/packages/api-development/source/controllers/statistic.ts index 986f2d4728..d1c0db7589 100644 --- a/packages/api-development/source/controllers/statistic.ts +++ b/packages/api-development/source/controllers/statistic.ts @@ -1,8 +1,9 @@ +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Controller } from "./controller.js"; @@ -11,22 +12,24 @@ export class StatisticController extends Controller { @inject(Identifiers.P2P.Statistic.Service) private readonly staticService!: Contracts.P2P.StatisticService; - public async index(request: Hapi.Request): Promise<{ round: string; general: Contracts.P2P.GeneralStatistic }[]> { + public async index( + request: Types.HapiRequest, + ): Promise<{ round: string; general: Contracts.P2P.GeneralStatistic }[]> { return this.staticService.getRoundStatisticList().map((id) => { const statistic = this.staticService.getRoundStatistic(id)!; return { round: `${statistic.height}-${statistic.round}`, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + // eslint-disable-next-line perfectionist/sort-objects general: statistic.getGeneralStatistic(), }; }); } - public async list(request: Hapi.Request): Promise { + public async list(request: Types.HapiRequest): Promise { return this.staticService.getRoundStatisticList(); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const { id } = request.params as { id: string }; const statistic = this.staticService.getRoundStatistic(id); @@ -35,18 +38,18 @@ export class StatisticController extends Controller { } return { - round: `${statistic.height}-${statistic.round}`, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + pings: statistic.getPingStatistics(), + // eslint-disable-next-line perfectionist/sort-objects general: statistic.getGeneralStatistic(), - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + // eslint-disable-next-line perfectionist/sort-objects emits: statistic.getEmitStatistics(), - pings: statistic.getPingStatistics(), - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + round: `${statistic.height}-${statistic.round}`, + // eslint-disable-next-line perfectionist/sort-objects peers: statistic.getPeerStatistics(), }; } - public async latest(request: Hapi.Request): Promise { + public async latest(request: Types.HapiRequest): Promise { const list = this.staticService.getRoundStatisticList(); if (list.length === 0) { return Boom.notFound("No statistics available"); @@ -59,13 +62,13 @@ export class StatisticController extends Controller { } return { - round: `${statistic.height}-${statistic.round}`, - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + pings: statistic.getPingStatistics(), + // eslint-disable-next-line perfectionist/sort-objects general: statistic.getGeneralStatistic(), - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + // eslint-disable-next-line perfectionist/sort-objects emits: statistic.getEmitStatistics(), - pings: statistic.getPingStatistics(), - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + round: `${statistic.height}-${statistic.round}`, + // eslint-disable-next-line perfectionist/sort-objects peers: statistic.getPeerStatistics(), }; } diff --git a/packages/api-development/source/resources/banned-peer.ts b/packages/api-development/source/resources/banned-peer.ts index a85151e574..61687e2452 100644 --- a/packages/api-development/source/resources/banned-peer.ts +++ b/packages/api-development/source/resources/banned-peer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import prettyMilliseconds from "pretty-ms"; @injectable() diff --git a/packages/api-development/source/resources/block.ts b/packages/api-development/source/resources/block.ts index 785224e57d..27c5f75621 100644 --- a/packages/api-development/source/resources/block.ts +++ b/packages/api-development/source/resources/block.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class BlockResource implements Contracts.Api.Resource { public raw(resource: Contracts.Crypto.Block): object { diff --git a/packages/api-development/source/resources/peer.ts b/packages/api-development/source/resources/peer.ts index 4516581b04..f5165c30a7 100644 --- a/packages/api-development/source/resources/peer.ts +++ b/packages/api-development/source/resources/peer.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class PeerResource implements Contracts.Api.Resource { public raw(resource: Contracts.P2P.Peer): object { diff --git a/packages/api-development/source/routes/api-nodes.ts b/packages/api-development/source/routes/api-nodes.ts index a34f882ec9..f97df4134a 100644 --- a/packages/api-development/source/routes/api-nodes.ts +++ b/packages/api-development/source/routes/api-nodes.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { ApiNodesController } from "../controllers/api-nodes.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { diff --git a/packages/api-development/source/routes/blockchain.ts b/packages/api-development/source/routes/blockchain.ts index 3a9c3fac23..7df2fab787 100644 --- a/packages/api-development/source/routes/blockchain.ts +++ b/packages/api-development/source/routes/blockchain.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { BlockchainController } from "../controllers/blockchain.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", path: "/blockchain", }); diff --git a/packages/api-development/source/routes/blocks.ts b/packages/api-development/source/routes/blocks.ts index f58d235695..e1b7d60ae4 100644 --- a/packages/api-development/source/routes/blocks.ts +++ b/packages/api-development/source/routes/blocks.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { BlocksController } from "../controllers/blocks.js"; @@ -10,7 +11,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -28,7 +29,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.first(request), + handler: (request: Types.HapiRequest) => controller.first(request), method: "GET", options: { validate: { @@ -41,7 +42,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.last(request), + handler: (request: Types.HapiRequest) => controller.last(request), method: "GET", options: { validate: { @@ -54,7 +55,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { diff --git a/packages/api-development/source/routes/consensus.ts b/packages/api-development/source/routes/consensus.ts index d0ed78d592..61afc4715b 100644 --- a/packages/api-development/source/routes/consensus.ts +++ b/packages/api-development/source/routes/consensus.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { ConsensusController } from "../controllers/consensus.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.state(request), + handler: (request: Types.HapiRequest) => controller.state(request), method: "GET", path: "/consensus/state", }); diff --git a/packages/api-development/source/routes/node.ts b/packages/api-development/source/routes/node.ts index 506703c547..f9eaf0a992 100644 --- a/packages/api-development/source/routes/node.ts +++ b/packages/api-development/source/routes/node.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { NodeController } from "../controllers/node.js"; @@ -8,19 +8,19 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.status(request), + handler: (request: Types.HapiRequest) => controller.status(request), method: "GET", path: "/node/status", }); server.route({ - handler: (request: Hapi.Request) => controller.configurationNode(request), + handler: (request: Types.HapiRequest) => controller.configurationNode(request), method: "GET", path: "/node/configuration", }); server.route({ - handler: (request: Hapi.Request) => controller.configurationCrypto(request), + handler: (request: Types.HapiRequest) => controller.configurationCrypto(request), method: "GET", path: "/node/configuration/crypto", }); diff --git a/packages/api-development/source/routes/peers.ts b/packages/api-development/source/routes/peers.ts index 04234b53de..06f95cd1a4 100644 --- a/packages/api-development/source/routes/peers.ts +++ b/packages/api-development/source/routes/peers.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { PeersController } from "../controllers/peers.js"; @@ -10,7 +11,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -30,7 +31,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -43,7 +44,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.banned(request), + handler: (request: Types.HapiRequest) => controller.banned(request), method: "GET", options: { plugins: { diff --git a/packages/api-development/source/routes/round.ts b/packages/api-development/source/routes/round.ts index c7942e0020..d57a516ff6 100644 --- a/packages/api-development/source/routes/round.ts +++ b/packages/api-development/source/routes/round.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { RoundController } from "../controllers/round.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", path: "/round", }); diff --git a/packages/api-development/source/routes/statistic.ts b/packages/api-development/source/routes/statistic.ts index 3aee74a7e3..b80364dda7 100644 --- a/packages/api-development/source/routes/statistic.ts +++ b/packages/api-development/source/routes/statistic.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { StatisticController } from "../controllers/statistic.js"; @@ -9,19 +10,19 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", path: "/statistic", }); server.route({ - handler: (request: Hapi.Request) => controller.list(request), + handler: (request: Types.HapiRequest) => controller.list(request), method: "GET", path: "/statistic/list", }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -34,7 +35,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.latest(request), + handler: (request: Types.HapiRequest) => controller.latest(request), method: "GET", path: "/statistic/latest", }); diff --git a/packages/api-development/source/server.ts b/packages/api-development/source/server.ts index 760bb43b3d..926bf561e6 100644 --- a/packages/api-development/source/server.ts +++ b/packages/api-development/source/server.ts @@ -1,9 +1,10 @@ -import { badData } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + +import { badData } from "@hapi/boom"; import { AbstractServer } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Server extends AbstractServer { diff --git a/packages/api-evm/package.json b/packages/api-evm/package.json index 609b3ea948..a21e430a45 100644 --- a/packages/api-evm/package.json +++ b/packages/api-evm/package.json @@ -22,17 +22,17 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/api-common": "workspace:*", "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", - "dayjs": "1.11.13", - "joi": "18.0.0", - "viem": "2.34.0" + "ajv": "8.18.0", + "dayjs": "1.11.20", + "joi": "18.1.2", + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", @@ -40,7 +40,7 @@ "@mainsail/crypto-block": "workspace:*", "@mainsail/test-runner": "workspace:*", "@mainsail/validation": "workspace:*", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-evm/source/actions/eth-block-number.ts b/packages/api-evm/source/actions/eth-block-number.ts index 82457ca704..2b6508b2bc 100644 --- a/packages/api-evm/source/actions/eth-block-number.ts +++ b/packages/api-evm/source/actions/eth-block-number.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthBlockNumberAction implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/eth-call.ts b/packages/api-evm/source/actions/eth-call.ts index 9a8188f72f..fbcc9ba922 100644 --- a/packages/api-evm/source/actions/eth-call.ts +++ b/packages/api-evm/source/actions/eth-call.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; import dayjs from "dayjs"; import { zeroAddress } from "viem"; @@ -107,7 +108,7 @@ export class CallAction implements Contracts.Api.RPC.Action<[TxData, Contracts.C #getGasPrice(data: TxData, milestone: Contracts.Crypto.Milestone): bigint { const { - gas: { minimumGasPrice, maximumGasPrice }, + gas: { maximumGasPrice, minimumGasPrice }, } = milestone; // Accept 0 gas price for view calls diff --git a/packages/api-evm/source/actions/eth-chain-id.ts b/packages/api-evm/source/actions/eth-chain-id.ts index 2b4de7ee95..4f49e84d92 100644 --- a/packages/api-evm/source/actions/eth-chain-id.ts +++ b/packages/api-evm/source/actions/eth-chain-id.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthChainIdAction implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/eth-estimate-gas.ts b/packages/api-evm/source/actions/eth-estimate-gas.ts index 0ba8e0ea5c..47d361e802 100644 --- a/packages/api-evm/source/actions/eth-estimate-gas.ts +++ b/packages/api-evm/source/actions/eth-estimate-gas.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; import dayjs from "dayjs"; @@ -62,7 +63,7 @@ export class EthEstimateGasAction implements Contracts.Api.RPC.Action<[TxData]> const [data] = parameters; - const { evmSpec, block, gas } = this.configuration.getMilestone(); + const { block, evmSpec, gas } = this.configuration.getMilestone(); const accountInfo = await this.evm.getAccountInfo(data.from); @@ -97,7 +98,7 @@ export class EthEstimateGasAction implements Contracts.Api.RPC.Action<[TxData]> }; // Execute with max allowed gas limit - let { success, receipt, executionError } = await this.#execute(context); + let { executionError, receipt, success } = await this.#execute(context); if (executionError) { throw new RpcError(`execution reverted: ${executionError}`); } @@ -118,7 +119,7 @@ export class EthEstimateGasAction implements Contracts.Api.RPC.Action<[TxData]> // check that gas amount and use as a limit for the binary search. const optimisticGasLimit = (receipt.gasUsed + receipt.gasRefunded + 2300n) * (64n / 63n); if (optimisticGasLimit < maxGasLimit) { - const { success, executionError } = await this.#execute({ ...context, gasLimit: optimisticGasLimit }); + const { executionError, success } = await this.#execute({ ...context, gasLimit: optimisticGasLimit }); if (executionError) { // This should not happen under normal conditions since if we make it this far the // transaction had run without error at least once before. @@ -149,7 +150,7 @@ export class EthEstimateGasAction implements Contracts.Api.RPC.Action<[TxData]> midGasLimit = minGasLimit * 2n; } - ({ success, executionError } = await this.#execute({ ...context, gasLimit: midGasLimit })); + ({ executionError, success } = await this.#execute({ ...context, gasLimit: midGasLimit })); if (executionError) { throw new RpcError(`execution reverted: ${executionError}`); } diff --git a/packages/api-evm/source/actions/eth-gas-price.ts b/packages/api-evm/source/actions/eth-gas-price.ts index f52e0be934..ef2142df46 100644 --- a/packages/api-evm/source/actions/eth-gas-price.ts +++ b/packages/api-evm/source/actions/eth-gas-price.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthGasPriceAction implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/eth-get-balance.ts b/packages/api-evm/source/actions/eth-get-balance.ts index da92cb9a91..1db485972d 100644 --- a/packages/api-evm/source/actions/eth-get-balance.ts +++ b/packages/api-evm/source/actions/eth-get-balance.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getHistoryHeightFromBlockTag } from "../utils/resolve-block-tag.js"; diff --git a/packages/api-evm/source/actions/eth-get-block-by-hash.ts b/packages/api-evm/source/actions/eth-get-block-by-hash.ts index edc8727c71..7783c4a457 100644 --- a/packages/api-evm/source/actions/eth-get-block-by-hash.ts +++ b/packages/api-evm/source/actions/eth-get-block-by-hash.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockResource } from "../resources/index.js"; diff --git a/packages/api-evm/source/actions/eth-get-block-by-number.ts b/packages/api-evm/source/actions/eth-get-block-by-number.ts index 66d9d8b752..3ecf988ad6 100644 --- a/packages/api-evm/source/actions/eth-get-block-by-number.ts +++ b/packages/api-evm/source/actions/eth-get-block-by-number.ts @@ -1,14 +1,15 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockResource } from "../resources/index.js"; import { resolveBlockTag } from "../utils/resolve-block-tag.js"; @injectable() -export class EthGetBlockByNumberAction - implements Contracts.Api.RPC.Action<[string | Contracts.Crypto.BlockTag, boolean]> -{ +export class EthGetBlockByNumberAction implements Contracts.Api.RPC.Action< + [string | Contracts.Crypto.BlockTag, boolean] +> { public readonly name: string = "eth_getBlockByNumber"; @inject(Identifiers.Application.Instance) diff --git a/packages/api-evm/source/actions/eth-get-block-transaction-count-by-hash.ts b/packages/api-evm/source/actions/eth-get-block-transaction-count-by-hash.ts index 2b101654f9..755cb13cd8 100644 --- a/packages/api-evm/source/actions/eth-get-block-transaction-count-by-hash.ts +++ b/packages/api-evm/source/actions/eth-get-block-transaction-count-by-hash.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthGetBlockTransactionCountByHash implements Contracts.Api.RPC.Action<[string]> { diff --git a/packages/api-evm/source/actions/eth-get-block-transaction-count-by-number.ts b/packages/api-evm/source/actions/eth-get-block-transaction-count-by-number.ts index c7975f6d3d..2b226bb9e9 100644 --- a/packages/api-evm/source/actions/eth-get-block-transaction-count-by-number.ts +++ b/packages/api-evm/source/actions/eth-get-block-transaction-count-by-number.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthGetBlockTransactionCountByNumber implements Contracts.Api.RPC.Action<[string]> { diff --git a/packages/api-evm/source/actions/eth-get-code.ts b/packages/api-evm/source/actions/eth-get-code.ts index dbf0f467e9..256c22459c 100644 --- a/packages/api-evm/source/actions/eth-get-code.ts +++ b/packages/api-evm/source/actions/eth-get-code.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getHistoryHeightFromBlockTag } from "../utils/resolve-block-tag.js"; diff --git a/packages/api-evm/source/actions/eth-get-storage-at.ts b/packages/api-evm/source/actions/eth-get-storage-at.ts index 90017afdec..e0e4d8f64a 100644 --- a/packages/api-evm/source/actions/eth-get-storage-at.ts +++ b/packages/api-evm/source/actions/eth-get-storage-at.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class EthGetStorageAtAction implements Contracts.Api.RPC.Action<[string, string, Contracts.Crypto.BlockTag]> { diff --git a/packages/api-evm/source/actions/eth-get-transaction-by-block-hash-and-index.ts b/packages/api-evm/source/actions/eth-get-transaction-by-block-hash-and-index.ts index 4b7f9c55c0..db4acb4ea9 100644 --- a/packages/api-evm/source/actions/eth-get-transaction-by-block-hash-and-index.ts +++ b/packages/api-evm/source/actions/eth-get-transaction-by-block-hash-and-index.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionResource } from "../resources/index.js"; diff --git a/packages/api-evm/source/actions/eth-get-transaction-by-block-number-and-index.ts b/packages/api-evm/source/actions/eth-get-transaction-by-block-number-and-index.ts index f5bf07cfbc..5e3497a6b8 100644 --- a/packages/api-evm/source/actions/eth-get-transaction-by-block-number-and-index.ts +++ b/packages/api-evm/source/actions/eth-get-transaction-by-block-number-and-index.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionResource } from "../resources/index.js"; diff --git a/packages/api-evm/source/actions/eth-get-transaction-by-hash.ts b/packages/api-evm/source/actions/eth-get-transaction-by-hash.ts index a633594e29..7257a5fd61 100644 --- a/packages/api-evm/source/actions/eth-get-transaction-by-hash.ts +++ b/packages/api-evm/source/actions/eth-get-transaction-by-hash.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionResource } from "../resources/index.js"; diff --git a/packages/api-evm/source/actions/eth-get-transaction-count.ts b/packages/api-evm/source/actions/eth-get-transaction-count.ts index 2236e6626e..5a454aad33 100644 --- a/packages/api-evm/source/actions/eth-get-transaction-count.ts +++ b/packages/api-evm/source/actions/eth-get-transaction-count.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getHistoryHeightFromBlockTag } from "../utils/resolve-block-tag.js"; diff --git a/packages/api-evm/source/actions/eth-get-transaction-receipt.ts b/packages/api-evm/source/actions/eth-get-transaction-receipt.ts index 265417316b..af632d7d56 100644 --- a/packages/api-evm/source/actions/eth-get-transaction-receipt.ts +++ b/packages/api-evm/source/actions/eth-get-transaction-receipt.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { ReceiptResource } from "../resources/index.js"; diff --git a/packages/api-evm/source/actions/eth-get-uncle-by-block-hash-and-index.ts b/packages/api-evm/source/actions/eth-get-uncle-by-block-hash-and-index.ts index fa9af37a86..d7c5903fbb 100644 --- a/packages/api-evm/source/actions/eth-get-uncle-by-block-hash-and-index.ts +++ b/packages/api-evm/source/actions/eth-get-uncle-by-block-hash-and-index.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/api-evm/source/actions/eth-get-uncle-by-block-number-and-index.ts b/packages/api-evm/source/actions/eth-get-uncle-by-block-number-and-index.ts index 855e3743f7..e67ec54f5b 100644 --- a/packages/api-evm/source/actions/eth-get-uncle-by-block-number-and-index.ts +++ b/packages/api-evm/source/actions/eth-get-uncle-by-block-number-and-index.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/api-evm/source/actions/eth-get-uncle-count-by-block-hash.ts b/packages/api-evm/source/actions/eth-get-uncle-count-by-block-hash.ts index 99dff9f194..67340afd70 100644 --- a/packages/api-evm/source/actions/eth-get-uncle-count-by-block-hash.ts +++ b/packages/api-evm/source/actions/eth-get-uncle-count-by-block-hash.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/api-evm/source/actions/eth-get-uncle-count-by-block-number.ts b/packages/api-evm/source/actions/eth-get-uncle-count-by-block-number.ts index 7b9fb51eb7..ef68347d9c 100644 --- a/packages/api-evm/source/actions/eth-get-uncle-count-by-block-number.ts +++ b/packages/api-evm/source/actions/eth-get-uncle-count-by-block-number.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/api-evm/source/actions/eth-send-raw-transaction.ts b/packages/api-evm/source/actions/eth-send-raw-transaction.ts index d2ace120ab..c275aa8ec1 100644 --- a/packages/api-evm/source/actions/eth-send-raw-transaction.ts +++ b/packages/api-evm/source/actions/eth-send-raw-transaction.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RpcError } from "@mainsail/exceptions"; import { Environment } from "@mainsail/kernel"; import { http } from "@mainsail/utils"; diff --git a/packages/api-evm/source/actions/net-listening.ts b/packages/api-evm/source/actions/net-listening.ts index b764a2e230..b2b3211e39 100644 --- a/packages/api-evm/source/actions/net-listening.ts +++ b/packages/api-evm/source/actions/net-listening.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NetListeningAction implements Contracts.Api.RPC.Action { public readonly name: string = "net_listening"; diff --git a/packages/api-evm/source/actions/net-peer-count.ts b/packages/api-evm/source/actions/net-peer-count.ts index 9c61145dff..fd268250d5 100644 --- a/packages/api-evm/source/actions/net-peer-count.ts +++ b/packages/api-evm/source/actions/net-peer-count.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class NetPeerCountAction implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/net-version.ts b/packages/api-evm/source/actions/net-version.ts index ef54f55335..af32828b7e 100644 --- a/packages/api-evm/source/actions/net-version.ts +++ b/packages/api-evm/source/actions/net-version.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class NetVersion implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/web3-client-version.ts b/packages/api-evm/source/actions/web3-client-version.ts index ba9a4f2aee..5398b09e85 100644 --- a/packages/api-evm/source/actions/web3-client-version.ts +++ b/packages/api-evm/source/actions/web3-client-version.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Web3ClientVersionAction implements Contracts.Api.RPC.Action { diff --git a/packages/api-evm/source/actions/web3-sha3.ts b/packages/api-evm/source/actions/web3-sha3.ts index e91b0c7984..732c6f4115 100644 --- a/packages/api-evm/source/actions/web3-sha3.ts +++ b/packages/api-evm/source/actions/web3-sha3.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { Hex, keccak256 } from "viem"; @injectable() diff --git a/packages/api-evm/source/resources/block.ts b/packages/api-evm/source/resources/block.ts index 96866f23ff..e8aaa0a432 100644 --- a/packages/api-evm/source/resources/block.ts +++ b/packages/api-evm/source/resources/block.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionResource } from "./transaction.js"; @@ -15,7 +16,7 @@ export class BlockResource { public async transform(block: Contracts.Crypto.Block, transactionObject: boolean): Promise { const milestone = this.configuration.getMilestone(block.number); - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ return { number: `0x${block.number.toString(16)}`, hash: `0x${block.hash}`, @@ -40,7 +41,7 @@ export class BlockResource { : block.transactions.map((transaction) => transaction.hash), uncles: [], }; - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ } async #transformTransactions(block: Contracts.Crypto.Block): Promise { diff --git a/packages/api-evm/source/resources/receipt.ts b/packages/api-evm/source/resources/receipt.ts index 1e57c54f8b..a57413bc3a 100644 --- a/packages/api-evm/source/resources/receipt.ts +++ b/packages/api-evm/source/resources/receipt.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class ReceiptResource { public async transform( @@ -8,7 +9,7 @@ export class ReceiptResource { header: Contracts.Crypto.BlockHeader, receipt: Contracts.Evm.TransactionReceipt, ): Promise { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ return { transactionHash: `0x${transaction.hash}`, transactionIndex: `0x${transaction.transactionIndex?.toString(16)}`, @@ -26,6 +27,6 @@ export class ReceiptResource { type: "0x0", status: receipt.status ? "0x1" : "0x0", }; - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ } } diff --git a/packages/api-evm/source/resources/transaction.ts b/packages/api-evm/source/resources/transaction.ts index da74e0aae6..f4d27633d5 100644 --- a/packages/api-evm/source/resources/transaction.ts +++ b/packages/api-evm/source/resources/transaction.ts @@ -1,10 +1,11 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class TransactionResource { public async transform(transaction: Contracts.Crypto.BlockTransaction): Promise { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ return { blockHash: `0x${transaction.blockHash}`, blockNumber: `0x${transaction.blockNumber?.toString(16)}`, @@ -24,6 +25,6 @@ export class TransactionResource { r: `0x${transaction.r}`, s: `0x${transaction.s}`, }; - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ } } diff --git a/packages/api-evm/source/routes/base.ts b/packages/api-evm/source/routes/base.ts index 99bad2cce2..29ea7887a9 100644 --- a/packages/api-evm/source/routes/base.ts +++ b/packages/api-evm/source/routes/base.ts @@ -1,7 +1,8 @@ import type Hapi from "@hapi/hapi"; -import { Units } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; +import { Units } from "@mainsail/constants"; + export const BaseRoute = { register(server: Contracts.Api.ApiServer): void { server.route({ diff --git a/packages/api-evm/source/server.ts b/packages/api-evm/source/server.ts index 4cc5e54155..de16485264 100644 --- a/packages/api-evm/source/server.ts +++ b/packages/api-evm/source/server.ts @@ -1,9 +1,10 @@ -import { badData } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + +import { badData } from "@hapi/boom"; import { AbstractServer } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Server extends AbstractServer { diff --git a/packages/api-evm/source/service-provider.ts b/packages/api-evm/source/service-provider.ts index 2af84ab3a0..c7b5127ca7 100644 --- a/packages/api-evm/source/service-provider.ts +++ b/packages/api-evm/source/service-provider.ts @@ -1,8 +1,9 @@ +import type { Contracts } from "@mainsail/contracts"; + import { NamedPlugin, Plugin } from "@hapi/hapi"; import { AbstractServiceProvider, Plugins, ServerConstructor } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; import { diff --git a/packages/api-http/integration/routes/blocks.test.ts b/packages/api-http/integration/routes/blocks.test.ts index 8208853fec..eb7e00e0c6 100644 --- a/packages/api-http/integration/routes/blocks.test.ts +++ b/packages/api-http/integration/routes/blocks.test.ts @@ -83,6 +83,9 @@ describe<{ }); it("/blocks/{id}/transactions - 404 (Not Found)", async () => { - await assert.rejects(async () => request(`/blocks/xxx/transactions`, options), "Response code 404 (Not Found)"); + await assert.rejects( + async () => request(`/blocks/xxx/transactions`, options), + "Request failed with status code 404", + ); }); }); diff --git a/packages/api-http/integration/routes/legacy.test.ts b/packages/api-http/integration/routes/legacy.test.ts index 59bb03fca9..14b4b8d64d 100644 --- a/packages/api-http/integration/routes/legacy.test.ts +++ b/packages/api-http/integration/routes/legacy.test.ts @@ -59,7 +59,7 @@ describe<{ await assert.rejects( async () => request(`/legacy/cold-wallets/${fake}`, options), - "Response code 404 (Not Found)", + "Request failed with status code 404", ); }); }); diff --git a/packages/api-http/integration/routes/receipts.test.ts b/packages/api-http/integration/routes/receipts.test.ts index 0ade9673c3..aa5ce9bec4 100644 --- a/packages/api-http/integration/routes/receipts.test.ts +++ b/packages/api-http/integration/routes/receipts.test.ts @@ -110,7 +110,7 @@ describe<{ assert.equal(data, result); } catch (ex) { assert.equal(expectedStatusCode, 404); - assert.equal(ex.message, "Response code 404 (Not Found)"); + assert.startsWith(ex.message, "Request failed with status code 404 (Not Found)"); } } }); diff --git a/packages/api-http/integration/routes/tokens.test.ts b/packages/api-http/integration/routes/tokens.test.ts index 3cc087402e..56bc33b9aa 100644 --- a/packages/api-http/integration/routes/tokens.test.ts +++ b/packages/api-http/integration/routes/tokens.test.ts @@ -103,7 +103,7 @@ describe<{ for (const { query, result } of testCases) { const endpoint = `/tokens${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -142,7 +142,7 @@ describe<{ for (const { query, result } of testCases) { const endpoint = `/tokens${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -190,7 +190,7 @@ describe<{ for (const { query, result } of testCases) { const endpoint = `/tokens${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, { ...options }); assert.equal(statusCode, result.statusCode); @@ -229,7 +229,7 @@ describe<{ for (const { token, result } of testCases) { const endpoint = `/tokens/${token.address}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -272,7 +272,7 @@ describe<{ for (const { token, result } of testCases) { const endpoint = `/tokens/${token.address}/holders`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -363,7 +363,7 @@ describe<{ for (const { query, result } of testCases) { const endpoint = `/tokens/transfers${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -399,7 +399,10 @@ describe<{ for (const { query, token, result } of testCases) { const endpoint = `/tokens/${token}/transfers${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects( + async () => request(endpoint, options), + "Request failed with status code 404 (Not Found)", + ); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); @@ -435,7 +438,7 @@ describe<{ for (const { query, token, result } of testCases) { const endpoint = `/tokens/${token}/approvals${query}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); diff --git a/packages/api-http/integration/routes/validator-rounds.test.ts b/packages/api-http/integration/routes/validator-rounds.test.ts index 21fdbc780a..30d352984e 100644 --- a/packages/api-http/integration/routes/validator-rounds.test.ts +++ b/packages/api-http/integration/routes/validator-rounds.test.ts @@ -80,7 +80,7 @@ describe<{ for (const { round, result } of testCases) { const endpoint = `/rounds/${round}`; if (result.statusCode === 404) { - await assert.rejects(async () => request(endpoint, options), "Response code 404 (Not Found)"); + await assert.rejects(async () => request(endpoint, options), "Request failed with status code 404"); } else { const { statusCode, data } = await request(endpoint, options); assert.equal(statusCode, result.statusCode); diff --git a/packages/api-http/integration/routes/validators.test.ts b/packages/api-http/integration/routes/validators.test.ts index 53a73a433c..87973f54a1 100644 --- a/packages/api-http/integration/routes/validators.test.ts +++ b/packages/api-http/integration/routes/validators.test.ts @@ -91,7 +91,7 @@ describe<{ await assert.rejects( async () => request(`/validators/0x0000000000000000000000000000000000000001/voters`, options), - "Response code 404 (Not Found)", + "Request failed with status code 404", ); const validator = validators[0]; diff --git a/packages/api-http/package.json b/packages/api-http/package.json index 8d709af365..c3f3b7d494 100644 --- a/packages/api-http/package.json +++ b/packages/api-http/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/api-common": "workspace:*", "@mainsail/api-database": "workspace:*", "@mainsail/constants": "workspace:*", @@ -32,15 +32,15 @@ "@mainsail/evm-contracts": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "dayjs": "1.11.13", - "joi": "18.0.0" + "dayjs": "1.11.20", + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/ip": "1.1.3", - "@types/semver": "7.7.0", - "got": "14.4.7", + "@types/semver": "7.7.1", + "got": "14.6.6", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-http/source/controllers/api-nodes.ts b/packages/api-http/source/controllers/api-nodes.ts index 9325df233a..ad72048238 100644 --- a/packages/api-http/source/controllers/api-nodes.ts +++ b/packages/api-http/source/controllers/api-nodes.ts @@ -1,4 +1,5 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -14,7 +15,7 @@ export class ApiNodesController extends Controller { @inject(ApiDatabaseIdentifiers.ApiNodeRepositoryFactory) private readonly apiNodeRepositoryFactory!: ApiDatabaseContracts.ApiNodeRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const criteria: Search.Criteria.ApiNodeCriteria = request.query; const sorting = this.getListingOrder(request); @@ -30,7 +31,7 @@ export class ApiNodesController extends Controller { return this.toPagination(apiNodes, ApiNodeResource); } - protected getListingOptions(_request: Hapi.Request): Search.Options { + protected getListingOptions(_request: Types.HapiRequest): Search.Options { return { estimateTotalCount: false, }; diff --git a/packages/api-http/source/controllers/blockchain.ts b/packages/api-http/source/controllers/blockchain.ts index 4a740858e2..319566a894 100644 --- a/packages/api-http/source/controllers/blockchain.ts +++ b/packages/api-http/source/controllers/blockchain.ts @@ -1,4 +1,5 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; @@ -9,7 +10,7 @@ export class BlockchainController extends Controller { @inject(ApiDatabaseIdentifiers.BlockRepositoryFactory) private readonly blockRepositoryFactory!: ApiDatabaseContracts.BlockRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const block = await this.blockRepositoryFactory().getLatest(); const state = await this.getState(); diff --git a/packages/api-http/source/controllers/blocks.ts b/packages/api-http/source/controllers/blocks.ts index 07e2809249..af2c326a12 100644 --- a/packages/api-http/source/controllers/blocks.ts +++ b/packages/api-http/source/controllers/blocks.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -20,7 +21,7 @@ export class BlocksController extends Controller { @inject(ApiDatabaseIdentifiers.TransactionRepositoryFactory) private readonly transactionRepositoryFactory!: ApiDatabaseContracts.TransactionRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.BlockCriteria = request.query; const pagination = this.getListingPage(request); const sorting = this.getListingOrder(request); @@ -50,7 +51,7 @@ export class BlocksController extends Controller { ); } - public async first(request: Hapi.Request): Promise { + public async first(request: Types.HapiRequest): Promise { const block = await this.blockRepositoryFactory() .createQueryBuilder() .select() @@ -60,7 +61,7 @@ export class BlocksController extends Controller { return this.respondEnrichedBlock(block, request); } - public async last(request: Hapi.Request): Promise { + public async last(request: Types.HapiRequest): Promise { const block = await this.blockRepositoryFactory() .createQueryBuilder() .select() @@ -71,7 +72,7 @@ export class BlocksController extends Controller { return this.respondEnrichedBlock(block, request); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const blockRepository = this.blockRepositoryFactory(); const blockCriteria = this.getBlockCriteriaByIdOrHeight(request.params.id); @@ -80,7 +81,7 @@ export class BlocksController extends Controller { return this.respondEnrichedBlock(block, request); } - public async transactions(request: Hapi.Request): Promise { + public async transactions(request: Types.HapiRequest): Promise { const blockCriteria = this.getBlockCriteriaByIdOrHeight(request.params.id); const block = await this.blockRepositoryFactory().findOneByCriteria(blockCriteria); @@ -112,7 +113,7 @@ export class BlocksController extends Controller { ); } - private async respondEnrichedBlock(block: Models.Block | null, request: Hapi.Request): Promise { + private async respondEnrichedBlock(block: Models.Block | null, request: Types.HapiRequest): Promise { return this.respondWithResource(await this.enrichBlock(block), BlockResource); } } diff --git a/packages/api-http/source/controllers/commits.ts b/packages/api-http/source/controllers/commits.ts index 5095148975..1290665e22 100644 --- a/packages/api-http/source/controllers/commits.ts +++ b/packages/api-http/source/controllers/commits.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; import { BigNumber, validatorSetUnpack } from "@mainsail/utils"; @@ -14,7 +15,7 @@ export class CommitsController extends Controller { @inject(ApiDatabaseIdentifiers.ValidatorRoundRepositoryFactory) private readonly validatorRoundRepositoryFactory!: ApiDatabaseContracts.ValidatorRoundRepositoryFactory; - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const blockRepository = this.blockRepositoryFactory(); const validatorRoundRepository = this.validatorRoundRepositoryFactory(); const blockCriteria = this.getBlockCriteriaByIdOrHeight(request.params.id); diff --git a/packages/api-http/source/controllers/contracts.ts b/packages/api-http/source/controllers/contracts.ts index 85b40a1d98..3395ad4c43 100644 --- a/packages/api-http/source/controllers/contracts.ts +++ b/packages/api-http/source/controllers/contracts.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; @@ -10,7 +11,7 @@ export class ContractsController extends Controller { @inject(ApiDatabaseIdentifiers.ContractRepositoryFactory) private readonly contractRepositoryFactory!: ApiDatabaseContracts.ContractRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const contractRepository = this.contractRepositoryFactory(); const contracts = await contractRepository.createQueryBuilder().orderBy("name").addOrderBy("address").getMany(); @@ -28,7 +29,7 @@ export class ContractsController extends Controller { }; } - public async abi(request: Hapi.Request): Promise { + public async abi(request: Types.HapiRequest): Promise { const contractRepository = this.contractRepositoryFactory(); const contract = await contractRepository diff --git a/packages/api-http/source/controllers/controller.ts b/packages/api-http/source/controllers/controller.ts index 53d8664e65..322d4e6750 100644 --- a/packages/api-http/source/controllers/controller.ts +++ b/packages/api-http/source/controllers/controller.ts @@ -1,5 +1,6 @@ -import Hapi from "@hapi/hapi"; -import { AbstractController } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + +import { AbstractController, Types } from "@mainsail/api-common"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -8,7 +9,6 @@ import { } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { @@ -36,7 +36,7 @@ export class Controller extends AbstractController { @inject(ApiDatabaseIdentifiers.WalletRepositoryFactory) protected readonly walletRepositoryFactory!: ApiDatabaseContracts.WalletRepositoryFactory; - protected getListingOptions(request: Hapi.Request): Search.Options { + protected getListingOptions(request: Types.HapiRequest): Search.Options { const estimateTotalCount = this.apiConfiguration.getOptional("options.estimateTotalCount", true); return { @@ -60,7 +60,7 @@ export class Controller extends AbstractController { protected async enrichBlockResult( resultPage: Search.ResultsPage, - { state, generators }: { state?: Models.State; generators: Record }, + { generators, state }: { state?: Models.State; generators: Record }, ): Promise> { state = state ?? (await this.getState()); diff --git a/packages/api-http/source/controllers/legacy.ts b/packages/api-http/source/controllers/legacy.ts index 56fe029041..d527166b33 100644 --- a/packages/api-http/source/controllers/legacy.ts +++ b/packages/api-http/source/controllers/legacy.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; @@ -11,7 +12,7 @@ export class LegacyController extends Controller { @inject(ApiDatabaseIdentifiers.LegacyColdWalletRepositoryFactory) private readonly legacyColdWalletRepositoryFactory!: ApiDatabaseContracts.LegacyColdWalletRepositoryFactory; - public async coldWallets(request: Hapi.Request): Promise { + public async coldWallets(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const [wallets, totalCount] = await this.legacyColdWalletRepositoryFactory() @@ -32,7 +33,7 @@ export class LegacyController extends Controller { ); } - public async showColdWallet(request: Hapi.Request): Promise { + public async showColdWallet(request: Types.HapiRequest): Promise { const legacyAddress = request.params.address; const wallet = await this.legacyColdWalletRepositoryFactory() diff --git a/packages/api-http/source/controllers/node.ts b/packages/api-http/source/controllers/node.ts index 34604e7d10..a97f497f34 100644 --- a/packages/api-http/source/controllers/node.ts +++ b/packages/api-http/source/controllers/node.ts @@ -1,11 +1,12 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, Models, } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs from "dayjs"; import { Controller } from "./controller.js"; @@ -21,7 +22,7 @@ export class NodeController extends Controller { @inject(ApiDatabaseIdentifiers.PeerRepositoryFactory) private readonly peerRepositoryFactory!: ApiDatabaseContracts.PeerRepositoryFactory; - public async status(request: Hapi.Request): Promise { + public async status(request: Types.HapiRequest): Promise { const state = await this.getState(); const peerBlockNumber = await this.peerRepositoryFactory().getPeerBlockNumberP90(); const ownBlockNumber = Number(state?.blockNumber ?? 0); @@ -36,7 +37,7 @@ export class NodeController extends Controller { }; } - public async syncing(request: Hapi.Request): Promise { + public async syncing(request: Types.HapiRequest): Promise { const state = await this.getState(); const peerBlockNumber = await this.peerRepositoryFactory().getPeerBlockNumberP90(); const ownBlockNumber = Number(state?.blockNumber ?? 0); @@ -51,7 +52,7 @@ export class NodeController extends Controller { }; } - public async fees(request: Hapi.Request): Promise { + public async fees(request: Types.HapiRequest): Promise { const configuration = await this.getConfiguration(); const cryptoConfiguration = configuration.cryptoConfiguration as Contracts.Crypto.NetworkConfig; const genesisTimestamp = cryptoConfiguration.genesisBlock.block.timestamp; @@ -70,7 +71,7 @@ export class NodeController extends Controller { return { data: grouped, meta: { days: request.query.days } }; } - public async configuration(request: Hapi.Request): Promise { + public async configuration(request: Types.HapiRequest): Promise { const configuration = await this.getConfiguration(); const plugins = await this.getPlugins(); @@ -94,7 +95,7 @@ export class NodeController extends Controller { }; } - public async configurationCrypto(request: Hapi.Request): Promise { + public async configurationCrypto(request: Types.HapiRequest): Promise { const configuration = await this.getConfiguration(); return { data: configuration?.cryptoConfiguration ?? {}, diff --git a/packages/api-http/source/controllers/peers.ts b/packages/api-http/source/controllers/peers.ts index 5e3a63716a..f2857ea952 100644 --- a/packages/api-http/source/controllers/peers.ts +++ b/packages/api-http/source/controllers/peers.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -15,7 +16,7 @@ export class PeersController extends Controller { @inject(ApiDatabaseIdentifiers.PeerRepositoryFactory) private readonly peerRepositoryFactory!: ApiDatabaseContracts.PeerRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const criteria: Search.Criteria.PeerCriteria = request.query; const sorting = this.getListingOrder(request); @@ -26,7 +27,7 @@ export class PeersController extends Controller { return this.toPagination(peers, PeerResource); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const ip = request.params.ip; const peer = await this.peerRepositoryFactory() @@ -42,7 +43,7 @@ export class PeersController extends Controller { return this.respondWithResource(peer, PeerResource); } - protected getListingOptions(_request: Hapi.Request): Search.Options { + protected getListingOptions(_request: Types.HapiRequest): Search.Options { return { estimateTotalCount: false, }; diff --git a/packages/api-http/source/controllers/receipts.ts b/packages/api-http/source/controllers/receipts.ts index d186392703..a9c0fb6d78 100644 --- a/packages/api-http/source/controllers/receipts.ts +++ b/packages/api-http/source/controllers/receipts.ts @@ -1,11 +1,12 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, Search, } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ReceiptResource } from "../resources/index.js"; import { Controller } from "./controller.js"; @@ -15,7 +16,7 @@ export class ReceiptsController extends Controller { @inject(ApiDatabaseIdentifiers.TransactionRepositoryFactory) private readonly transactionRepositoryFactory!: ApiDatabaseContracts.TransactionRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const criteria: Search.Criteria.ReceiptCriteria = request.query; const sorting = this.getListingOrder(request); @@ -48,7 +49,7 @@ export class ReceiptsController extends Controller { return this.toPagination(receipts, ReceiptResource); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const receipt = await this.transactionRepositoryFactory() .createQueryBuilder() .select(this.#getReceiptColumns(request.query.fullReceipt)) @@ -58,7 +59,7 @@ export class ReceiptsController extends Controller { return this.respondWithResource(receipt, ReceiptResource); } - public async contracts(request: Hapi.Request): Promise { + public async contracts(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.ReceiptCriteria = request.query; const pagination = this.getQueryPagination(request.query); const sorting = this.getListingOrder(request); @@ -84,7 +85,7 @@ export class ReceiptsController extends Controller { return this.toPagination(receipts, ReceiptResource); } - protected getListingOrder(_request: Hapi.Request): Contracts.Api.Sorting { + protected getListingOrder(_request: Types.HapiRequest): Contracts.Api.Sorting { return [ { direction: "desc", @@ -97,7 +98,7 @@ export class ReceiptsController extends Controller { ]; } - protected getListingOptions(request: Hapi.Request): Search.Options { + protected getListingOptions(request: Types.HapiRequest): Search.Options { const options = super.getListingOptions(request); return { diff --git a/packages/api-http/source/controllers/tokens.ts b/packages/api-http/source/controllers/tokens.ts index da6af1b6ef..909e787ba9 100644 --- a/packages/api-http/source/controllers/tokens.ts +++ b/packages/api-http/source/controllers/tokens.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -8,10 +9,10 @@ import { } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; -import { TokenResource } from "../resources/token.js"; import { TokenHolderResource } from "../resources/token-holder.js"; import { TokenTransferResource } from "../resources/token-transfer.js"; import { TokenWhitelistResource } from "../resources/token-whitelist.js"; +import { TokenResource } from "../resources/token.js"; import { Controller } from "./controller.js"; type TokenTransferRaw = { @@ -43,7 +44,7 @@ export class TokensController extends Controller { @inject(ApiDatabaseIdentifiers.TokenWhitelistRepositoryFactory) private readonly tokenWhitelistRepositoryFactory!: ApiDatabaseContracts.TokenWhitelistRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const tokensQuery = this.tokenRepositoryFactory().createQueryBuilder("tok").select(); @@ -68,7 +69,7 @@ export class TokensController extends Controller { ); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const token = await this.getToken(request.params.address); if (!token) { @@ -78,7 +79,7 @@ export class TokensController extends Controller { return this.respondWithResource(token, TokenResource); } - public async holders(request: Hapi.Request): Promise { + public async holders(request: Types.HapiRequest): Promise { const token = await this.getToken(request.params.address); if (!token) { @@ -103,23 +104,23 @@ export class TokensController extends Controller { ); } - public async transfers(request: Hapi.Request): Promise { + public async transfers(request: Types.HapiRequest): Promise { return this.getTokenActions(Models.TokenActionEnum.Transfer, request); } - public async tokenTransfers(request: Hapi.Request): Promise { + public async tokenTransfers(request: Types.HapiRequest): Promise { return this.getTokenActions(Models.TokenActionEnum.Transfer, request); } - public async approvals(request: Hapi.Request): Promise { + public async approvals(request: Types.HapiRequest): Promise { return this.getTokenActions(Models.TokenActionEnum.Approval, request); } - public async tokenApprovals(request: Hapi.Request): Promise { + public async tokenApprovals(request: Types.HapiRequest): Promise { return this.getTokenActions(Models.TokenActionEnum.Approval, request); } - public async whitelist(request: Hapi.Request): Promise { + public async whitelist(request: Types.HapiRequest): Promise { const pagination = this.getListingPage(request); const [tokenWhitelist, totalCount] = await this.tokenWhitelistRepositoryFactory() .createQueryBuilder() @@ -139,7 +140,7 @@ export class TokensController extends Controller { ); } - private async getTokenActions(action: Models.TokenActionEnum, request: Hapi.Request): Promise { + private async getTokenActions(action: Models.TokenActionEnum, request: Types.HapiRequest): Promise { const pagination = this.getListingPage(request); const tokenActionsQuery = this.tokenActionRepositoryFactory() .createQueryBuilder("tf") @@ -220,7 +221,7 @@ export class TokensController extends Controller { { meta: { totalCountIsEstimate: false }, results: tokenActionsRows.map((row) => ({ - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ transactionHash: row.transactionHash, from: row.from, to: row.to, @@ -234,7 +235,7 @@ export class TokensController extends Controller { symbol: row.tokenSymbol, decimals: row.tokenDecimals, }, - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ })), totalCount, }, @@ -252,7 +253,7 @@ export class TokensController extends Controller { public static andWhereWhitelisted( queryBuilder: TypeOrm.SelectQueryBuilder, - request: Hapi.Request, + request: Types.HapiRequest, ): void { if (request.query.ignoreWhitelist) { return; diff --git a/packages/api-http/source/controllers/transactions.ts b/packages/api-http/source/controllers/transactions.ts index ee87b7aca4..57ca4bc0fd 100644 --- a/packages/api-http/source/controllers/transactions.ts +++ b/packages/api-http/source/controllers/transactions.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -16,7 +17,7 @@ export class TransactionsController extends Controller { @inject(ApiDatabaseIdentifiers.TransactionRepositoryFactory) private readonly transactionRepositoryFactory!: ApiDatabaseContracts.TransactionRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.TransactionCriteria = request.query; const pagination = this.getListingPage(request); const sorting = this.getListingOrder(request); @@ -40,7 +41,7 @@ export class TransactionsController extends Controller { ); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const transaction = await this.transactionRepositoryFactory() .createQueryBuilder() .select() @@ -50,7 +51,7 @@ export class TransactionsController extends Controller { return this.respondEnrichedTransaction(transaction, request); } - private async respondEnrichedTransaction(transaction: Models.Transaction | null, request: Hapi.Request) { + private async respondEnrichedTransaction(transaction: Models.Transaction | null, request: Types.HapiRequest) { if (!transaction) { return Boom.notFound(); } diff --git a/packages/api-http/source/controllers/validator-rounds.ts b/packages/api-http/source/controllers/validator-rounds.ts index 1645a755a7..362799f317 100644 --- a/packages/api-http/source/controllers/validator-rounds.ts +++ b/packages/api-http/source/controllers/validator-rounds.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers } from "@mainsail/api-database"; import { inject, injectable } from "@mainsail/container"; @@ -12,7 +13,7 @@ export class ValidatorRoundsController extends Controller { @inject(ApiDatabaseIdentifiers.ValidatorRoundRepositoryFactory) private readonly validatorRoundRepositoryFactory!: ApiDatabaseContracts.ValidatorRoundRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const [validatorRounds, totalCount] = await this.validatorRoundRepositoryFactory() @@ -33,7 +34,7 @@ export class ValidatorRoundsController extends Controller { ); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const validatorRounds = await this.validatorRoundRepositoryFactory() .createQueryBuilder() .select() @@ -47,7 +48,7 @@ export class ValidatorRoundsController extends Controller { return this.respondWithResource(validatorRounds, ValidatorRoundResource); } - public async validators(request: Hapi.Request): Promise { + public async validators(request: Types.HapiRequest): Promise { const round = await this.validatorRoundRepositoryFactory() .createQueryBuilder() .select() diff --git a/packages/api-http/source/controllers/validators.ts b/packages/api-http/source/controllers/validators.ts index 3966796fd6..49fba879e0 100644 --- a/packages/api-http/source/controllers/validators.ts +++ b/packages/api-http/source/controllers/validators.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -18,7 +19,7 @@ export class ValidatorsController extends Controller { @inject(ApiDatabaseIdentifiers.BlockRepositoryFactory) private readonly blockRepositoryFactory!: ApiDatabaseContracts.BlockRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const pagination = this.getQueryPagination(request.query); const sorting = this.getListingOrder(request); const criteria = this.getQueryCriteria( @@ -37,7 +38,7 @@ export class ValidatorsController extends Controller { return this.toPagination(wallets, ValidatorResource); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const validator = await this.getWallet(walletId); @@ -48,7 +49,7 @@ export class ValidatorsController extends Controller { return this.respondWithResource(validator, ValidatorResource); } - public async voters(request: Hapi.Request): Promise { + public async voters(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const validator = await this.getWallet(walletId); @@ -79,7 +80,7 @@ export class ValidatorsController extends Controller { return this.toPagination(wallets, WalletResource); } - public async blocks(request: Hapi.Request): Promise { + public async blocks(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const validator = await this.getWallet(walletId); diff --git a/packages/api-http/source/controllers/votes.ts b/packages/api-http/source/controllers/votes.ts index 1b88e191d8..741b65dd8f 100644 --- a/packages/api-http/source/controllers/votes.ts +++ b/packages/api-http/source/controllers/votes.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -16,7 +17,7 @@ export class VotesController extends Controller { @inject(ApiDatabaseIdentifiers.TransactionRepositoryFactory) private readonly transactionRepositoryFactory!: ApiDatabaseContracts.TransactionRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.TransactionCriteria = { ...request.query, data: FunctionSigs.ConsensusV1.Vote, @@ -41,7 +42,7 @@ export class VotesController extends Controller { ); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const transaction = await this.transactionRepositoryFactory() .createQueryBuilder() .select() diff --git a/packages/api-http/source/controllers/wallets.ts b/packages/api-http/source/controllers/wallets.ts index 60b33eea36..6316de0774 100644 --- a/packages/api-http/source/controllers/wallets.ts +++ b/packages/api-http/source/controllers/wallets.ts @@ -1,5 +1,6 @@ +import type { Types } from "@mainsail/api-common"; + import Boom from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -40,7 +41,7 @@ export class WalletsController extends Controller { @inject(ApiDatabaseIdentifiers.TokenHolderRepositoryFactory) private readonly tokenHolderRepositoryFactory!: ApiDatabaseContracts.TokenHolderRepositoryFactory; - public async index(request: Hapi.Request): Promise { + public async index(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.WalletCriteria = request.query; const pagination = this.getQueryPagination(request.query); const sorting = this.getListingOrder(request); @@ -51,7 +52,7 @@ export class WalletsController extends Controller { return this.toPagination(wallets, WalletResource); } - public async top(request: Hapi.Request): Promise { + public async top(request: Types.HapiRequest): Promise { const criteria: Search.Criteria.WalletCriteria = request.query; const pagination = this.getQueryPagination(request.query); const sorting = this.getListingOrder(request); @@ -62,7 +63,7 @@ export class WalletsController extends Controller { return this.toPagination(wallets, WalletResource); } - public async show(request: Hapi.Request): Promise { + public async show(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); @@ -70,7 +71,7 @@ export class WalletsController extends Controller { return this.respondWithResource(wallet, WalletResource); } - public async transactions(request: Hapi.Request): Promise { + public async transactions(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); @@ -81,7 +82,7 @@ export class WalletsController extends Controller { return this.getTransactions(request, { address: wallet.address }); } - public async transactionsSent(request: Hapi.Request): Promise { + public async transactionsSent(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); @@ -96,7 +97,7 @@ export class WalletsController extends Controller { return this.getTransactions(request, { senderPublicKey: wallet.publicKey }); } - public async transactionsReceived(request: Hapi.Request): Promise { + public async transactionsReceived(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); @@ -107,7 +108,7 @@ export class WalletsController extends Controller { return this.getTransactions(request, { to: wallet.address }); } - public async votes(request: Hapi.Request): Promise { + public async votes(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); @@ -125,7 +126,7 @@ export class WalletsController extends Controller { }); } - public async tokens(request: Hapi.Request): Promise { + public async tokens(request: Types.HapiRequest): Promise { if (!request.query.addresses) { return this.getEmptyPage(); } @@ -250,13 +251,13 @@ export class WalletsController extends Controller { ); } - public async tokensShow(request: Hapi.Request): Promise { + public async tokensShow(request: Types.HapiRequest): Promise { const walletId = request.params.id as string; const wallet = await this.getWallet(walletId); return this.getTokens(request, wallet?.address ?? walletId); } - private async getTransactions(request: Hapi.Request, criteria: Search.Criteria.TransactionCriteria) { + private async getTransactions(request: Types.HapiRequest, criteria: Search.Criteria.TransactionCriteria) { const pagination = this.getListingPage(request); const sorting = this.getListingOrder(request); const options = this.getListingOptions(request); @@ -281,7 +282,7 @@ export class WalletsController extends Controller { ); } - private async getTokens(request: Hapi.Request, walletAddress: string) { + private async getTokens(request: Types.HapiRequest, walletAddress: string) { const pagination = this.getListingPage(request); const minBalance = request.query.minBalance ?? this.apiConfiguration.getRequired("tokens.defaultMinimumBalance"); diff --git a/packages/api-http/source/resources/api-node.ts b/packages/api-http/source/resources/api-node.ts index 7c7cce8bc2..48f6b03e21 100644 --- a/packages/api-http/source/resources/api-node.ts +++ b/packages/api-http/source/resources/api-node.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ApiNodeResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/block.ts b/packages/api-http/source/resources/block.ts index 426486d45a..199facf20a 100644 --- a/packages/api-http/source/resources/block.ts +++ b/packages/api-http/source/resources/block.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BigNumber } from "@mainsail/utils"; export interface EnrichedBlock extends Models.Block { diff --git a/packages/api-http/source/resources/index.ts b/packages/api-http/source/resources/index.ts index daf7142265..7789db81af 100644 --- a/packages/api-http/source/resources/index.ts +++ b/packages/api-http/source/resources/index.ts @@ -4,6 +4,6 @@ export * from "./legacy-cold-wallet.js"; export * from "./peer.js"; export * from "./receipt.js"; export * from "./transaction.js"; -export * from "./validator.js"; export * from "./validator-round.js"; +export * from "./validator.js"; export * from "./wallet.js"; diff --git a/packages/api-http/source/resources/legacy-cold-wallet.ts b/packages/api-http/source/resources/legacy-cold-wallet.ts index 2f97d709c3..0547a0d432 100644 --- a/packages/api-http/source/resources/legacy-cold-wallet.ts +++ b/packages/api-http/source/resources/legacy-cold-wallet.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class LegacyColdWalletResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/peer.ts b/packages/api-http/source/resources/peer.ts index d3ea74d395..67a9c22c37 100644 --- a/packages/api-http/source/resources/peer.ts +++ b/packages/api-http/source/resources/peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class PeerResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/receipt.ts b/packages/api-http/source/resources/receipt.ts index 92bba36e99..5a14126687 100644 --- a/packages/api-http/source/resources/receipt.ts +++ b/packages/api-http/source/resources/receipt.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ReceiptResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/round.ts b/packages/api-http/source/resources/round.ts index e775db35e1..b780dab334 100644 --- a/packages/api-http/source/resources/round.ts +++ b/packages/api-http/source/resources/round.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class RoundResource implements Contracts.Api.Resource { public raw(resource: { address: string; votes: string }): object { diff --git a/packages/api-http/source/resources/token-holder.ts b/packages/api-http/source/resources/token-holder.ts index e3f8d314b2..077333d046 100644 --- a/packages/api-http/source/resources/token-holder.ts +++ b/packages/api-http/source/resources/token-holder.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class TokenHolderResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/token-transfer.ts b/packages/api-http/source/resources/token-transfer.ts index 420a2a044f..8b65df11db 100644 --- a/packages/api-http/source/resources/token-transfer.ts +++ b/packages/api-http/source/resources/token-transfer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class TokenTransferResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/token-whitelist.ts b/packages/api-http/source/resources/token-whitelist.ts index 0e8c68817a..4c1ad8c4c7 100644 --- a/packages/api-http/source/resources/token-whitelist.ts +++ b/packages/api-http/source/resources/token-whitelist.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class TokenWhitelistResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/token.ts b/packages/api-http/source/resources/token.ts index 58d351a720..188b52adfc 100644 --- a/packages/api-http/source/resources/token.ts +++ b/packages/api-http/source/resources/token.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class TokenResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/transaction.ts b/packages/api-http/source/resources/transaction.ts index 48e062e1e6..60953fd800 100644 --- a/packages/api-http/source/resources/transaction.ts +++ b/packages/api-http/source/resources/transaction.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; // https://stackoverflow.com/a/53742518 type T_AND = Models.Transaction; diff --git a/packages/api-http/source/resources/validator-round.ts b/packages/api-http/source/resources/validator-round.ts index c04d91e2c8..437d8a8084 100644 --- a/packages/api-http/source/resources/validator-round.ts +++ b/packages/api-http/source/resources/validator-round.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ValidatorRoundResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/validator.ts b/packages/api-http/source/resources/validator.ts index 2ac538cfc7..e72f4f7d00 100644 --- a/packages/api-http/source/resources/validator.ts +++ b/packages/api-http/source/resources/validator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ValidatorResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/resources/wallet.ts b/packages/api-http/source/resources/wallet.ts index 781f13ecf2..0207052da2 100644 --- a/packages/api-http/source/resources/wallet.ts +++ b/packages/api-http/source/resources/wallet.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Models } from "@mainsail/api-database"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class WalletResource implements Contracts.Api.Resource { diff --git a/packages/api-http/source/routes/api-nodes.ts b/packages/api-http/source/routes/api-nodes.ts index 769637645f..ea9320be2c 100644 --- a/packages/api-http/source/routes/api-nodes.ts +++ b/packages/api-http/source/routes/api-nodes.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { ApiNodesController } from "../controllers/api-nodes.js"; @@ -11,7 +12,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { diff --git a/packages/api-http/source/routes/blockchain.ts b/packages/api-http/source/routes/blockchain.ts index 3a9c3fac23..7df2fab787 100644 --- a/packages/api-http/source/routes/blockchain.ts +++ b/packages/api-http/source/routes/blockchain.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { BlockchainController } from "../controllers/blockchain.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", path: "/blockchain", }); diff --git a/packages/api-http/source/routes/blocks.ts b/packages/api-http/source/routes/blocks.ts index 0c5a6caead..61d649cd3d 100644 --- a/packages/api-http/source/routes/blocks.ts +++ b/packages/api-http/source/routes/blocks.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { BlocksController } from "../controllers/blocks.js"; @@ -19,7 +20,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -40,7 +41,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.first(request), + handler: (request: Types.HapiRequest) => controller.first(request), method: "GET", options: { validate: { @@ -51,7 +52,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.last(request), + handler: (request: Types.HapiRequest) => controller.last(request), method: "GET", options: { validate: { @@ -62,7 +63,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -76,7 +77,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.transactions(request), + handler: (request: Types.HapiRequest) => controller.transactions(request), method: "GET", options: { plugins: { diff --git a/packages/api-http/source/routes/commits.ts b/packages/api-http/source/routes/commits.ts index fb6966b94e..eba6139a00 100644 --- a/packages/api-http/source/routes/commits.ts +++ b/packages/api-http/source/routes/commits.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { CommitsController } from "../controllers/commits.js"; @@ -10,7 +11,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/contracts.ts b/packages/api-http/source/routes/contracts.ts index eb6d886096..0728450bdb 100644 --- a/packages/api-http/source/routes/contracts.ts +++ b/packages/api-http/source/routes/contracts.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { ContractsController } from "../controllers/contracts.js"; @@ -10,13 +11,13 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", path: "/contracts", }); server.route({ - handler: (request: Hapi.Request) => controller.abi(request), + handler: (request: Types.HapiRequest) => controller.abi(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/legacy.ts b/packages/api-http/source/routes/legacy.ts index 6bc974a76f..6aa8abe3fa 100644 --- a/packages/api-http/source/routes/legacy.ts +++ b/packages/api-http/source/routes/legacy.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { LegacyController } from "../controllers/legacy.js"; @@ -11,7 +12,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.coldWallets(request), + handler: (request: Types.HapiRequest) => controller.coldWallets(request), method: "GET", options: { plugins: { @@ -27,7 +28,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.showColdWallet(request), + handler: (request: Types.HapiRequest) => controller.showColdWallet(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/node.ts b/packages/api-http/source/routes/node.ts index 142f36bdd1..52f560a377 100644 --- a/packages/api-http/source/routes/node.ts +++ b/packages/api-http/source/routes/node.ts @@ -1,5 +1,6 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { NodeController } from "../controllers/node.js"; @@ -9,31 +10,31 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.status(request), + handler: (request: Types.HapiRequest) => controller.status(request), method: "GET", path: "/node/status", }); server.route({ - handler: (request: Hapi.Request) => controller.syncing(request), + handler: (request: Types.HapiRequest) => controller.syncing(request), method: "GET", path: "/node/syncing", }); server.route({ - handler: (request: Hapi.Request) => controller.configuration(request), + handler: (request: Types.HapiRequest) => controller.configuration(request), method: "GET", path: "/node/configuration", }); server.route({ - handler: (request: Hapi.Request) => controller.configurationCrypto(request), + handler: (request: Types.HapiRequest) => controller.configurationCrypto(request), method: "GET", path: "/node/configuration/crypto", }); server.route({ - handler: (request: Hapi.Request) => controller.fees(request), + handler: (request: Types.HapiRequest) => controller.fees(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/peers.ts b/packages/api-http/source/routes/peers.ts index 54e4b3e9c3..4765e2ae5e 100644 --- a/packages/api-http/source/routes/peers.ts +++ b/packages/api-http/source/routes/peers.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { PeersController } from "../controllers/peers.js"; @@ -11,7 +12,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -31,7 +32,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/receipts.ts b/packages/api-http/source/routes/receipts.ts index 1fa4491194..684cec1718 100644 --- a/packages/api-http/source/routes/receipts.ts +++ b/packages/api-http/source/routes/receipts.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { ReceiptsController } from "../controllers/receipts.js"; @@ -13,7 +14,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -35,7 +36,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -52,7 +53,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.contracts(request), + handler: (request: Types.HapiRequest) => controller.contracts(request), method: "GET", options: { plugins: { diff --git a/packages/api-http/source/routes/tokens.ts b/packages/api-http/source/routes/tokens.ts index fd322832f7..af69992fa9 100644 --- a/packages/api-http/source/routes/tokens.ts +++ b/packages/api-http/source/routes/tokens.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { TokensController } from "../controllers/tokens.js"; @@ -14,7 +15,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -34,7 +35,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.transfers(request), + handler: (request: Types.HapiRequest) => controller.transfers(request), method: "GET", options: { plugins: { @@ -57,7 +58,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.approvals(request), + handler: (request: Types.HapiRequest) => controller.approvals(request), method: "GET", options: { plugins: { @@ -79,7 +80,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.whitelist(request), + handler: (request: Types.HapiRequest) => controller.whitelist(request), method: "GET", options: { plugins: { @@ -95,7 +96,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -108,7 +109,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.tokenTransfers(request), + handler: (request: Types.HapiRequest) => controller.tokenTransfers(request), method: "GET", options: { validate: { @@ -126,7 +127,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.tokenApprovals(request), + handler: (request: Types.HapiRequest) => controller.tokenApprovals(request), method: "GET", options: { validate: { @@ -144,7 +145,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.holders(request), + handler: (request: Types.HapiRequest) => controller.holders(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/transactions.ts b/packages/api-http/source/routes/transactions.ts index a97bb2b822..b4c2e8d687 100644 --- a/packages/api-http/source/routes/transactions.ts +++ b/packages/api-http/source/routes/transactions.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { TransactionsController } from "../controllers/transactions.js"; @@ -11,7 +12,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -34,7 +35,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/validator-rounds.ts b/packages/api-http/source/routes/validator-rounds.ts index ef1d36314a..63a52ed411 100644 --- a/packages/api-http/source/routes/validator-rounds.ts +++ b/packages/api-http/source/routes/validator-rounds.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { ValidatorRoundsController } from "../controllers/validator-rounds.js"; @@ -10,7 +11,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -26,7 +27,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -39,7 +40,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.validators(request), + handler: (request: Types.HapiRequest) => controller.validators(request), method: "GET", options: { validate: { diff --git a/packages/api-http/source/routes/validators.ts b/packages/api-http/source/routes/validators.ts index d1337e570c..2b8a8f31c2 100644 --- a/packages/api-http/source/routes/validators.ts +++ b/packages/api-http/source/routes/validators.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { ValidatorsController } from "../controllers/validators.js"; @@ -20,7 +21,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -37,7 +38,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -50,7 +51,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.voters(request), + handler: (request: Types.HapiRequest) => controller.voters(request), method: "GET", options: { plugins: { @@ -67,7 +68,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.blocks(request), + handler: (request: Types.HapiRequest) => controller.blocks(request), method: "GET", options: { plugins: { diff --git a/packages/api-http/source/routes/votes.ts b/packages/api-http/source/routes/votes.ts index 63bb86f5dc..427ccbe8b0 100644 --- a/packages/api-http/source/routes/votes.ts +++ b/packages/api-http/source/routes/votes.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { VotesController } from "../controllers/votes.js"; @@ -16,7 +17,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -38,7 +39,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { plugins: {}, diff --git a/packages/api-http/source/routes/wallets.ts b/packages/api-http/source/routes/wallets.ts index ac536c5f1e..8efab04664 100644 --- a/packages/api-http/source/routes/wallets.ts +++ b/packages/api-http/source/routes/wallets.ts @@ -1,6 +1,7 @@ -import type Hapi from "@hapi/hapi"; -import { Schemas } from "@mainsail/api-common"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; + +import { Schemas } from "@mainsail/api-common"; import Joi from "joi"; import { WalletsController } from "../controllers/wallets.js"; @@ -22,7 +23,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.index(request), + handler: (request: Types.HapiRequest) => controller.index(request), method: "GET", options: { plugins: { @@ -42,7 +43,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.top(request), + handler: (request: Types.HapiRequest) => controller.top(request), method: "GET", options: { plugins: { @@ -60,7 +61,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.show(request), + handler: (request: Types.HapiRequest) => controller.show(request), method: "GET", options: { validate: { @@ -74,7 +75,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.transactions(request), + handler: (request: Types.HapiRequest) => controller.transactions(request), method: "GET", options: { plugins: { @@ -100,7 +101,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.transactionsSent(request), + handler: (request: Types.HapiRequest) => controller.transactionsSent(request), method: "GET", options: { plugins: { @@ -126,7 +127,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.transactionsReceived(request), + handler: (request: Types.HapiRequest) => controller.transactionsReceived(request), method: "GET", options: { plugins: { @@ -152,7 +153,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.votes(request), + handler: (request: Types.HapiRequest) => controller.votes(request), method: "GET", options: { plugins: { @@ -177,7 +178,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.tokens(request), + handler: (request: Types.HapiRequest) => controller.tokens(request), method: "GET", options: { plugins: { @@ -199,7 +200,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.tokensShow(request), + handler: (request: Types.HapiRequest) => controller.tokensShow(request), method: "GET", options: { plugins: { diff --git a/packages/api-http/source/server.ts b/packages/api-http/source/server.ts index 6d167263b8..ed909818c2 100644 --- a/packages/api-http/source/server.ts +++ b/packages/api-http/source/server.ts @@ -1,9 +1,10 @@ -import { badData } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + +import { badData } from "@hapi/boom"; import { AbstractServer } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Server extends AbstractServer { diff --git a/packages/api-http/test/helpers/prepare-sandbox.ts b/packages/api-http/test/helpers/prepare-sandbox.ts index 01f5c172d4..c4bce5668d 100644 --- a/packages/api-http/test/helpers/prepare-sandbox.ts +++ b/packages/api-http/test/helpers/prepare-sandbox.ts @@ -44,6 +44,9 @@ const setupHttp = async (app: Application): Promise => { pagination: { limit: 100, }, + rateLimit: { + enabled: false, + }, socketTimeout: 5000, }, server: { http: { enabled: true, host: "127.0.0.1", port: 4003 }, https: { enabled: false } }, diff --git a/packages/api-sync/package.json b/packages/api-sync/package.json index 7cabbb6522..d7a22b14d5 100644 --- a/packages/api-sync/package.json +++ b/packages/api-sync/package.json @@ -29,9 +29,9 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0", - "lru-cache": "11.2.2", - "viem": "2.34.0" + "joi": "18.1.2", + "lru-cache": "11.2.7", + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/api-sync/source/listeners.ts b/packages/api-sync/source/listeners.ts index f9a6f17058..17c2076b41 100644 --- a/packages/api-sync/source/listeners.ts +++ b/packages/api-sync/source/listeners.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { TypeOrm } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { EventListener, Listeners as IListeners } from "./contracts.js"; import { ApiNodes } from "./listeners/api-nodes.js"; diff --git a/packages/api-sync/source/listeners/abstract-listener.ts b/packages/api-sync/source/listeners/abstract-listener.ts index 6a98c96173..19c8e1aeca 100644 --- a/packages/api-sync/source/listeners/abstract-listener.ts +++ b/packages/api-sync/source/listeners/abstract-listener.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -5,7 +7,6 @@ import { } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { NotImplemented } from "@mainsail/exceptions"; import { setTimeoutAsync } from "@mainsail/utils"; @@ -99,7 +100,7 @@ export abstract class AbstractListener imple dataSource: ApiDatabaseContracts.RepositoryDataSource, ): TypeOrm.Repository; - public async handle({ name, data }: { name: string; data: TEventData }): Promise { + public async handle({ data, name }: { name: string; data: TEventData }): Promise { const eventMapping = this.getEventMapping(); switch (eventMapping[name]) { diff --git a/packages/api-sync/source/listeners/api-nodes.ts b/packages/api-sync/source/listeners/api-nodes.ts index d9c8183d6a..6399f381de 100644 --- a/packages/api-sync/source/listeners/api-nodes.ts +++ b/packages/api-sync/source/listeners/api-nodes.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -6,7 +8,6 @@ import { } from "@mainsail/api-database"; import { Events } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { AbstractListener, ListenerEvent, ListenerEventMapping } from "./abstract-listener.js"; diff --git a/packages/api-sync/source/listeners/contracts.ts b/packages/api-sync/source/listeners/contracts.ts index d02b294fd8..a0bf9491cc 100644 --- a/packages/api-sync/source/listeners/contracts.ts +++ b/packages/api-sync/source/listeners/contracts.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -6,7 +8,6 @@ import { } from "@mainsail/api-database"; import { Events } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { AbstractListener, ListenerEvent, ListenerEventMapping } from "./abstract-listener.js"; diff --git a/packages/api-sync/source/listeners/peers.ts b/packages/api-sync/source/listeners/peers.ts index 967beca053..7dca2b1190 100644 --- a/packages/api-sync/source/listeners/peers.ts +++ b/packages/api-sync/source/listeners/peers.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -6,7 +8,6 @@ import { } from "@mainsail/api-database"; import { Events } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { AbstractListener, ListenerEvent, ListenerEventMapping } from "./abstract-listener.js"; @@ -19,8 +20,8 @@ export class Peers extends AbstractListener { protected getEventMapping(): ListenerEventMapping { return { [Events.PeerEvent.Added]: ListenerEvent.OnAdded, - [Events.PeerEvent.Updated]: ListenerEvent.OnAdded, // upsert [Events.PeerEvent.Removed]: ListenerEvent.OnRemoved, + [Events.PeerEvent.Updated]: ListenerEvent.OnAdded, // upsert }; } diff --git a/packages/api-sync/source/listeners/plugins.ts b/packages/api-sync/source/listeners/plugins.ts index 825b8c1f0c..193b9d743e 100644 --- a/packages/api-sync/source/listeners/plugins.ts +++ b/packages/api-sync/source/listeners/plugins.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -6,7 +8,6 @@ import { } from "@mainsail/api-database"; import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { AbstractListener, ListenerEvent, ListenerEventMapping } from "./abstract-listener.js"; diff --git a/packages/api-sync/source/logger.ts b/packages/api-sync/source/logger.ts index dc80a2c658..4ca21f7a62 100644 --- a/packages/api-sync/source/logger.ts +++ b/packages/api-sync/source/logger.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Logger implements Contracts.ApiSync.Logger { diff --git a/packages/api-sync/source/parsers/multi-payment.ts b/packages/api-sync/source/parsers/multi-payment.ts index 3fd1eca069..e3a6a581fe 100644 --- a/packages/api-sync/source/parsers/multi-payment.ts +++ b/packages/api-sync/source/parsers/multi-payment.ts @@ -1,5 +1,6 @@ import type { Models } from "@mainsail/api-database"; import type { Contracts } from "@mainsail/contracts"; + import { parseAbi, parseEventLogs } from "viem"; const paymentAbi = parseAbi(["event Payment(address indexed recipient, uint256 amount, bool success)"] as const); @@ -20,7 +21,7 @@ export function parseMultiPayments( }); return payments.map((payment, logIndex) => { - const { recipient, amount, success } = payment.args; + const { amount, recipient, success } = payment.args; return { amount: amount.toString(), diff --git a/packages/api-sync/source/parsers/tokens.ts b/packages/api-sync/source/parsers/tokens.ts index 6ddabb8148..76fe8b62c1 100644 --- a/packages/api-sync/source/parsers/tokens.ts +++ b/packages/api-sync/source/parsers/tokens.ts @@ -1,11 +1,12 @@ import type { Contracts as ApiDatabaseContracts } from "@mainsail/api-database"; +import type { Contracts } from "@mainsail/contracts"; +import type { ContractFunctionParameters, EncodeFunctionDataParameters } from "viem"; + import { Identifiers as ApiDatabaseIdentifiers, Models } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { LRUCache } from "lru-cache"; -import type { ContractFunctionParameters, EncodeFunctionDataParameters } from "viem"; import { decodeFunctionResult, encodeFunctionData, parseAbi, parseEventLogs, toHex, zeroAddress } from "viem"; import { TokenParser } from "../contracts.js"; @@ -243,7 +244,7 @@ export class TokenParserService implements TokenParser { if (!this.#tokenCache.has(contract)) { const foundToken = foundTokens.get(contract); assert.defined(foundToken); - const { token, isNew } = foundToken; + const { isNew, token } = foundToken; this.#tokenCache.set(contract, token); if (isNew) { diff --git a/packages/api-sync/source/parsers/username.ts b/packages/api-sync/source/parsers/username.ts index 48cbd2e6e4..4a5e31409f 100644 --- a/packages/api-sync/source/parsers/username.ts +++ b/packages/api-sync/source/parsers/username.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { parseAbi, parseEventLogs } from "viem"; const paymentAbi = parseAbi([ diff --git a/packages/api-sync/source/restore.ts b/packages/api-sync/source/restore.ts index 707a6a3a2e..a91b4a908e 100644 --- a/packages/api-sync/source/restore.ts +++ b/packages/api-sync/source/restore.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -5,7 +7,6 @@ import { } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, optional, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Deployer, Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { parseTransactionError } from "@mainsail/evm-contracts"; import { assert, BigNumber, chunk, formatEcdsaSignature, validatorSetPack } from "@mainsail/utils"; @@ -289,12 +290,12 @@ export class Restore { async #ingestBlocksAndTransactions(context: RestoreContext): Promise { const { blockRepository, - transactionRepository, + mostRecentCommit, multiPaymentRepository, - tokenRepository, - tokenHolderRepository, tokenActionRepository: tokenTransferRepository, - mostRecentCommit, + tokenHolderRepository, + tokenRepository, + transactionRepository, validatorRounds, } = context; @@ -383,7 +384,7 @@ export class Restore { }; let totalRound = 0; - for await (const { proof, block } of commits) { + for await (const { block, proof } of commits) { blocks.push({ commitRound: proof.round, fee: block.fee.toFixed(), @@ -438,9 +439,9 @@ export class Restore { const parsedMultiPayments = parseMultiPayments(multiPaymentContractAddress, transaction, receipt); const parsedUsernames = parseUsernames(usernameContractAddress, transaction, receipt); const { - tokens: parsedTokens, - tokenHolders: parsedTokenHolders, tokenActions: parsedTokenActions, + tokenHolders: parsedTokenHolders, + tokens: parsedTokens, } = await this.tokenParser.parseReceipt(block, transaction, receipt, tokenRepository); if (!context.publicKeyToAddress[senderPublicKey]) { @@ -934,16 +935,16 @@ export class Restore { async #analyzeTables({ blockRepository, + configurationRepository, contractRepository, - stateRepository, - transactionRepository, - walletRepository, legacyColdWalletRepository, multiPaymentRepository, + stateRepository, tokenHolderRepository, tokenRepository, - configurationRepository, + transactionRepository, validatorRoundRepository, + walletRepository, }: RepositoryContext): Promise { await Promise.all( [ diff --git a/packages/api-sync/source/service.ts b/packages/api-sync/source/service.ts index fcbd9524f8..d02bed430a 100644 --- a/packages/api-sync/source/service.ts +++ b/packages/api-sync/source/service.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -6,7 +8,6 @@ import { } from "@mainsail/api-database"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { parseTransactionError } from "@mainsail/evm-contracts"; import { assert, BigNumber, chunk, formatEcdsaSignature, sleep, validatorSetPack } from "@mainsail/utils"; @@ -180,9 +181,9 @@ export class Sync implements Contracts.ApiSync.Service { const parsedMultiPayments = parseMultiPayments(multiPaymentContractAddress, transaction, receipt); const { - tokens: parsedTokens, - tokenHolders: parsedTokenHolders, tokenActions: parsedTokenActions, + tokenHolders: parsedTokenHolders, + tokens: parsedTokens, } = await this.tokenParser.parseReceipt(header, transaction, receipt); transactions.push({ diff --git a/packages/api-sync/source/tokens/whitelist.ts b/packages/api-sync/source/tokens/whitelist.ts index 934b3afcc2..39e5468746 100644 --- a/packages/api-sync/source/tokens/whitelist.ts +++ b/packages/api-sync/source/tokens/whitelist.ts @@ -1,3 +1,5 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Contracts as ApiDatabaseContracts, Identifiers as ApiDatabaseIdentifiers, @@ -5,7 +7,6 @@ import { } from "@mainsail/api-database"; import { Identifiers, Units } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { http } from "@mainsail/utils"; import { isValidPgTimestamptz, sanitizeComment } from "./sanitizers.js"; diff --git a/packages/api-transaction-pool/package.json b/packages/api-transaction-pool/package.json index ab412d45fc..881ec2989f 100644 --- a/packages/api-transaction-pool/package.json +++ b/packages/api-transaction-pool/package.json @@ -22,18 +22,18 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/api-common": "workspace:*", "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/ip": "1.1.3", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "uvu": "0.5.6" }, "engines": { diff --git a/packages/api-transaction-pool/source/controllers/configuration.ts b/packages/api-transaction-pool/source/controllers/configuration.ts index 0a3d8a36d6..449cbae35a 100644 --- a/packages/api-transaction-pool/source/controllers/configuration.ts +++ b/packages/api-transaction-pool/source/controllers/configuration.ts @@ -1,8 +1,9 @@ -import Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { AbstractController } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ConfigurationController extends AbstractController { @@ -13,7 +14,7 @@ export class ConfigurationController extends AbstractController { @inject(Identifiers.State.Store) private readonly stateStore!: Contracts.State.Store; - public async configuration(request: Hapi.Request): Promise { + public async configuration(request: Types.HapiRequest): Promise { return { data: { blockNumber: this.stateStore.getBlockNumber(), diff --git a/packages/api-transaction-pool/source/controllers/transactions.ts b/packages/api-transaction-pool/source/controllers/transactions.ts index d93f36329f..780ccf2d8f 100644 --- a/packages/api-transaction-pool/source/controllers/transactions.ts +++ b/packages/api-transaction-pool/source/controllers/transactions.ts @@ -1,9 +1,10 @@ +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { notFound } from "@hapi/boom"; -import Hapi from "@hapi/hapi"; import { AbstractController } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionResource } from "../resources/index.js"; @@ -15,7 +16,7 @@ export class TransactionsController extends AbstractController { @inject(Identifiers.TransactionPool.Query) private readonly poolQuery!: Contracts.TransactionPool.Query; - public async store(request: Hapi.Request): Promise { + public async store(request: Types.HapiRequest): Promise { const result = await this.processor.process( // @ts-ignore request.payload.transactions.map((transaction: string) => Buffer.from(transaction, "hex")), @@ -31,7 +32,7 @@ export class TransactionsController extends AbstractController { }; } - public async unconfirmed(request: Hapi.Request): Promise { + public async unconfirmed(request: Types.HapiRequest): Promise { const pagination: Contracts.Api.Pagination = super.getListingPage(request); const poolQuery = this.poolQuery.getFromHighestPriority(); @@ -74,7 +75,7 @@ export class TransactionsController extends AbstractController { return super.toPagination(resultsPage, TransactionResource); } - public async showUnconfirmed(request: Hapi.Request): Promise { + public async showUnconfirmed(request: Types.HapiRequest): Promise { const transactionQuery: Contracts.TransactionPool.QueryIterable = this.poolQuery .getFromHighestPriority() .whereHash(request.params.hash); diff --git a/packages/api-transaction-pool/source/defaults.ts b/packages/api-transaction-pool/source/defaults.ts index 1862647778..0f93c296ae 100644 --- a/packages/api-transaction-pool/source/defaults.ts +++ b/packages/api-transaction-pool/source/defaults.ts @@ -6,6 +6,20 @@ export const defaults = { pagination: { limit: 100, }, + rateLimit: { + blacklist: + Environment.get( + EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_BLACKLIST, + )?.split(",") ?? [], + duration: Environment.get(EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_USER_EXPIRES, 60), // Sec + enabled: !Environment.isTrue(EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_DISABLED), + points: Environment.get(EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_USER_LIMIT, 150), + + whitelist: + Environment.get( + EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_WHITELIST, + )?.split(",") ?? [], + }, socketTimeout: 5000, trustProxy: Environment.isTrue(EnvironmentVariables.MAINSAIL_API_TRANSACTION_POOL_TRUST_PROXY), whitelist: ["*"], diff --git a/packages/api-transaction-pool/source/resources/transaction.ts b/packages/api-transaction-pool/source/resources/transaction.ts index b9e77211dd..84c96215c4 100644 --- a/packages/api-transaction-pool/source/resources/transaction.ts +++ b/packages/api-transaction-pool/source/resources/transaction.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class TransactionResource implements Contracts.Api.Resource { public raw(resource: Contracts.Crypto.TransactionData): object { diff --git a/packages/api-transaction-pool/source/routes/configuration.ts b/packages/api-transaction-pool/source/routes/configuration.ts index 4b31e49c9c..11169385ec 100644 --- a/packages/api-transaction-pool/source/routes/configuration.ts +++ b/packages/api-transaction-pool/source/routes/configuration.ts @@ -1,4 +1,4 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; import type { Contracts } from "@mainsail/contracts"; import { ConfigurationController } from "../controllers/configuration.js"; @@ -8,7 +8,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { server.bind(controller); server.route({ - handler: (request: Hapi.Request) => controller.configuration(request), + handler: (request: Types.HapiRequest) => controller.configuration(request), method: "GET", path: "/configuration", }); diff --git a/packages/api-transaction-pool/source/routes/transactions.ts b/packages/api-transaction-pool/source/routes/transactions.ts index 738e6c95e3..8cf388eaeb 100644 --- a/packages/api-transaction-pool/source/routes/transactions.ts +++ b/packages/api-transaction-pool/source/routes/transactions.ts @@ -1,7 +1,8 @@ -import type Hapi from "@hapi/hapi"; +import type { Types } from "@mainsail/api-common"; +import type { Contracts } from "@mainsail/contracts"; + import { Schemas } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; import { TransactionsController } from "../controllers/transactions.js"; @@ -28,7 +29,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { .getRequired("maxTransactionBytes"); server.route({ - handler: (request: Hapi.Request) => controller.store(request), + handler: (request: Types.HapiRequest) => controller.store(request), method: "POST", options: { payload: { @@ -52,7 +53,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.unconfirmed(request), + handler: (request: Types.HapiRequest) => controller.unconfirmed(request), method: "GET", options: { plugins: { @@ -72,7 +73,7 @@ export const register = (server: Contracts.Api.ApiServer): void => { }); server.route({ - handler: (request: Hapi.Request) => controller.showUnconfirmed(request), + handler: (request: Types.HapiRequest) => controller.showUnconfirmed(request), method: "GET", options: { validate: { diff --git a/packages/api-transaction-pool/source/server.ts b/packages/api-transaction-pool/source/server.ts index 87a7c5d2cb..1c635af9e7 100644 --- a/packages/api-transaction-pool/source/server.ts +++ b/packages/api-transaction-pool/source/server.ts @@ -1,9 +1,10 @@ -import { badData } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + +import { badData } from "@hapi/boom"; import { AbstractServer } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Server extends AbstractServer { diff --git a/packages/api-transaction-pool/source/service-provider.ts b/packages/api-transaction-pool/source/service-provider.ts index 36c3a5d6ef..dc297aa3a5 100644 --- a/packages/api-transaction-pool/source/service-provider.ts +++ b/packages/api-transaction-pool/source/service-provider.ts @@ -2,6 +2,7 @@ import { NamedPlugin, Plugin } from "@hapi/hapi"; import { AbstractServiceProvider, Plugins, ServerConstructor } from "@mainsail/api-common"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; +import Joi from "joi"; import Handlers from "./handlers.js"; import { Server } from "./server.js"; @@ -71,4 +72,26 @@ export class ServiceProvider extends AbstractServiceProvider { }, ] as unknown as Plugin[]; } + + public configSchema(): Joi.ObjectSchema { + return super.configSchema().concat( + Joi.object({ + plugins: Joi.object({ + pagination: Joi.object({ + limit: Joi.number().integer().min(0).required(), + }).required(), + rateLimit: Joi.object({ + blacklist: Joi.array().items(Joi.string()).required(), + duration: Joi.number().integer().min(0).required(), + enabled: Joi.bool().required(), + points: Joi.number().integer().min(0).required(), + whitelist: Joi.array().items(Joi.string()).required(), + }).required(), + socketTimeout: Joi.number().integer().min(0).required(), + trustProxy: Joi.bool().required(), + whitelist: Joi.array().items(Joi.string()).required(), + }).required(), + }).unknown(true), + ); + } } diff --git a/packages/api/package.json b/packages/api/package.json index 865cb580c6..891c0226f6 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -37,10 +37,10 @@ "@mainsail/utils": "workspace:*", "@mainsail/validation": "workspace:*", "boxen": "8.0.1", - "dayjs": "1.11.13", + "dayjs": "1.11.20", "envfile": "7.1.0", - "fs-extra": "11.3.1", - "joi": "18.0.0", + "fs-extra": "11.3.4", + "joi": "18.1.2", "kleur": "4.1.5" }, "devDependencies": { @@ -49,9 +49,9 @@ "@types/fs-extra": "11.0.4", "@types/prompts": "2.4.9", "@types/tmp": "0.2.6", - "cross-env": "10.0.0", - "env-paths": "3.0.0", - "execa": "9.6.0", + "cross-env": "10.1.0", + "env-paths": "4.0.0", + "execa": "9.6.1", "prompts": "2.4.2", "tmp": "0.2.5", "uvu": "0.5.6" diff --git a/packages/api/source/cli.ts b/packages/api/source/cli.ts index 7271d302de..6f00159c08 100644 --- a/packages/api/source/cli.ts +++ b/packages/api/source/cli.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { ApplicationFactory, Commands, Flags, InputParser, Plugins } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { readJSONSync } from "fs-extra/esm"; import { platform } from "os"; diff --git a/packages/api/source/commands/api-log.ts b/packages/api/source/commands/api-log.ts index daa4779f8c..bf4205d288 100644 --- a/packages/api/source/commands/api-log.ts +++ b/packages/api/source/commands/api-log.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/api-restart.ts b/packages/api/source/commands/api-restart.ts index 3cca78223f..3d57e9b63f 100644 --- a/packages/api/source/commands/api-restart.ts +++ b/packages/api/source/commands/api-restart.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/api/source/commands/api-run.ts b/packages/api/source/commands/api-run.ts index 27082166c2..e56dbbb2d0 100644 --- a/packages/api/source/commands/api-run.ts +++ b/packages/api/source/commands/api-run.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands, Utils } from "@mainsail/cli"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { readJSONSync } from "fs-extra/esm"; import Joi from "joi"; diff --git a/packages/api/source/commands/api-start.ts b/packages/api/source/commands/api-start.ts index 2db93ae854..421ffcbaa1 100644 --- a/packages/api/source/commands/api-start.ts +++ b/packages/api/source/commands/api-start.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands, Utils } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/api-status.ts b/packages/api/source/commands/api-status.ts index 5d7eeb901c..1eafd6ec22 100644 --- a/packages/api/source/commands/api-status.ts +++ b/packages/api/source/commands/api-status.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/api/source/commands/api-stop.ts b/packages/api/source/commands/api-stop.ts index c7880362dc..b034567f20 100644 --- a/packages/api/source/commands/api-stop.ts +++ b/packages/api/source/commands/api-stop.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/config-cli.ts b/packages/api/source/commands/config-cli.ts index 7173269115..7163750ca2 100644 --- a/packages/api/source/commands/config-cli.ts +++ b/packages/api/source/commands/config-cli.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { BuildPackages, Channels, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import Joi from "joi"; diff --git a/packages/api/source/commands/config-database.ts b/packages/api/source/commands/config-database.ts index 319e8fe622..bf859c2682 100644 --- a/packages/api/source/commands/config-database.ts +++ b/packages/api/source/commands/config-database.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/config-publish.ts b/packages/api/source/commands/config-publish.ts index 0570976401..f403f3a183 100644 --- a/packages/api/source/commands/config-publish.ts +++ b/packages/api/source/commands/config-publish.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { copySync, ensureDirSync, removeSync } from "fs-extra/esm"; import Joi from "joi"; diff --git a/packages/api/source/commands/env-paths-clear.ts b/packages/api/source/commands/env-paths-clear.ts index 54e0bac1c6..82c212a0f9 100644 --- a/packages/api/source/commands/env-paths-clear.ts +++ b/packages/api/source/commands/env-paths-clear.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync, readdirSync } from "fs"; import { emptyDirSync } from "fs-extra/esm"; import Joi from "joi"; diff --git a/packages/api/source/commands/env-paths.ts b/packages/api/source/commands/env-paths.ts index a02222168a..45251ab122 100644 --- a/packages/api/source/commands/env-paths.ts +++ b/packages/api/source/commands/env-paths.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/api/source/commands/env-set.ts b/packages/api/source/commands/env-set.ts index 948d87bb7c..b9f3505d8d 100644 --- a/packages/api/source/commands/env-set.ts +++ b/packages/api/source/commands/env-set.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/help.ts b/packages/api/source/commands/help.ts index adcc0d1967..eb79eea181 100644 --- a/packages/api/source/commands/help.ts +++ b/packages/api/source/commands/help.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import boxen from "boxen"; import { blue, bold, cyan } from "kleur/colors"; diff --git a/packages/api/source/commands/reinstall.ts b/packages/api/source/commands/reinstall.ts index 82b6d39a32..c4553a98cc 100644 --- a/packages/api/source/commands/reinstall.ts +++ b/packages/api/source/commands/reinstall.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { BuildPackages, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import Joi from "joi"; diff --git a/packages/api/source/commands/top.ts b/packages/api/source/commands/top.ts index 742fdd4896..8685fd8a21 100644 --- a/packages/api/source/commands/top.ts +++ b/packages/api/source/commands/top.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { prettyBytes, prettyTime } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/api/source/commands/update.ts b/packages/api/source/commands/update.ts index 42b07128fa..00886c750e 100644 --- a/packages/api/source/commands/update.ts +++ b/packages/api/source/commands/update.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/api/source/commands/version.ts b/packages/api/source/commands/version.ts index 09b8168aa5..dde49ba551 100644 --- a/packages/api/source/commands/version.ts +++ b/packages/api/source/commands/version.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/blockchain-utils/source/fee-calculator.ts b/packages/blockchain-utils/source/fee-calculator.ts index a103a1f083..b65942bcbb 100644 --- a/packages/blockchain-utils/source/fee-calculator.ts +++ b/packages/blockchain-utils/source/fee-calculator.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { BigNumber } from "@mainsail/utils"; @injectable() diff --git a/packages/blockchain-utils/source/proposer-calculator.ts b/packages/blockchain-utils/source/proposer-calculator.ts index f57d886941..925c89c2f5 100644 --- a/packages/blockchain-utils/source/proposer-calculator.ts +++ b/packages/blockchain-utils/source/proposer-calculator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ProposerCalculator implements Contracts.BlockchainUtils.ProposerCalculator { diff --git a/packages/blockchain-utils/source/round-calculator.ts b/packages/blockchain-utils/source/round-calculator.ts index 5f5d082150..87f75013c6 100644 --- a/packages/blockchain-utils/source/round-calculator.ts +++ b/packages/blockchain-utils/source/round-calculator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidMilestoneConfigurationError } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; diff --git a/packages/blockchain-utils/source/timestamp-calculator.ts b/packages/blockchain-utils/source/timestamp-calculator.ts index ad888e0ed9..fa501c9109 100644 --- a/packages/blockchain-utils/source/timestamp-calculator.ts +++ b/packages/blockchain-utils/source/timestamp-calculator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class TimestampCalculator implements Contracts.BlockchainUtils.TimestampCalculator { diff --git a/packages/bootstrap/source/bootstrapper.ts b/packages/bootstrap/source/bootstrapper.ts index d1367d85d1..9bb5e2bd80 100644 --- a/packages/bootstrap/source/bootstrapper.ts +++ b/packages/bootstrap/source/bootstrapper.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, optional } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Bootstrapper { diff --git a/packages/cli/package.json b/packages/cli/package.json index 9895698abc..99b98a0272 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -28,24 +28,24 @@ "@mainsail/utils": "workspace:*", "boxen": "8.0.1", "cli-table3": "0.6.5", - "dayjs": "1.11.13", - "env-paths": "3.0.0", + "dayjs": "1.11.20", + "env-paths": "4.0.0", "envfile": "7.1.0", - "execa": "9.6.0", + "execa": "9.6.1", "fast-levenshtein": "3.0.0", - "fs-extra": "11.3.1", - "glob": "11.0.3", - "got": "14.4.7", - "joi": "18.0.0", + "fs-extra": "11.3.4", + "glob": "13.0.6", + "got": "14.6.6", + "joi": "18.1.2", "kleur": "4.1.5", "latest-version": "9.0.0", "listr": "0.14.3", "nodejs-tail": "1.1.1", - "ora": "8.2.0", + "ora": "9.3.0", "prompts": "2.4.2", "read-last-lines": "1.8.0", - "semver": "7.7.2", - "tar": "7.4.3", + "semver": "7.7.4", + "tar": "7.5.13", "yargs-parser": "22.0.0" }, "devDependencies": { @@ -54,12 +54,12 @@ "@types/fast-levenshtein": "0.0.4", "@types/fs-extra": "11.0.4", "@types/is-ci": "3.0.4", - "@types/listr": "0.14.9", + "@types/listr": "0.14.10", "@types/prompts": "2.4.9", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "@types/tmp": "0.2.6", "@types/yargs-parser": "21.0.3", - "esmock": "2.7.1", + "esmock": "2.7.3", "tmp": "0.2.5", "uvu": "0.5.6" }, diff --git a/packages/cli/source/action-factory.ts b/packages/cli/source/action-factory.ts index 275add1aa4..de7f1d935a 100644 --- a/packages/cli/source/action-factory.ts +++ b/packages/cli/source/action-factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { AbortErroredProcess, diff --git a/packages/cli/source/actions/daemonize-process.ts b/packages/cli/source/actions/daemonize-process.ts index 52a982144e..877d85a8dc 100644 --- a/packages/cli/source/actions/daemonize-process.ts +++ b/packages/cli/source/actions/daemonize-process.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers, Units } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { totalmem } from "os"; import { Application } from "../application.js"; diff --git a/packages/cli/source/actions/index.ts b/packages/cli/source/actions/index.ts index b418d34324..74676395aa 100644 --- a/packages/cli/source/actions/index.ts +++ b/packages/cli/source/actions/index.ts @@ -5,5 +5,5 @@ export * from "./abort-stopped-process.js"; export * from "./abort-unknown-process.js"; export * from "./daemonize-process.js"; export * from "./restart-process.js"; -export * from "./restart-running-process.js"; export * from "./restart-running-process-with-prompt.js"; +export * from "./restart-running-process.js"; diff --git a/packages/cli/source/application-factory.ts b/packages/cli/source/application-factory.ts index dfa72c48b7..edba0b7176 100644 --- a/packages/cli/source/application-factory.ts +++ b/packages/cli/source/application-factory.ts @@ -1,5 +1,6 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { assert } from "@mainsail/utils"; import { ActionFactory } from "./action-factory.js"; @@ -68,11 +69,10 @@ export class ApplicationFactory { // Paths assert.string(package_.name); - app.bind(Identifiers.Cli.Paths.Console).toConstantValue(environmentPaths.get(package_.name)); - - const applicationName = package_.name?.split("/")[1]; + const [namespace, applicationName] = package_.name?.split("/"); assert.string(applicationName); + app.bind(Identifiers.Cli.Paths.Console).toConstantValue(environmentPaths.get(namespace)); app.bind(Identifiers.Cli.Application.Name).toConstantValue(applicationName); // Factories diff --git a/packages/cli/source/application.ts b/packages/cli/source/application.ts index 77c9ea4b5d..1d4f4b5eb9 100644 --- a/packages/cli/source/application.ts +++ b/packages/cli/source/application.ts @@ -1,8 +1,8 @@ -import { exit } from "node:process"; +import type { Contracts } from "@mainsail/contracts"; import { Identifiers } from "@mainsail/constants"; import { Application as BaseApplication } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; +import { exit } from "node:process"; import { resolve } from "path"; export class Application extends BaseApplication { diff --git a/packages/cli/source/commands/command-help.ts b/packages/cli/source/commands/command-help.ts index dd9f949475..6cac8511c0 100644 --- a/packages/cli/source/commands/command-help.ts +++ b/packages/cli/source/commands/command-help.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { blue, bold } from "kleur/colors"; import { AppHeader } from "../components/index.js"; @@ -54,7 +55,7 @@ ${flags}`; return ""; } - const { options, descriptions, longestProperty } = this.#buildProperties(arguments_); + const { descriptions, longestProperty, options } = this.#buildProperties(arguments_); const output: string[] = []; for (const [index, option] of options.entries()) { @@ -71,7 +72,7 @@ ${flags}`; return ""; } - const { options, descriptions, longestProperty } = this.#buildProperties(flags); + const { descriptions, longestProperty, options } = this.#buildProperties(flags); const output: string[] = []; for (const [index, option] of options.entries()) { diff --git a/packages/cli/source/commands/command.ts b/packages/cli/source/commands/command.ts index 3f101ca459..72fe6cb2cc 100644 --- a/packages/cli/source/commands/command.ts +++ b/packages/cli/source/commands/command.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ActionFactory } from "../action-factory.js"; import { ComponentFactory } from "../component-factory.js"; diff --git a/packages/cli/source/commands/discover-commands.ts b/packages/cli/source/commands/discover-commands.ts index a7d01ec491..86858026af 100644 --- a/packages/cli/source/commands/discover-commands.ts +++ b/packages/cli/source/commands/discover-commands.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { lstatSync, readdirSync } from "fs"; @injectable() diff --git a/packages/cli/source/commands/index.ts b/packages/cli/source/commands/index.ts index ef316985e1..0dcca61f41 100644 --- a/packages/cli/source/commands/index.ts +++ b/packages/cli/source/commands/index.ts @@ -1,3 +1,3 @@ -export * from "./command.js"; export * from "./command-help.js"; +export * from "./command.js"; export * from "./discover-commands.js"; diff --git a/packages/cli/source/component-factory.ts b/packages/cli/source/component-factory.ts index 6c5b5e465e..db6cb7df33 100644 --- a/packages/cli/source/component-factory.ts +++ b/packages/cli/source/component-factory.ts @@ -1,7 +1,8 @@ -import { Identifiers } from "@mainsail/constants"; -import { inject, injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; import type Table3 from "cli-table3"; + +import { Identifiers } from "@mainsail/constants"; +import { inject, injectable } from "@mainsail/container"; import { Options, Ora } from "ora"; import { Choice, PromptObject } from "prompts"; diff --git a/packages/cli/source/components/app-header.ts b/packages/cli/source/components/app-header.ts index cc84b73d5a..2218d51fac 100644 --- a/packages/cli/source/components/app-header.ts +++ b/packages/cli/source/components/app-header.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { bold, red, white } from "kleur/colors"; import os from "os"; diff --git a/packages/cli/source/components/ask-date.ts b/packages/cli/source/components/ask-date.ts index 7be0f5e993..72224ab48e 100644 --- a/packages/cli/source/components/ask-date.ts +++ b/packages/cli/source/components/ask-date.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/ask-hidden.ts b/packages/cli/source/components/ask-hidden.ts index 82356eceab..3d345ed03e 100644 --- a/packages/cli/source/components/ask-hidden.ts +++ b/packages/cli/source/components/ask-hidden.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/ask-number.ts b/packages/cli/source/components/ask-number.ts index 1f77f5ca8f..116eabd9e9 100644 --- a/packages/cli/source/components/ask-number.ts +++ b/packages/cli/source/components/ask-number.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/ask-password.ts b/packages/cli/source/components/ask-password.ts index 5c1dda6965..27a4c039c2 100644 --- a/packages/cli/source/components/ask-password.ts +++ b/packages/cli/source/components/ask-password.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/ask.ts b/packages/cli/source/components/ask.ts index e03f494c52..ca8f1651c9 100644 --- a/packages/cli/source/components/ask.ts +++ b/packages/cli/source/components/ask.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/auto-complete.ts b/packages/cli/source/components/auto-complete.ts index 80b6ea7a8c..d91147d0ca 100644 --- a/packages/cli/source/components/auto-complete.ts +++ b/packages/cli/source/components/auto-complete.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Choice, Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/confirm.ts b/packages/cli/source/components/confirm.ts index 2ad5ac6e22..9e053f1dc9 100644 --- a/packages/cli/source/components/confirm.ts +++ b/packages/cli/source/components/confirm.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/fatal.ts b/packages/cli/source/components/fatal.ts index c954218e77..4239d6a62d 100644 --- a/packages/cli/source/components/fatal.ts +++ b/packages/cli/source/components/fatal.ts @@ -2,9 +2,10 @@ import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; import { bgRed, white } from "kleur/colors"; -import { Runtime } from "../exceptions/index.js"; import type { Logger } from "../services/logger.js"; +import { Runtime } from "../exceptions/index.js"; + @injectable() export class Fatal { @inject(Identifiers.Cli.Service.Logger) diff --git a/packages/cli/source/components/index.ts b/packages/cli/source/components/index.ts index febedd0171..0e18429266 100644 --- a/packages/cli/source/components/index.ts +++ b/packages/cli/source/components/index.ts @@ -1,9 +1,9 @@ export * from "./app-header.js"; -export * from "./ask.js"; export * from "./ask-date.js"; export * from "./ask-hidden.js"; export * from "./ask-number.js"; export * from "./ask-password.js"; +export * from "./ask.js"; export * from "./auto-complete.js"; export * from "./box.js"; export * from "./clear.js"; diff --git a/packages/cli/source/components/multi-select.ts b/packages/cli/source/components/multi-select.ts index dc61fa6595..625d28d30b 100644 --- a/packages/cli/source/components/multi-select.ts +++ b/packages/cli/source/components/multi-select.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Choice, Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/prompt.ts b/packages/cli/source/components/prompt.ts index 8a4b9f1cfb..2070ae2239 100644 --- a/packages/cli/source/components/prompt.ts +++ b/packages/cli/source/components/prompt.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import prompts from "prompts"; export type { Choice } from "prompts"; diff --git a/packages/cli/source/components/select.ts b/packages/cli/source/components/select.ts index c6e04059b3..342a8f4346 100644 --- a/packages/cli/source/components/select.ts +++ b/packages/cli/source/components/select.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Choice, Prompt } from "./prompt.js"; diff --git a/packages/cli/source/components/toggle.ts b/packages/cli/source/components/toggle.ts index d472688a99..2edc53d7c3 100644 --- a/packages/cli/source/components/toggle.ts +++ b/packages/cli/source/components/toggle.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Prompt } from "./prompt.js"; diff --git a/packages/cli/source/index.ts b/packages/cli/source/index.ts index fef9438bbf..505e337900 100644 --- a/packages/cli/source/index.ts +++ b/packages/cli/source/index.ts @@ -1,7 +1,7 @@ export * from "./action-factory.js"; export * as Actions from "./actions/index.js"; -export * from "./application.js"; export * from "./application-factory.js"; +export * from "./application.js"; export * as Commands from "./commands/index.js"; export * as Components from "./component-factory.js"; export * from "./component-factory.js"; diff --git a/packages/cli/source/input/input.ts b/packages/cli/source/input/input.ts index c3ef27dc61..a0e4a8435b 100644 --- a/packages/cli/source/input/input.ts +++ b/packages/cli/source/input/input.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Application } from "../application.js"; import { InputDefinition } from "./definition.js"; diff --git a/packages/cli/source/input/parser.ts b/packages/cli/source/input/parser.ts index 7320433b42..9963b11d0d 100644 --- a/packages/cli/source/input/parser.ts +++ b/packages/cli/source/input/parser.ts @@ -1,4 +1,5 @@ import type { Arguments as Flags } from "yargs-parser"; + import yargs from "yargs-parser"; export type { Arguments as Flags } from "yargs-parser"; diff --git a/packages/cli/source/plugins/suggest.ts b/packages/cli/source/plugins/suggest.ts index 9715cde6d7..b53de60f5e 100644 --- a/packages/cli/source/plugins/suggest.ts +++ b/packages/cli/source/plugins/suggest.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { minBy } from "@mainsail/utils"; import Levenshtein from "fast-levenshtein"; import { blue, red } from "kleur/colors"; diff --git a/packages/cli/source/services/config.ts b/packages/cli/source/services/config.ts index 8c88aecf76..77b13260d2 100644 --- a/packages/cli/source/services/config.ts +++ b/packages/cli/source/services/config.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Channels, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ensureFileSync, readJSONSync, writeJsonSync } from "fs-extra/esm"; @injectable() diff --git a/packages/cli/source/services/environment.ts b/packages/cli/source/services/environment.ts index 080c016d89..3af805dbc8 100644 --- a/packages/cli/source/services/environment.ts +++ b/packages/cli/source/services/environment.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { parse, stringify } from "envfile"; import { existsSync, readFileSync, writeFileSync } from "fs"; import path from "path"; diff --git a/packages/cli/source/services/installer.ts b/packages/cli/source/services/installer.ts index 64377df1f0..b714324f04 100644 --- a/packages/cli/source/services/installer.ts +++ b/packages/cli/source/services/installer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { rcompare, satisfies } from "semver"; import { execa } from "../execa.js"; @@ -26,7 +27,7 @@ export class Installer implements Contracts.Cli.Installer { const buildPackagesString = space + buildPackages.map((buildPackage) => `--allow-build=${buildPackage}`).join(" "); - const { stdout, stderr, exitCode } = execa.sync(`pnpm install -g ${package_}@${tag}${buildPackagesString}`, { + const { exitCode, stderr, stdout } = execa.sync(`pnpm install -g ${package_}@${tag}${buildPackagesString}`, { shell: true, }); @@ -40,7 +41,7 @@ export class Installer implements Contracts.Cli.Installer { } public installPeerDependencies(package_: string, tag: string = "latest"): void { - const { stdout, stderr, exitCode } = execa.sync(`pnpm info ${package_}@${tag} peerDependencies --json`, { + const { exitCode, stderr, stdout } = execa.sync(`pnpm info ${package_}@${tag} peerDependencies --json`, { shell: true, }); @@ -61,7 +62,7 @@ export class Installer implements Contracts.Cli.Installer { } public installRangeLatest(package_: string, range: string): void { - const { stdout, stderr, exitCode } = execa.sync(`pnpm info ${package_} versions --json`, { shell: true }); + const { exitCode, stderr, stdout } = execa.sync(`pnpm info ${package_} versions --json`, { shell: true }); if (exitCode !== 0) { throw new Error(`"pnpm info ${package_} versions --json" exited with code ${exitCode}\n${stderr}`); @@ -79,7 +80,7 @@ export class Installer implements Contracts.Cli.Installer { } private getInstalled(): Package[] { - const { stdout, stderr, exitCode } = execa.sync(`pnpm list -g --json`, { shell: true }); + const { exitCode, stderr, stdout } = execa.sync(`pnpm list -g --json`, { shell: true }); if (exitCode !== 0) { throw new Error(`"pnpm list -g --json" exited with code ${exitCode}\n${stderr}`); diff --git a/packages/cli/source/services/logger.ts b/packages/cli/source/services/logger.ts index da23d1d07c..7cdff85ac1 100644 --- a/packages/cli/source/services/logger.ts +++ b/packages/cli/source/services/logger.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Output } from "../output/index.js"; diff --git a/packages/cli/source/services/plugin-manager.ts b/packages/cli/source/services/plugin-manager.ts index d1aa652863..298bb6de59 100644 --- a/packages/cli/source/services/plugin-manager.ts +++ b/packages/cli/source/services/plugin-manager.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { readJSONSync, removeSync } from "fs-extra/esm"; import { glob } from "glob"; diff --git a/packages/cli/source/services/process-manager.ts b/packages/cli/source/services/process-manager.ts index dd276d7137..b9b9559e1c 100644 --- a/packages/cli/source/services/process-manager.ts +++ b/packages/cli/source/services/process-manager.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { execa, Result, SyncResult } from "../execa.js"; import { Flags } from "../utils/flags.js"; diff --git a/packages/cli/source/services/setup.ts b/packages/cli/source/services/setup.ts index 0c909b1b67..31e8c676ba 100644 --- a/packages/cli/source/services/setup.ts +++ b/packages/cli/source/services/setup.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { join } from "path"; import { execa } from "../execa.js"; @@ -23,7 +24,7 @@ export class Setup implements Contracts.Cli.Setup { } private getGlobalRootDir(): string { - const { stdout, exitCode } = execa.sync(`pnpm root -g dir`, { shell: true }); + const { exitCode, stdout } = execa.sync(`pnpm root -g dir`, { shell: true }); if (exitCode !== 0) { throw new Error("Cannot determine global pnpm dir"); diff --git a/packages/cli/source/services/updater.ts b/packages/cli/source/services/updater.ts index c4df587904..fa8f463368 100644 --- a/packages/cli/source/services/updater.ts +++ b/packages/cli/source/services/updater.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { BuildPackages, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { dim, green, reset } from "kleur/colors"; import latestVersion from "latest-version"; import { lt, lte } from "semver"; diff --git a/packages/cli/source/test/console.ts b/packages/cli/source/test/console.ts index d96f713689..47b809bdf0 100644 --- a/packages/cli/source/test/console.ts +++ b/packages/cli/source/test/console.ts @@ -1,6 +1,7 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; +import { Identifiers } from "@mainsail/constants"; + import { ApplicationFactory } from "../application-factory.js"; import { Flags } from "../utils/index.js"; diff --git a/packages/cli/source/utils/builder.ts b/packages/cli/source/utils/builder.ts index 868f7b8805..1269c46f52 100644 --- a/packages/cli/source/utils/builder.ts +++ b/packages/cli/source/utils/builder.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { Application } from "@mainsail/kernel"; export const Builder = { diff --git a/packages/cli/source/utils/process.ts b/packages/cli/source/utils/process.ts index 01e6f3e64a..705a36f74d 100644 --- a/packages/cli/source/utils/process.ts +++ b/packages/cli/source/utils/process.ts @@ -1,15 +1,17 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, prettyBytes, prettyTime } from "@mainsail/utils"; import dayjs from "dayjs"; import Tail from "nodejs-tail"; import readLastLines from "read-last-lines"; import type { AbortMissingProcess, AbortStoppedProcess, AbortUnknownProcess } from "../actions/index.js"; +import type { ProcessManager } from "../services/index.js"; + import { Application } from "../application.js"; import { Clear, Spinner, Table } from "../components/index.js"; -import type { ProcessManager } from "../services/index.js"; @injectable() export class Process implements Contracts.Cli.Process { diff --git a/packages/configuration-generator/package.json b/packages/configuration-generator/package.json index b98817dc6b..0a1c99ea33 100644 --- a/packages/configuration-generator/package.json +++ b/packages/configuration-generator/package.json @@ -47,18 +47,18 @@ "@mainsail/utils": "workspace:*", "@mainsail/validation": "workspace:*", "bip39": "3.1.0", - "dayjs": "1.11.13", + "dayjs": "1.11.20", "envfile": "7.1.0", - "fs-extra": "11.3.1", + "fs-extra": "11.3.4", "tmp": "0.2.5", - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/fs-extra": "11.0.4", "@types/tmp": "0.2.6", - "env-paths": "3.0.0", + "env-paths": "4.0.0", "uvu": "0.5.6" }, "engines": { diff --git a/packages/configuration-generator/source/application-factory.ts b/packages/configuration-generator/source/application-factory.ts index 2ca19a2f59..8b61bf112d 100644 --- a/packages/configuration-generator/source/application-factory.ts +++ b/packages/configuration-generator/source/application-factory.ts @@ -1,7 +1,6 @@ -import { readFileSync } from "node:fs"; +import type { Contracts } from "@mainsail/contracts"; import { Enums, Identifiers } from "@mainsail/constants"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as CoreCryptoAddressBase58 } from "@mainsail/crypto-address-base58"; import { ServiceProvider as CoreCryptoAddressKeccak256 } from "@mainsail/crypto-address-keccak256"; import { ServiceProvider as CoreCryptoBlock } from "@mainsail/crypto-block"; @@ -23,6 +22,7 @@ import { ServiceProvider as CoreSerializer } from "@mainsail/serializer"; import { ServiceProvider as CoreSnapshotLegacyImporter } from "@mainsail/snapshot-legacy-importer"; import { ServiceProvider as CoreValidation } from "@mainsail/validation"; import { readJSONSync } from "fs-extra/esm"; +import { readFileSync } from "node:fs"; import { dirSync, setGracefulCleanup } from "tmp"; import { ConfigurationGenerator } from "./configuration-generator.js"; diff --git a/packages/configuration-generator/source/configuration-generator.ts b/packages/configuration-generator/source/configuration-generator.ts index 7693f06a2c..56d9a99fa4 100644 --- a/packages/configuration-generator/source/configuration-generator.ts +++ b/packages/configuration-generator/source/configuration-generator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Application } from "@mainsail/kernel"; import { ensureDirSync, pathExistsSync } from "fs-extra/esm"; import { join } from "path"; diff --git a/packages/configuration-generator/source/configuration-writer.ts b/packages/configuration-generator/source/configuration-writer.ts index ed0d0965e2..7641ec48bb 100644 --- a/packages/configuration-generator/source/configuration-writer.ts +++ b/packages/configuration-generator/source/configuration-writer.ts @@ -1,5 +1,6 @@ -import { inject, injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { inject, injectable } from "@mainsail/container"; import { stringify } from "envfile"; import { copyFileSync, writeFileSync } from "fs"; import { writeJSONSync } from "fs-extra/esm"; diff --git a/packages/configuration-generator/source/generators/app.ts b/packages/configuration-generator/source/generators/app.ts index 3d83c3f398..5cc63a48fd 100644 --- a/packages/configuration-generator/source/generators/app.ts +++ b/packages/configuration-generator/source/generators/app.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { readJSONSync } from "fs-extra/esm"; import { resolve } from "path"; diff --git a/packages/configuration-generator/source/generators/generator.ts b/packages/configuration-generator/source/generators/generator.ts index bfa80e3dc9..9611d9a4f7 100644 --- a/packages/configuration-generator/source/generators/generator.ts +++ b/packages/configuration-generator/source/generators/generator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Application } from "@mainsail/kernel"; import { Wallet } from "../contracts.js"; diff --git a/packages/configuration-generator/source/generators/genesis-block.ts b/packages/configuration-generator/source/generators/genesis-block.ts index c5cca8987a..ed01434e6c 100644 --- a/packages/configuration-generator/source/generators/genesis-block.ts +++ b/packages/configuration-generator/source/generators/genesis-block.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable, optional, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionBuilder } from "@mainsail/crypto-transaction"; import { Deployer, Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { ConsensusAbi } from "@mainsail/evm-contracts"; diff --git a/packages/configuration-generator/source/generators/milestones.ts b/packages/configuration-generator/source/generators/milestones.ts index ff3d3781b5..4141357f47 100644 --- a/packages/configuration-generator/source/generators/milestones.ts +++ b/packages/configuration-generator/source/generators/milestones.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class MilestonesGenerator { diff --git a/packages/configuration-generator/source/generators/mnemonic.ts b/packages/configuration-generator/source/generators/mnemonic.ts index caa8a392aa..6d735ccb79 100644 --- a/packages/configuration-generator/source/generators/mnemonic.ts +++ b/packages/configuration-generator/source/generators/mnemonic.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { entropyToMnemonic, generateMnemonic } from "bip39"; @injectable() diff --git a/packages/configuration-generator/source/generators/network.ts b/packages/configuration-generator/source/generators/network.ts index b2e6d3194b..4120448b07 100644 --- a/packages/configuration-generator/source/generators/network.ts +++ b/packages/configuration-generator/source/generators/network.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class NetworkGenerator { diff --git a/packages/consensus-storage/package.json b/packages/consensus-storage/package.json index 255373f8af..7efddc7c75 100644 --- a/packages/consensus-storage/package.json +++ b/packages/consensus-storage/package.json @@ -25,7 +25,7 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "lmdb": "3.4.2" + "lmdb": "3.5.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/consensus-storage/source/service-provider.ts b/packages/consensus-storage/source/service-provider.ts index 9ffb719715..fc6d3f621f 100644 --- a/packages/consensus-storage/source/service-provider.ts +++ b/packages/consensus-storage/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { open, RootDatabase } from "lmdb"; import { join } from "path"; diff --git a/packages/consensus-storage/source/service.ts b/packages/consensus-storage/source/service.ts index c69b5a3c51..8860f40b67 100644 --- a/packages/consensus-storage/source/service.ts +++ b/packages/consensus-storage/source/service.ts @@ -1,8 +1,9 @@ +import type { Contracts } from "@mainsail/contracts"; +import type { Database, RootDatabase } from "lmdb"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; -import type { Database, RootDatabase } from "lmdb"; @injectable() export class Service implements Contracts.ConsensusStorage.Service { @@ -42,9 +43,9 @@ export class Service implements Contracts.ConsensusStorage.Service { } public async persist({ - state, - proposals, messages, + proposals, + state, }: { state: Contracts.Consensus.State; proposals: Contracts.Crypto.Proposal[]; diff --git a/packages/consensus/package.json b/packages/consensus/package.json index eaa6f61d84..738d996bf5 100644 --- a/packages/consensus/package.json +++ b/packages/consensus/package.json @@ -26,12 +26,12 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "dayjs": "1.11.13" + "dayjs": "1.11.20" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", - "esmock": "2.7.1", + "esmock": "2.7.3", "uvu": "0.5.6" }, "engines": { diff --git a/packages/consensus/source/aggregator.ts b/packages/consensus/source/aggregator.ts index 03813e88f2..861f59636b 100644 --- a/packages/consensus/source/aggregator.ts +++ b/packages/consensus/source/aggregator.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { isMajority } from "@mainsail/blockchain-utils"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Aggregator implements Contracts.Consensus.Aggregator { diff --git a/packages/consensus/source/bootstrapper.ts b/packages/consensus/source/bootstrapper.ts index 34cf3758cd..9708bd3754 100644 --- a/packages/consensus/source/bootstrapper.ts +++ b/packages/consensus/source/bootstrapper.ts @@ -1,6 +1,7 @@ +import type { Contracts, Utils } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts, Utils } from "@mainsail/contracts"; @injectable() export class Bootstrapper implements Contracts.Consensus.Bootstrapper { diff --git a/packages/consensus/source/commit-state.ts b/packages/consensus/source/commit-state.ts index e3d96b86c0..320ed24a41 100644 --- a/packages/consensus/source/commit-state.ts +++ b/packages/consensus/source/commit-state.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class CommitState implements Contracts.Processor.ProcessableUnit { diff --git a/packages/consensus/source/consensus.ts b/packages/consensus/source/consensus.ts index 84c449a9ec..cab741b605 100644 --- a/packages/consensus/source/consensus.ts +++ b/packages/consensus/source/consensus.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Events, Identifiers, Locale } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, BigNumber, Lock } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/consensus/source/processors/abstract-processor.ts b/packages/consensus/source/processors/abstract-processor.ts index 2ed2ceae7c..e9299fdacd 100644 --- a/packages/consensus/source/processors/abstract-processor.ts +++ b/packages/consensus/source/processors/abstract-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs from "dayjs"; @injectable() diff --git a/packages/consensus/source/processors/commit-processor.ts b/packages/consensus/source/processors/commit-processor.ts index cdfdf8becd..3523d37cf4 100644 --- a/packages/consensus/source/processors/commit-processor.ts +++ b/packages/consensus/source/processors/commit-processor.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { isMajority } from "@mainsail/blockchain-utils"; import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { AbstractProcessor } from "./abstract-processor.js"; @@ -37,7 +38,7 @@ export class CommitProcessor extends AbstractProcessor implements Contracts.Cons } async hasValidSignature(commit: Contracts.Crypto.Commit): Promise { - const { proof, block } = commit; + const { block, proof } = commit; const publicKeys: Buffer[] = []; for (const [index, validator] of proof.validators.entries()) { diff --git a/packages/consensus/source/processors/message-processor.ts b/packages/consensus/source/processors/message-processor.ts index 1a4d8a0bc2..0a6d7fa516 100644 --- a/packages/consensus/source/processors/message-processor.ts +++ b/packages/consensus/source/processors/message-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { AbstractProcessor } from "./abstract-processor.js"; diff --git a/packages/consensus/source/processors/proposal-processor.ts b/packages/consensus/source/processors/proposal-processor.ts index b3bfe8feba..5d225d3281 100644 --- a/packages/consensus/source/processors/proposal-processor.ts +++ b/packages/consensus/source/processors/proposal-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { AbstractProcessor } from "./abstract-processor.js"; diff --git a/packages/consensus/source/round-state-repository.ts b/packages/consensus/source/round-state-repository.ts index 9d9506efa4..4f2e8b301a 100644 --- a/packages/consensus/source/round-state-repository.ts +++ b/packages/consensus/source/round-state-repository.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RoundState } from "./round-state.js"; @injectable() diff --git a/packages/consensus/source/round-state.ts b/packages/consensus/source/round-state.ts index 0bf5978b53..694b748c29 100644 --- a/packages/consensus/source/round-state.ts +++ b/packages/consensus/source/round-state.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { isMajority, isMinority } from "@mainsail/blockchain-utils"; import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; @injectable() diff --git a/packages/consensus/source/scheduler.ts b/packages/consensus/source/scheduler.ts index b94a77bdfc..749e16156f 100644 --- a/packages/consensus/source/scheduler.ts +++ b/packages/consensus/source/scheduler.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { setTimeoutAsync } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/consensus/source/service-provider.ts b/packages/consensus/source/service-provider.ts index d02c8f23e5..686e7bad78 100644 --- a/packages/consensus/source/service-provider.ts +++ b/packages/consensus/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Lock } from "@mainsail/utils"; diff --git a/packages/constants/source/environment-variables.ts b/packages/constants/source/environment-variables.ts index 073c500f57..cdce0d7950 100644 --- a/packages/constants/source/environment-variables.ts +++ b/packages/constants/source/environment-variables.ts @@ -86,6 +86,11 @@ export const EnvironmentVariableNames = [ "MAINSAIL_API_TRANSACTION_POOL_DISABLED", "MAINSAIL_API_TRANSACTION_POOL_HOST", "MAINSAIL_API_TRANSACTION_POOL_PORT", + "MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_BLACKLIST", + "MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_DISABLED", + "MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_USER_EXPIRES", + "MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_USER_LIMIT", + "MAINSAIL_API_TRANSACTION_POOL_RATE_LIMIT_WHITELIST", "MAINSAIL_API_TRANSACTION_POOL_SSL", "MAINSAIL_API_TRANSACTION_POOL_SSL_HOST", "MAINSAIL_API_TRANSACTION_POOL_SSL_PORT", diff --git a/packages/constants/source/identifiers.ts b/packages/constants/source/identifiers.ts index 8d581df62e..6fecd8ce9b 100644 --- a/packages/constants/source/identifiers.ts +++ b/packages/constants/source/identifiers.ts @@ -54,16 +54,6 @@ export const Identifiers = { Proposal: Symbol("ConsensusStorage"), }, }, - CryptoWorker: { - Worker: { - Factory: Symbol("CryptoWorker"), - Instance: Symbol("CryptoWorker"), - }, - WorkerPool: Symbol("CryptoWorker"), - WorkerSubprocess: { - Factory: Symbol("CryptoWorker"), - }, - }, Cryptography: { Block: { Deserializer: Symbol("Crypto"), @@ -143,6 +133,16 @@ export const Identifiers = { Validator: Symbol("Crypto"), }, + CryptoWorker: { + Worker: { + Factory: Symbol("CryptoWorker"), + Instance: Symbol("CryptoWorker"), + }, + WorkerPool: Symbol("CryptoWorker"), + WorkerSubprocess: { + Factory: Symbol("CryptoWorker"), + }, + }, Database: { Instance: { Consensus: Symbol("Database"), diff --git a/packages/constants/source/units.ts b/packages/constants/source/units.ts index fdee958726..ef6b412249 100644 --- a/packages/constants/source/units.ts +++ b/packages/constants/source/units.ts @@ -1,4 +1,4 @@ -/* eslint sort-keys-fix/sort-keys-fix: 0 */ +/* eslint perfectionist/sort-objects: 0 */ export const Units = { BYTE: 1, KILOBYTE: 1024, diff --git a/packages/container/package.json b/packages/container/package.json index cc8150d2ed..df836e0f19 100644 --- a/packages/container/package.json +++ b/packages/container/package.json @@ -21,7 +21,7 @@ "uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js" }, "dependencies": { - "inversify": "7.10.3", + "inversify": "8.1.0", "reflect-metadata": "0.2.2" }, "devDependencies": { diff --git a/packages/container/source/application.ts b/packages/container/source/application.ts index 387db6d0f2..04cafcdd43 100644 --- a/packages/container/source/application.ts +++ b/packages/container/source/application.ts @@ -19,14 +19,14 @@ export class Application { serviceIdentifier: Contracts.Kernel.Container.ServiceIdentifier, ): Contracts.Kernel.Container.BindToFluentSyntax { if (this.#container.isBound(serviceIdentifier)) { - this.#container.unbindSync(serviceIdentifier); + this.#container.unbind(serviceIdentifier); } return this.#container.bind(serviceIdentifier); } public unbind(serviceIdentifier: Contracts.Kernel.Container.ServiceIdentifier): void { - return this.#container.unbindSync(serviceIdentifier); + return this.#container.unbind(serviceIdentifier); } public get(serviceIdentifier: Contracts.Kernel.Container.ServiceIdentifier): T { diff --git a/packages/container/source/decorators.ts b/packages/container/source/decorators.ts index 9872d5ef3b..bdd1089dfe 100644 --- a/packages/container/source/decorators.ts +++ b/packages/container/source/decorators.ts @@ -1,5 +1,4 @@ import "reflect-metadata"; - import { injectable as importedInjectable, injectFromBase } from "inversify"; export function injectable(): ClassDecorator { diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 1220fecc64..e362604af9 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -21,17 +21,17 @@ "uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js" }, "dependencies": { - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/constants": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", - "dayjs": "1.11.13", - "env-paths": "3.0.0", - "execa": "9.6.0", - "inversify": "7.10.3", - "joi": "18.0.0", - "type-fest": "4.41.0", - "viem": "2.33.1" + "ajv": "8.18.0", + "dayjs": "1.11.20", + "env-paths": "4.0.0", + "execa": "9.6.1", + "inversify": "8.1.0", + "joi": "18.1.2", + "type-fest": "5.5.0", + "viem": "2.47.6" }, "devDependencies": { "uvu": "0.5.6" diff --git a/packages/contracts/source/contracts/consensus-storage.ts b/packages/contracts/source/contracts/consensus-storage.ts index a99797ff5b..0677eb0581 100644 --- a/packages/contracts/source/contracts/consensus-storage.ts +++ b/packages/contracts/source/contracts/consensus-storage.ts @@ -3,9 +3,9 @@ import type { Message, Proposal } from "./crypto/index.js"; export interface Service { persist({ - state, - proposals, messages, + proposals, + state, }: { state: State; proposals: Proposal[]; diff --git a/packages/contracts/source/contracts/crypto/index.ts b/packages/contracts/source/contracts/crypto/index.ts index 1416b4fc51..33f33bd177 100644 --- a/packages/contracts/source/contracts/crypto/index.ts +++ b/packages/contracts/source/contracts/crypto/index.ts @@ -1,6 +1,6 @@ export * from "./block.js"; -export * from "./commit.js"; export * from "./commit-handler.js"; +export * from "./commit.js"; export * from "./config.js"; export * from "./crypto.js"; export * from "./hash.js"; diff --git a/packages/contracts/source/contracts/index.ts b/packages/contracts/source/contracts/index.ts index ff1e2b229b..5cf3d8a4b6 100644 --- a/packages/contracts/source/contracts/index.ts +++ b/packages/contracts/source/contracts/index.ts @@ -1,9 +1,9 @@ -export * as Api from "./api/index.js"; export * as ApiSync from "./api-sync.js"; +export * as Api from "./api/index.js"; export * as BlockchainUtils from "./blockchain-utils.js"; export * as Cli from "./cli/index.js"; -export * as Consensus from "./consensus/index.js"; export * as ConsensusStorage from "./consensus-storage.js"; +export * as Consensus from "./consensus/index.js"; export * as Crypto from "./crypto/index.js"; export * as Database from "./database.js"; export * as Evm from "./evm/index.js"; @@ -18,6 +18,6 @@ export * as State from "./state/index.js"; export * as TransactionPool from "./transaction-pool/index.js"; export * as Transactions from "./transactions.js"; export * as Types from "./types/index.js"; -export * as Validator from "./validator.js"; export * as ValidatorSet from "./validator-set.js"; +export * as Validator from "./validator.js"; export * as Webhooks from "./webhooks.js"; diff --git a/packages/contracts/source/contracts/p2p/index.ts b/packages/contracts/source/contracts/p2p/index.ts index e06506df7e..5e974a9a93 100644 --- a/packages/contracts/source/contracts/p2p/index.ts +++ b/packages/contracts/source/contracts/p2p/index.ts @@ -1,17 +1,16 @@ -export * from "./api-node.js"; export * from "./api-node-discoverer.js"; export * from "./api-node-processor.js"; export * from "./api-node-repository.js"; export * from "./api-node-verifier.js"; +export * from "./api-node.js"; export * from "./broadcaster.js"; export * from "./downloader.js"; export * from "./endpoints.js"; export * from "./enums.js"; -export * from "./header.js"; export * from "./header-service.js"; +export * from "./header.js"; export * from "./log.js"; export * from "./nes.js"; -export * from "./peer.js"; export * from "./peer-communicator.js"; export * from "./peer-connector.js"; export * from "./peer-discoverer.js"; @@ -19,6 +18,7 @@ export * from "./peer-disposer.js"; export * from "./peer-processor.js"; export * from "./peer-repository.js"; export * from "./peer-verifier.js"; +export * from "./peer.js"; export * from "./server.js"; export * from "./service.js"; export * from "./state.js"; diff --git a/packages/contracts/source/contracts/processor/index.ts b/packages/contracts/source/contracts/processor/index.ts index 56a8a9777b..2c75324586 100644 --- a/packages/contracts/source/contracts/processor/index.ts +++ b/packages/contracts/source/contracts/processor/index.ts @@ -1,5 +1,5 @@ -export * from "./block-processor.js"; export * from "./block-processor-result.js"; +export * from "./block-processor.js"; export * from "./handler.js"; export * from "./processable-unit.js"; export * from "./transaction-processor.js"; diff --git a/packages/contracts/tsconfig.json b/packages/contracts/tsconfig.json index ff97a64c4d..d363a1905c 100644 --- a/packages/contracts/tsconfig.json +++ b/packages/contracts/tsconfig.json @@ -8,8 +8,7 @@ "isolatedDeclarations": true, "sourceMap": false, "experimentalDecorators": false, - "emitDecoratorMetadata": false, - "esModuleInterop": false + "emitDecoratorMetadata": false }, "include": ["source/**/**.ts"], "references": [ diff --git a/packages/core/package.json b/packages/core/package.json index 5ac7630edd..35c225c924 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -83,12 +83,12 @@ "@mainsail/webhooks": "workspace:*", "bip39": "3.1.0", "boxen": "8.0.1", - "dayjs": "1.11.13", - "env-paths": "3.0.0", + "dayjs": "1.11.20", + "env-paths": "4.0.0", "envfile": "7.1.0", - "fs-extra": "11.3.1", - "got": "14.4.7", - "joi": "18.0.0", + "fs-extra": "11.3.4", + "got": "14.6.6", + "joi": "18.1.2", "kleur": "4.1.5", "prompts": "2.4.2" }, @@ -98,8 +98,8 @@ "@types/fs-extra": "11.0.4", "@types/prompts": "2.4.9", "@types/tmp": "0.2.6", - "cross-env": "10.0.0", - "execa": "9.6.0", + "cross-env": "10.1.0", + "execa": "9.6.1", "tmp": "0.2.5", "uvu": "0.5.6" }, diff --git a/packages/core/source/cli.ts b/packages/core/source/cli.ts index ad314c1805..dc45091a14 100644 --- a/packages/core/source/cli.ts +++ b/packages/core/source/cli.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { ApplicationFactory, Commands, InputParser, Plugins } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { readJSONSync } from "fs-extra/esm"; import { platform } from "os"; diff --git a/packages/core/source/commands/config-cli.ts b/packages/core/source/commands/config-cli.ts index e0da7e0fe3..3890bc8f11 100644 --- a/packages/core/source/commands/config-cli.ts +++ b/packages/core/source/commands/config-cli.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { BuildPackages, Channels, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import Joi from "joi"; diff --git a/packages/core/source/commands/config-database.ts b/packages/core/source/commands/config-database.ts index 48e9f22313..abd91fcafa 100644 --- a/packages/core/source/commands/config-database.ts +++ b/packages/core/source/commands/config-database.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; interface Flags { diff --git a/packages/core/source/commands/config-forger.ts b/packages/core/source/commands/config-forger.ts index 4643275e7f..024094da8d 100644 --- a/packages/core/source/commands/config-forger.ts +++ b/packages/core/source/commands/config-forger.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; import { Command as BIP38Command } from "./config-forger-bip38.js"; diff --git a/packages/core/source/commands/config-generate.ts b/packages/core/source/commands/config-generate.ts index 8fe4276612..f56a567176 100644 --- a/packages/core/source/commands/config-generate.ts +++ b/packages/core/source/commands/config-generate.ts @@ -1,8 +1,9 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { ConfigurationGenerator, Identifiers, makeApplication } from "@mainsail/configuration-generator"; import { Identifiers as AppIdentifiers, Identifiers as CliIdentifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Contracts as AppContracts } from "@mainsail/contracts"; import envPaths from "env-paths"; import Joi from "joi"; diff --git a/packages/core/source/commands/config-publish-custom.ts b/packages/core/source/commands/config-publish-custom.ts index 8d7b298b51..24867d615f 100644 --- a/packages/core/source/commands/config-publish-custom.ts +++ b/packages/core/source/commands/config-publish-custom.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { http } from "@mainsail/utils"; import { createWriteStream, existsSync, readFileSync, writeFileSync } from "fs"; import { ensureDirSync, removeSync } from "fs-extra/esm"; diff --git a/packages/core/source/commands/config-publish.ts b/packages/core/source/commands/config-publish.ts index 796f9dec9a..0e7e6b6a98 100644 --- a/packages/core/source/commands/config-publish.ts +++ b/packages/core/source/commands/config-publish.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { copySync, ensureDirSync, removeSync } from "fs-extra/esm"; import Joi from "joi"; diff --git a/packages/core/source/commands/core-log.ts b/packages/core/source/commands/core-log.ts index b095873e78..fcc5c7032f 100644 --- a/packages/core/source/commands/core-log.ts +++ b/packages/core/source/commands/core-log.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/core-restart.ts b/packages/core/source/commands/core-restart.ts index 25060fdbc4..dee5602131 100644 --- a/packages/core/source/commands/core-restart.ts +++ b/packages/core/source/commands/core-restart.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/core/source/commands/core-start.ts b/packages/core/source/commands/core-start.ts index 529f6e830f..b77a588a22 100644 --- a/packages/core/source/commands/core-start.ts +++ b/packages/core/source/commands/core-start.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands, Utils } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/core-status.ts b/packages/core/source/commands/core-status.ts index 6377b738d9..b29421d7cc 100644 --- a/packages/core/source/commands/core-status.ts +++ b/packages/core/source/commands/core-status.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/core/source/commands/core-stop.ts b/packages/core/source/commands/core-stop.ts index d88f3f12f9..fb597d0585 100644 --- a/packages/core/source/commands/core-stop.ts +++ b/packages/core/source/commands/core-stop.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/env-paths-clear.ts b/packages/core/source/commands/env-paths-clear.ts index 39d97d5a57..47930846b1 100644 --- a/packages/core/source/commands/env-paths-clear.ts +++ b/packages/core/source/commands/env-paths-clear.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync, readdirSync } from "fs"; import { emptyDirSync, removeSync } from "fs-extra/esm"; import Joi from "joi"; diff --git a/packages/core/source/commands/env-paths.ts b/packages/core/source/commands/env-paths.ts index c26595e913..b70df4cfca 100644 --- a/packages/core/source/commands/env-paths.ts +++ b/packages/core/source/commands/env-paths.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/core/source/commands/env-set.ts b/packages/core/source/commands/env-set.ts index b2f2df1c41..2861fb0dbd 100644 --- a/packages/core/source/commands/env-set.ts +++ b/packages/core/source/commands/env-set.ts @@ -1,8 +1,8 @@ -// eslint-disable-next-line unicorn/prevent-abbreviations +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/help.ts b/packages/core/source/commands/help.ts index f879f13749..580269f3c1 100644 --- a/packages/core/source/commands/help.ts +++ b/packages/core/source/commands/help.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import boxen from "boxen"; import { blue, bold, cyan } from "kleur/colors"; diff --git a/packages/core/source/commands/plugin-install.ts b/packages/core/source/commands/plugin-install.ts index 24e806f655..0502603cc5 100644 --- a/packages/core/source/commands/plugin-install.ts +++ b/packages/core/source/commands/plugin-install.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/plugin-remove.ts b/packages/core/source/commands/plugin-remove.ts index b4ca06f4b4..2dad343dfc 100644 --- a/packages/core/source/commands/plugin-remove.ts +++ b/packages/core/source/commands/plugin-remove.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/plugin-update.ts b/packages/core/source/commands/plugin-update.ts index 8b140116f4..2289d167f7 100644 --- a/packages/core/source/commands/plugin-update.ts +++ b/packages/core/source/commands/plugin-update.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/reinstall.ts b/packages/core/source/commands/reinstall.ts index 133dc2371c..c6183cde7c 100644 --- a/packages/core/source/commands/reinstall.ts +++ b/packages/core/source/commands/reinstall.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { BuildPackages, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import Joi from "joi"; diff --git a/packages/core/source/commands/top.ts b/packages/core/source/commands/top.ts index 742fdd4896..8685fd8a21 100644 --- a/packages/core/source/commands/top.ts +++ b/packages/core/source/commands/top.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { prettyBytes, prettyTime } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/core/source/commands/update.ts b/packages/core/source/commands/update.ts index 2ccc76638c..fb3675cf77 100644 --- a/packages/core/source/commands/update.ts +++ b/packages/core/source/commands/update.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import Joi from "joi"; @injectable() diff --git a/packages/core/source/commands/version.ts b/packages/core/source/commands/version.ts index d0e7b5ace1..79f0ffb1a8 100644 --- a/packages/core/source/commands/version.ts +++ b/packages/core/source/commands/version.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Commands } from "@mainsail/cli"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Command extends Commands.Command { diff --git a/packages/crypto-address-base58/source/address.factory.ts b/packages/crypto-address-base58/source/address.factory.ts index b238ea08b3..9d42fe516c 100644 --- a/packages/crypto-address-base58/source/address.factory.ts +++ b/packages/crypto-address-base58/source/address.factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { base58 } from "bstring"; @injectable() diff --git a/packages/crypto-address-base58/source/service-provider.ts b/packages/crypto-address-base58/source/service-provider.ts index cb0294ecdc..baf95300a3 100644 --- a/packages/crypto-address-base58/source/service-provider.ts +++ b/packages/crypto-address-base58/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { AddressFactory } from "./address.factory.js"; diff --git a/packages/crypto-address-keccak256/package.json b/packages/crypto-address-keccak256/package.json index 66a9428770..6b89be459f 100644 --- a/packages/crypto-address-keccak256/package.json +++ b/packages/crypto-address-keccak256/package.json @@ -26,7 +26,7 @@ "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", "bcrypto": "5.5.2", - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-address-keccak256/source/address.factory.ts b/packages/crypto-address-keccak256/source/address.factory.ts index 91c48f624f..ab720a3da8 100644 --- a/packages/crypto-address-keccak256/source/address.factory.ts +++ b/packages/crypto-address-keccak256/source/address.factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Keccak256, secp256k1 } from "bcrypto"; import { Address, getAddress, isAddress, toBytes, toHex } from "viem"; diff --git a/packages/crypto-address-keccak256/source/serializer.ts b/packages/crypto-address-keccak256/source/serializer.ts index 8cf6d85ff1..05fa0b8383 100644 --- a/packages/crypto-address-keccak256/source/serializer.ts +++ b/packages/crypto-address-keccak256/source/serializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { ByteBuffer } from "@mainsail/utils"; @injectable() diff --git a/packages/crypto-address-keccak256/source/service-provider.ts b/packages/crypto-address-keccak256/source/service-provider.ts index b496ab97ae..a6ca417fe1 100644 --- a/packages/crypto-address-keccak256/source/service-provider.ts +++ b/packages/crypto-address-keccak256/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { AddressFactory } from "./address.factory.js"; diff --git a/packages/crypto-block/package.json b/packages/crypto-block/package.json index 0cf16d4e16..bf731faafa 100644 --- a/packages/crypto-block/package.json +++ b/packages/crypto-block/package.json @@ -28,7 +28,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1" + "ajv": "8.18.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-block/source/block.ts b/packages/crypto-block/source/block.ts index 72f747ed1b..a7d36b92fe 100644 --- a/packages/crypto-block/source/block.ts +++ b/packages/crypto-block/source/block.ts @@ -1,7 +1,8 @@ import type { Contracts } from "@mainsail/contracts"; -import { BlockTransaction } from "@mainsail/crypto-transaction"; import type { BigNumber } from "@mainsail/utils"; +import { BlockTransaction } from "@mainsail/crypto-transaction"; + interface BlockArguments { data: Contracts.Crypto.BlockHeader; serialized: string; @@ -58,7 +59,7 @@ export class Block implements Contracts.Crypto.Block { toData(): Contracts.Crypto.BlockData { return { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ timestamp: this.timestamp, version: this.version, number: this.number, @@ -75,7 +76,7 @@ export class Block implements Contracts.Crypto.Block { proposer: this.proposer, hash: this.hash, transactions: this.transactions.map((transaction) => transaction.toData()), - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ }; } } diff --git a/packages/crypto-block/source/deserializer.ts b/packages/crypto-block/source/deserializer.ts index 0f0efe2aee..1ed413acd9 100644 --- a/packages/crypto-block/source/deserializer.ts +++ b/packages/crypto-block/source/deserializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidBlockBytesError } from "@mainsail/exceptions"; import { ByteBuffer } from "@mainsail/utils"; diff --git a/packages/crypto-block/source/factory.ts b/packages/crypto-block/source/factory.ts index d80bfef9c4..7a34eda66a 100644 --- a/packages/crypto-block/source/factory.ts +++ b/packages/crypto-block/source/factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockSchemaError } from "@mainsail/exceptions"; import { BigNumber } from "@mainsail/utils"; diff --git a/packages/crypto-block/source/hash.factory.ts b/packages/crypto-block/source/hash.factory.ts index 101d00e822..0616234f39 100644 --- a/packages/crypto-block/source/hash.factory.ts +++ b/packages/crypto-block/source/hash.factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class HashFactory { diff --git a/packages/crypto-block/source/schemas.test.ts b/packages/crypto-block/source/schemas.test.ts index 918e1d3faf..d6fdcba244 100644 --- a/packages/crypto-block/source/schemas.test.ts +++ b/packages/crypto-block/source/schemas.test.ts @@ -145,7 +145,7 @@ describe<{ assert.defined(validator.validate("transactionsRoot", "a".repeat(length + 1)).error); }); - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ const blockOriginal = { hash: "1".repeat(64), version: 1, @@ -163,7 +163,7 @@ describe<{ transactionsRoot: "0".repeat(64), proposer: "0x" + "A".repeat(40), }; - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ it("blockHeader - should be ok", async ({ validator }) => { const block = { diff --git a/packages/crypto-block/source/schemas.ts b/packages/crypto-block/source/schemas.ts index e54ff09dc5..c864cec708 100644 --- a/packages/crypto-block/source/schemas.ts +++ b/packages/crypto-block/source/schemas.ts @@ -31,7 +31,7 @@ export const schemas: Record< blockHeader: { $id: "blockHeader", properties: { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ hash: { $ref: "blockHash" }, version: { enum: [1] }, timestamp: { maximum: 2 ** 48 - 1, minimum: 0, type: "integer" }, @@ -47,7 +47,7 @@ export const schemas: Record< payloadSize: { minimum: 0, type: "integer" }, transactionsRoot: { $ref: "transactionsRoot" }, proposer: { $ref: "address" }, - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ }, required: [ "hash", diff --git a/packages/crypto-block/source/serializer-schemas.ts b/packages/crypto-block/source/serializer-schemas.ts index e54462ea7c..70217bcbf6 100644 --- a/packages/crypto-block/source/serializer-schemas.ts +++ b/packages/crypto-block/source/serializer-schemas.ts @@ -1,4 +1,4 @@ -/* eslint-disable sort-keys-fix/sort-keys-fix */ +/* eslint-disable perfectionist/sort-objects */ import type { Contracts } from "@mainsail/contracts"; export const blockHeaderSchema: Record = { diff --git a/packages/crypto-block/source/serializer.ts b/packages/crypto-block/source/serializer.ts index 86e8f43f0d..670eb37031 100644 --- a/packages/crypto-block/source/serializer.ts +++ b/packages/crypto-block/source/serializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { blockHeaderSchema, blockSchema } from "./serializer-schemas.js"; diff --git a/packages/crypto-block/source/service-provider.ts b/packages/crypto-block/source/service-provider.ts index e41e652ceb..e39c0c87a3 100644 --- a/packages/crypto-block/source/service-provider.ts +++ b/packages/crypto-block/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Deserializer } from "./deserializer.js"; diff --git a/packages/crypto-commit/package.json b/packages/crypto-commit/package.json index ea4c5b5fad..d7333bea82 100644 --- a/packages/crypto-commit/package.json +++ b/packages/crypto-commit/package.json @@ -26,7 +26,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1" + "ajv": "8.18.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-commit/source/deserializer.ts b/packages/crypto-commit/source/deserializer.ts index 3d3163c1fa..84f317e898 100644 --- a/packages/crypto-commit/source/deserializer.ts +++ b/packages/crypto-commit/source/deserializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidCommitProofBytesError } from "@mainsail/exceptions"; import { ByteBuffer } from "@mainsail/utils"; diff --git a/packages/crypto-commit/source/factory.ts b/packages/crypto-commit/source/factory.ts index 398e323a08..1845b24a1a 100644 --- a/packages/crypto-commit/source/factory.ts +++ b/packages/crypto-commit/source/factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { MessageSchemaError } from "@mainsail/exceptions"; import { ByteBuffer, validatorSetUnpack } from "@mainsail/utils"; diff --git a/packages/crypto-commit/source/serializer.ts b/packages/crypto-commit/source/serializer.ts index ab572cc43d..bf14b25eb0 100644 --- a/packages/crypto-commit/source/serializer.ts +++ b/packages/crypto-commit/source/serializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Serializer implements Contracts.Crypto.CommitSerializer { diff --git a/packages/crypto-commit/source/service-provider.ts b/packages/crypto-commit/source/service-provider.ts index 79104c9546..6c36b01010 100644 --- a/packages/crypto-commit/source/service-provider.ts +++ b/packages/crypto-commit/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Deserializer } from "./deserializer.js"; diff --git a/packages/crypto-config/package.json b/packages/crypto-config/package.json index d22dcede90..af3762843c 100644 --- a/packages/crypto-config/package.json +++ b/packages/crypto-config/package.json @@ -26,7 +26,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", + "ajv": "8.18.0", "deepmerge": "4.3.1", "lodash.clone": "4.5.0", "lodash.get": "4.4.2", diff --git a/packages/crypto-config/source/configuration.ts b/packages/crypto-config/source/configuration.ts index d05b6d30fb..6fac6da3d3 100644 --- a/packages/crypto-config/source/configuration.ts +++ b/packages/crypto-config/source/configuration.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidMilestoneConfigurationError, InvalidNumberOfRoundValidatorsError, diff --git a/packages/crypto-config/source/service-provider.ts b/packages/crypto-config/source/service-provider.ts index 0c5a8a6300..d56abf19ca 100644 --- a/packages/crypto-config/source/service-provider.ts +++ b/packages/crypto-config/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Configuration } from "./configuration.js"; diff --git a/packages/crypto-hash-bcrypto/source/hash.factory.ts b/packages/crypto-hash-bcrypto/source/hash.factory.ts index c407669b9a..a58ea06414 100644 --- a/packages/crypto-hash-bcrypto/source/hash.factory.ts +++ b/packages/crypto-hash-bcrypto/source/hash.factory.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { Hash256, Keccak256, RIPEMD160, SHA256 } from "bcrypto"; @injectable() diff --git a/packages/crypto-key-pair-bls12-381/package.json b/packages/crypto-key-pair-bls12-381/package.json index 79a51a69f7..22924cd3d8 100644 --- a/packages/crypto-key-pair-bls12-381/package.json +++ b/packages/crypto-key-pair-bls12-381/package.json @@ -28,7 +28,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "@scure/bip39": "1.6.0", + "@scure/bip39": "2.0.1", "bls12-381-keygen": "0.2.4", "wif": "5.0.0" }, diff --git a/packages/crypto-key-pair-bls12-381/source/get-bls.ts b/packages/crypto-key-pair-bls12-381/source/get-bls.ts index f198dfe420..db33259003 100644 --- a/packages/crypto-key-pair-bls12-381/source/get-bls.ts +++ b/packages/crypto-key-pair-bls12-381/source/get-bls.ts @@ -1,6 +1,7 @@ +import type { IBls } from "@chainsafe/bls/types"; + /* c8 ignore start */ import { getImplementation } from "@chainsafe/bls/getImplementation"; -import type { IBls } from "@chainsafe/bls/types"; let _bls: IBls | undefined; export const getBls = async (): Promise => { diff --git a/packages/crypto-key-pair-bls12-381/source/pair.ts b/packages/crypto-key-pair-bls12-381/source/pair.ts index 60319e207b..78150455b6 100644 --- a/packages/crypto-key-pair-bls12-381/source/pair.ts +++ b/packages/crypto-key-pair-bls12-381/source/pair.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { mnemonicToSeedSync } from "@scure/bip39"; import { deriveChild, deriveMaster } from "bls12-381-keygen"; import { decode } from "wif"; diff --git a/packages/crypto-key-pair-bls12-381/source/private.ts b/packages/crypto-key-pair-bls12-381/source/private.ts index 6f1c868106..ae46ad5f55 100644 --- a/packages/crypto-key-pair-bls12-381/source/private.ts +++ b/packages/crypto-key-pair-bls12-381/source/private.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class PrivateKeyFactory implements Contracts.Crypto.PrivateKeyFactory { diff --git a/packages/crypto-key-pair-bls12-381/source/public.ts b/packages/crypto-key-pair-bls12-381/source/public.ts index 839d873b3f..5ec4fb00fc 100644 --- a/packages/crypto-key-pair-bls12-381/source/public.ts +++ b/packages/crypto-key-pair-bls12-381/source/public.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { NotImplemented } from "@mainsail/exceptions"; import { getBls } from "./get-bls.js"; diff --git a/packages/crypto-key-pair-bls12-381/source/serializer.ts b/packages/crypto-key-pair-bls12-381/source/serializer.ts index 9e73ef403c..f188dc6e14 100644 --- a/packages/crypto-key-pair-bls12-381/source/serializer.ts +++ b/packages/crypto-key-pair-bls12-381/source/serializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { ByteBuffer } from "@mainsail/utils"; @injectable() diff --git a/packages/crypto-key-pair-bls12-381/source/service-provider.ts b/packages/crypto-key-pair-bls12-381/source/service-provider.ts index eb8d06d431..f770e4e2bb 100644 --- a/packages/crypto-key-pair-bls12-381/source/service-provider.ts +++ b/packages/crypto-key-pair-bls12-381/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable, Selectors } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { KeyPairFactory } from "./pair.js"; diff --git a/packages/crypto-key-pair-ecdsa/source/pair.ts b/packages/crypto-key-pair-ecdsa/source/pair.ts index 8d01945d81..c90754abac 100644 --- a/packages/crypto-key-pair-ecdsa/source/pair.ts +++ b/packages/crypto-key-pair-ecdsa/source/pair.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { secp256k1, SHA256 } from "bcrypto"; import { decode } from "wif"; diff --git a/packages/crypto-key-pair-ecdsa/source/private.ts b/packages/crypto-key-pair-ecdsa/source/private.ts index 6f1c868106..ae46ad5f55 100644 --- a/packages/crypto-key-pair-ecdsa/source/private.ts +++ b/packages/crypto-key-pair-ecdsa/source/private.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class PrivateKeyFactory implements Contracts.Crypto.PrivateKeyFactory { diff --git a/packages/crypto-key-pair-ecdsa/source/public.ts b/packages/crypto-key-pair-ecdsa/source/public.ts index 0a4197339d..eedb9f684c 100644 --- a/packages/crypto-key-pair-ecdsa/source/public.ts +++ b/packages/crypto-key-pair-ecdsa/source/public.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidMultiSignatureAssetError, NotImplemented, PublicKeyError } from "@mainsail/exceptions"; import { numberToHex } from "@mainsail/utils"; import { secp256k1 } from "bcrypto"; diff --git a/packages/crypto-key-pair-ecdsa/source/serializer.ts b/packages/crypto-key-pair-ecdsa/source/serializer.ts index 1f16552e98..89a4acec5b 100644 --- a/packages/crypto-key-pair-ecdsa/source/serializer.ts +++ b/packages/crypto-key-pair-ecdsa/source/serializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { ByteBuffer } from "@mainsail/utils"; @injectable() diff --git a/packages/crypto-key-pair-ecdsa/source/service-provider.ts b/packages/crypto-key-pair-ecdsa/source/service-provider.ts index 6648d88b59..e0a62df293 100644 --- a/packages/crypto-key-pair-ecdsa/source/service-provider.ts +++ b/packages/crypto-key-pair-ecdsa/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable, Selectors } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { KeyPairFactory } from "./pair.js"; diff --git a/packages/crypto-messages/package.json b/packages/crypto-messages/package.json index d7a7c068da..78dec4b48b 100644 --- a/packages/crypto-messages/package.json +++ b/packages/crypto-messages/package.json @@ -26,7 +26,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1" + "ajv": "8.18.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-messages/source/deserializer.ts b/packages/crypto-messages/source/deserializer.ts index 4dade36393..412f5dd97e 100644 --- a/packages/crypto-messages/source/deserializer.ts +++ b/packages/crypto-messages/source/deserializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { MessageDeserializationError } from "@mainsail/exceptions"; import { ByteBuffer } from "@mainsail/utils"; diff --git a/packages/crypto-messages/source/factory.ts b/packages/crypto-messages/source/factory.ts index 9581b790ea..6a1420266f 100644 --- a/packages/crypto-messages/source/factory.ts +++ b/packages/crypto-messages/source/factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { MessageSchemaError } from "@mainsail/exceptions"; import { Message } from "./message.js"; diff --git a/packages/crypto-messages/source/message.ts b/packages/crypto-messages/source/message.ts index a3b8709f4d..8036f05200 100644 --- a/packages/crypto-messages/source/message.ts +++ b/packages/crypto-messages/source/message.ts @@ -10,13 +10,13 @@ export class Message implements Contracts.Crypto.Message { #serialized: Buffer; constructor({ - type, + blockHash, blockNumber, round, - blockHash, - validatorIndex, - signature, serialized, + signature, + type, + validatorIndex, }: Contracts.Crypto.MessageData & { serialized: Buffer }) { this.#type = type; this.#blockNumber = blockNumber; diff --git a/packages/crypto-messages/source/schemas.ts b/packages/crypto-messages/source/schemas.ts index 48d33ad1ce..b37e268272 100644 --- a/packages/crypto-messages/source/schemas.ts +++ b/packages/crypto-messages/source/schemas.ts @@ -1,6 +1,7 @@ -import { Enums } from "@mainsail/constants"; import type { AnySchemaObject } from "ajv"; +import { Enums } from "@mainsail/constants"; + export const schemas: Record<"message", AnySchemaObject> = { message: { $id: "message", diff --git a/packages/crypto-messages/source/serializer-schemas.ts b/packages/crypto-messages/source/serializer-schemas.ts index 2f2d97085b..5154762113 100644 --- a/packages/crypto-messages/source/serializer-schemas.ts +++ b/packages/crypto-messages/source/serializer-schemas.ts @@ -1,4 +1,4 @@ -/* eslint-disable sort-keys-fix/sort-keys-fix */ +/* eslint-disable perfectionist/sort-objects */ import type { Contracts } from "@mainsail/contracts"; export const schemaForSignature: Record = { diff --git a/packages/crypto-messages/source/serializer.ts b/packages/crypto-messages/source/serializer.ts index 0f5d895de7..26d358c36d 100644 --- a/packages/crypto-messages/source/serializer.ts +++ b/packages/crypto-messages/source/serializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { schema, schemaForSignature } from "./serializer-schemas.js"; diff --git a/packages/crypto-messages/source/service-provider.ts b/packages/crypto-messages/source/service-provider.ts index c1d7542765..eacb6b2384 100644 --- a/packages/crypto-messages/source/service-provider.ts +++ b/packages/crypto-messages/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Deserializer } from "./deserializer.js"; diff --git a/packages/crypto-proposal/package.json b/packages/crypto-proposal/package.json index c1727b0916..092fee890a 100644 --- a/packages/crypto-proposal/package.json +++ b/packages/crypto-proposal/package.json @@ -28,7 +28,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1" + "ajv": "8.18.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-proposal/source/deserializer.ts b/packages/crypto-proposal/source/deserializer.ts index 029940bc64..a6db258cee 100644 --- a/packages/crypto-proposal/source/deserializer.ts +++ b/packages/crypto-proposal/source/deserializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidProposalBytesError } from "@mainsail/exceptions"; import { ByteBuffer } from "@mainsail/utils"; diff --git a/packages/crypto-proposal/source/factory.ts b/packages/crypto-proposal/source/factory.ts index 2690fe7672..a6da2cf6b3 100644 --- a/packages/crypto-proposal/source/factory.ts +++ b/packages/crypto-proposal/source/factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { MessageSchemaError } from "@mainsail/exceptions"; import { ByteBuffer } from "@mainsail/utils"; diff --git a/packages/crypto-proposal/source/proposal.test.ts b/packages/crypto-proposal/source/proposal.test.ts index a086b82709..e03fd171aa 100644 --- a/packages/crypto-proposal/source/proposal.test.ts +++ b/packages/crypto-proposal/source/proposal.test.ts @@ -128,7 +128,7 @@ describe<{ assert.equal( proposalFull.toString(), - `{"block":"a82964de6a37876e9e955cb5f97f6c25b9f52871cdb66c4dae9b33f0c832df65","blockNumber":2,"round":1,"validRound":0,"validatorIndex":0}`, + `{"block":"a82964de6a37876e9e955cb5f97f6c25b9f52871cdb66c4dae9b33f0c832df65","blockNumber":2,"round":1,"validatorIndex":0,"validRound":0}`, ); }); diff --git a/packages/crypto-proposal/source/proposal.ts b/packages/crypto-proposal/source/proposal.ts index 4cf9764094..22c9d194c7 100644 --- a/packages/crypto-proposal/source/proposal.ts +++ b/packages/crypto-proposal/source/proposal.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Proposal implements Contracts.Crypto.Proposal { @@ -18,14 +19,14 @@ export class Proposal implements Contracts.Crypto.Proposal { #serialized!: Buffer; public initialize({ - round, - validatorIndex, blockHeader, lockProof, payloadSerialized, - validRound, - signature, + round, serialized, + signature, + validatorIndex, + validRound, }: Contracts.Crypto.ProposalData & { serialized: Buffer; }): Proposal { @@ -98,8 +99,8 @@ export class Proposal implements Contracts.Crypto.Proposal { block: this.#blockHeader.hash, blockNumber: this.#blockHeader.number, round: this.#round, - validRound: this.#validRound, validatorIndex: this.#validatorIndex, + validRound: this.#validRound, }); } @@ -108,8 +109,8 @@ export class Proposal implements Contracts.Crypto.Proposal { payloadSerialized: this.#payloadSerialized, round: this.#round, signature: this.#signature, - validRound: this.#validRound, validatorIndex: this.#validatorIndex, + validRound: this.#validRound, }; } @@ -120,8 +121,8 @@ export class Proposal implements Contracts.Crypto.Proposal { payloadSerialized: this.#payloadSerialized, round: this.#round, signature: this.#signature, - validRound: this.#validRound, validatorIndex: this.#validatorIndex, + validRound: this.#validRound, }; } } diff --git a/packages/crypto-proposal/source/schemas.ts b/packages/crypto-proposal/source/schemas.ts index 41c6490c67..81d29e2b7e 100644 --- a/packages/crypto-proposal/source/schemas.ts +++ b/packages/crypto-proposal/source/schemas.ts @@ -6,8 +6,8 @@ const proposalUnsigned = { properties: { payloadSerialized: { $ref: "hex" }, round: { minimum: 0, type: "integer" }, - validRound: { minimum: 0, type: "integer" }, validatorIndex: { isValidatorIndex: { blockNumberPath: "payloadSerialized" } }, + validRound: { minimum: 0, type: "integer" }, }, required: ["round", "payloadSerialized", "validatorIndex"], type: "object", diff --git a/packages/crypto-proposal/source/serializer-schemas.ts b/packages/crypto-proposal/source/serializer-schemas.ts index 672ac55a8a..7ca0b195db 100644 --- a/packages/crypto-proposal/source/serializer-schemas.ts +++ b/packages/crypto-proposal/source/serializer-schemas.ts @@ -1,4 +1,4 @@ -/* eslint-disable sort-keys-fix/sort-keys-fix */ +/* eslint-disable perfectionist/sort-objects */ import type { Contracts } from "@mainsail/contracts"; export const schemaUnsigned: Record = { diff --git a/packages/crypto-proposal/source/serializer.ts b/packages/crypto-proposal/source/serializer.ts index d107e609d0..b50ac0098b 100644 --- a/packages/crypto-proposal/source/serializer.ts +++ b/packages/crypto-proposal/source/serializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { lockProofSchema, schema, schemaUnsigned } from "./serializer-schemas.js"; diff --git a/packages/crypto-proposal/source/service-provider.ts b/packages/crypto-proposal/source/service-provider.ts index f055c141ab..2643c695f8 100644 --- a/packages/crypto-proposal/source/service-provider.ts +++ b/packages/crypto-proposal/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Deserializer } from "./deserializer.js"; diff --git a/packages/crypto-signature-bls12-381/source/serializer.ts b/packages/crypto-signature-bls12-381/source/serializer.ts index 06f6a69088..991508768d 100644 --- a/packages/crypto-signature-bls12-381/source/serializer.ts +++ b/packages/crypto-signature-bls12-381/source/serializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { ByteBuffer } from "@mainsail/utils"; @injectable() diff --git a/packages/crypto-signature-bls12-381/source/service-provider.ts b/packages/crypto-signature-bls12-381/source/service-provider.ts index c2489f5ab8..7748cb9a1a 100644 --- a/packages/crypto-signature-bls12-381/source/service-provider.ts +++ b/packages/crypto-signature-bls12-381/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable, Selectors } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { schemas } from "./schemas.js"; diff --git a/packages/crypto-signature-bls12-381/source/signature.ts b/packages/crypto-signature-bls12-381/source/signature.ts index cd776da4a3..45635a0722 100644 --- a/packages/crypto-signature-bls12-381/source/signature.ts +++ b/packages/crypto-signature-bls12-381/source/signature.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { getBls } from "@mainsail/crypto-key-pair-bls12-381"; @injectable() diff --git a/packages/crypto-signature-ecdsa/source/signature.ts b/packages/crypto-signature-ecdsa/source/signature.ts index f19316572f..55531db0eb 100644 --- a/packages/crypto-signature-ecdsa/source/signature.ts +++ b/packages/crypto-signature-ecdsa/source/signature.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { secp256k1 } from "bcrypto"; @injectable() diff --git a/packages/crypto-transaction/package.json b/packages/crypto-transaction/package.json index 2610b03e74..824bc0f851 100644 --- a/packages/crypto-transaction/package.json +++ b/packages/crypto-transaction/package.json @@ -26,8 +26,8 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", - "viem": "2.34.0" + "ajv": "8.18.0", + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-transaction/source/builder.ts b/packages/crypto-transaction/source/builder.ts index 0a20a66492..5d6b9de984 100644 --- a/packages/crypto-transaction/source/builder.ts +++ b/packages/crypto-transaction/source/builder.ts @@ -1,6 +1,7 @@ +import type { Contracts, Utils } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct, tagged } from "@mainsail/container"; -import type { Contracts, Utils } from "@mainsail/contracts"; import { MissingTransactionSignatureError, ValidationFailed } from "@mainsail/exceptions"; import { BigNumber } from "@mainsail/utils"; diff --git a/packages/crypto-transaction/source/deserializer.ts b/packages/crypto-transaction/source/deserializer.ts index a680be63d0..27028fa218 100644 --- a/packages/crypto-transaction/source/deserializer.ts +++ b/packages/crypto-transaction/source/deserializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { BigNumber } from "@mainsail/utils"; import { bytesToHex, getAddress, Hex, hexToBigInt } from "viem"; @@ -126,7 +127,7 @@ export class Deserializer implements Contracts.Crypto.TransactionDeserializer { public async deserialize( serialized: Buffer, ): Promise<{ data: Contracts.Crypto.TransactionSerializable; serialized: Buffer }> { - const { start, end } = decodeListBounds(serialized); + const { end, start } = decodeListBounds(serialized); if (end !== serialized.byteLength) { throw new Error("decoded RLP contains trailing bytes"); @@ -178,7 +179,7 @@ export class Deserializer implements Contracts.Crypto.TransactionDeserializer { legacySecondSignature = fields[9].slice(2); } - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ let transaction: Contracts.Crypto.TransactionSerializable = { network, to, @@ -198,7 +199,7 @@ export class Deserializer implements Contracts.Crypto.TransactionDeserializer { legacySecondSignature, }; } - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ return { data: transaction, serialized }; } diff --git a/packages/crypto-transaction/source/factory.ts b/packages/crypto-transaction/source/factory.ts index 2e42969c96..ef520782ee 100644 --- a/packages/crypto-transaction/source/factory.ts +++ b/packages/crypto-transaction/source/factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DuplicateParticipantInMultiSignatureError, InvalidTransactionBytesError, diff --git a/packages/crypto-transaction/source/hash.factory.ts b/packages/crypto-transaction/source/hash.factory.ts index a795217db4..97caf7bd61 100644 --- a/packages/crypto-transaction/source/hash.factory.ts +++ b/packages/crypto-transaction/source/hash.factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class HashFactory implements Contracts.Crypto.TransactionHashFactory { diff --git a/packages/crypto-transaction/source/serializer.ts b/packages/crypto-transaction/source/serializer.ts index 45d01e15a5..cb7ab28485 100644 --- a/packages/crypto-transaction/source/serializer.ts +++ b/packages/crypto-transaction/source/serializer.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { ByteArray, Hex, toBytes, toRlp } from "viem"; @injectable() diff --git a/packages/crypto-transaction/source/service-provider.ts b/packages/crypto-transaction/source/service-provider.ts index 84a8670ca1..7396f2bd1a 100644 --- a/packages/crypto-transaction/source/service-provider.ts +++ b/packages/crypto-transaction/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { Deserializer } from "./deserializer.js"; diff --git a/packages/crypto-transaction/source/signer.ts b/packages/crypto-transaction/source/signer.ts index 50503fbdf4..26926d45a0 100644 --- a/packages/crypto-transaction/source/signer.ts +++ b/packages/crypto-transaction/source/signer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { formatEcdsaSignature } from "@mainsail/utils"; @injectable() diff --git a/packages/crypto-transaction/source/transaction.ts b/packages/crypto-transaction/source/transaction.ts index 7192b4ee60..3a9f40be1a 100644 --- a/packages/crypto-transaction/source/transaction.ts +++ b/packages/crypto-transaction/source/transaction.ts @@ -44,7 +44,7 @@ export class Transaction implements Contracts.Crypto.Transaction { toData(): Contracts.Crypto.TransactionData { let data: Contracts.Crypto.TransactionData = { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ hash: this.hash, network: this.network, from: this.from, @@ -60,7 +60,7 @@ export class Transaction implements Contracts.Crypto.Transaction { v: this.v, r: this.r, s: this.s, - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ }; if (this.legacySecondSignature) { diff --git a/packages/crypto-transaction/source/validation/keywords.ts b/packages/crypto-transaction/source/validation/keywords.ts index 0abdcf9b3b..0b4907e6cf 100644 --- a/packages/crypto-transaction/source/validation/keywords.ts +++ b/packages/crypto-transaction/source/validation/keywords.ts @@ -1,7 +1,8 @@ import type { Contracts } from "@mainsail/contracts"; -import { BigNumber } from "@mainsail/utils"; import type { AnySchemaObject, FuncKeywordDefinition } from "ajv"; +import { BigNumber } from "@mainsail/utils"; + export const makeKeywords = ( configuration: Contracts.Crypto.Configuration, ): { @@ -35,7 +36,7 @@ export const makeKeywords = ( return (data, parentSchema: AnySchemaObject) => { const { - gas: { minimumGasPrice, maximumGasPrice }, + gas: { maximumGasPrice, minimumGasPrice }, } = configuration.getMilestone(); try { @@ -91,7 +92,7 @@ export const makeKeywords = ( compile() { return (data) => { const { - gas: { minimumGasLimit, maximumGasLimit }, + gas: { maximumGasLimit, minimumGasLimit }, } = configuration.getMilestone(); try { diff --git a/packages/crypto-transaction/source/validation/schemas.ts b/packages/crypto-transaction/source/validation/schemas.ts index 92d21b4509..d96f62cda6 100644 --- a/packages/crypto-transaction/source/validation/schemas.ts +++ b/packages/crypto-transaction/source/validation/schemas.ts @@ -20,7 +20,7 @@ const networkByte: SchemaObject = { const transaction: SchemaObject = { $id: "transaction", properties: { - /* eslint-disable sort-keys-fix/sort-keys-fix */ + /* eslint-disable perfectionist/sort-objects */ hash: { $ref: "transactionHash" }, // Signed network: { $ref: "networkByte" }, @@ -50,7 +50,7 @@ const transaction: SchemaObject = { allOf: [{ maxLength: 130, minLength: 130 }, { $ref: "alphanumeric" }], type: "string", }, - /* eslint-enable sort-keys-fix/sort-keys-fix */ + /* eslint-enable perfectionist/sort-objects */ }, required: ["network", "gasPrice", "gasLimit", "value", "nonce", "data"], type: "object", @@ -80,7 +80,7 @@ export const schemas = { prefixedTransactionHash, transaction, transactionHash, + transactions, transactionSigned, transactionStrict, - transactions, }; diff --git a/packages/crypto-transaction/source/verifier.ts b/packages/crypto-transaction/source/verifier.ts index c423afd93b..ce7814ab67 100644 --- a/packages/crypto-transaction/source/verifier.ts +++ b/packages/crypto-transaction/source/verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidLegacySecondSignatureError, MissingLegacySecondSignatureError } from "@mainsail/exceptions"; @injectable() @@ -16,7 +17,7 @@ export class Verifier implements Contracts.Crypto.TransactionVerifier { private readonly hashFactory!: Contracts.Crypto.TransactionHashFactory; public async verifyHash(data: Contracts.Crypto.TransactionData): Promise { - const { v, r, s, senderPublicKey } = data; + const { r, s, senderPublicKey, v } = data; if (v === undefined || !r || !s || !senderPublicKey) { return false; diff --git a/packages/crypto-validation/package.json b/packages/crypto-validation/package.json index a893772b29..f59927d5a6 100644 --- a/packages/crypto-validation/package.json +++ b/packages/crypto-validation/package.json @@ -25,7 +25,7 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1" + "ajv": "8.18.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-validation/source/keywords.ts b/packages/crypto-validation/source/keywords.ts index 391e2f65cd..f84fea8388 100644 --- a/packages/crypto-validation/source/keywords.ts +++ b/packages/crypto-validation/source/keywords.ts @@ -1,7 +1,8 @@ import type { Contracts } from "@mainsail/contracts"; -import { BigNumber } from "@mainsail/utils"; import type { FuncKeywordDefinition } from "ajv"; +import { BigNumber } from "@mainsail/utils"; + import { parseBlockNumber } from "./parse-block-number.js"; export const makeKeywords = ( diff --git a/packages/crypto-validation/source/service-provider.ts b/packages/crypto-validation/source/service-provider.ts index 78dbcc9a57..bbff6c8080 100644 --- a/packages/crypto-validation/source/service-provider.ts +++ b/packages/crypto-validation/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { makeKeywords } from "./keywords.js"; diff --git a/packages/crypto-wif/source/wif.factory.ts b/packages/crypto-wif/source/wif.factory.ts index 50a3dfaf10..9ee8b35636 100644 --- a/packages/crypto-wif/source/wif.factory.ts +++ b/packages/crypto-wif/source/wif.factory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { encode } from "wif"; @injectable() diff --git a/packages/crypto-worker/package.json b/packages/crypto-worker/package.json index 53b922f570..55e88a2ecd 100644 --- a/packages/crypto-worker/package.json +++ b/packages/crypto-worker/package.json @@ -24,7 +24,7 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/crypto-worker/source/service-provider.ts b/packages/crypto-worker/source/service-provider.ts index eb0c979a09..f65f761237 100644 --- a/packages/crypto-worker/source/service-provider.ts +++ b/packages/crypto-worker/source/service-provider.ts @@ -1,14 +1,15 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Ipc, Providers } from "@mainsail/kernel"; import Joi from "joi"; import { cpus } from "os"; import { URL } from "url"; import { Worker } from "worker_threads"; -import { Worker as WorkerInstance } from "./worker.js"; import { WorkerPool } from "./worker-pool.js"; +import { Worker as WorkerInstance } from "./worker.js"; @injectable() export class ServiceProvider extends Providers.ServiceProvider { diff --git a/packages/crypto-worker/source/worker-handler.ts b/packages/crypto-worker/source/worker-handler.ts index 6b8583c064..fcf5425a8f 100644 --- a/packages/crypto-worker/source/worker-handler.ts +++ b/packages/crypto-worker/source/worker-handler.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Application, Services } from "@mainsail/kernel"; @injectable() diff --git a/packages/crypto-worker/source/worker-pool.ts b/packages/crypto-worker/source/worker-pool.ts index 17c90b70b6..c637ac9c30 100644 --- a/packages/crypto-worker/source/worker-pool.ts +++ b/packages/crypto-worker/source/worker-pool.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class WorkerPool implements Contracts.Crypto.WorkerPool { diff --git a/packages/crypto-worker/source/worker.ts b/packages/crypto-worker/source/worker.ts index f26d7708da..71a65b8794 100644 --- a/packages/crypto-worker/source/worker.ts +++ b/packages/crypto-worker/source/worker.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { sleep } from "@mainsail/utils"; @injectable() diff --git a/packages/database/source/database-service.ts b/packages/database/source/database-service.ts index bbef7886fc..9abf635ba0 100644 --- a/packages/database/source/database-service.ts +++ b/packages/database/source/database-service.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; @injectable() diff --git a/packages/database/source/service-provider.ts b/packages/database/source/service-provider.ts index e7fd338ce2..f660ce3587 100644 --- a/packages/database/source/service-provider.ts +++ b/packages/database/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { DatabaseService } from "./database-service.js"; diff --git a/packages/evm-api-worker/package.json b/packages/evm-api-worker/package.json index 04638e9436..b54d2badc4 100644 --- a/packages/evm-api-worker/package.json +++ b/packages/evm-api-worker/package.json @@ -24,7 +24,7 @@ "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/evm-api-worker/source/handlers/commit.ts b/packages/evm-api-worker/source/handlers/commit.ts index dd947e4781..8ffe53d9fc 100644 --- a/packages/evm-api-worker/source/handlers/commit.ts +++ b/packages/evm-api-worker/source/handlers/commit.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class CommitHandler { diff --git a/packages/evm-api-worker/source/handlers/set-peer-count.ts b/packages/evm-api-worker/source/handlers/set-peer-count.ts index 7567e5ce1e..099cc5f56e 100644 --- a/packages/evm-api-worker/source/handlers/set-peer-count.ts +++ b/packages/evm-api-worker/source/handlers/set-peer-count.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class SetPeerCountHandler { diff --git a/packages/evm-api-worker/source/handlers/start.ts b/packages/evm-api-worker/source/handlers/start.ts index 6c3810ebd6..a2e12940b0 100644 --- a/packages/evm-api-worker/source/handlers/start.ts +++ b/packages/evm-api-worker/source/handlers/start.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class StartHandler { diff --git a/packages/evm-api-worker/source/service-provider.ts b/packages/evm-api-worker/source/service-provider.ts index f9e5f321a2..00d8aff66d 100644 --- a/packages/evm-api-worker/source/service-provider.ts +++ b/packages/evm-api-worker/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Ipc, Providers } from "@mainsail/kernel"; import Joi from "joi"; import { Worker } from "worker_threads"; diff --git a/packages/evm-api-worker/source/worker-handler.ts b/packages/evm-api-worker/source/worker-handler.ts index 0b21eae2d4..4221a5bfe3 100644 --- a/packages/evm-api-worker/source/worker-handler.ts +++ b/packages/evm-api-worker/source/worker-handler.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { Application } from "@mainsail/kernel"; import { CommitHandler, SetPeerCountHandler, StartHandler } from "./handlers/index.js"; diff --git a/packages/evm-api-worker/source/worker.ts b/packages/evm-api-worker/source/worker.ts index b8d6a84cb6..b7b8e581bf 100644 --- a/packages/evm-api-worker/source/worker.ts +++ b/packages/evm-api-worker/source/worker.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Worker implements Contracts.Evm.Worker { diff --git a/packages/evm-consensus/package.json b/packages/evm-consensus/package.json index 19e29090aa..c3f5b4ff0d 100644 --- a/packages/evm-consensus/package.json +++ b/packages/evm-consensus/package.json @@ -27,7 +27,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/evm-consensus/source/deployer.ts b/packages/evm-consensus/source/deployer.ts index 1a8e59e254..9761883cd7 100644 --- a/packages/evm-consensus/source/deployer.ts +++ b/packages/evm-consensus/source/deployer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConsensusAbi, ERC1967ProxyAbi, MultiPaymentAbi, UsernamesAbi } from "@mainsail/evm-contracts"; import { assert, BigNumber } from "@mainsail/utils"; import { Address, encodeDeployData, encodeFunctionData, getCreateAddress, Hex, toBytes } from "viem"; diff --git a/packages/evm-consensus/source/service-provider.ts b/packages/evm-consensus/source/service-provider.ts index e1c502a2ef..fcb7b5f700 100644 --- a/packages/evm-consensus/source/service-provider.ts +++ b/packages/evm-consensus/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { assert, BigNumber } from "@mainsail/utils"; diff --git a/packages/evm-consensus/source/services/consensus-contract-service.ts b/packages/evm-consensus/source/services/consensus-contract-service.ts index 089b8f388e..4f0dd766ab 100644 --- a/packages/evm-consensus/source/services/consensus-contract-service.ts +++ b/packages/evm-consensus/source/services/consensus-contract-service.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConsensusAbi } from "@mainsail/evm-contracts"; import { BigNumber } from "@mainsail/utils"; import { decodeFunctionResult, encodeFunctionData, toHex } from "viem"; @@ -64,7 +65,7 @@ export class ConsensusContractService implements Contracts.Evm.ConsensusContract for (const validator of validators) { const { addr: address, - data: { voteBalance, fee, votersCount, isResigned, blsPublicKey }, + data: { blsPublicKey, fee, isResigned, voteBalance, votersCount }, } = validator; const validatorWallet: Contracts.State.ValidatorWallet = { @@ -114,7 +115,7 @@ export class ConsensusContractService implements Contracts.Evm.ConsensusContract for (const validator of validators) { const { addr: address, - data: { voteBalance, fee, votersCount, isResigned, blsPublicKey }, + data: { blsPublicKey, fee, isResigned, voteBalance, votersCount }, } = validator; const validatorWallet: Contracts.State.ValidatorWallet = { diff --git a/packages/evm-consensus/source/services/rounds-iterator.ts b/packages/evm-consensus/source/services/rounds-iterator.ts index 5a8ee297f3..0468872ca8 100644 --- a/packages/evm-consensus/source/services/rounds-iterator.ts +++ b/packages/evm-consensus/source/services/rounds-iterator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConsensusAbi } from "@mainsail/evm-contracts"; import { BigNumber } from "@mainsail/utils"; import { decodeFunctionResult, encodeFunctionData, toHex } from "viem"; diff --git a/packages/evm-consensus/source/services/votes-iterator.ts b/packages/evm-consensus/source/services/votes-iterator.ts index aa71169d8e..50bfeb1e42 100644 --- a/packages/evm-consensus/source/services/votes-iterator.ts +++ b/packages/evm-consensus/source/services/votes-iterator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConsensusAbi } from "@mainsail/evm-contracts"; import { decodeFunctionResult, encodeFunctionData, toHex } from "viem"; diff --git a/packages/evm-consensus/source/validator-set.ts b/packages/evm-consensus/source/validator-set.ts index 158c978478..a669125353 100644 --- a/packages/evm-consensus/source/validator-set.ts +++ b/packages/evm-consensus/source/validator-set.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { NotEnoughRoundValidatorsError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/evm-contracts/package.json b/packages/evm-contracts/package.json index cf52c7cef0..f5b76a4d13 100644 --- a/packages/evm-contracts/package.json +++ b/packages/evm-contracts/package.json @@ -21,7 +21,7 @@ "uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js" }, "dependencies": { - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/evm-contracts/source/transaction-error.ts b/packages/evm-contracts/source/transaction-error.ts index b11920d656..56d227e078 100644 --- a/packages/evm-contracts/source/transaction-error.ts +++ b/packages/evm-contracts/source/transaction-error.ts @@ -1,5 +1,6 @@ import type { Contracts } from "@mainsail/contracts"; import type { Abi, AbiItem } from "viem"; + import { decodeErrorResult, toHex } from "viem"; import { default as ConsensusAbi } from "./abis/ConsensusV1.json" with { type: "json" }; diff --git a/packages/evm-service/package.json b/packages/evm-service/package.json index a5d3716e9d..6288e8226f 100644 --- a/packages/evm-service/package.json +++ b/packages/evm-service/package.json @@ -47,7 +47,7 @@ "@types/tmp": "0.2.6", "tmp": "0.2.5", "uvu": "0.5.6", - "viem": "2.34.0" + "viem": "2.47.6" }, "engines": { "node": ">=20.x" diff --git a/packages/evm-service/source/instances/evm.ts b/packages/evm-service/source/instances/evm.ts index aba22f8793..16392fa360 100644 --- a/packages/evm-service/source/instances/evm.ts +++ b/packages/evm-service/source/instances/evm.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Evm, JsCommitData, JsTransactionData, LogLevel } from "@mainsail/evm"; import { assert, validatorSetPack } from "@mainsail/utils"; @@ -145,7 +146,7 @@ export class EvmInstance implements Contracts.Evm.Instance, Contracts.Evm.Storag } public async onCommit(unit: Contracts.Processor.ProcessableUnit): Promise { - const { number, round, hash } = unit.getBlock(); + const { hash, number, round } = unit.getBlock(); const commitData = await this.#prepareCommitData(unit); diff --git a/packages/evm-service/source/service-provider.ts b/packages/evm-service/source/service-provider.ts index 4dd72683a7..af1f6898e4 100644 --- a/packages/evm-service/source/service-provider.ts +++ b/packages/evm-service/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { EvmInstance } from "./instances/index.js"; diff --git a/packages/evm-state/source/state.ts b/packages/evm-state/source/state.ts index f6236e4397..2d9463ff6d 100644 --- a/packages/evm-state/source/state.ts +++ b/packages/evm-state/source/state.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class State implements Contracts.Evm.State { public peerCount = 0; diff --git a/packages/evm/package.json b/packages/evm/package.json index 8386d044d4..e29be551ff 100644 --- a/packages/evm/package.json +++ b/packages/evm/package.json @@ -19,7 +19,7 @@ "version": "napi version" }, "devDependencies": { - "@napi-rs/cli": "3.1.5" + "@napi-rs/cli": "3.6.0" }, "engines": { "node": ">=20.x" diff --git a/packages/exceptions/source/rpc.ts b/packages/exceptions/source/rpc.ts index 757dc4edd8..9976d8c781 100644 --- a/packages/exceptions/source/rpc.ts +++ b/packages/exceptions/source/rpc.ts @@ -1,6 +1,7 @@ -import { Enums } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; +import { Enums } from "@mainsail/constants"; + import { Exception } from "./base.js"; export class RpcError extends Exception { diff --git a/packages/kernel/package.json b/packages/kernel/package.json index 31625503e3..f6f2447512 100644 --- a/packages/kernel/package.json +++ b/packages/kernel/package.json @@ -31,18 +31,18 @@ "@mainsail/container": "workspace:*", "@mainsail/exceptions": "workspace:*", "@mainsail/utils": "workspace:*", - "chalk": "5.6.0", - "cron": "4.3.3", + "chalk": "5.6.2", + "cron": "4.4.0", "date-fns": "4.1.0", "deepmerge": "4.3.1", - "env-paths": "3.0.0", - "fs-extra": "11.3.1", - "glob": "11.0.3", - "joi": "18.0.0", + "env-paths": "4.0.0", + "fs-extra": "11.3.4", + "glob": "13.0.6", + "joi": "18.1.2", "log-process-errors": "12.0.1", "micromatch": "4.0.8", - "nsfw": "2.2.5", - "semver": "7.7.2", + "nsfw": "2.3.0", + "semver": "7.7.4", "split2": "4.2.0" }, "devDependencies": { @@ -52,11 +52,11 @@ "@types/fs-extra": "11.0.4", "@types/log-process-errors": "9.1.0", "@types/micromatch": "4.0.10", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "@types/split2": "4.2.3", "@types/tmp": "0.2.6", "capture-console": "1.0.2", - "moment-timezone": "0.6.0", + "moment-timezone": "0.6.1", "tmp": "0.2.5", "uvu": "0.5.6" }, diff --git a/packages/kernel/source/application.ts b/packages/kernel/source/application.ts index 816c9267bc..849c7639d8 100644 --- a/packages/kernel/source/application.ts +++ b/packages/kernel/source/application.ts @@ -1,14 +1,15 @@ -import { exit } from "node:process"; +import type { Contracts } from "@mainsail/contracts"; import { Events, Identifiers } from "@mainsail/constants"; import { Application as BaseApplication } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DirectoryCannotBeFound } from "@mainsail/exceptions"; +import { exit } from "node:process"; import { join } from "path"; import { isMainThread } from "worker_threads"; -import { Bootstrappers } from "./bootstrap/index.js"; import type { ServiceProvider } from "./providers/index.js"; + +import { Bootstrappers } from "./bootstrap/index.js"; import { ServiceProviderRepository } from "./providers/index.js"; import { ConfigRepository } from "./services/config/index.js"; import { ServiceProvider as EventServiceProvider } from "./services/events/service-provider.js"; diff --git a/packages/kernel/source/bootstrap/boot-service-providers.ts b/packages/kernel/source/bootstrap/boot-service-providers.ts index 1006d28519..48af252c02 100644 --- a/packages/kernel/source/bootstrap/boot-service-providers.ts +++ b/packages/kernel/source/bootstrap/boot-service-providers.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProviderCannotBeBooted } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; diff --git a/packages/kernel/source/bootstrap/listen-to-shutdown-signals.ts b/packages/kernel/source/bootstrap/listen-to-shutdown-signals.ts index 7ec5d545cc..e5cd068e59 100644 --- a/packages/kernel/source/bootstrap/listen-to-shutdown-signals.ts +++ b/packages/kernel/source/bootstrap/listen-to-shutdown-signals.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ListenToShutdownSignals implements Contracts.Kernel.Bootstrapper { diff --git a/packages/kernel/source/bootstrap/listeners.ts b/packages/kernel/source/bootstrap/listeners.ts index 6db05dfaa0..f24e5b2e5a 100644 --- a/packages/kernel/source/bootstrap/listeners.ts +++ b/packages/kernel/source/bootstrap/listeners.ts @@ -1,13 +1,15 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider, ServiceProviderRepository } from "../providers/index.js"; @injectable() -export class ChangeServiceProviderState - implements Contracts.Kernel.EventListener<{ name: string; data: { name: string } }> -{ +export class ChangeServiceProviderState implements Contracts.Kernel.EventListener<{ + name: string; + data: { name: string }; +}> { @inject(Identifiers.ServiceProvider.Repository) private readonly serviceProviders!: ServiceProviderRepository; @@ -22,7 +24,7 @@ export class ChangeServiceProviderState return this; } - public async handle({ name, data }: { name: string; data: { name: string } }): Promise { + public async handle({ data, name }: { name: string; data: { name: string } }): Promise { if (name === Events.BlockEvent.Applied) { return this.#changeState(); } diff --git a/packages/kernel/source/bootstrap/load-configuration.ts b/packages/kernel/source/bootstrap/load-configuration.ts index a7f1986425..b8816e5c4f 100644 --- a/packages/kernel/source/bootstrap/load-configuration.ts +++ b/packages/kernel/source/bootstrap/load-configuration.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConfigManager, ConfigRepository } from "../services/config/index.js"; diff --git a/packages/kernel/source/bootstrap/load-environment-variables.ts b/packages/kernel/source/bootstrap/load-environment-variables.ts index 8a11924b00..272f7d685e 100644 --- a/packages/kernel/source/bootstrap/load-environment-variables.ts +++ b/packages/kernel/source/bootstrap/load-environment-variables.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConfigManager, ConfigRepository } from "../services/config/index.js"; diff --git a/packages/kernel/source/bootstrap/load-service-providers.ts b/packages/kernel/source/bootstrap/load-service-providers.ts index 22b504fa05..462904231c 100644 --- a/packages/kernel/source/bootstrap/load-service-providers.ts +++ b/packages/kernel/source/bootstrap/load-service-providers.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceNotFound } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; import path from "path"; diff --git a/packages/kernel/source/bootstrap/register-base-bindings.ts b/packages/kernel/source/bootstrap/register-base-bindings.ts index 8bdf803024..2a221f15e1 100644 --- a/packages/kernel/source/bootstrap/register-base-bindings.ts +++ b/packages/kernel/source/bootstrap/register-base-bindings.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import path from "path"; import { URL } from "url"; diff --git a/packages/kernel/source/bootstrap/register-base-configuration.ts b/packages/kernel/source/bootstrap/register-base-configuration.ts index b4e01d0a8f..d487387787 100644 --- a/packages/kernel/source/bootstrap/register-base-configuration.ts +++ b/packages/kernel/source/bootstrap/register-base-configuration.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ConfigManager, ConfigRepository } from "../services/config/index.js"; diff --git a/packages/kernel/source/bootstrap/register-base-paths.ts b/packages/kernel/source/bootstrap/register-base-paths.ts index 30427d9f33..04b4c629e3 100644 --- a/packages/kernel/source/bootstrap/register-base-paths.ts +++ b/packages/kernel/source/bootstrap/register-base-paths.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, camelCase, expandTilde, set } from "@mainsail/utils"; import envPaths from "env-paths"; import { join, resolve } from "path"; diff --git a/packages/kernel/source/bootstrap/register-base-service-providers.ts b/packages/kernel/source/bootstrap/register-base-service-providers.ts index f9b407140c..b2d38a3b4a 100644 --- a/packages/kernel/source/bootstrap/register-base-service-providers.ts +++ b/packages/kernel/source/bootstrap/register-base-service-providers.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Cache, Filesystem, Log, Pipeline, Queue, Schedule, Triggers, Validation } from "../services/index.js"; diff --git a/packages/kernel/source/bootstrap/register-error-handler.ts b/packages/kernel/source/bootstrap/register-error-handler.ts index 6465af2df2..035a75b9dd 100644 --- a/packages/kernel/source/bootstrap/register-error-handler.ts +++ b/packages/kernel/source/bootstrap/register-error-handler.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import logProcessErrors from "log-process-errors"; @injectable() diff --git a/packages/kernel/source/bootstrap/register-service-providers.ts b/packages/kernel/source/bootstrap/register-service-providers.ts index 8eb09bca5c..e9003abcd6 100644 --- a/packages/kernel/source/bootstrap/register-service-providers.ts +++ b/packages/kernel/source/bootstrap/register-service-providers.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DependencyVersionOutOfRange, InvalidPluginConfiguration, @@ -85,7 +86,7 @@ export class RegisterServiceProviders implements Contracts.Kernel.Bootstrapper { ); for (const dependency of serviceProvider.dependencies()) { - const { name, version: constraint, required } = dependency; + const { name, required, version: constraint } = dependency; const isRequired: boolean = typeof required === "function" ? await required() : !!required; diff --git a/packages/kernel/source/ipc/handler.ts b/packages/kernel/source/ipc/handler.ts index 929efaadd1..3c29d89637 100644 --- a/packages/kernel/source/ipc/handler.ts +++ b/packages/kernel/source/ipc/handler.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { parentPort } from "worker_threads"; export class Handler implements Contracts.Kernel.IPC.Handler { diff --git a/packages/kernel/source/ipc/subprocess.ts b/packages/kernel/source/ipc/subprocess.ts index eff211ffc5..a3840dd552 100644 --- a/packages/kernel/source/ipc/subprocess.ts +++ b/packages/kernel/source/ipc/subprocess.ts @@ -1,11 +1,11 @@ -import { Identifiers, LogLevels } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; -import split from "split2"; import type { Worker } from "worker_threads"; -export class Subprocess = Record> - implements Contracts.Kernel.IPC.Subprocess -{ +import { Identifiers, LogLevels } from "@mainsail/constants"; +import split from "split2"; + +export class Subprocess = Record> implements Contracts.Kernel.IPC + .Subprocess { #logLevels = new Set(LogLevels); private lastId = 1; diff --git a/packages/kernel/source/providers/index.ts b/packages/kernel/source/providers/index.ts index 4a1bd1810d..21e76186f8 100644 --- a/packages/kernel/source/providers/index.ts +++ b/packages/kernel/source/providers/index.ts @@ -1,4 +1,4 @@ export * from "./plugin-configuration.js"; export * from "./plugin-manifest.js"; -export * from "./service-provider.js"; export * from "./service-provider-repository.js"; +export * from "./service-provider.js"; diff --git a/packages/kernel/source/providers/plugin-configuration.ts b/packages/kernel/source/providers/plugin-configuration.ts index f9c8dd7f7f..60397fe5be 100644 --- a/packages/kernel/source/providers/plugin-configuration.ts +++ b/packages/kernel/source/providers/plugin-configuration.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { get, has, set, unset } from "@mainsail/utils"; import deepmerge from "deepmerge"; diff --git a/packages/kernel/source/providers/plugin-manifest.ts b/packages/kernel/source/providers/plugin-manifest.ts index 0dc1c70541..d8daff4447 100644 --- a/packages/kernel/source/providers/plugin-manifest.ts +++ b/packages/kernel/source/providers/plugin-manifest.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { get, has } from "@mainsail/utils"; import { createRequire } from "module"; diff --git a/packages/kernel/source/providers/service-provider-repository.ts b/packages/kernel/source/providers/service-provider-repository.ts index 36c508b031..50cce61e94 100644 --- a/packages/kernel/source/providers/service-provider-repository.ts +++ b/packages/kernel/source/providers/service-provider-repository.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { ServiceProvider } from "./service-provider.js"; diff --git a/packages/kernel/source/providers/service-provider.ts b/packages/kernel/source/providers/service-provider.ts index 25ec41c022..6cd0b020e1 100644 --- a/packages/kernel/source/providers/service-provider.ts +++ b/packages/kernel/source/providers/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { PluginManifest } from "./plugin-manifest.js"; diff --git a/packages/kernel/source/services/cache/drivers/memory.ts b/packages/kernel/source/services/cache/drivers/memory.ts index c3e69ba99c..97cfdb21f5 100644 --- a/packages/kernel/source/services/cache/drivers/memory.ts +++ b/packages/kernel/source/services/cache/drivers/memory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { NotImplemented } from "@mainsail/exceptions"; @injectable() diff --git a/packages/kernel/source/services/cache/drivers/null.ts b/packages/kernel/source/services/cache/drivers/null.ts index 76fde9a84b..72ced0a22c 100644 --- a/packages/kernel/source/services/cache/drivers/null.ts +++ b/packages/kernel/source/services/cache/drivers/null.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullCacheStore implements Contracts.Kernel.CacheStore { public async make(): Promise> { diff --git a/packages/kernel/source/services/cache/manager.ts b/packages/kernel/source/services/cache/manager.ts index 11002dfd94..745bd9752b 100644 --- a/packages/kernel/source/services/cache/manager.ts +++ b/packages/kernel/source/services/cache/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { ClassManager } from "../../support/class-manager.js"; import { MemoryCacheStore } from "./drivers/memory.js"; diff --git a/packages/kernel/source/services/cache/service-provider.ts b/packages/kernel/source/services/cache/service-provider.ts index 0566d14452..4c926b0994 100644 --- a/packages/kernel/source/services/cache/service-provider.ts +++ b/packages/kernel/source/services/cache/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { CacheManager } from "./manager.js"; diff --git a/packages/kernel/source/services/config/drivers/local.ts b/packages/kernel/source/services/config/drivers/local.ts index c477588c43..d144c8f006 100644 --- a/packages/kernel/source/services/config/drivers/local.ts +++ b/packages/kernel/source/services/config/drivers/local.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ApplicationConfigurationCannotBeLoaded, EnvironmentConfigurationCannotBeLoaded, diff --git a/packages/kernel/source/services/config/manager.ts b/packages/kernel/source/services/config/manager.ts index 11100cebe4..a7c1d23257 100644 --- a/packages/kernel/source/services/config/manager.ts +++ b/packages/kernel/source/services/config/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { InstanceManager } from "../../support/instance-manager.js"; import { LocalConfigLoader } from "./drivers/index.js"; diff --git a/packages/kernel/source/services/config/repository.ts b/packages/kernel/source/services/config/repository.ts index 73094bfdcc..dc51a53c70 100644 --- a/packages/kernel/source/services/config/repository.ts +++ b/packages/kernel/source/services/config/repository.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { assert, get, has, set, unset } from "@mainsail/utils"; @injectable() diff --git a/packages/kernel/source/services/config/watcher.ts b/packages/kernel/source/services/config/watcher.ts index df9cd07e26..7471860130 100644 --- a/packages/kernel/source/services/config/watcher.ts +++ b/packages/kernel/source/services/config/watcher.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import nsfw from "nsfw"; @injectable() diff --git a/packages/kernel/source/services/events/drivers/memory.ts b/packages/kernel/source/services/events/drivers/memory.ts index cab0d7a98a..817ec54919 100644 --- a/packages/kernel/source/services/events/drivers/memory.ts +++ b/packages/kernel/source/services/events/drivers/memory.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { assert } from "@mainsail/utils"; import mm from "micromatch"; diff --git a/packages/kernel/source/services/events/drivers/null.ts b/packages/kernel/source/services/events/drivers/null.ts index c0a1384f9b..c012925308 100644 --- a/packages/kernel/source/services/events/drivers/null.ts +++ b/packages/kernel/source/services/events/drivers/null.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullEventDispatcher implements Contracts.Kernel.EventDispatcher { public listen(event: string, listener: Contracts.Kernel.EventListener): () => void { diff --git a/packages/kernel/source/services/events/manager.ts b/packages/kernel/source/services/events/manager.ts index 2c27ebf39b..e0de4e05ea 100644 --- a/packages/kernel/source/services/events/manager.ts +++ b/packages/kernel/source/services/events/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { InstanceManager } from "../../support/instance-manager.js"; import { MemoryEventDispatcher } from "./drivers/memory.js"; diff --git a/packages/kernel/source/services/events/service-provider.ts b/packages/kernel/source/services/events/service-provider.ts index 4755720784..a5b3e3c0a9 100644 --- a/packages/kernel/source/services/events/service-provider.ts +++ b/packages/kernel/source/services/events/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { EventDispatcherManager } from "./manager.js"; diff --git a/packages/kernel/source/services/filesystem/drivers/local.ts b/packages/kernel/source/services/filesystem/drivers/local.ts index 8a06043b02..613a983b5d 100644 --- a/packages/kernel/source/services/filesystem/drivers/local.ts +++ b/packages/kernel/source/services/filesystem/drivers/local.ts @@ -1,7 +1,8 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; import type { WriteFileOptions } from "fs"; import type { EnsureDirOptions } from "fs-extra"; + +import { injectable } from "@mainsail/container"; import { resolve } from "path"; @injectable() diff --git a/packages/kernel/source/services/filesystem/drivers/null.ts b/packages/kernel/source/services/filesystem/drivers/null.ts index 75d1b1aa8a..c881ba8c73 100644 --- a/packages/kernel/source/services/filesystem/drivers/null.ts +++ b/packages/kernel/source/services/filesystem/drivers/null.ts @@ -1,7 +1,8 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; import type { WriteFileOptions } from "fs"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullFilesystem implements Contracts.Kernel.Filesystem { public async make(): Promise { diff --git a/packages/kernel/source/services/filesystem/manager.ts b/packages/kernel/source/services/filesystem/manager.ts index 63da63ef1a..d98fbbc48f 100644 --- a/packages/kernel/source/services/filesystem/manager.ts +++ b/packages/kernel/source/services/filesystem/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { InstanceManager } from "../../support/instance-manager.js"; import { LocalFilesystem } from "./drivers/local.js"; diff --git a/packages/kernel/source/services/filesystem/service-provider.ts b/packages/kernel/source/services/filesystem/service-provider.ts index 65a00c6164..709da7218f 100644 --- a/packages/kernel/source/services/filesystem/service-provider.ts +++ b/packages/kernel/source/services/filesystem/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { FilesystemManager } from "./manager.js"; diff --git a/packages/kernel/source/services/log/drivers/memory.ts b/packages/kernel/source/services/log/drivers/memory.ts index 523cc8d3e7..a06f15aec4 100644 --- a/packages/kernel/source/services/log/drivers/memory.ts +++ b/packages/kernel/source/services/log/drivers/memory.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { isEmpty, prettyTime } from "@mainsail/utils"; import chalk, { ChalkInstance } from "chalk"; import { differenceInMilliseconds, format } from "date-fns"; diff --git a/packages/kernel/source/services/log/drivers/null.ts b/packages/kernel/source/services/log/drivers/null.ts index ea46f21393..550892c9ed 100644 --- a/packages/kernel/source/services/log/drivers/null.ts +++ b/packages/kernel/source/services/log/drivers/null.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullLogger implements Contracts.Kernel.Logger { public async make(options?: unknown): Promise { diff --git a/packages/kernel/source/services/log/drivers/worker.ts b/packages/kernel/source/services/log/drivers/worker.ts index d50612e57b..8dfdc5086c 100644 --- a/packages/kernel/source/services/log/drivers/worker.ts +++ b/packages/kernel/source/services/log/drivers/worker.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { isEmpty } from "@mainsail/utils"; import { inspect } from "util"; diff --git a/packages/kernel/source/services/log/manager.ts b/packages/kernel/source/services/log/manager.ts index 521345253b..839f233515 100644 --- a/packages/kernel/source/services/log/manager.ts +++ b/packages/kernel/source/services/log/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { InstanceManager } from "../../support/instance-manager.js"; import { MemoryLogger, WorkerLogger } from "./drivers/index.js"; diff --git a/packages/kernel/source/services/log/service-provider.ts b/packages/kernel/source/services/log/service-provider.ts index 2e84b555a7..51be835703 100644 --- a/packages/kernel/source/services/log/service-provider.ts +++ b/packages/kernel/source/services/log/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { LogManager } from "./manager.js"; diff --git a/packages/kernel/source/services/pipeline/drivers/memory.ts b/packages/kernel/source/services/pipeline/drivers/memory.ts index c6cb4f1f8f..f50053387a 100644 --- a/packages/kernel/source/services/pipeline/drivers/memory.ts +++ b/packages/kernel/source/services/pipeline/drivers/memory.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class MemoryPipeline implements Contracts.Kernel.Pipeline { public constructor( diff --git a/packages/kernel/source/services/pipeline/drivers/null.ts b/packages/kernel/source/services/pipeline/drivers/null.ts index b0231158a1..33b43d8413 100644 --- a/packages/kernel/source/services/pipeline/drivers/null.ts +++ b/packages/kernel/source/services/pipeline/drivers/null.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullPipeline implements Contracts.Kernel.Pipeline { public constructor(stages: Array<() => void | Contracts.Kernel.Stage> = []) {} diff --git a/packages/kernel/source/services/pipeline/service-provider.ts b/packages/kernel/source/services/pipeline/service-provider.ts index 74d35cfe94..dc6a5ad386 100644 --- a/packages/kernel/source/services/pipeline/service-provider.ts +++ b/packages/kernel/source/services/pipeline/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { MemoryPipeline } from "./drivers/memory.js"; diff --git a/packages/kernel/source/services/queue/drivers/memory.ts b/packages/kernel/source/services/queue/drivers/memory.ts index 122f272983..1a5a8ac278 100644 --- a/packages/kernel/source/services/queue/drivers/memory.ts +++ b/packages/kernel/source/services/queue/drivers/memory.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { EventEmitter } from "events"; import { performance } from "perf_hooks"; diff --git a/packages/kernel/source/services/queue/drivers/null.ts b/packages/kernel/source/services/queue/drivers/null.ts index be168a078f..1599305f0d 100644 --- a/packages/kernel/source/services/queue/drivers/null.ts +++ b/packages/kernel/source/services/queue/drivers/null.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { EventEmitter } from "events"; @injectable() diff --git a/packages/kernel/source/services/queue/manager.ts b/packages/kernel/source/services/queue/manager.ts index 3b84c1e490..eba42eb55b 100644 --- a/packages/kernel/source/services/queue/manager.ts +++ b/packages/kernel/source/services/queue/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { ClassManager } from "../../support/class-manager.js"; import { MemoryQueue } from "./drivers/memory.js"; diff --git a/packages/kernel/source/services/queue/service-provider.ts b/packages/kernel/source/services/queue/service-provider.ts index c38e0294c2..c5173cf272 100644 --- a/packages/kernel/source/services/queue/service-provider.ts +++ b/packages/kernel/source/services/queue/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { QueueManager } from "./manager.js"; diff --git a/packages/kernel/source/services/schedule/block-job.ts b/packages/kernel/source/services/schedule/block-job.ts index d6ee3e8a3d..6614daf6a2 100644 --- a/packages/kernel/source/services/schedule/block-job.ts +++ b/packages/kernel/source/services/schedule/block-job.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { performance } from "perf_hooks"; import { Job } from "./interfaces.js"; diff --git a/packages/kernel/source/services/schedule/cron-job.ts b/packages/kernel/source/services/schedule/cron-job.ts index 301de92223..35203db687 100644 --- a/packages/kernel/source/services/schedule/cron-job.ts +++ b/packages/kernel/source/services/schedule/cron-job.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { CronCommand, CronJob as Cron } from "cron"; import { performance } from "perf_hooks"; diff --git a/packages/kernel/source/services/schedule/schedule.ts b/packages/kernel/source/services/schedule/schedule.ts index b9bff3092a..4e65b57b42 100644 --- a/packages/kernel/source/services/schedule/schedule.ts +++ b/packages/kernel/source/services/schedule/schedule.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockJob } from "./block-job.js"; import { CronJob } from "./cron-job.js"; diff --git a/packages/kernel/source/services/triggers/action.ts b/packages/kernel/source/services/triggers/action.ts index 576c89768b..cf888041a2 100644 --- a/packages/kernel/source/services/triggers/action.ts +++ b/packages/kernel/source/services/triggers/action.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + type ActionFunction = (arguments_: T) => T; @injectable() diff --git a/packages/kernel/source/services/triggers/triggers.ts b/packages/kernel/source/services/triggers/triggers.ts index 4fef9faa1f..d345482a64 100644 --- a/packages/kernel/source/services/triggers/triggers.ts +++ b/packages/kernel/source/services/triggers/triggers.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { InvalidArgumentException } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; diff --git a/packages/kernel/source/services/validation/drivers/joi.ts b/packages/kernel/source/services/validation/drivers/joi.ts index 13bd2fbbf9..6695b9eb98 100644 --- a/packages/kernel/source/services/validation/drivers/joi.ts +++ b/packages/kernel/source/services/validation/drivers/joi.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { AnySchema, ValidationErrorItem } from "joi"; @injectable() export class JoiValidator implements Contracts.Kernel.Validator { diff --git a/packages/kernel/source/services/validation/drivers/null.ts b/packages/kernel/source/services/validation/drivers/null.ts index 20e29e95e3..ae6788b7de 100644 --- a/packages/kernel/source/services/validation/drivers/null.ts +++ b/packages/kernel/source/services/validation/drivers/null.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class NullValidator implements Contracts.Kernel.Validator { public validate(data: Contracts.Types.JsonObject, schema: object): void { diff --git a/packages/kernel/source/services/validation/manager.ts b/packages/kernel/source/services/validation/manager.ts index f3e5e5b3a4..93a97f3158 100644 --- a/packages/kernel/source/services/validation/manager.ts +++ b/packages/kernel/source/services/validation/manager.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { InstanceManager } from "../../support/instance-manager.js"; import { JoiValidator } from "./drivers/joi.js"; diff --git a/packages/kernel/source/services/validation/service-provider.ts b/packages/kernel/source/services/validation/service-provider.ts index 18e69d16d7..587d71f572 100644 --- a/packages/kernel/source/services/validation/service-provider.ts +++ b/packages/kernel/source/services/validation/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ServiceProvider as BaseServiceProvider } from "../../providers/index.js"; import { ValidationManager } from "./manager.js"; diff --git a/packages/kernel/source/support/class-manager.ts b/packages/kernel/source/support/class-manager.ts index aead7cd3ce..09c707c3f5 100644 --- a/packages/kernel/source/support/class-manager.ts +++ b/packages/kernel/source/support/class-manager.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { pascalCase } from "@mainsail/utils"; // @TODO revisit the implementation of the class and see if it can be removed diff --git a/packages/kernel/source/support/instance-manager.ts b/packages/kernel/source/support/instance-manager.ts index 331d7b8b53..c38a04b68d 100644 --- a/packages/kernel/source/support/instance-manager.ts +++ b/packages/kernel/source/support/instance-manager.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DriverCannotBeResolved } from "@mainsail/exceptions"; import { pascalCase } from "@mainsail/utils"; diff --git a/packages/logger-pino/package.json b/packages/logger-pino/package.json index 8e0f479a24..7a227e314d 100644 --- a/packages/logger-pino/package.json +++ b/packages/logger-pino/package.json @@ -24,15 +24,15 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "chalk": "5.6.0", + "chalk": "5.6.2", "colorette": "2.0.20", - "joi": "18.0.0", - "pino": "9.9.0", - "pino-pretty": "13.1.1", - "pump": "3.0.3", + "joi": "18.1.2", + "pino": "10.3.1", + "pino-pretty": "13.1.3", + "pump": "3.0.4", "pumpify": "2.0.1", "readable-stream": "4.7.0", - "rotating-file-stream": "3.2.6", + "rotating-file-stream": "3.2.9", "split2": "4.2.0" }, "devDependencies": { @@ -41,8 +41,8 @@ "@types/capture-console": "1.0.5", "@types/fs-extra": "11.0.4", "@types/pump": "1.1.3", - "@types/pumpify": "1.4.4", - "@types/readable-stream": "4.0.21", + "@types/pumpify": "1.4.5", + "@types/readable-stream": "4.0.23", "@types/split2": "4.2.3", "@types/tmp": "0.2.6", "capture-console": "1.0.2", diff --git a/packages/logger-pino/source/driver.ts b/packages/logger-pino/source/driver.ts index 143a6f9c95..8a347c4592 100644 --- a/packages/logger-pino/source/driver.ts +++ b/packages/logger-pino/source/driver.ts @@ -1,9 +1,10 @@ +import type { Contracts } from "@mainsail/contracts"; +import type { Color, Colorette } from "colorette"; + import { Identifiers, LogLevels } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, isEmpty } from "@mainsail/utils"; import chalk, { ChalkInstance } from "chalk"; -import type { Color, Colorette } from "colorette"; import { error as console_error } from "console"; import pino, { LogDescriptor } from "pino"; import { prettyFactory, PrettyOptions } from "pino-pretty"; diff --git a/packages/logger-pino/source/service-provider.ts b/packages/logger-pino/source/service-provider.ts index 4584825801..7b47d815df 100644 --- a/packages/logger-pino/source/service-provider.ts +++ b/packages/logger-pino/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers, Services } from "@mainsail/kernel"; import Joi from "joi"; diff --git a/packages/logger-winston/package.json b/packages/logger-winston/package.json index 4261352721..7bc8aff438 100644 --- a/packages/logger-winston/package.json +++ b/packages/logger-winston/package.json @@ -24,8 +24,8 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0", - "winston": "3.17.0" + "joi": "18.1.2", + "winston": "3.19.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/logger-winston/source/driver.ts b/packages/logger-winston/source/driver.ts index 4c61a4d531..606ba5d5fa 100644 --- a/packages/logger-winston/source/driver.ts +++ b/packages/logger-winston/source/driver.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { isEmpty } from "@mainsail/utils"; import { inspect } from "util"; import winston from "winston"; diff --git a/packages/logger-winston/source/service-provider.ts b/packages/logger-winston/source/service-provider.ts index 8f23fb3eec..f5dcf711d2 100644 --- a/packages/logger-winston/source/service-provider.ts +++ b/packages/logger-winston/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers, Services } from "@mainsail/kernel"; import Joi from "joi"; diff --git a/packages/networking-dns/package.json b/packages/networking-dns/package.json index 30b42b50da..42c48ac9ba 100644 --- a/packages/networking-dns/package.json +++ b/packages/networking-dns/package.json @@ -25,7 +25,7 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/networking-dns/source/checker.ts b/packages/networking-dns/source/checker.ts index b692760c25..a07dd7e0f5 100644 --- a/packages/networking-dns/source/checker.ts +++ b/packages/networking-dns/source/checker.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { shuffle } from "@mainsail/utils"; import dns from "dns"; import { promisify } from "util"; diff --git a/packages/networking-ntp/package.json b/packages/networking-ntp/package.json index 7244baf1c6..341aee9731 100644 --- a/packages/networking-ntp/package.json +++ b/packages/networking-ntp/package.json @@ -26,7 +26,7 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/networking-ntp/source/checker.ts b/packages/networking-ntp/source/checker.ts index fb3ac48c6c..b9eb4aa610 100644 --- a/packages/networking-ntp/source/checker.ts +++ b/packages/networking-ntp/source/checker.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Sntp from "@hapi/sntp"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { shuffle } from "@mainsail/utils"; @injectable() diff --git a/packages/p2p/package.json b/packages/p2p/package.json index c8e6befcdf..6aa47100dc 100644 --- a/packages/p2p/package.json +++ b/packages/p2p/package.json @@ -26,27 +26,27 @@ "dependencies": { "@hapi/boom": "10.0.1", "@hapi/bounce": "3.0.2", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@hapi/hoek": "11.0.7", - "@hapi/teamwork": "6.0.0", + "@hapi/teamwork": "6.0.1", "@mainsail/blockchain-utils": "workspace:*", "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "ajv": "8.17.1", - "dayjs": "1.11.13", - "delay": "6.0.0", - "fs-extra": "11.3.1", + "ajv": "8.18.0", + "dayjs": "1.11.20", + "delay": "7.0.0", + "fs-extra": "11.3.4", "ip": "2.0.1", - "ipaddr.js": "2.2.0", - "joi": "18.0.0", + "ipaddr.js": "2.3.0", + "joi": "18.1.2", "long": "5.3.2", - "protobufjs": "7.5.4", - "rate-limiter-flexible": "7.2.0", - "semver": "7.7.2", - "ws": "8.18.3" + "protobufjs": "8.0.0", + "rate-limiter-flexible": "10.0.1", + "semver": "7.7.4", + "ws": "8.20.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", @@ -59,11 +59,11 @@ "@types/fs-extra": "11.0.4", "@types/hapi__sntp": "3.1.4", "@types/ip": "1.1.3", - "@types/semver": "7.7.0", + "@types/semver": "7.7.1", "@types/ws": "8.18.1", - "esmock": "2.7.1", - "import-fresh": "3.3.1", - "protobufjs-cli": "1.1.3", + "esmock": "2.7.3", + "import-fresh": "4.0.0", + "protobufjs-cli": "2.0.0", "uvu": "0.5.6" }, "engines": { diff --git a/packages/p2p/source/actions/revalidate-api-node.ts b/packages/p2p/source/actions/revalidate-api-node.ts index 8db6fe8f0c..24b23976ca 100644 --- a/packages/p2p/source/actions/revalidate-api-node.ts +++ b/packages/p2p/source/actions/revalidate-api-node.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Services } from "@mainsail/kernel"; import { ApiNodeProcessor } from "../api-node-processor.js"; diff --git a/packages/p2p/source/actions/validate-and-accept-api-node.ts b/packages/p2p/source/actions/validate-and-accept-api-node.ts index 38cd2c8a88..499ffe8369 100644 --- a/packages/p2p/source/actions/validate-and-accept-api-node.ts +++ b/packages/p2p/source/actions/validate-and-accept-api-node.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Services } from "@mainsail/kernel"; import { ApiNodeProcessor } from "../api-node-processor.js"; diff --git a/packages/p2p/source/actions/validate-and-accept-peer.ts b/packages/p2p/source/actions/validate-and-accept-peer.ts index fdd6d8c7b3..56737f2729 100644 --- a/packages/p2p/source/actions/validate-and-accept-peer.ts +++ b/packages/p2p/source/actions/validate-and-accept-peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Services } from "@mainsail/kernel"; import { PeerProcessor } from "../peer-processor.js"; diff --git a/packages/p2p/source/api-node-discoverer.ts b/packages/p2p/source/api-node-discoverer.ts index 21d69dee26..3e2ef7788e 100644 --- a/packages/p2p/source/api-node-discoverer.ts +++ b/packages/p2p/source/api-node-discoverer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Services } from "@mainsail/kernel"; import { shuffle } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/p2p/source/api-node-processor.ts b/packages/p2p/source/api-node-processor.ts index 0e1008093e..6f6484da0b 100644 --- a/packages/p2p/source/api-node-processor.ts +++ b/packages/p2p/source/api-node-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs from "dayjs"; @injectable() diff --git a/packages/p2p/source/api-node-repository.ts b/packages/p2p/source/api-node-repository.ts index 4979e96985..88da9be598 100644 --- a/packages/p2p/source/api-node-repository.ts +++ b/packages/p2p/source/api-node-repository.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class ApiNodeRepository implements Contracts.P2P.ApiNodeRepository { readonly #apiNodes: Map = new Map(); diff --git a/packages/p2p/source/api-node-verifier.ts b/packages/p2p/source/api-node-verifier.ts index 550c949f9c..b404033515 100644 --- a/packages/p2p/source/api-node-verifier.ts +++ b/packages/p2p/source/api-node-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { http, HttpResponse } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/p2p/source/api-node.ts b/packages/p2p/source/api-node.ts index 1c0001e1d2..1f59f34d44 100644 --- a/packages/p2p/source/api-node.ts +++ b/packages/p2p/source/api-node.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class ApiNode implements Contracts.P2P.ApiNode { public url!: string; diff --git a/packages/p2p/source/broadcaster.ts b/packages/p2p/source/broadcaster.ts index 2f9a836469..9758a997dd 100644 --- a/packages/p2p/source/broadcaster.ts +++ b/packages/p2p/source/broadcaster.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { shuffle, take } from "@mainsail/utils"; @injectable() diff --git a/packages/p2p/source/downloader/block-downloader.ts b/packages/p2p/source/downloader/block-downloader.ts index a1d6f4793b..a89238ca63 100644 --- a/packages/p2p/source/downloader/block-downloader.ts +++ b/packages/p2p/source/downloader/block-downloader.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { constants } from "../constants.js"; import { getRandomPeer } from "../utils/index.js"; diff --git a/packages/p2p/source/downloader/message-downloader.ts b/packages/p2p/source/downloader/message-downloader.ts index bf3f52b703..ef6ec8861d 100644 --- a/packages/p2p/source/downloader/message-downloader.ts +++ b/packages/p2p/source/downloader/message-downloader.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { isMajority, isMinority } from "@mainsail/blockchain-utils"; import { Enums, Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getRandomPeer } from "../utils/index.js"; diff --git a/packages/p2p/source/downloader/proposal-downloader.ts b/packages/p2p/source/downloader/proposal-downloader.ts index 464c28fb20..91b380f5db 100644 --- a/packages/p2p/source/downloader/proposal-downloader.ts +++ b/packages/p2p/source/downloader/proposal-downloader.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getRandomPeer } from "../utils/index.js"; diff --git a/packages/p2p/source/header-service.ts b/packages/p2p/source/header-service.ts index 6035b5946d..f5f8d4d951 100644 --- a/packages/p2p/source/header-service.ts +++ b/packages/p2p/source/header-service.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { constants } from "./constants.js"; diff --git a/packages/p2p/source/header.ts b/packages/p2p/source/header.ts index a71a68c2ea..26117778e6 100644 --- a/packages/p2p/source/header.ts +++ b/packages/p2p/source/header.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Header implements Contracts.P2P.Header { diff --git a/packages/p2p/source/index.ts b/packages/p2p/source/index.ts index b6d2e7c794..d13bcd2403 100644 --- a/packages/p2p/source/index.ts +++ b/packages/p2p/source/index.ts @@ -1,8 +1,8 @@ export * from "./enums.js"; export * as Nes from "./hapi-nes/index.js"; -export * from "./peer.js"; export * from "./peer-repository.js"; -export * from "./service.js"; +export * from "./peer.js"; export * from "./service-provider.js"; +export * from "./service.js"; export * from "./socket-server/codecs/index.js"; export * from "./utils/index.js"; diff --git a/packages/p2p/source/logger.ts b/packages/p2p/source/logger.ts index 7fbdc99cc6..ea867d3210 100644 --- a/packages/p2p/source/logger.ts +++ b/packages/p2p/source/logger.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Logger implements Contracts.P2P.Logger { diff --git a/packages/p2p/source/peer-communicator.ts b/packages/p2p/source/peer-communicator.ts index 59709d658f..9c4b4a816d 100644 --- a/packages/p2p/source/peer-communicator.ts +++ b/packages/p2p/source/peer-communicator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, http } from "@mainsail/utils"; import { performance } from "perf_hooks"; diff --git a/packages/p2p/source/peer-connector.ts b/packages/p2p/source/peer-connector.ts index d528839e91..6b2ffc52db 100644 --- a/packages/p2p/source/peer-connector.ts +++ b/packages/p2p/source/peer-connector.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { IpAddress } from "@mainsail/utils"; import delay from "delay"; diff --git a/packages/p2p/source/peer-discoverer.ts b/packages/p2p/source/peer-discoverer.ts index 477aefa216..23c55d7640 100644 --- a/packages/p2p/source/peer-discoverer.ts +++ b/packages/p2p/source/peer-discoverer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Services } from "@mainsail/kernel"; import { http } from "@mainsail/utils"; import { readJSONSync } from "fs-extra/esm"; diff --git a/packages/p2p/source/peer-disposer.ts b/packages/p2p/source/peer-disposer.ts index 0cd11bb835..42e39cf195 100644 --- a/packages/p2p/source/peer-disposer.ts +++ b/packages/p2p/source/peer-disposer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs from "dayjs"; import { errorTypes } from "./hapi-nes/index.js"; diff --git a/packages/p2p/source/peer-processor.ts b/packages/p2p/source/peer-processor.ts index 5027afe6e5..ca239cf114 100644 --- a/packages/p2p/source/peer-processor.ts +++ b/packages/p2p/source/peer-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { isBlacklisted, isWhitelisted } from "@mainsail/utils"; import { isValidVersion } from "./utils/index.js"; diff --git a/packages/p2p/source/peer-repository.ts b/packages/p2p/source/peer-repository.ts index 3c107e336d..5b9a854e58 100644 --- a/packages/p2p/source/peer-repository.ts +++ b/packages/p2p/source/peer-repository.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, IpAddress } from "@mainsail/utils"; import ip from "ip"; diff --git a/packages/p2p/source/peer-verifier.ts b/packages/p2p/source/peer-verifier.ts index f714c63535..24adf8e042 100644 --- a/packages/p2p/source/peer-verifier.ts +++ b/packages/p2p/source/peer-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { isValidVersion } from "./utils/index.js"; diff --git a/packages/p2p/source/peer.ts b/packages/p2p/source/peer.ts index e4c9f9897b..864c346101 100644 --- a/packages/p2p/source/peer.ts +++ b/packages/p2p/source/peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/p2p/source/rate-limiter.ts b/packages/p2p/source/rate-limiter.ts index da08eb32e9..d8b10fb995 100644 --- a/packages/p2p/source/rate-limiter.ts +++ b/packages/p2p/source/rate-limiter.ts @@ -22,8 +22,8 @@ export class RateLimiter { #endpoints: Map; public constructor({ - whitelist, configurations, + whitelist, }: { whitelist: string[]; configurations: RateLimiterConfigurations; diff --git a/packages/p2p/source/service-provider.ts b/packages/p2p/source/service-provider.ts index a6fe2a6c76..acf6daccb3 100644 --- a/packages/p2p/source/service-provider.ts +++ b/packages/p2p/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers, Services } from "@mainsail/kernel"; import { assert } from "@mainsail/utils"; import Joi from "joi"; @@ -10,19 +11,18 @@ import { ValidateAndAcceptApiNodeAction, ValidateAndAcceptPeerAction, } from "./actions/index.js"; -import { ApiNode } from "./api-node.js"; import { ApiNodeDiscoverer } from "./api-node-discoverer.js"; import { ApiNodeProcessor } from "./api-node-processor.js"; import { ApiNodeRepository } from "./api-node-repository.js"; import { ApiNodeVerifier } from "./api-node-verifier.js"; +import { ApiNode } from "./api-node.js"; import { Broadcaster } from "./broadcaster.js"; import { BlockDownloader } from "./downloader/block-downloader.js"; import { MessageDownloader } from "./downloader/message-downloader.js"; import { ProposalDownloader } from "./downloader/proposal-downloader.js"; -import { Header } from "./header.js"; import { HeaderService } from "./header-service.js"; +import { Header } from "./header.js"; import { Logger } from "./logger.js"; -import { Peer } from "./peer.js"; import { PeerCommunicator } from "./peer-communicator.js"; import { PeerConnector } from "./peer-connector.js"; import { PeerDiscoverer } from "./peer-discoverer.js"; @@ -30,6 +30,7 @@ import { PeerDisposer } from "./peer-disposer.js"; import { PeerProcessor } from "./peer-processor.js"; import { PeerRepository } from "./peer-repository.js"; import { PeerVerifier } from "./peer-verifier.js"; +import { Peer } from "./peer.js"; import { Service } from "./service.js"; import { GetApiNodesRoute, @@ -45,8 +46,8 @@ import { Server } from "./socket-server/server.js"; import { State } from "./state.js"; import { StatisticLogger, StatisticService } from "./statistic/index.js"; import { Throttle } from "./throttle.js"; -import { TxPoolNode } from "./tx-pool-node.js"; import { TxPoolNodeVerifier } from "./tx-pool-node-verifier.js"; +import { TxPoolNode } from "./tx-pool-node.js"; import { normalizeUrl } from "./utils/index.js"; import { makeFormats, sanitizeRemoteAddress } from "./validation/index.js"; diff --git a/packages/p2p/source/service.ts b/packages/p2p/source/service.ts index 2f372a9d8b..6200f84f39 100644 --- a/packages/p2p/source/service.ts +++ b/packages/p2p/source/service.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { percentile } from "@mainsail/blockchain-utils"; import { EnvironmentVariables, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { groupBy, pluralize, randomNumber, shuffle } from "@mainsail/utils"; import dayjs from "dayjs"; import delay from "delay"; diff --git a/packages/p2p/source/socket-server/controllers/get-api-nodes.ts b/packages/p2p/source/socket-server/controllers/get-api-nodes.ts index c438075414..faf5790d11 100644 --- a/packages/p2p/source/socket-server/controllers/get-api-nodes.ts +++ b/packages/p2p/source/socket-server/controllers/get-api-nodes.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { constants } from "../../constants.js"; diff --git a/packages/p2p/source/socket-server/controllers/get-blocks.ts b/packages/p2p/source/socket-server/controllers/get-blocks.ts index e886cbe585..0d8f6bb267 100644 --- a/packages/p2p/source/socket-server/controllers/get-blocks.ts +++ b/packages/p2p/source/socket-server/controllers/get-blocks.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { pluralize } from "@mainsail/utils"; import { constants } from "../../constants.js"; diff --git a/packages/p2p/source/socket-server/controllers/get-messages.ts b/packages/p2p/source/socket-server/controllers/get-messages.ts index 615377fbd8..31ff912c1f 100644 --- a/packages/p2p/source/socket-server/controllers/get-messages.ts +++ b/packages/p2p/source/socket-server/controllers/get-messages.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class GetMessagesController implements Contracts.P2P.Controller { @@ -12,7 +13,7 @@ export class GetMessagesController implements Contracts.P2P.Controller { request: Contracts.P2P.GetMessagesRequest, h: Hapi.ResponseToolkit, ): Promise { - const { blockNumber, round, validatorsSignedPrevote, validatorsSignedPrecommit } = request.payload.headers; + const { blockNumber, round, validatorsSignedPrecommit, validatorsSignedPrevote } = request.payload.headers; const consensus = this.app.get(Identifiers.Consensus.Service); const roundStateRepo = this.app.get( diff --git a/packages/p2p/source/socket-server/controllers/get-peers.ts b/packages/p2p/source/socket-server/controllers/get-peers.ts index b4516ef544..ec097161f0 100644 --- a/packages/p2p/source/socket-server/controllers/get-peers.ts +++ b/packages/p2p/source/socket-server/controllers/get-peers.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { constants } from "../../constants.js"; diff --git a/packages/p2p/source/socket-server/controllers/get-proposal.ts b/packages/p2p/source/socket-server/controllers/get-proposal.ts index 0b28b66e0b..53ab17a3bd 100644 --- a/packages/p2p/source/socket-server/controllers/get-proposal.ts +++ b/packages/p2p/source/socket-server/controllers/get-proposal.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class GetProposalController implements Contracts.P2P.Controller { diff --git a/packages/p2p/source/socket-server/controllers/get-status.ts b/packages/p2p/source/socket-server/controllers/get-status.ts index 56c4e9c430..c8673bfb40 100644 --- a/packages/p2p/source/socket-server/controllers/get-status.ts +++ b/packages/p2p/source/socket-server/controllers/get-status.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerConfig } from "../utils/get-peer-config.js"; @injectable() diff --git a/packages/p2p/source/socket-server/controllers/post-message.ts b/packages/p2p/source/socket-server/controllers/post-message.ts index 3e42a6a464..ae521d7731 100644 --- a/packages/p2p/source/socket-server/controllers/post-message.ts +++ b/packages/p2p/source/socket-server/controllers/post-message.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/index.js"; diff --git a/packages/p2p/source/socket-server/controllers/post-proposal.ts b/packages/p2p/source/socket-server/controllers/post-proposal.ts index f0856299e3..e6c7a8834d 100644 --- a/packages/p2p/source/socket-server/controllers/post-proposal.ts +++ b/packages/p2p/source/socket-server/controllers/post-proposal.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/index.js"; diff --git a/packages/p2p/source/socket-server/plugins/accept-peer.ts b/packages/p2p/source/socket-server/plugins/accept-peer.ts index 0229872197..6368f65092 100644 --- a/packages/p2p/source/socket-server/plugins/accept-peer.ts +++ b/packages/p2p/source/socket-server/plugins/accept-peer.ts @@ -1,7 +1,8 @@ import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/index.js"; diff --git a/packages/p2p/source/socket-server/plugins/base-plugin.ts b/packages/p2p/source/socket-server/plugins/base-plugin.ts index ad5bfa4c1b..6fb93797a9 100644 --- a/packages/p2p/source/socket-server/plugins/base-plugin.ts +++ b/packages/p2p/source/socket-server/plugins/base-plugin.ts @@ -1,8 +1,9 @@ +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; import { ResponseToolkit } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/index.js"; @injectable() diff --git a/packages/p2p/source/socket-server/plugins/codec.ts b/packages/p2p/source/socket-server/plugins/codec.ts index 286fec1f5e..807dded95c 100644 --- a/packages/p2p/source/socket-server/plugins/codec.ts +++ b/packages/p2p/source/socket-server/plugins/codec.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, multiInject, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BasePlugin } from "./base-plugin.js"; diff --git a/packages/p2p/source/socket-server/plugins/header-handle.ts b/packages/p2p/source/socket-server/plugins/header-handle.ts index 8a1541f1ae..325c0638aa 100644 --- a/packages/p2p/source/socket-server/plugins/header-handle.ts +++ b/packages/p2p/source/socket-server/plugins/header-handle.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/get-peer-ip.js"; diff --git a/packages/p2p/source/socket-server/plugins/header-include.ts b/packages/p2p/source/socket-server/plugins/header-include.ts index fedb0cebf4..133f035288 100644 --- a/packages/p2p/source/socket-server/plugins/header-include.ts +++ b/packages/p2p/source/socket-server/plugins/header-include.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { ResponseToolkit } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ /* eslint-disable @typescript-eslint/typedef */ diff --git a/packages/p2p/source/socket-server/plugins/rate-limit.ts b/packages/p2p/source/socket-server/plugins/rate-limit.ts index e3268cdcd7..7dc7e5690d 100644 --- a/packages/p2p/source/socket-server/plugins/rate-limit.ts +++ b/packages/p2p/source/socket-server/plugins/rate-limit.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Boom from "@hapi/boom"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, multiInject, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RateLimiter } from "../../rate-limiter.js"; import { buildRateLimiter } from "../../utils/build-rate-limiter.js"; diff --git a/packages/p2p/source/socket-server/plugins/statistic.ts b/packages/p2p/source/socket-server/plugins/statistic.ts index b6821e3b15..9af5e3ccf6 100644 --- a/packages/p2p/source/socket-server/plugins/statistic.ts +++ b/packages/p2p/source/socket-server/plugins/statistic.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { performance } from "perf_hooks"; /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ diff --git a/packages/p2p/source/socket-server/plugins/validate-data.ts b/packages/p2p/source/socket-server/plugins/validate-data.ts index 0c7d1a018c..6b949ba39d 100644 --- a/packages/p2p/source/socket-server/plugins/validate-data.ts +++ b/packages/p2p/source/socket-server/plugins/validate-data.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { ResponseToolkit } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, multiInject, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { isValidVersion } from "../../utils/index.js"; import { BasePlugin } from "./base-plugin.js"; diff --git a/packages/p2p/source/socket-server/plugins/validate-ip.ts b/packages/p2p/source/socket-server/plugins/validate-ip.ts index 34c62fc603..813a0aec9f 100644 --- a/packages/p2p/source/socket-server/plugins/validate-ip.ts +++ b/packages/p2p/source/socket-server/plugins/validate-ip.ts @@ -1,7 +1,8 @@ import type { Server } from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { getPeerIp } from "../../utils/index.js"; import { BasePlugin } from "./base-plugin.js"; diff --git a/packages/p2p/source/socket-server/routes/get-api-nodes.ts b/packages/p2p/source/socket-server/routes/get-api-nodes.ts index 65076b590b..f13f96dc72 100644 --- a/packages/p2p/source/socket-server/routes/get-api-nodes.ts +++ b/packages/p2p/source/socket-server/routes/get-api-nodes.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetApiNodesController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/get-blocks.ts b/packages/p2p/source/socket-server/routes/get-blocks.ts index e3ec32cae5..19e33804b6 100644 --- a/packages/p2p/source/socket-server/routes/get-blocks.ts +++ b/packages/p2p/source/socket-server/routes/get-blocks.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetBlocksController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/get-messages.ts b/packages/p2p/source/socket-server/routes/get-messages.ts index f39dc5b740..c6c0228a58 100644 --- a/packages/p2p/source/socket-server/routes/get-messages.ts +++ b/packages/p2p/source/socket-server/routes/get-messages.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetMessagesController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/get-peers.ts b/packages/p2p/source/socket-server/routes/get-peers.ts index 3f19d3b024..6a3b71cd04 100644 --- a/packages/p2p/source/socket-server/routes/get-peers.ts +++ b/packages/p2p/source/socket-server/routes/get-peers.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetPeersController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/get-proposal.ts b/packages/p2p/source/socket-server/routes/get-proposal.ts index 21ef1eff63..8d0383779a 100644 --- a/packages/p2p/source/socket-server/routes/get-proposal.ts +++ b/packages/p2p/source/socket-server/routes/get-proposal.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetProposalController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/get-status.ts b/packages/p2p/source/socket-server/routes/get-status.ts index aab44f2303..1ba6fa9721 100644 --- a/packages/p2p/source/socket-server/routes/get-status.ts +++ b/packages/p2p/source/socket-server/routes/get-status.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; import { GetStatusController } from "../controllers/index.js"; diff --git a/packages/p2p/source/socket-server/routes/post-message.ts b/packages/p2p/source/socket-server/routes/post-message.ts index 5ae243a884..dd70c3321a 100644 --- a/packages/p2p/source/socket-server/routes/post-message.ts +++ b/packages/p2p/source/socket-server/routes/post-message.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { constants } from "../../constants.js"; import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; diff --git a/packages/p2p/source/socket-server/routes/post-proposal.ts b/packages/p2p/source/socket-server/routes/post-proposal.ts index 5a234dff3a..126e6fd2cc 100644 --- a/packages/p2p/source/socket-server/routes/post-proposal.ts +++ b/packages/p2p/source/socket-server/routes/post-proposal.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + import { constants } from "../../constants.js"; import { Routes } from "../../enums.js"; import { Codecs } from "../codecs/index.js"; diff --git a/packages/p2p/source/socket-server/routes/route.ts b/packages/p2p/source/socket-server/routes/route.ts index 491d91b30b..8f868f2e36 100644 --- a/packages/p2p/source/socket-server/routes/route.ts +++ b/packages/p2p/source/socket-server/routes/route.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import Hapi from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export abstract class Route implements Contracts.P2P.Route { diff --git a/packages/p2p/source/socket-server/schemas/get-api-nodes.ts b/packages/p2p/source/socket-server/schemas/get-api-nodes.ts index f7b22b7829..a71769027a 100644 --- a/packages/p2p/source/socket-server/schemas/get-api-nodes.ts +++ b/packages/p2p/source/socket-server/schemas/get-api-nodes.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/get-blocks.ts b/packages/p2p/source/socket-server/schemas/get-blocks.ts index e76c605249..203f747733 100644 --- a/packages/p2p/source/socket-server/schemas/get-blocks.ts +++ b/packages/p2p/source/socket-server/schemas/get-blocks.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { constants } from "../../constants.js"; diff --git a/packages/p2p/source/socket-server/schemas/get-messages.ts b/packages/p2p/source/socket-server/schemas/get-messages.ts index 12770ebab3..1007cd9c5e 100644 --- a/packages/p2p/source/socket-server/schemas/get-messages.ts +++ b/packages/p2p/source/socket-server/schemas/get-messages.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/get-peers.ts b/packages/p2p/source/socket-server/schemas/get-peers.ts index d954f8b2a7..de8d16e479 100644 --- a/packages/p2p/source/socket-server/schemas/get-peers.ts +++ b/packages/p2p/source/socket-server/schemas/get-peers.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/get-proposal.ts b/packages/p2p/source/socket-server/schemas/get-proposal.ts index aa95a796e2..223d2aa96a 100644 --- a/packages/p2p/source/socket-server/schemas/get-proposal.ts +++ b/packages/p2p/source/socket-server/schemas/get-proposal.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/get-status.ts b/packages/p2p/source/socket-server/schemas/get-status.ts index 4e91bfe804..1080a01343 100644 --- a/packages/p2p/source/socket-server/schemas/get-status.ts +++ b/packages/p2p/source/socket-server/schemas/get-status.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/post-message.ts b/packages/p2p/source/socket-server/schemas/post-message.ts index fb2102b77a..762b14e4f8 100644 --- a/packages/p2p/source/socket-server/schemas/post-message.ts +++ b/packages/p2p/source/socket-server/schemas/post-message.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/post-proposal.ts b/packages/p2p/source/socket-server/schemas/post-proposal.ts index 9a8ee5cdbe..46a1c86ac2 100644 --- a/packages/p2p/source/socket-server/schemas/post-proposal.ts +++ b/packages/p2p/source/socket-server/schemas/post-proposal.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; import { makeHeaders } from "./shared.js"; diff --git a/packages/p2p/source/socket-server/schemas/shared.ts b/packages/p2p/source/socket-server/schemas/shared.ts index ad8544c531..cdd8b55209 100644 --- a/packages/p2p/source/socket-server/schemas/shared.ts +++ b/packages/p2p/source/socket-server/schemas/shared.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import Joi from "joi"; export const makeHeaders = (configuration: Contracts.Crypto.Configuration): Joi.ObjectSchema => { diff --git a/packages/p2p/source/socket-server/server.ts b/packages/p2p/source/socket-server/server.ts index 9ab02022fc..187030a3e2 100644 --- a/packages/p2p/source/socket-server/server.ts +++ b/packages/p2p/source/socket-server/server.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Plugin, Server as HapiServer, ServerInjectOptions, ServerInjectResponse, ServerRoute } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, multiInject } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { constants } from "../constants.js"; import { plugin as hapiNesPlugin } from "../hapi-nes/index.js"; diff --git a/packages/p2p/source/socket-server/utils/get-headers.ts b/packages/p2p/source/socket-server/utils/get-headers.ts index 8478d93227..b26ad2acc9 100644 --- a/packages/p2p/source/socket-server/utils/get-headers.ts +++ b/packages/p2p/source/socket-server/utils/get-headers.ts @@ -1,6 +1,7 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; +import { Identifiers } from "@mainsail/constants"; + export const getHeaders = ( app: Contracts.Kernel.Application, ): { diff --git a/packages/p2p/source/socket-server/utils/get-peer-config.ts b/packages/p2p/source/socket-server/utils/get-peer-config.ts index 9a16cff6ca..97f29a191d 100644 --- a/packages/p2p/source/socket-server/utils/get-peer-config.ts +++ b/packages/p2p/source/socket-server/utils/get-peer-config.ts @@ -1,6 +1,7 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; import type { Providers, Services } from "@mainsail/kernel"; + +import { Identifiers } from "@mainsail/constants"; import { assert } from "@mainsail/utils"; type PluginConfig = { diff --git a/packages/p2p/source/state.ts b/packages/p2p/source/state.ts index df40ba4e7b..82fe728d50 100644 --- a/packages/p2p/source/state.ts +++ b/packages/p2p/source/state.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import dayjs from "dayjs"; @injectable() diff --git a/packages/p2p/source/statistic/round-statistic.ts b/packages/p2p/source/statistic/round-statistic.ts index b6da1ee3f5..3df238b4b9 100644 --- a/packages/p2p/source/statistic/round-statistic.ts +++ b/packages/p2p/source/statistic/round-statistic.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { performance } from "perf_hooks"; type BasicStatistic = { diff --git a/packages/p2p/source/statistic/statistic-logger.ts b/packages/p2p/source/statistic/statistic-logger.ts index 6f68bfaf76..1f669195c8 100644 --- a/packages/p2p/source/statistic/statistic-logger.ts +++ b/packages/p2p/source/statistic/statistic-logger.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class StatisticLogger implements Contracts.P2P.StatisticLogger { diff --git a/packages/p2p/source/statistic/statistic-service.ts b/packages/p2p/source/statistic/statistic-service.ts index b97db60587..f5eaedc769 100644 --- a/packages/p2p/source/statistic/statistic-service.ts +++ b/packages/p2p/source/statistic/statistic-service.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { RoundStatistic } from "./round-statistic.js"; diff --git a/packages/p2p/source/throttle.ts b/packages/p2p/source/throttle.ts index 290e782ae6..0cd9c414cf 100644 --- a/packages/p2p/source/throttle.ts +++ b/packages/p2p/source/throttle.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import delay from "delay"; import { RateLimiter } from "./rate-limiter.js"; diff --git a/packages/p2p/source/tx-pool-node-verifier.ts b/packages/p2p/source/tx-pool-node-verifier.ts index 423a10f1a0..82c7030292 100644 --- a/packages/p2p/source/tx-pool-node-verifier.ts +++ b/packages/p2p/source/tx-pool-node-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers, Units } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { http, HttpResponse } from "@mainsail/utils"; const helloWorld = { data: "Hello World from Transaction Pool API!" }; diff --git a/packages/p2p/source/tx-pool-node.ts b/packages/p2p/source/tx-pool-node.ts index be633b17f0..201bedf106 100644 --- a/packages/p2p/source/tx-pool-node.ts +++ b/packages/p2p/source/tx-pool-node.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class TxPoolNode implements Contracts.P2P.TxPoolNode { public ip!: string; diff --git a/packages/p2p/source/utils/build-rate-limiter.test.ts b/packages/p2p/source/utils/build-rate-limiter.test.ts index 7c14e0c393..cbdd46e937 100644 --- a/packages/p2p/source/utils/build-rate-limiter.test.ts +++ b/packages/p2p/source/utils/build-rate-limiter.test.ts @@ -4,7 +4,7 @@ import { buildRateLimiter } from "./build-rate-limiter"; describe("buildRateLimiter", ({ it, assert }) => { it("should return instance of RateLimiter", () => { - const rateLimiter = buildRateLimiter({ remoteAccess: [], whitelist: [] }); + const rateLimiter = buildRateLimiter({ remoteAccess: [], whitelist: [], rateLimit: 1, roundValidators: 5 }); assert.instance(rateLimiter, RateLimiter); }); diff --git a/packages/p2p/source/utils/get-random-peer.ts b/packages/p2p/source/utils/get-random-peer.ts index 2afcf69541..ef0fe0dd69 100644 --- a/packages/p2p/source/utils/get-random-peer.ts +++ b/packages/p2p/source/utils/get-random-peer.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { randomNumber } from "@mainsail/utils"; export const getRandomPeer = (peers: Contracts.P2P.Peer[]): Contracts.P2P.Peer => diff --git a/packages/p2p/source/utils/is-valid-version.ts b/packages/p2p/source/utils/is-valid-version.ts index d5a0bcd317..37b4868dd1 100644 --- a/packages/p2p/source/utils/is-valid-version.ts +++ b/packages/p2p/source/utils/is-valid-version.ts @@ -1,5 +1,6 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import semver from "semver"; // @TODO review the implementation diff --git a/packages/processor/package.json b/packages/processor/package.json index afb27df5c9..74d5a4ef51 100644 --- a/packages/processor/package.json +++ b/packages/processor/package.json @@ -27,7 +27,7 @@ "@mainsail/exceptions": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "dayjs": "1.11.13" + "dayjs": "1.11.20" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/processor/source/block-processor.ts b/packages/processor/source/block-processor.ts index 5baa210dde..f2fdc2acdd 100644 --- a/packages/processor/source/block-processor.ts +++ b/packages/processor/source/block-processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers, Locale } from "@mainsail/constants"; import { inject, injectable, optional, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, BigNumber, sleep } from "@mainsail/utils"; @injectable() @@ -277,7 +278,7 @@ export class BlockProcessor implements Contracts.Processor.BlockProcessor { return; } - const { roundValidators, evmSpec } = this.configuration.getMilestone(unit.blockNumber + 1); + const { evmSpec, roundValidators } = this.configuration.getMilestone(unit.blockNumber + 1); const block = unit.getBlock(); diff --git a/packages/processor/source/block-verifier.ts b/packages/processor/source/block-verifier.ts index 2d523de18b..1d8ffb0439 100644 --- a/packages/processor/source/block-verifier.ts +++ b/packages/processor/source/block-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable, multiInject } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class BlockVerifier implements Contracts.Processor.Verifier { diff --git a/packages/processor/source/transaction-processor.ts b/packages/processor/source/transaction-processor.ts index 945bb0df54..f6f16ba124 100644 --- a/packages/processor/source/transaction-processor.ts +++ b/packages/processor/source/transaction-processor.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { formatCurrency } from "@mainsail/blockchain-utils"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidSignatureError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/chained-verifier.ts b/packages/processor/source/verifiers/chained-verifier.ts index 1e326ab35e..460bd4d3b4 100644 --- a/packages/processor/source/verifiers/chained-verifier.ts +++ b/packages/processor/source/verifiers/chained-verifier.ts @@ -1,7 +1,8 @@ +import type { Contracts } from "@mainsail/contracts"; + import { isBlockChained } from "@mainsail/blockchain-utils"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { BlockNotChained } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; diff --git a/packages/processor/source/verifiers/gas-limit-verifier.ts b/packages/processor/source/verifiers/gas-limit-verifier.ts index 85fb1a8782..39ed6d3dc7 100644 --- a/packages/processor/source/verifiers/gas-limit-verifier.ts +++ b/packages/processor/source/verifiers/gas-limit-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { ExceededGasLimit } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/generator-verifier.ts b/packages/processor/source/verifiers/generator-verifier.ts index ec3eb51739..93e0059031 100644 --- a/packages/processor/source/verifiers/generator-verifier.ts +++ b/packages/processor/source/verifiers/generator-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidGenerator } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/legacy-attribute-verifier.ts b/packages/processor/source/verifiers/legacy-attribute-verifier.ts index 286510e36c..db21612b9d 100644 --- a/packages/processor/source/verifiers/legacy-attribute-verifier.ts +++ b/packages/processor/source/verifiers/legacy-attribute-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { UnexpectedLegacySecondSignatureError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/reward-verifier.ts b/packages/processor/source/verifiers/reward-verifier.ts index 1677d6b122..84b5c9d62f 100644 --- a/packages/processor/source/verifiers/reward-verifier.ts +++ b/packages/processor/source/verifiers/reward-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidReward } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/size-verifier.ts b/packages/processor/source/verifiers/size-verifier.ts index 1c4d20c614..bb6cd63506 100644 --- a/packages/processor/source/verifiers/size-verifier.ts +++ b/packages/processor/source/verifiers/size-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidPayloadSize, MaxPayloadExceeded } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/timestamp-verifier.ts b/packages/processor/source/verifiers/timestamp-verifier.ts index 8b12b8f8f8..3163df74d5 100644 --- a/packages/processor/source/verifiers/timestamp-verifier.ts +++ b/packages/processor/source/verifiers/timestamp-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { FutureBlock, InvalidTimestamp } from "@mainsail/exceptions"; import dayjs from "dayjs"; diff --git a/packages/processor/source/verifiers/transaction-duplicates-verifier.ts b/packages/processor/source/verifiers/transaction-duplicates-verifier.ts index d39537af3a..0c3a6b6126 100644 --- a/packages/processor/source/verifiers/transaction-duplicates-verifier.ts +++ b/packages/processor/source/verifiers/transaction-duplicates-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { DuplicatedTransaction } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/transaction-length-verifier.ts b/packages/processor/source/verifiers/transaction-length-verifier.ts index 3776ec6d78..cab7eae024 100644 --- a/packages/processor/source/verifiers/transaction-length-verifier.ts +++ b/packages/processor/source/verifiers/transaction-length-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidTransactionsLength } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/transaction-root-verifier.ts b/packages/processor/source/verifiers/transaction-root-verifier.ts index 685c6a3277..5ffae72ca7 100644 --- a/packages/processor/source/verifiers/transaction-root-verifier.ts +++ b/packages/processor/source/verifiers/transaction-root-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidTransactionsRoot } from "@mainsail/exceptions"; @injectable() diff --git a/packages/processor/source/verifiers/version-verifier.ts b/packages/processor/source/verifiers/version-verifier.ts index d50f7f1e46..a961f5c029 100644 --- a/packages/processor/source/verifiers/version-verifier.ts +++ b/packages/processor/source/verifiers/version-verifier.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidBlockVersion } from "@mainsail/exceptions"; @injectable() diff --git a/packages/serializer/source/serializer.ts b/packages/serializer/source/serializer.ts index 1e7ccaa7e9..4dbf3733b1 100644 --- a/packages/serializer/source/serializer.ts +++ b/packages/serializer/source/serializer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { NotImplemented } from "@mainsail/exceptions"; import { assert, BigNumber, ByteBuffer, validatorSetPack, validatorSetUnpack } from "@mainsail/utils"; diff --git a/packages/snapshot-legacy-exporter/package.json b/packages/snapshot-legacy-exporter/package.json index 342df55f13..968a6b286a 100644 --- a/packages/snapshot-legacy-exporter/package.json +++ b/packages/snapshot-legacy-exporter/package.json @@ -30,18 +30,18 @@ "@mainsail/logger-pino": "workspace:*", "@mainsail/utils": "workspace:*", "@mainsail/validation": "workspace:*", - "pg": "8.16.3", + "pg": "8.20.0", "tmp": "0.2.5", - "typeorm": "0.3.26" + "typeorm": "0.3.28" }, "devDependencies": { "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/fs-extra": "11.0.4", - "@types/pg": "8.15.5", - "@types/pumpify": "1.4.4", + "@types/pg": "8.20.0", + "@types/pumpify": "1.4.5", "@types/tmp": "0.2.6", - "env-paths": "3.0.0", + "env-paths": "4.0.0", "uvu": "0.5.6" }, "engines": { diff --git a/packages/snapshot-legacy-exporter/source/application-factory.ts b/packages/snapshot-legacy-exporter/source/application-factory.ts index 829d3ae327..e58f7c2f43 100644 --- a/packages/snapshot-legacy-exporter/source/application-factory.ts +++ b/packages/snapshot-legacy-exporter/source/application-factory.ts @@ -1,5 +1,6 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { ServiceProvider as CryptoAddressKeccak256 } from "@mainsail/crypto-address-keccak256"; import { ServiceProvider as CryptoKeyPairEcdsa } from "@mainsail/crypto-key-pair-ecdsa"; import { ServiceProvider as CryptoValidation } from "@mainsail/crypto-validation"; diff --git a/packages/snapshot-legacy-exporter/source/snapshot/generator.ts b/packages/snapshot-legacy-exporter/source/snapshot/generator.ts index fc7feef825..056b641dad 100644 --- a/packages/snapshot-legacy-exporter/source/snapshot/generator.ts +++ b/packages/snapshot-legacy-exporter/source/snapshot/generator.ts @@ -1,13 +1,13 @@ -import { createHash } from "node:crypto"; -import { writeFile } from "node:fs/promises"; -import { promisify } from "node:util"; -import { brotliCompress } from "node:zlib"; +import type { Contracts } from "@mainsail/contracts"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Application, Providers } from "@mainsail/kernel"; import { assert } from "@mainsail/utils"; +import { createHash } from "node:crypto"; +import { writeFile } from "node:fs/promises"; +import { promisify } from "node:util"; +import { brotliCompress } from "node:zlib"; import { DataSource, EntityManager } from "typeorm"; import { PostgresConnectionOptions } from "typeorm/driver/postgres/PostgresConnectionOptions.js"; diff --git a/packages/snapshot-legacy-importer/package.json b/packages/snapshot-legacy-importer/package.json index c077937d5a..d49dd4c8e6 100644 --- a/packages/snapshot-legacy-importer/package.json +++ b/packages/snapshot-legacy-importer/package.json @@ -29,7 +29,7 @@ "@mainsail/snapshot-legacy-exporter": "workspace:*", "@mainsail/utils": "workspace:*", "bip39": "3.1.0", - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/snapshot-legacy-importer/source/importer.ts b/packages/snapshot-legacy-importer/source/importer.ts index 287b000754..84e2787f2d 100644 --- a/packages/snapshot-legacy-importer/source/importer.ts +++ b/packages/snapshot-legacy-importer/source/importer.ts @@ -1,15 +1,15 @@ -import { createHash } from "node:crypto"; -import { promisify } from "node:util"; -import { brotliDecompress } from "node:zlib"; +import type { Contracts } from "@mainsail/contracts"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { ConsensusAbi, UsernamesAbi } from "@mainsail/evm-contracts"; import { Interfaces } from "@mainsail/snapshot-legacy-exporter"; import { assert, BigNumber, chunk } from "@mainsail/utils"; import { entropyToMnemonic } from "bip39"; +import { createHash } from "node:crypto"; +import { promisify } from "node:util"; +import { brotliDecompress } from "node:zlib"; import path from "path"; import { encodeFunctionData } from "viem"; diff --git a/packages/state/package.json b/packages/state/package.json index 2aefd85f70..7876016093 100644 --- a/packages/state/package.json +++ b/packages/state/package.json @@ -30,8 +30,8 @@ "@mainsail/contracts": "workspace:*", "@mainsail/test-runner": "workspace:*", "@types/fs-extra": "11.0.4", - "@types/pumpify": "1.4.4", - "@types/sinon": "17.0.4", + "@types/pumpify": "1.4.5", + "@types/sinon": "21.0.0", "uvu": "0.5.6" }, "engines": { diff --git a/packages/state/source/state.ts b/packages/state/source/state.ts index 2fb8f73ae2..2e020055d3 100644 --- a/packages/state/source/state.ts +++ b/packages/state/source/state.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + @injectable() export class State implements Contracts.State.State { #isBootstrap = true; diff --git a/packages/state/source/store.ts b/packages/state/source/store.ts index 858548c3f1..23dc846032 100644 --- a/packages/state/source/store.ts +++ b/packages/state/source/store.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; @injectable() diff --git a/packages/state/source/wallets/wallet.ts b/packages/state/source/wallets/wallet.ts index 9b4dfb9f18..8914db2378 100644 --- a/packages/state/source/wallets/wallet.ts +++ b/packages/state/source/wallets/wallet.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert, BigNumber } from "@mainsail/utils"; @injectable() diff --git a/packages/test-factories/package.json b/packages/test-factories/package.json index 37df04ce87..c57561cea8 100644 --- a/packages/test-factories/package.json +++ b/packages/test-factories/package.json @@ -42,7 +42,7 @@ "@mainsail/utils": "workspace:*", "@mainsail/validation": "workspace:*", "bip39": "3.1.0", - "dayjs": "1.11.13", + "dayjs": "1.11.20", "memoizee": "0.4.17" }, "devDependencies": { diff --git a/packages/test-factories/source/factories/factories/block.ts b/packages/test-factories/source/factories/factories/block.ts index c04e45fbfe..7efa984c74 100644 --- a/packages/test-factories/source/factories/factories/block.ts +++ b/packages/test-factories/source/factories/factories/block.ts @@ -1,11 +1,13 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { assert, BigNumber } from "@mainsail/utils"; import dayjs from "dayjs"; +import type { FactoryBuilder } from "../factory-builder.js"; + import secrets from "../../internal/passphrases.json" with { type: "json" }; import { Signer } from "../../internal/signer.js"; -import type { FactoryBuilder } from "../factory-builder.js"; import { generateApp } from "./generate-app.js"; import { GAS_PRICE } from "./transaction.js"; diff --git a/packages/test-factories/source/factories/factories/generate-app.ts b/packages/test-factories/source/factories/factories/generate-app.ts index f32b231080..3254bf783e 100644 --- a/packages/test-factories/source/factories/factories/generate-app.ts +++ b/packages/test-factories/source/factories/factories/generate-app.ts @@ -1,5 +1,6 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { ServiceProvider as CoreCryptoAddressBase58 } from "@mainsail/crypto-address-base58"; import { ServiceProvider as CoreCryptoAddressKeccak256 } from "@mainsail/crypto-address-keccak256"; import { ServiceProvider as CoreCryptoBlock } from "@mainsail/crypto-block"; diff --git a/packages/test-factories/source/factories/factories/identity.ts b/packages/test-factories/source/factories/factories/identity.ts index b4a7b2be03..00e43a038d 100644 --- a/packages/test-factories/source/factories/factories/identity.ts +++ b/packages/test-factories/source/factories/factories/identity.ts @@ -1,8 +1,10 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { generateMnemonic } from "bip39"; import type { FactoryBuilder } from "../factory-builder.js"; + import { generateApp } from "./generate-app.js"; type Options = { diff --git a/packages/test-factories/source/factories/factories/transaction.ts b/packages/test-factories/source/factories/factories/transaction.ts index e91edc06f9..975faae656 100644 --- a/packages/test-factories/source/factories/factories/transaction.ts +++ b/packages/test-factories/source/factories/factories/transaction.ts @@ -1,11 +1,13 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { TransactionBuilder } from "@mainsail/crypto-transaction"; import { BigNumber } from "@mainsail/utils"; -import secrets from "../../internal/passphrases.json" with { type: "json" }; import type { FactoryBuilder } from "../factory-builder.js"; import type { EvmCallOptions, TransactionOptions, TransferOptions } from "../types.js"; + +import secrets from "../../internal/passphrases.json" with { type: "json" }; import { generateApp } from "./generate-app.js"; const AMOUNT = 1; diff --git a/packages/test-factories/source/factories/factory-builder.ts b/packages/test-factories/source/factories/factory-builder.ts index 339897d8b4..2b9d8390ce 100644 --- a/packages/test-factories/source/factories/factory-builder.ts +++ b/packages/test-factories/source/factories/factory-builder.ts @@ -1,8 +1,9 @@ import { strictEqual } from "assert"; -import { Factory } from "./factory.js"; import type { FactoryFunction } from "./types.js"; +import { Factory } from "./factory.js"; + export class FactoryBuilder { readonly #factories: Map> = new Map>(); diff --git a/packages/test-factories/source/factories/helpers.ts b/packages/test-factories/source/factories/helpers.ts index ed8dac6596..2aa5a36eec 100644 --- a/packages/test-factories/source/factories/helpers.ts +++ b/packages/test-factories/source/factories/helpers.ts @@ -1,8 +1,10 @@ import type { Contracts } from "@mainsail/contracts"; + import memoizee from "memoizee"; -import { registerBlockFactory, registerIdentityFactory, registerTransactionFactory } from "./factories/index.js"; import type { Factory } from "./factory.js"; + +import { registerBlockFactory, registerIdentityFactory, registerTransactionFactory } from "./factories/index.js"; import { FactoryBuilder } from "./factory-builder.js"; const createFactory = memoizee(async (config: Contracts.Crypto.NetworkConfigPartial): Promise => { diff --git a/packages/test-factories/source/internal/signer.ts b/packages/test-factories/source/internal/signer.ts index a481f2914a..e60a32f52d 100644 --- a/packages/test-factories/source/internal/signer.ts +++ b/packages/test-factories/source/internal/signer.ts @@ -1,10 +1,12 @@ import type { Contracts } from "@mainsail/contracts"; + import { type TransactionBuilder } from "@mainsail/crypto-transaction"; import { BigNumber } from "@mainsail/utils"; +import type { EvmCallOptions, TransferOptions } from "../factories/types.js"; + import { registerTransactionFactory } from "../factories/factories/transaction.js"; import { FactoryBuilder } from "../factories/factory-builder.js"; -import type { EvmCallOptions, TransferOptions } from "../factories/types.js"; export class Signer { #config: Contracts.Crypto.NetworkConfig; diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json index bd6e69a8e8..07fd307d61 100644 --- a/packages/test-runner/package.json +++ b/packages/test-runner/package.json @@ -22,15 +22,15 @@ }, "dependencies": { "kleur": "~4.1.5", - "nock": "14.0.10", - "sinon": "21.0.0", + "nock": "14.0.11", + "sinon": "21.0.3", "uvu": "0.5.6", - "zod": "~4.0.17" + "zod": "~4.3.6" }, "devDependencies": { "@types/chance": "1.1.7", "@types/fs-extra": "11.0.4", - "@types/sinon": "17.0.4" + "@types/sinon": "21.0.0" }, "engines": { "node": ">=20.x" diff --git a/packages/test-runner/source/assert.ts b/packages/test-runner/source/assert.ts index 26b410fefc..e6b1f78ceb 100644 --- a/packages/test-runner/source/assert.ts +++ b/packages/test-runner/source/assert.ts @@ -1,10 +1,10 @@ -import { inspect } from "node:util"; +import type { Message } from "uvu/assert"; +import type { ZodRawShape } from "zod"; import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs"; +import { inspect } from "node:util"; import { join } from "path"; -import type { Message } from "uvu/assert"; import { Assertion, equal, fixture, instance, is, match, not, ok, throws, type, unreachable } from "uvu/assert"; -import type { ZodRawShape } from "zod"; import { z } from "zod"; interface Constructable { diff --git a/packages/test-runner/source/describe.ts b/packages/test-runner/source/describe.ts index d0d1e23a99..754e02efa5 100644 --- a/packages/test-runner/source/describe.ts +++ b/packages/test-runner/source/describe.ts @@ -1,11 +1,13 @@ +import type { Context, Test } from "uvu"; + import kleur from "kleur"; import sinon from "sinon"; -import type { Context, Test } from "uvu"; import { suite } from "uvu"; import { z as schema } from "zod"; -import { assert } from "./assert.js"; import type { EachCallback } from "./each.js"; + +import { assert } from "./assert.js"; import { each, formatName } from "./each.js"; import { runHook } from "./hooks.js"; import { loader } from "./loader.js"; diff --git a/packages/test-runner/source/each.ts b/packages/test-runner/source/each.ts index 082147c911..25a90c7eb7 100644 --- a/packages/test-runner/source/each.ts +++ b/packages/test-runner/source/each.ts @@ -1,7 +1,7 @@ -import { format as printf } from "node:util"; - import type { Test } from "uvu"; +import { format as printf } from "node:util"; + export const formatName = (template: string, ...arguments_: unknown[]): string => printf(template, ...arguments_); export type EachCallback = (arguments_: { diff --git a/packages/test-runner/source/hooks.ts b/packages/test-runner/source/hooks.ts index 5f4fa88af8..acd13a775b 100644 --- a/packages/test-runner/source/hooks.ts +++ b/packages/test-runner/source/hooks.ts @@ -1,6 +1,7 @@ -import kleur from "kleur"; import type { Context } from "uvu"; +import kleur from "kleur"; + export const runHook = // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type (callback: Function) => diff --git a/packages/test-runner/source/nock.ts b/packages/test-runner/source/nock.ts index f09a88b377..e712ee401c 100644 --- a/packages/test-runner/source/nock.ts +++ b/packages/test-runner/source/nock.ts @@ -1,4 +1,5 @@ import type { Options, Scope } from "nock"; + import base from "nock"; export const nock = { diff --git a/packages/test-runner/source/spy.ts b/packages/test-runner/source/spy.ts index 51c96e4a65..84a4b2231b 100644 --- a/packages/test-runner/source/spy.ts +++ b/packages/test-runner/source/spy.ts @@ -1,4 +1,5 @@ import type { Fake as IFake } from "./contracts.js"; + import { Fake } from "./fake.js"; export class Spy diff --git a/packages/test-runner/source/stub.ts b/packages/test-runner/source/stub.ts index 5ab59de6a4..75eb3141eb 100644 --- a/packages/test-runner/source/stub.ts +++ b/packages/test-runner/source/stub.ts @@ -2,6 +2,7 @@ import type { SinonStub } from "sinon"; import type { Stub as IStub } from "./contracts.js"; import type { FakeLike } from "./fake.js"; + import { Fake } from "./fake.js"; type SinonStubLike = FakeLike & diff --git a/packages/test-transaction-builders/package.json b/packages/test-transaction-builders/package.json index 30ab42d376..1539a48d4f 100644 --- a/packages/test-transaction-builders/package.json +++ b/packages/test-transaction-builders/package.json @@ -27,7 +27,7 @@ "@mainsail/evm-consensus": "workspace:*", "@mainsail/evm-contracts": "workspace:*", "@mainsail/utils": "workspace:*", - "viem": "2.34.0" + "viem": "2.47.6" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/test-transaction-builders/source/evm-calls.ts b/packages/test-transaction-builders/source/evm-calls.ts index 36899e2271..c356c36cc5 100644 --- a/packages/test-transaction-builders/source/evm-calls.ts +++ b/packages/test-transaction-builders/source/evm-calls.ts @@ -1,11 +1,11 @@ -import { Enums, Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Enums, Identifiers } from "@mainsail/constants"; import { TransactionBuilder } from "@mainsail/crypto-transaction"; import { Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { ConsensusAbi, MultiPaymentAbi, UsernamesAbi } from "@mainsail/evm-contracts"; import { decodeFunctionResult, encodeFunctionData, parseEther, toBytes, toHex, zeroAddress } from "viem"; -import { default as DARK20 } from "./abis/DARK20.json" with { type: "json" }; import type { Context, EvmCallOptions, @@ -16,13 +16,15 @@ import type { ValidatorResignationOptions, VoteOptions, } from "./types.js"; + +import { default as DARK20 } from "./abis/DARK20.json" with { type: "json" }; import { buildSignedTransaction, getAddressByPublicKey } from "./utilities.js"; export const makeEvmCall = async ( { app, wallets }: Context, options: EvmCallOptions = {}, ): Promise => { - let { value, sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender, value } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -54,7 +56,7 @@ export const makeEvmCallDeployErc20Contract = async ( { app, wallets }: Context, options: EvmCallOptions = {}, ): Promise => { - let { sender, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -76,7 +78,7 @@ export const makeValidatorRegistration = async ( { app, wallets }: Context, options: ValidatorRegistrationOptions = {}, ): Promise => { - let { value, sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender, value } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -113,7 +115,7 @@ export const makeValidatorResignation = async ( { app, wallets }: Context, options: ValidatorResignationOptions = {}, ): Promise => { - let { sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -144,7 +146,7 @@ export const makeValidatorVote = async ( { app, wallets }: Context, options: VoteOptions, ): Promise => { - let { sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -175,7 +177,7 @@ export const makeValidatorUnvote = async ( { app, wallets }: Context, options: UnvoteOptions, ): Promise => { - let { sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -206,7 +208,7 @@ export const makeUsernameRegistration = async ( { app, wallets }: Context, options: UsernameRegistrationOptions, ): Promise => { - let { sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; @@ -237,7 +239,7 @@ export const makeUsernameResignation = async ( { app, wallets }: Context, options: UsernameResignationOptions, ): Promise => { - let { sender, recipient, gasPrice, gasLimit, payload } = options; + let { gasLimit, gasPrice, payload, recipient, sender } = options; sender = sender ?? wallets[0]; gasPrice = gasPrice ?? 5 * 1e9; diff --git a/packages/test-transaction-builders/source/index.ts b/packages/test-transaction-builders/source/index.ts index d0a145291f..1e1659cc92 100644 --- a/packages/test-transaction-builders/source/index.ts +++ b/packages/test-transaction-builders/source/index.ts @@ -1,9 +1,3 @@ -export * as EvmCalls from "./evm-calls.js"; -// export * as MultiPayments from "./multi-payments.js"; -// export * as MultiSignatureRegistrations from "./multi-signature-registrations.js"; -// export * as Transfers from "./transfers.js"; -export * as Types from "./types.js"; -export * as Utils from "./utilities.js"; // export * as UsernameRegistrations from "./username-registrations.js"; // export * as UsernameResignations from "./username-resignations.js"; // export * as Utils from "./utils.js"; @@ -11,3 +5,9 @@ export * as Utils from "./utilities.js"; // export * as ValidatorResignations from "./validator-resignations.js"; // export * as Votes from "./votes.js"; export { default as DARK20Abi } from "./abis/DARK20.json" with { type: "json" }; +export * as EvmCalls from "./evm-calls.js"; +// export * as MultiPayments from "./multi-payments.js"; +// export * as MultiSignatureRegistrations from "./multi-signature-registrations.js"; +// export * as Transfers from "./transfers.js"; +export * as Types from "./types.js"; +export * as Utils from "./utilities.js"; diff --git a/packages/test-transaction-builders/source/utilities.ts b/packages/test-transaction-builders/source/utilities.ts index c3aa2b5116..27758834c7 100644 --- a/packages/test-transaction-builders/source/utilities.ts +++ b/packages/test-transaction-builders/source/utilities.ts @@ -1,10 +1,12 @@ -import { Identifiers } from "@mainsail/constants"; import type { Contracts } from "@mainsail/contracts"; + +import { Identifiers } from "@mainsail/constants"; import { TransactionBuilder, TransactionFactory, Verifier } from "@mainsail/crypto-transaction"; import { BigNumber, sleep } from "@mainsail/utils"; import { randomBytes } from "crypto"; import type { Context, TransactionOptions } from "./types.js"; + import { AcceptAnyTransactionVerifier } from "./verifier.js"; const applyCustomSignature = async ( diff --git a/packages/test-transaction-builders/source/verifier.ts b/packages/test-transaction-builders/source/verifier.ts index ea7c89d9c9..e2cd3308e2 100644 --- a/packages/test-transaction-builders/source/verifier.ts +++ b/packages/test-transaction-builders/source/verifier.ts @@ -1,6 +1,7 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; +import { injectable } from "@mainsail/container"; + // Verifier which always accepts everything, useful when using the tx builder with invalid schema data. @injectable() diff --git a/packages/transaction-pool-broadcaster/package.json b/packages/transaction-pool-broadcaster/package.json index d1aed73a89..ceba019dbf 100644 --- a/packages/transaction-pool-broadcaster/package.json +++ b/packages/transaction-pool-broadcaster/package.json @@ -25,8 +25,8 @@ "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "dayjs": "1.11.13", - "joi": "18.0.0" + "dayjs": "1.11.20", + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/transaction-pool-broadcaster/source/broadcaster.ts b/packages/transaction-pool-broadcaster/source/broadcaster.ts index 85c096ae39..8382948c6e 100644 --- a/packages/transaction-pool-broadcaster/source/broadcaster.ts +++ b/packages/transaction-pool-broadcaster/source/broadcaster.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { shuffle, take } from "@mainsail/utils"; @injectable() diff --git a/packages/transaction-pool-broadcaster/source/peer-communicator.ts b/packages/transaction-pool-broadcaster/source/peer-communicator.ts index e172550ec0..a645314a26 100644 --- a/packages/transaction-pool-broadcaster/source/peer-communicator.ts +++ b/packages/transaction-pool-broadcaster/source/peer-communicator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Ipc } from "@mainsail/kernel"; import { http } from "@mainsail/utils"; import dayjs from "dayjs"; diff --git a/packages/transaction-pool-broadcaster/source/peer-repository.ts b/packages/transaction-pool-broadcaster/source/peer-repository.ts index 4ee5da05ef..e0f71b1839 100644 --- a/packages/transaction-pool-broadcaster/source/peer-repository.ts +++ b/packages/transaction-pool-broadcaster/source/peer-repository.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; @injectable() diff --git a/packages/transaction-pool-broadcaster/source/peer.ts b/packages/transaction-pool-broadcaster/source/peer.ts index 14b59335e5..8bc45711b6 100644 --- a/packages/transaction-pool-broadcaster/source/peer.ts +++ b/packages/transaction-pool-broadcaster/source/peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs, { Dayjs } from "dayjs"; @injectable() diff --git a/packages/transaction-pool-broadcaster/source/service-provider.ts b/packages/transaction-pool-broadcaster/source/service-provider.ts index 2148357f35..b767c98a7f 100644 --- a/packages/transaction-pool-broadcaster/source/service-provider.ts +++ b/packages/transaction-pool-broadcaster/source/service-provider.ts @@ -4,9 +4,9 @@ import { Providers } from "@mainsail/kernel"; import Joi from "joi"; import { Broadcaster } from "./broadcaster.js"; -import { Peer } from "./peer.js"; import { PeerCommunicator } from "./peer-communicator.js"; import { PeerRepository } from "./peer-repository.js"; +import { Peer } from "./peer.js"; @injectable() export class ServiceProvider extends Providers.ServiceProvider { diff --git a/packages/transaction-pool-service/package.json b/packages/transaction-pool-service/package.json index d152437e45..1c117b8384 100644 --- a/packages/transaction-pool-service/package.json +++ b/packages/transaction-pool-service/package.json @@ -27,9 +27,9 @@ "@mainsail/kernel": "workspace:*", "@mainsail/state": "workspace:*", "@mainsail/utils": "workspace:*", - "better-sqlite3": "12.2.0", - "fs-extra": "11.3.1", - "joi": "18.0.0" + "better-sqlite3": "12.8.0", + "fs-extra": "11.3.4", + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/transaction-pool-service/source/actions/throw-if-cannot-be-applied.ts b/packages/transaction-pool-service/source/actions/throw-if-cannot-be-applied.ts index 773016f28a..8945cffbb0 100644 --- a/packages/transaction-pool-service/source/actions/throw-if-cannot-be-applied.ts +++ b/packages/transaction-pool-service/source/actions/throw-if-cannot-be-applied.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { Services } from "@mainsail/kernel"; @injectable() diff --git a/packages/transaction-pool-service/source/actions/verify-transaction.ts b/packages/transaction-pool-service/source/actions/verify-transaction.ts index 4819cd1dd6..f01731bc79 100644 --- a/packages/transaction-pool-service/source/actions/verify-transaction.ts +++ b/packages/transaction-pool-service/source/actions/verify-transaction.ts @@ -1,5 +1,6 @@ -import { injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable } from "@mainsail/container"; import { Services } from "@mainsail/kernel"; @injectable() diff --git a/packages/transaction-pool-service/source/index.ts b/packages/transaction-pool-service/source/index.ts index b627ee4685..693659e4fa 100644 --- a/packages/transaction-pool-service/source/index.ts +++ b/packages/transaction-pool-service/source/index.ts @@ -4,7 +4,7 @@ export * from "./processor.js"; export * from "./query.js"; export * from "./sender-mempool.js"; export * from "./sender-state.js"; -export * from "./service.js"; export * from "./service-provider.js"; +export * from "./service.js"; export * from "./storage.js"; export * from "./utilities.js"; diff --git a/packages/transaction-pool-service/source/mempool.ts b/packages/transaction-pool-service/source/mempool.ts index c59ee1b169..50bb22199f 100644 --- a/packages/transaction-pool-service/source/mempool.ts +++ b/packages/transaction-pool-service/source/mempool.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class Mempool implements Contracts.TransactionPool.Mempool { diff --git a/packages/transaction-pool-service/source/processor.ts b/packages/transaction-pool-service/source/processor.ts index cfce395b34..f9400c766c 100644 --- a/packages/transaction-pool-service/source/processor.ts +++ b/packages/transaction-pool-service/source/processor.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, multiInject, optional } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InvalidTransactionDataError, PoolError } from "@mainsail/exceptions"; @injectable() diff --git a/packages/transaction-pool-service/source/query.ts b/packages/transaction-pool-service/source/query.ts index ea5383b416..1e8928b5c1 100644 --- a/packages/transaction-pool-service/source/query.ts +++ b/packages/transaction-pool-service/source/query.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; type SortFunction = (a: Contracts.Crypto.Transaction, b: Contracts.Crypto.Transaction) => number; diff --git a/packages/transaction-pool-service/source/sender-mempool.ts b/packages/transaction-pool-service/source/sender-mempool.ts index e7c275bda4..1d2a871d06 100644 --- a/packages/transaction-pool-service/source/sender-mempool.ts +++ b/packages/transaction-pool-service/source/sender-mempool.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { SenderExceededMaximumTransactionCountError } from "@mainsail/exceptions"; import { assert, BigNumber, Lock } from "@mainsail/utils"; diff --git a/packages/transaction-pool-service/source/sender-state.ts b/packages/transaction-pool-service/source/sender-state.ts index 7f3c186a85..d68240e17f 100644 --- a/packages/transaction-pool-service/source/sender-state.ts +++ b/packages/transaction-pool-service/source/sender-state.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { InsufficientBalanceError, TransactionExceedsMaximumByteSizeError, diff --git a/packages/transaction-pool-service/source/service-provider.ts b/packages/transaction-pool-service/source/service-provider.ts index e4a321d77c..395f44251d 100644 --- a/packages/transaction-pool-service/source/service-provider.ts +++ b/packages/transaction-pool-service/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers, Services } from "@mainsail/kernel"; import Joi from "joi"; diff --git a/packages/transaction-pool-service/source/service.ts b/packages/transaction-pool-service/source/service.ts index cb424fc293..6ab9fc21eb 100644 --- a/packages/transaction-pool-service/source/service.ts +++ b/packages/transaction-pool-service/source/service.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { EnvironmentVariables, Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { PoolError, TransactionAlreadyInPoolError, TransactionPoolFullError } from "@mainsail/exceptions"; import { BigNumber, Lock, randomNumber } from "@mainsail/utils"; @@ -194,7 +195,7 @@ export class Service implements Contracts.TransactionPool.Service { const lastBlockNumber: number = this.stateStore.getBlockNumber(); const expiredBlockNumber: number = lastBlockNumber - maxTransactionAge; - for (const { senderPublicKey, hash } of this.storage.getOldTransactions(expiredBlockNumber)) { + for (const { hash, senderPublicKey } of this.storage.getOldTransactions(expiredBlockNumber)) { const removedTransactions = await this.mempool.removeTransaction( await this.addressFactory.fromPublicKey(senderPublicKey), hash, diff --git a/packages/transaction-pool-service/source/storage.ts b/packages/transaction-pool-service/source/storage.ts index e90d1792fd..4a076a0186 100644 --- a/packages/transaction-pool-service/source/storage.ts +++ b/packages/transaction-pool-service/source/storage.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import BetterSqlite3 from "better-sqlite3"; import { ensureFileSync } from "fs-extra/esm"; diff --git a/packages/transaction-pool-worker/package.json b/packages/transaction-pool-worker/package.json index d8911b50d7..b699a662aa 100644 --- a/packages/transaction-pool-worker/package.json +++ b/packages/transaction-pool-worker/package.json @@ -24,8 +24,8 @@ "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", - "dayjs": "1.11.13", - "joi": "18.0.0" + "dayjs": "1.11.20", + "joi": "18.1.2" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/transaction-pool-worker/source/handlers/commit.ts b/packages/transaction-pool-worker/source/handlers/commit.ts index b47a0e6403..bec4ad9cd6 100644 --- a/packages/transaction-pool-worker/source/handlers/commit.ts +++ b/packages/transaction-pool-worker/source/handlers/commit.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class CommitHandler { diff --git a/packages/transaction-pool-worker/source/handlers/forget-peer.ts b/packages/transaction-pool-worker/source/handlers/forget-peer.ts index 941b53a163..423b0c9943 100644 --- a/packages/transaction-pool-worker/source/handlers/forget-peer.ts +++ b/packages/transaction-pool-worker/source/handlers/forget-peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ForgetPeerHandler { diff --git a/packages/transaction-pool-worker/source/handlers/get-transactions.ts b/packages/transaction-pool-worker/source/handlers/get-transactions.ts index 0936b62cfd..76a134a7d3 100644 --- a/packages/transaction-pool-worker/source/handlers/get-transactions.ts +++ b/packages/transaction-pool-worker/source/handlers/get-transactions.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class GetTransactionsHandler { diff --git a/packages/transaction-pool-worker/source/handlers/reload-webhooks.ts b/packages/transaction-pool-worker/source/handlers/reload-webhooks.ts index a03a8c1ead..e19053d8ca 100644 --- a/packages/transaction-pool-worker/source/handlers/reload-webhooks.ts +++ b/packages/transaction-pool-worker/source/handlers/reload-webhooks.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ReloadWebhooksHandler { diff --git a/packages/transaction-pool-worker/source/handlers/remove-transaction.ts b/packages/transaction-pool-worker/source/handlers/remove-transaction.ts index f5247602be..4e0155f2a4 100644 --- a/packages/transaction-pool-worker/source/handlers/remove-transaction.ts +++ b/packages/transaction-pool-worker/source/handlers/remove-transaction.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class RemoveTransactionHandler { diff --git a/packages/transaction-pool-worker/source/handlers/set-peer.ts b/packages/transaction-pool-worker/source/handlers/set-peer.ts index 2ad1bef391..4c8002ff16 100644 --- a/packages/transaction-pool-worker/source/handlers/set-peer.ts +++ b/packages/transaction-pool-worker/source/handlers/set-peer.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class SetPeerHandler { diff --git a/packages/transaction-pool-worker/source/handlers/start.ts b/packages/transaction-pool-worker/source/handlers/start.ts index 09f5a69c9e..d85b6df866 100644 --- a/packages/transaction-pool-worker/source/handlers/start.ts +++ b/packages/transaction-pool-worker/source/handlers/start.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class StartHandler { diff --git a/packages/transaction-pool-worker/source/service-provider.ts b/packages/transaction-pool-worker/source/service-provider.ts index 26149af045..ac9db042e6 100644 --- a/packages/transaction-pool-worker/source/service-provider.ts +++ b/packages/transaction-pool-worker/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Ipc, Providers } from "@mainsail/kernel"; import Joi from "joi"; import { Worker } from "worker_threads"; diff --git a/packages/transaction-pool-worker/source/worker-handler.ts b/packages/transaction-pool-worker/source/worker-handler.ts index 6ed38f57a9..31aca6f85c 100644 --- a/packages/transaction-pool-worker/source/worker-handler.ts +++ b/packages/transaction-pool-worker/source/worker-handler.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { Application } from "@mainsail/kernel"; import { diff --git a/packages/transaction-pool-worker/source/worker.ts b/packages/transaction-pool-worker/source/worker.ts index bca5bf10b7..d8707dc182 100644 --- a/packages/transaction-pool-worker/source/worker.ts +++ b/packages/transaction-pool-worker/source/worker.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable, postConstruct } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import dayjs from "dayjs"; @injectable() diff --git a/packages/transactions/source/handlers/transaction.ts b/packages/transactions/source/handlers/transaction.ts index d413c69614..0224e72f53 100644 --- a/packages/transactions/source/handlers/transaction.ts +++ b/packages/transactions/source/handlers/transaction.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { TransactionFailedToPreverifyError, UnexpectedLegacySecondSignatureError } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; @@ -77,7 +78,7 @@ export class TransactionHandler implements Contracts.Transactions.TransactionHan const { evmSpec } = this.configuration.getMilestone(); try { - const { instance, blockContext } = context.evm; + const { blockContext, instance } = context.evm; const data = { blockContext, data: Buffer.from(transaction.data.slice(2), "hex"), diff --git a/packages/transactions/source/service-provider.ts b/packages/transactions/source/service-provider.ts index 79450284b0..4d540e3310 100644 --- a/packages/transactions/source/service-provider.ts +++ b/packages/transactions/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { TransactionHandler } from "./handlers/index.js"; diff --git a/packages/transactions/source/transaction-validator.ts b/packages/transactions/source/transaction-validator.ts index e384309039..17f4bb9f9d 100644 --- a/packages/transactions/source/transaction-validator.ts +++ b/packages/transactions/source/transaction-validator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { assert } from "@mainsail/utils"; import { strictEqual } from "assert"; @@ -30,7 +31,7 @@ export class TransactionValidator implements Contracts.Transactions.TransactionV ); strictEqual(transaction.hash, deserialized.hash); - const { commitKey, gasLimit, timestamp, generatorAddress } = context; + const { commitKey, gasLimit, generatorAddress, timestamp } = context; const receipt = await this.transactionHandler.apply( { diff --git a/packages/utils/package.json b/packages/utils/package.json index 48df64103c..bd429214b5 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -29,23 +29,23 @@ "dependencies": { "@hapi/bourne": "3.0.0", "deepmerge": "4.3.1", - "fast-copy": "3.0.2", + "fast-copy": "4.0.2", "fast-deep-equal": "3.1.3", "fast-sort": "3.4.1", - "ipaddr.js": "2.2.0", + "ipaddr.js": "2.3.0", "micromatch": "4.0.8", - "type-fest": "4.41.0", - "viem": "2.34.0" + "type-fest": "5.5.0", + "viem": "2.47.6" }, "devDependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/test-runner": "workspace:*", "@types/micromatch": "4.0.10", "big-number": "2.0.0", - "bignumber.js": "9.3.1", + "bignumber.js": "10.0.2", "jsbi": "4.3.2", - "lodash": "4.17.21", + "lodash": "4.17.23", "micro-bmark": "0.4.2", "pluralize": "8.0.0", "uvu": "0.5.6" diff --git a/packages/utils/source/clone-deep.ts b/packages/utils/source/clone-deep.ts index 9dd04c6b67..fa87cad5e2 100644 --- a/packages/utils/source/clone-deep.ts +++ b/packages/utils/source/clone-deep.ts @@ -1,3 +1,3 @@ -import deepClone from "fast-copy"; +import { copy } from "fast-copy"; -export const cloneDeep = (object: T): T => deepClone(object); +export const cloneDeep = (object: T): T => copy(object); diff --git a/packages/utils/source/dot-env.ts b/packages/utils/source/dot-env.ts index 01052f8a33..d52fe85f83 100644 --- a/packages/utils/source/dot-env.ts +++ b/packages/utils/source/dot-env.ts @@ -1,6 +1,7 @@ -import { readFileSync } from "fs"; import type { Primitive } from "type-fest"; +import { readFileSync } from "fs"; + import { isString } from "./is-string.js"; const parse = (contents: string): Record => { diff --git a/packages/utils/source/filter.ts b/packages/utils/source/filter.ts index 115611587c..46862e5651 100644 --- a/packages/utils/source/filter.ts +++ b/packages/utils/source/filter.ts @@ -1,6 +1,7 @@ +import type { FunctionReturning } from "./internal/index.js"; + import { filterArray } from "./filter-array.js"; import { filterObject } from "./filter-object.js"; -import type { FunctionReturning } from "./internal/index.js"; import { isArray } from "./is-array.js"; export const filter = ( diff --git a/packages/utils/source/find-key.ts b/packages/utils/source/find-key.ts index 3ab7041d32..324a316c95 100644 --- a/packages/utils/source/find-key.ts +++ b/packages/utils/source/find-key.ts @@ -1,6 +1,7 @@ -import { filterObject } from "./filter-object.js"; import type { FunctionReturning } from "./internal/index.js"; +import { filterObject } from "./filter-object.js"; + export const findKey = >( iterable: T, iteratee: FunctionReturning<[T[keyof T], keyof T, T], unknown>, diff --git a/packages/utils/source/http.ts b/packages/utils/source/http.ts index 54fdf67f51..8eb48b3d52 100644 --- a/packages/utils/source/http.ts +++ b/packages/utils/source/http.ts @@ -1,7 +1,8 @@ import type { ClientRequest, IncomingMessage, RequestOptions } from "http"; +import type { JsonArray, JsonObject, Primitive } from "type-fest"; + import { globalAgent as httpGlobalAgent, request as httpRequest } from "http"; import { globalAgent as httpsGlobalAgent, request as httpsRequest } from "https"; -import type { JsonArray, JsonObject, Primitive } from "type-fest"; import { URL } from "url"; import { isObject } from "./is-object.js"; diff --git a/packages/utils/source/immutable/index.ts b/packages/utils/source/immutable/index.ts index 3b6732ff95..fcbca30f04 100644 --- a/packages/utils/source/immutable/index.ts +++ b/packages/utils/source/immutable/index.ts @@ -1,3 +1,3 @@ export * from "./order-by.js"; -export * from "./sort-by.js"; export * from "./sort-by-desc.js"; +export * from "./sort-by.js"; diff --git a/packages/utils/source/immutable/order-by.ts b/packages/utils/source/immutable/order-by.ts index 4f0fc630d5..997b708b46 100644 --- a/packages/utils/source/immutable/order-by.ts +++ b/packages/utils/source/immutable/order-by.ts @@ -1,4 +1,5 @@ import type { Iteratee } from "../internal/index.js"; + import { orderBy as baseOrderBy } from "../order-by.js"; export const orderBy = (values: T[], iteratees: Iteratee | Iteratee[], orders: string | string[]): T[] => diff --git a/packages/utils/source/index.ts b/packages/utils/source/index.ts index 98399a5c25..67f6b62062 100644 --- a/packages/utils/source/index.ts +++ b/packages/utils/source/index.ts @@ -11,10 +11,10 @@ export * from "./capped-set.js"; export * from "./cast-array.js"; export * from "./chars.js"; export * from "./chunk.js"; -export * from "./clone.js"; export * from "./clone-array.js"; export * from "./clone-deep.js"; export * from "./clone-object.js"; +export * from "./clone.js"; export * from "./collection.js"; export * from "./concat.js"; export * from "./constant-case.js"; @@ -24,12 +24,12 @@ export * from "./every.js"; export * from "./expand-tilde.js"; export * from "./extension.js"; export * from "./fill.js"; -export * from "./filter.js"; export * from "./filter-array.js"; export * from "./filter-object.js"; -export * from "./find.js"; +export * from "./filter.js"; export * from "./find-index.js"; export * from "./find-key.js"; +export * from "./find.js"; export * from "./first-map-entry.js"; export * from "./first-map-key.js"; export * from "./first-map-value.js"; @@ -37,13 +37,13 @@ export * from "./flatten.js"; export * from "./format-ecdsa-signature.js"; export * from "./format-number.js"; export * from "./format-string.js"; -export * from "./get.js"; export * from "./get-path-segments.js"; export * from "./get-type.js"; +export * from "./get.js"; export * from "./group-by.js"; -export * from "./has.js"; export * from "./has-property.js"; export * from "./has-some-property.js"; +export * from "./has.js"; export * from "./hash-string.js"; export * from "./head.js"; export * from "./header-case.js"; @@ -56,51 +56,51 @@ export * from "./internal/index.js"; export * from "./intersection.js"; export * as IpAddress from "./ip-address.js"; export * from "./is-arguments.js"; -export * from "./is-array.js"; export * from "./is-array-of-type.js"; +export * from "./is-array.js"; export * from "./is-async-function.js"; export * from "./is-between.js"; export * from "./is-bigint.js"; export * from "./is-blacklisted.js"; -export * from "./is-boolean.js"; export * from "./is-boolean-array.js"; +export * from "./is-boolean.js"; export * from "./is-buffer.js"; export * from "./is-constructor.js"; export * from "./is-date.js"; -export * from "./is-empty.js"; export * from "./is-empty-array.js"; export * from "./is-empty-map.js"; export * from "./is-empty-object.js"; export * from "./is-empty-set.js"; +export * from "./is-empty.js"; export * from "./is-enumerable.js"; export * from "./is-equal.js"; export * from "./is-error.js"; export * from "./is-false.js"; export * from "./is-function.js"; export * from "./is-git.js"; -export * from "./is-greater-than.js"; export * from "./is-greater-than-or-equal.js"; -export * from "./is-less-than.js"; +export * from "./is-greater-than.js"; export * from "./is-less-than-or-equal.js"; +export * from "./is-less-than.js"; export * from "./is-map.js"; export * from "./is-match.js"; -export * from "./is-negative.js"; export * from "./is-negative-zero.js"; +export * from "./is-negative.js"; export * from "./is-nil.js"; export * from "./is-not-between.js"; export * from "./is-not-equal.js"; export * from "./is-null.js"; -export * from "./is-number.js"; export * from "./is-number-array.js"; +export * from "./is-number.js"; export * from "./is-object.js"; -export * from "./is-positive.js"; export * from "./is-positive-zero.js"; +export * from "./is-positive.js"; export * from "./is-promise.js"; export * from "./is-reg-exp.js"; export * from "./is-set.js"; export * from "./is-ssh.js"; -export * from "./is-string.js"; export * from "./is-string-array.js"; +export * from "./is-string.js"; export * from "./is-symbol.js"; export * from "./is-sync-function.js"; export * from "./is-true.js"; @@ -112,70 +112,70 @@ export * from "./is-weak-set.js"; export * from "./is-whitelisted.js"; export * from "./kebab-case.js"; export * from "./key-by.js"; -export * from "./keys.js"; export * from "./keys-in.js"; -export * from "./last.js"; +export * from "./keys.js"; export * from "./last-index-of.js"; export * from "./last-map-entry.js"; export * from "./last-map-key.js"; export * from "./last-map-value.js"; +export * from "./last.js"; export * from "./lock.js"; export * from "./lower-case.js"; export * from "./lower-first.js"; -export * from "./map.js"; export * from "./map-array.js"; export * from "./map-object.js"; export * from "./map-values.js"; +export * from "./map.js"; export * from "./match.js"; -export * from "./max.js"; export * from "./max-by.js"; +export * from "./max.js"; export * from "./merge.js"; -export * from "./min.js"; export * from "./min-by.js"; +export * from "./min.js"; export * from "./nsect.js"; export * from "./number-array.js"; export * from "./number-to-hex.js"; export * from "./omit-by.js"; export * from "./order-by.js"; export * from "./ordinal.js"; -export * from "./parse.js"; export * from "./parse-git-url.js"; export * from "./parse-uri.js"; +export * from "./parse.js"; export * from "./partition.js"; export * from "./pascal-case.js"; export * from "./path-case.js"; -export * from "./pick.js"; export * from "./pick-by.js"; +export * from "./pick.js"; export * from "./pluck.js"; export * from "./pluralize.js"; export * from "./pretty-bytes.js"; export * from "./pretty-time.js"; export * from "./protocols.js"; -export * from "./pull.js"; -export * from "./pull-all.js"; export * from "./pull-all-by.js"; +export * from "./pull-all.js"; +export * from "./pull.js"; export * from "./random-base64.js"; export * from "./random-bits.js"; export * from "./random-hex.js"; export * from "./random-number.js"; -export * from "./reduce.js"; export * from "./reduce-array.js"; export * from "./reduce-object.js"; -export * from "./reduce-right.js"; export * from "./reduce-right-array.js"; export * from "./reduce-right-object.js"; +export * from "./reduce-right.js"; +export * from "./reduce.js"; export * from "./reject.js"; export * from "./reverse.js"; export * from "./sample.js"; export * from "./semver.js"; -export * from "./set.js"; export * from "./set-timeout-async.js"; +export * from "./set.js"; export * from "./shuffle.js"; export * from "./sleep.js"; export * from "./snake-case.js"; export * from "./some.js"; -export * from "./sort-by.js"; export * from "./sort-by-desc.js"; +export * from "./sort-by.js"; export * from "./start-case.js"; export * from "./stringify.js"; export * from "./tail.js"; @@ -185,10 +185,10 @@ export * from "./to-string.js"; export * from "./to-upper.js"; export * from "./trim-trailing-slash.js"; export * from "./truncate.js"; -export * from "./union.js"; export * from "./union-by.js"; -export * from "./uniq.js"; +export * from "./union.js"; export * from "./uniq-by.js"; +export * from "./uniq.js"; export * from "./unset.js"; export * from "./upper-case.js"; export * from "./upper-first.js"; diff --git a/packages/utils/source/max-by.ts b/packages/utils/source/max-by.ts index dad0cc915b..543b025b28 100644 --- a/packages/utils/source/max-by.ts +++ b/packages/utils/source/max-by.ts @@ -1,4 +1,5 @@ import type { FunctionReturning } from "./internal/index.js"; + import { mapArray } from "./map-array.js"; export const maxBy = (iterable: T[], iteratee: FunctionReturning<[T], number>): T => { diff --git a/packages/utils/source/min-by.ts b/packages/utils/source/min-by.ts index fce0548f24..66546d715a 100644 --- a/packages/utils/source/min-by.ts +++ b/packages/utils/source/min-by.ts @@ -1,4 +1,5 @@ import type { FunctionReturning } from "./internal/index.js"; + import { mapArray } from "./map-array.js"; export const minBy = (iterable: T[], iteratee: FunctionReturning<[T], number>): T => { diff --git a/packages/utils/source/omit-by.ts b/packages/utils/source/omit-by.ts index 6a0a0399a9..26784fdc3c 100644 --- a/packages/utils/source/omit-by.ts +++ b/packages/utils/source/omit-by.ts @@ -1,5 +1,6 @@ -import { filter } from "./filter.js"; import type { FunctionReturning } from "./internal/index.js"; +import { filter } from "./filter.js"; + export const omitBy = >(iterable: T, iteratee: FunctionReturning): T => filter(iterable, (value) => !iteratee(value)) as T; diff --git a/packages/utils/source/order-by.ts b/packages/utils/source/order-by.ts index d6f4c2e9c3..c319ac111d 100644 --- a/packages/utils/source/order-by.ts +++ b/packages/utils/source/order-by.ts @@ -1,7 +1,9 @@ import type { ISortByObjectSorter } from "fast-sort"; + import { sort } from "fast-sort"; import type { Iteratee } from "./internal/index.js"; + import { map } from "./map.js"; type SortDirection = "asc" | "desc"; diff --git a/packages/utils/source/parse-git-url.ts b/packages/utils/source/parse-git-url.ts index 9feb9347df..b6068bb782 100644 --- a/packages/utils/source/parse-git-url.ts +++ b/packages/utils/source/parse-git-url.ts @@ -1,4 +1,5 @@ import type { UrlWithStringQuery } from "url"; + import { parse } from "url"; import { last } from "./last.js"; diff --git a/packages/utils/source/pull-all-by.ts b/packages/utils/source/pull-all-by.ts index f64fce10e5..b2dd5c1fc8 100644 --- a/packages/utils/source/pull-all-by.ts +++ b/packages/utils/source/pull-all-by.ts @@ -1,6 +1,7 @@ -import { filter } from "./filter.js"; import type { FunctionReturning } from "./internal/index.js"; +import { filter } from "./filter.js"; + export const pullAllBy = (iterable: T[], values: T[], iteratee: FunctionReturning<[T], K>): T[] => { const iterateeValues = new Map(); diff --git a/packages/utils/source/reduce.ts b/packages/utils/source/reduce.ts index 4093fdf620..7930406124 100644 --- a/packages/utils/source/reduce.ts +++ b/packages/utils/source/reduce.ts @@ -1,4 +1,5 @@ import type { FunctionReturning } from "./internal/index.js"; + import { isArray } from "./is-array.js"; import { reduceArray } from "./reduce-array.js"; import { reduceObject } from "./reduce-object.js"; diff --git a/packages/utils/source/reject.ts b/packages/utils/source/reject.ts index 4ef1043377..373d34f033 100644 --- a/packages/utils/source/reject.ts +++ b/packages/utils/source/reject.ts @@ -1,5 +1,6 @@ -import { filter } from "./filter.js"; import type { FunctionReturning } from "./internal/index.js"; +import { filter } from "./filter.js"; + export const reject = (iterable: T[], iteratee: FunctionReturning<[T, number, T[]], unknown>): T[] => filter(iterable, (item, index, array) => !iteratee(item as T, index as number, array as T[])) as T[]; diff --git a/packages/utils/source/sort-by-desc.ts b/packages/utils/source/sort-by-desc.ts index 45e29c4776..48b72595f7 100644 --- a/packages/utils/source/sort-by-desc.ts +++ b/packages/utils/source/sort-by-desc.ts @@ -1,4 +1,5 @@ import type { ISortBy, ISortByFunction } from "fast-sort"; + import { sort } from "fast-sort"; export const sortByDesc = ( diff --git a/packages/utils/source/sort-by.ts b/packages/utils/source/sort-by.ts index 6a3387b244..8e8b3b79de 100644 --- a/packages/utils/source/sort-by.ts +++ b/packages/utils/source/sort-by.ts @@ -1,4 +1,5 @@ import type { ISortBy, ISortByFunction } from "fast-sort"; + import { sort } from "fast-sort"; export const sortBy = ( diff --git a/packages/utils/source/union-by.ts b/packages/utils/source/union-by.ts index 93c8bcfe73..bfb5aa8c40 100644 --- a/packages/utils/source/union-by.ts +++ b/packages/utils/source/union-by.ts @@ -1,5 +1,6 @@ -import { flatten } from "./flatten.js"; import type { FunctionReturning } from "./internal/types.js"; + +import { flatten } from "./flatten.js"; import { uniqBy } from "./uniq-by.js"; export const unionBy = (...arguments_: T[]): T[] => { diff --git a/packages/validation/package.json b/packages/validation/package.json index 34bd2c1eaa..84185afffd 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -24,7 +24,7 @@ "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", - "ajv": "8.17.1", + "ajv": "8.18.0", "ajv-formats": "3.0.1", "ajv-keywords": "5.1.0" }, diff --git a/packages/validation/source/validator.ts b/packages/validation/source/validator.ts index ea695f59f7..7134fb711a 100644 --- a/packages/validation/source/validator.ts +++ b/packages/validation/source/validator.ts @@ -1,9 +1,10 @@ -import { injectable, postConstruct } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; + +import { injectable, postConstruct } from "@mainsail/container"; import { AnySchema, FormatDefinition, KeywordDefinition, Schema } from "ajv"; -import AjvCore from "ajv/dist/2020.js"; import formats from "ajv-formats"; import keywords from "ajv-keywords"; +import AjvCore from "ajv/dist/2020.js"; // Can be removed once upstream is fixed: // https://github.com/ajv-validator/ajv/issues/2132 diff --git a/packages/validator/package.json b/packages/validator/package.json index 636eeab745..90def5448a 100644 --- a/packages/validator/package.json +++ b/packages/validator/package.json @@ -27,7 +27,7 @@ "@mainsail/evm-consensus": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "joi": "18.0.0" + "joi": "18.1.2" }, "devDependencies": { "@mainsail/blockchain-utils": "workspace:*", diff --git a/packages/validator/source/keys/bip38.ts b/packages/validator/source/keys/bip38.ts index 67cfda4878..1d6de839bf 100644 --- a/packages/validator/source/keys/bip38.ts +++ b/packages/validator/source/keys/bip38.ts @@ -1,7 +1,7 @@ -import { randomBytes } from "node:crypto"; +import type { Contracts } from "@mainsail/contracts"; import { Keystore } from "@chainsafe/bls-keystore"; -import type { Contracts } from "@mainsail/contracts"; +import { randomBytes } from "node:crypto"; export class BIP38 implements Contracts.Validator.ValidatorKeyPair { #keystore!: Keystore; diff --git a/packages/validator/source/service-provider.ts b/packages/validator/source/service-provider.ts index 236f8c4c30..5f850ee11d 100644 --- a/packages/validator/source/service-provider.ts +++ b/packages/validator/source/service-provider.ts @@ -1,14 +1,15 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Keystore } from "@chainsafe/bls-keystore"; import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import { assert } from "@mainsail/utils"; import Joi from "joi"; import { BIP38, BIP39 } from "./keys/index.js"; -import { Validator } from "./validator.js"; import { ValidatorRepository } from "./validator-repository.js"; +import { Validator } from "./validator.js"; @injectable() export class ServiceProvider extends Providers.ServiceProvider { @@ -20,7 +21,7 @@ export class ServiceProvider extends Providers.ServiceProvider { const validators: Contracts.Validator.Validator[] = []; const validatorConfig = this.app.config<{ secrets: string[]; keystore?: string }>("validators"); assert.defined(validatorConfig); - const { secrets, keystore } = validatorConfig; + const { keystore, secrets } = validatorConfig; for (const secret of secrets.values()) { const consensusKeyPair = await this.#getConsensusKeyPairFromSecret(secret); diff --git a/packages/validator/source/validator-repository.ts b/packages/validator/source/validator-repository.ts index b645b6882f..f0c9cca88f 100644 --- a/packages/validator/source/validator-repository.ts +++ b/packages/validator/source/validator-repository.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; @injectable() export class ValidatorRepository implements Contracts.Validator.ValidatorRepository { diff --git a/packages/validator/source/validator.ts b/packages/validator/source/validator.ts index 2e1358477c..1241cdaf30 100644 --- a/packages/validator/source/validator.ts +++ b/packages/validator/source/validator.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Enums, Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Identifiers as EvmConsensusIdentifiers } from "@mainsail/evm-consensus"; import { assert, BigNumber } from "@mainsail/utils"; import { performance } from "perf_hooks"; @@ -73,7 +74,7 @@ export class Validator implements Contracts.Validator.Validator { const previousBlock = this.stateStore.getLastBlock(); const blockNumber = previousBlock.number + 1; - const { logsBloom, stateRoot, transactions, gasUsed, fee } = await this.#getTransactionsForForging( + const { fee, gasUsed, logsBloom, stateRoot, transactions } = await this.#getTransactionsForForging( generatorAddress, timestamp, { @@ -96,8 +97,8 @@ export class Validator implements Contracts.Validator.Validator { { payloadSerialized: serializedProposedData.toString("hex"), round, - validRound, validatorIndex, + validRound, }, await this.#keyPair.getKeyPair(), ); diff --git a/packages/webhooks/package.json b/packages/webhooks/package.json index a3bd931830..fb8a7e7949 100644 --- a/packages/webhooks/package.json +++ b/packages/webhooks/package.json @@ -21,15 +21,15 @@ }, "dependencies": { "@hapi/boom": "10.0.1", - "@hapi/hapi": "21.4.3", + "@hapi/hapi": "21.4.7", "@mainsail/constants": "workspace:*", "@mainsail/container": "workspace:*", "@mainsail/kernel": "workspace:*", "@mainsail/utils": "workspace:*", - "fs-extra": "11.3.1", - "joi": "18.0.0", + "fs-extra": "11.3.4", + "joi": "18.1.2", "lowdb": "7.0.1", - "uuid": "11.1.0" + "uuid": "13.0.0" }, "devDependencies": { "@mainsail/contracts": "workspace:*", diff --git a/packages/webhooks/source/conditions.ts b/packages/webhooks/source/conditions.ts index 13f96e0346..716a4ab94f 100644 --- a/packages/webhooks/source/conditions.ts +++ b/packages/webhooks/source/conditions.ts @@ -1,4 +1,5 @@ import type { Contracts } from "@mainsail/contracts"; + import { BigNumber } from "@mainsail/utils"; const toBoolean = (value): boolean => value.toString().toLowerCase().trim() === "true"; diff --git a/packages/webhooks/source/database.ts b/packages/webhooks/source/database.ts index 12fc48d15d..352de9e6fa 100644 --- a/packages/webhooks/source/database.ts +++ b/packages/webhooks/source/database.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { existsSync } from "fs"; import { ensureFileSync } from "fs-extra/esm"; import { LowSync } from "lowdb"; diff --git a/packages/webhooks/source/listener.ts b/packages/webhooks/source/listener.ts index cdeef7f9d8..5490b5bbc9 100644 --- a/packages/webhooks/source/listener.ts +++ b/packages/webhooks/source/listener.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Events, Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { get, http } from "@mainsail/utils"; import { performance } from "perf_hooks"; @@ -17,7 +18,7 @@ export class Listener implements Contracts.Kernel.EventListener<{ name: string; @inject(Identifiers.Services.Log.Service) private readonly logger!: Contracts.Kernel.Logger; - public async handle({ name, data }: { name: string; data: Contracts.Types.JsonObject }): Promise { + public async handle({ data, name }: { name: string; data: Contracts.Types.JsonObject }): Promise { // Skip own events to prevent cycling if (name.includes("webhooks")) { return; diff --git a/packages/webhooks/source/server/plugins/whitelist.ts b/packages/webhooks/source/server/plugins/whitelist.ts index bd32a04a9d..cc16559d01 100644 --- a/packages/webhooks/source/server/plugins/whitelist.ts +++ b/packages/webhooks/source/server/plugins/whitelist.ts @@ -1,5 +1,6 @@ -import Boom from "@hapi/boom"; import type Hapi from "@hapi/hapi"; + +import Boom from "@hapi/boom"; import { isWhitelisted } from "@mainsail/utils"; export const whitelist = { diff --git a/packages/webhooks/source/server/server.ts b/packages/webhooks/source/server/server.ts index 32c5ab7ff9..fabae09fef 100644 --- a/packages/webhooks/source/server/server.ts +++ b/packages/webhooks/source/server/server.ts @@ -1,9 +1,10 @@ -import Boom, { badData } from "@hapi/boom"; import type Hapi from "@hapi/hapi"; +import type { Contracts } from "@mainsail/contracts"; + +import Boom, { badData } from "@hapi/boom"; import { Request as HapiRequest, Server as HapiServer, ServerInjectOptions, ServerInjectResponse } from "@hapi/hapi"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { cloneDeep } from "@mainsail/utils"; import { randomBytes } from "crypto"; diff --git a/packages/webhooks/source/server/utilities.ts b/packages/webhooks/source/server/utilities.ts index 40a9fe2002..75d905750e 100644 --- a/packages/webhooks/source/server/utilities.ts +++ b/packages/webhooks/source/server/utilities.ts @@ -1,7 +1,8 @@ import type { Boom } from "@hapi/boom"; -import { notFound } from "@hapi/boom"; import type { Contracts } from "@mainsail/contracts"; +import { notFound } from "@hapi/boom"; + export type WebhookResponse = Contracts.Webhooks.Webhook & { token?: string }; export const transformResource = (model: WebhookResponse): Contracts.Webhooks.Webhook => ({ diff --git a/packages/webhooks/source/service-provider.ts b/packages/webhooks/source/service-provider.ts index 84a624578f..caa7ec147e 100644 --- a/packages/webhooks/source/service-provider.ts +++ b/packages/webhooks/source/service-provider.ts @@ -1,6 +1,7 @@ +import type { Contracts } from "@mainsail/contracts"; + import { Identifiers } from "@mainsail/constants"; import { injectable } from "@mainsail/container"; -import type { Contracts } from "@mainsail/contracts"; import { Providers } from "@mainsail/kernel"; import Joi from "joi"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10a8dad6df..270c0e867f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,56 +9,53 @@ importers: .: devDependencies: '@eslint/compat': - specifier: ^1.4.0 - version: 1.4.0(eslint@9.38.0) + specifier: ^2.0.3 + version: 2.0.3(eslint@10.1.0) '@eslint/eslintrc': - specifier: ^3.3.1 - version: 3.3.1 + specifier: ^3.3.5 + version: 3.3.5 '@eslint/js': - specifier: ^9.38.0 - version: 9.38.0 + specifier: ^10.0.1 + version: 10.0.1(eslint@10.1.0) '@types/node': specifier: 24.3.0 version: 24.3.0 c8: - specifier: 10.1.3 - version: 10.1.3 + specifier: 11.0.0 + version: 11.0.0 chalk: - specifier: 5.6.0 - version: 5.6.0 + specifier: 5.6.2 + version: 5.6.2 cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 depcheck: specifier: 1.4.7 version: 1.4.7 eslint: - specifier: 9.38.0 - version: 9.38.0 + specifier: 10.1.0 + version: 10.1.0 eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0) + version: 2.32.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0) + eslint-plugin-perfectionist: + specifier: 5.7.0 + version: 5.7.0(eslint@10.1.0)(typescript@6.0.2) eslint-plugin-prettier: - specifier: 5.5.4 - version: 5.5.4(eslint@9.38.0)(prettier@3.6.2) + specifier: 5.5.5 + version: 5.5.5(eslint@10.1.0)(prettier@3.8.1) eslint-plugin-promise: specifier: 7.2.1 - version: 7.2.1(eslint@9.38.0) - eslint-plugin-simple-import-sort: - specifier: 12.1.1 - version: 12.1.1(eslint@9.38.0) + version: 7.2.1(eslint@10.1.0) eslint-plugin-sonarjs: - specifier: 3.0.5 - version: 3.0.5(eslint@9.38.0) - eslint-plugin-sort-keys-fix: - specifier: 1.1.2 - version: 1.1.2 + specifier: 4.0.2 + version: 4.0.2(eslint@10.1.0) eslint-plugin-unicorn: - specifier: 62.0.0 - version: 62.0.0(eslint@9.38.0) + specifier: 64.0.0 + version: 64.0.0(eslint@10.1.0) eslint-plugin-unused-imports: - specifier: 4.3.0 - version: 4.3.0(@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0) + specifier: 4.4.1 + version: 4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0) husky: specifier: 9.1.7 version: 9.1.7 @@ -66,38 +63,38 @@ importers: specifier: 9.0.7 version: 9.0.7(@types/node@24.3.0) lint-staged: - specifier: 16.2.6 - version: 16.2.6 + specifier: 16.4.0 + version: 16.4.0 madge: specifier: 8.0.0 - version: 8.0.0(typescript@5.9.2) + version: 8.0.0(typescript@6.0.2) npm-check-updates: - specifier: 18.0.2 - version: 18.0.2 + specifier: 19.6.6 + version: 19.6.6 prettier: - specifier: 3.6.2 - version: 3.6.2 + specifier: 3.8.1 + version: 3.8.1 sort-package-json: - specifier: 3.4.0 - version: 3.4.0 + specifier: 3.6.1 + version: 3.6.1 tsx: - specifier: 4.20.4 - version: 4.20.4 + specifier: 4.21.0 + version: 4.21.0 typedoc: - specifier: 0.28.10 - version: 0.28.10(typescript@5.9.2) + specifier: 0.28.18 + version: 0.28.18(typescript@6.0.2) typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 6.0.2 + version: 6.0.2 typescript-eslint: - specifier: ^8.46.2 - version: 8.46.2(eslint@9.38.0)(typescript@5.9.2) + specifier: ^8.58.0 + version: 8.58.0(eslint@10.1.0)(typescript@6.0.2) typesync: specifier: 0.14.3 version: 0.14.3 yaml: - specifier: 2.8.1 - version: 2.8.1 + specifier: 2.8.3 + version: 2.8.3 packages/api: dependencies: @@ -132,17 +129,17 @@ importers: specifier: 8.0.1 version: 8.0.1 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 envfile: specifier: 7.1.0 version: 7.1.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 kleur: specifier: 4.1.5 version: 4.1.5 @@ -166,14 +163,14 @@ importers: specifier: 0.2.6 version: 0.2.6 cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 execa: - specifier: 9.6.0 - version: 9.6.0 + specifier: 9.6.1 + version: 9.6.1 prompts: specifier: 2.4.2 version: 2.4.2 @@ -190,8 +187,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@hapi/hoek': specifier: 11.0.7 version: 11.0.7 @@ -214,17 +211,17 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 micromatch: specifier: 4.0.8 version: 4.0.8 rate-limiter-flexible: - specifier: 7.2.0 - version: 7.2.0 + specifier: 10.0.1 + version: 10.0.1 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -239,8 +236,8 @@ importers: specifier: 4.0.10 version: 4.0.10 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 uvu: specifier: 0.5.6 version: 0.5.6 @@ -260,14 +257,14 @@ importers: specifier: workspace:* version: link:../utils dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 pg: - specifier: 8.16.3 - version: 8.16.3 + specifier: 8.20.0 + version: 8.20.0 typeorm: - specifier: 0.3.26 - version: 0.3.26(better-sqlite3@12.2.0)(pg@8.16.3)(reflect-metadata@0.2.2) + specifier: 0.3.28 + version: 0.3.28(better-sqlite3@12.8.0)(pg@8.20.0) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -276,8 +273,8 @@ importers: specifier: workspace:* version: link:../test-runner '@types/pg': - specifier: 8.15.5 - version: 8.15.5 + specifier: 8.20.0 + version: 8.20.0 uvu: specifier: 0.5.6 version: 0.5.6 @@ -288,8 +285,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/api-common': specifier: workspace:* version: link:../api-common @@ -306,14 +303,14 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 pretty-ms: - specifier: 9.2.0 - version: 9.2.0 + specifier: 9.3.0 + version: 9.3.0 semver: - specifier: 7.7.2 - version: 7.7.2 + specifier: 7.7.4 + version: 7.7.4 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -322,8 +319,8 @@ importers: specifier: workspace:* version: link:../test-runner '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 uvu: specifier: 0.5.6 version: 0.5.6 @@ -334,8 +331,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/api-common': specifier: workspace:* version: link:../api-common @@ -355,17 +352,17 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -383,8 +380,8 @@ importers: specifier: workspace:* version: link:../validation '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 uvu: specifier: 0.5.6 version: 0.5.6 @@ -395,8 +392,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/api-common': specifier: workspace:* version: link:../api-common @@ -419,11 +416,11 @@ importers: specifier: workspace:* version: link:../utils dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -435,11 +432,11 @@ importers: specifier: 1.1.3 version: 1.1.3 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 got: - specifier: 14.4.7 - version: 14.4.7 + specifier: 14.6.6 + version: 14.6.6 uvu: specifier: 0.5.6 version: 0.5.6 @@ -471,14 +468,14 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 lru-cache: - specifier: 11.2.2 - version: 11.2.2 + specifier: 11.2.7 + version: 11.2.7 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -496,8 +493,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/api-common': specifier: workspace:* version: link:../api-common @@ -511,8 +508,8 @@ importers: specifier: workspace:* version: link:../kernel joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -524,8 +521,8 @@ importers: specifier: 1.1.3 version: 1.1.3 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 uvu: specifier: 0.5.6 version: 0.5.6 @@ -613,32 +610,32 @@ importers: specifier: 0.6.5 version: 0.6.5 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 envfile: specifier: 7.1.0 version: 7.1.0 execa: - specifier: 9.6.0 - version: 9.6.0 + specifier: 9.6.1 + version: 9.6.1 fast-levenshtein: specifier: 3.0.0 version: 3.0.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 glob: - specifier: 11.0.3 - version: 11.0.3 + specifier: 13.0.6 + version: 13.0.6 got: - specifier: 14.4.7 - version: 14.4.7 + specifier: 14.6.6 + version: 14.6.6 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 kleur: specifier: 4.1.5 version: 4.1.5 @@ -652,8 +649,8 @@ importers: specifier: 1.1.1 version: 1.1.1 ora: - specifier: 8.2.0 - version: 8.2.0 + specifier: 9.3.0 + version: 9.3.0 prompts: specifier: 2.4.2 version: 2.4.2 @@ -661,11 +658,11 @@ importers: specifier: 1.8.0 version: 1.8.0 semver: - specifier: 7.7.2 - version: 7.7.2 + specifier: 7.7.4 + version: 7.7.4 tar: - specifier: 7.4.3 - version: 7.4.3 + specifier: 7.5.13 + version: 7.5.13 yargs-parser: specifier: 22.0.0 version: 22.0.0 @@ -686,14 +683,14 @@ importers: specifier: 3.0.4 version: 3.0.4 '@types/listr': - specifier: 0.14.9 - version: 0.14.9 + specifier: 0.14.10 + version: 0.14.10 '@types/prompts': specifier: 2.4.9 version: 2.4.9 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 '@types/tmp': specifier: 0.2.6 version: 0.2.6 @@ -701,8 +698,8 @@ importers: specifier: 21.0.3 version: 21.0.3 esmock: - specifier: 2.7.1 - version: 2.7.1 + specifier: 2.7.3 + version: 2.7.3 tmp: specifier: 0.2.5 version: 0.2.5 @@ -795,20 +792,20 @@ importers: specifier: 3.1.0 version: 3.1.0 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 envfile: specifier: 7.1.0 version: 7.1.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 tmp: specifier: 0.2.5 version: 0.2.5 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -823,8 +820,8 @@ importers: specifier: 0.2.6 version: 0.2.6 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 uvu: specifier: 0.5.6 version: 0.5.6 @@ -847,8 +844,8 @@ importers: specifier: workspace:* version: link:../utils dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -857,8 +854,8 @@ importers: specifier: workspace:* version: link:../test-runner esmock: - specifier: 2.7.1 - version: 2.7.1 + specifier: 2.7.3 + version: 2.7.3 uvu: specifier: 0.5.6 version: 0.5.6 @@ -878,8 +875,8 @@ importers: specifier: workspace:* version: link:../utils lmdb: - specifier: 3.4.2 - version: 3.4.2 + specifier: 3.5.2 + version: 3.5.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -909,8 +906,8 @@ importers: packages/container: dependencies: inversify: - specifier: 7.10.3 - version: 7.10.3(reflect-metadata@0.2.2) + specifier: 8.1.0 + version: 8.1.0(reflect-metadata@0.2.2) reflect-metadata: specifier: 0.2.2 version: 0.2.2 @@ -928,8 +925,8 @@ importers: packages/contracts: dependencies: '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/constants': specifier: workspace:* version: link:../constants @@ -937,29 +934,29 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 execa: - specifier: 9.6.0 - version: 9.6.0 + specifier: 9.6.1 + version: 9.6.1 inversify: - specifier: 7.10.3 - version: 7.10.3(reflect-metadata@0.2.2) + specifier: 8.1.0 + version: 8.1.0(reflect-metadata@0.2.2) joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 type-fest: - specifier: 4.41.0 - version: 4.41.0 + specifier: 5.5.0 + version: 5.5.0 viem: - specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: uvu: specifier: 0.5.6 @@ -1130,23 +1127,23 @@ importers: specifier: 8.0.1 version: 8.0.1 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 envfile: specifier: 7.1.0 version: 7.1.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 got: - specifier: 14.4.7 - version: 14.4.7 + specifier: 14.6.6 + version: 14.6.6 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 kleur: specifier: 4.1.5 version: 4.1.5 @@ -1173,11 +1170,11 @@ importers: specifier: 0.2.6 version: 0.2.6 cross-env: - specifier: 10.0.0 - version: 10.0.0 + specifier: 10.1.0 + version: 10.1.0 execa: - specifier: 9.6.0 - version: 9.6.0 + specifier: 9.6.1 + version: 9.6.1 tmp: specifier: 0.2.5 version: 0.2.5 @@ -1243,8 +1240,8 @@ importers: specifier: 5.5.2 version: 5.5.2 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1289,8 +1286,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1368,8 +1365,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1444,8 +1441,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 deepmerge: specifier: 4.3.1 version: 4.3.1 @@ -1530,8 +1527,8 @@ importers: specifier: workspace:* version: link:../utils '@scure/bip39': - specifier: 1.6.0 - version: 1.6.0 + specifier: 2.0.1 + version: 2.0.1 bls12-381-keygen: specifier: 0.2.4 version: 0.2.4 @@ -1619,8 +1616,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1695,8 +1692,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1827,11 +1824,11 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1891,8 +1888,8 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -1959,8 +1956,8 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2075,8 +2072,8 @@ importers: packages/evm: devDependencies: '@napi-rs/cli': - specifier: 3.1.5 - version: 3.1.5(@emnapi/runtime@1.4.5)(@types/node@24.3.0) + specifier: 3.6.0 + version: 3.6.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)(@types/node@25.5.0)(node-addon-api@8.5.0) packages/evm-api-worker: dependencies: @@ -2090,8 +2087,8 @@ importers: specifier: workspace:* version: link:../kernel joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2124,8 +2121,8 @@ importers: specifier: workspace:* version: link:../utils viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2143,8 +2140,8 @@ importers: packages/evm-contracts: dependencies: viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2232,8 +2229,8 @@ importers: specifier: 0.5.6 version: 0.5.6 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) packages/evm-state: dependencies: @@ -2296,11 +2293,11 @@ importers: specifier: workspace:* version: link:../utils chalk: - specifier: 5.6.0 - version: 5.6.0 + specifier: 5.6.2 + version: 5.6.2 cron: - specifier: 4.3.3 - version: 4.3.3 + specifier: 4.4.0 + version: 4.4.0 date-fns: specifier: 4.1.0 version: 4.1.0 @@ -2308,17 +2305,17 @@ importers: specifier: 4.3.1 version: 4.3.1 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 glob: - specifier: 11.0.3 - version: 11.0.3 + specifier: 13.0.6 + version: 13.0.6 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 log-process-errors: specifier: 12.0.1 version: 12.0.1 @@ -2326,11 +2323,11 @@ importers: specifier: 4.0.8 version: 4.0.8 nsfw: - specifier: 2.2.5 - version: 2.2.5 + specifier: 2.3.0 + version: 2.3.0 semver: - specifier: 7.7.2 - version: 7.7.2 + specifier: 7.7.4 + version: 7.7.4 split2: specifier: 4.2.0 version: 4.2.0 @@ -2354,8 +2351,8 @@ importers: specifier: 4.0.10 version: 4.0.10 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 '@types/split2': specifier: 4.2.3 version: 4.2.3 @@ -2366,8 +2363,8 @@ importers: specifier: 1.0.2 version: 1.0.2 moment-timezone: - specifier: 0.6.0 - version: 0.6.0 + specifier: 0.6.1 + version: 0.6.1 tmp: specifier: 0.2.5 version: 0.2.5 @@ -2394,23 +2391,23 @@ importers: specifier: workspace:* version: link:../utils chalk: - specifier: 5.6.0 - version: 5.6.0 + specifier: 5.6.2 + version: 5.6.2 colorette: specifier: 2.0.20 version: 2.0.20 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 pino: - specifier: 9.9.0 - version: 9.9.0 + specifier: 10.3.1 + version: 10.3.1 pino-pretty: - specifier: 13.1.1 - version: 13.1.1 + specifier: 13.1.3 + version: 13.1.3 pump: - specifier: 3.0.3 - version: 3.0.3 + specifier: 3.0.4 + version: 3.0.4 pumpify: specifier: 2.0.1 version: 2.0.1 @@ -2418,8 +2415,8 @@ importers: specifier: 4.7.0 version: 4.7.0 rotating-file-stream: - specifier: 3.2.6 - version: 3.2.6 + specifier: 3.2.9 + version: 3.2.9 split2: specifier: 4.2.0 version: 4.2.0 @@ -2440,11 +2437,11 @@ importers: specifier: 1.1.3 version: 1.1.3 '@types/pumpify': - specifier: 1.4.4 - version: 1.4.4 + specifier: 1.4.5 + version: 1.4.5 '@types/readable-stream': - specifier: 4.0.21 - version: 4.0.21 + specifier: 4.0.23 + version: 4.0.23 '@types/split2': specifier: 4.2.3 version: 4.2.3 @@ -2476,11 +2473,11 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 winston: - specifier: 3.17.0 - version: 3.17.0 + specifier: 3.19.0 + version: 3.19.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2507,8 +2504,8 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2538,8 +2535,8 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2563,14 +2560,14 @@ importers: specifier: 3.0.2 version: 3.0.2 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@hapi/hoek': specifier: 11.0.7 version: 11.0.7 '@hapi/teamwork': - specifier: 6.0.0 - version: 6.0.0 + specifier: 6.0.1 + version: 6.0.1 '@mainsail/blockchain-utils': specifier: workspace:* version: link:../blockchain-utils @@ -2590,41 +2587,41 @@ importers: specifier: workspace:* version: link:../utils ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 delay: - specifier: 6.0.0 - version: 6.0.0 + specifier: 7.0.0 + version: 7.0.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 ip: specifier: 2.0.1 version: 2.0.1 ipaddr.js: - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.3.0 + version: 2.3.0 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 long: specifier: 5.3.2 version: 5.3.2 protobufjs: - specifier: 7.5.4 - version: 7.5.4 + specifier: 8.0.0 + version: 8.0.0 rate-limiter-flexible: - specifier: 7.2.0 - version: 7.2.0 + specifier: 10.0.1 + version: 10.0.1 semver: - specifier: 7.7.2 - version: 7.7.2 + specifier: 7.7.4 + version: 7.7.4 ws: - specifier: 8.18.3 - version: 8.18.3 + specifier: 8.20.0 + version: 8.20.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2657,20 +2654,20 @@ importers: specifier: 1.1.3 version: 1.1.3 '@types/semver': - specifier: 7.7.0 - version: 7.7.0 + specifier: 7.7.1 + version: 7.7.1 '@types/ws': specifier: 8.18.1 version: 8.18.1 esmock: - specifier: 2.7.1 - version: 2.7.1 + specifier: 2.7.3 + version: 2.7.3 import-fresh: - specifier: 3.3.1 - version: 3.3.1 + specifier: 4.0.0 + version: 4.0.0 protobufjs-cli: - specifier: 1.1.3 - version: 1.1.3(protobufjs@7.5.4) + specifier: 2.0.0 + version: 2.0.0(protobufjs@8.0.0) uvu: specifier: 0.5.6 version: 0.5.6 @@ -2696,8 +2693,8 @@ importers: specifier: workspace:* version: link:../utils dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2767,14 +2764,14 @@ importers: specifier: workspace:* version: link:../validation pg: - specifier: 8.16.3 - version: 8.16.3 + specifier: 8.20.0 + version: 8.20.0 tmp: specifier: 0.2.5 version: 0.2.5 typeorm: - specifier: 0.3.26 - version: 0.3.26(better-sqlite3@12.2.0)(pg@8.16.3)(reflect-metadata@0.2.2) + specifier: 0.3.28 + version: 0.3.28(better-sqlite3@12.8.0)(pg@8.20.0) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2786,17 +2783,17 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/pg': - specifier: 8.15.5 - version: 8.15.5 + specifier: 8.20.0 + version: 8.20.0 '@types/pumpify': - specifier: 1.4.4 - version: 1.4.4 + specifier: 1.4.5 + version: 1.4.5 '@types/tmp': specifier: 0.2.6 version: 0.2.6 env-paths: - specifier: 3.0.0 - version: 3.0.0 + specifier: 4.0.0 + version: 4.0.0 uvu: specifier: 0.5.6 version: 0.5.6 @@ -2828,8 +2825,8 @@ importers: specifier: 3.1.0 version: 3.1.0 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -2866,11 +2863,11 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/pumpify': - specifier: 1.4.4 - version: 1.4.4 + specifier: 1.4.5 + version: 1.4.5 '@types/sinon': - specifier: 17.0.4 - version: 17.0.4 + specifier: 21.0.0 + version: 21.0.0 uvu: specifier: 0.5.6 version: 0.5.6 @@ -2941,8 +2938,8 @@ importers: specifier: 3.1.0 version: 3.1.0 dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 memoizee: specifier: 0.4.17 version: 0.4.17 @@ -2969,17 +2966,17 @@ importers: specifier: ~4.1.5 version: 4.1.5 nock: - specifier: 14.0.10 - version: 14.0.10 + specifier: 14.0.11 + version: 14.0.11 sinon: - specifier: 21.0.0 - version: 21.0.0 + specifier: 21.0.3 + version: 21.0.3 uvu: specifier: 0.5.6 version: 0.5.6 zod: - specifier: ~4.0.17 - version: 4.0.17 + specifier: ~4.3.6 + version: 4.3.6 devDependencies: '@types/chance': specifier: 1.1.7 @@ -2988,8 +2985,8 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/sinon': - specifier: 17.0.4 - version: 17.0.4 + specifier: 21.0.0 + version: 21.0.0 packages/test-transaction-builders: dependencies: @@ -3012,8 +3009,8 @@ importers: specifier: workspace:* version: link:../utils viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3043,11 +3040,11 @@ importers: specifier: workspace:* version: link:../utils dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3080,14 +3077,14 @@ importers: specifier: workspace:* version: link:../utils better-sqlite3: - specifier: 12.2.0 - version: 12.2.0 + specifier: 12.8.0 + version: 12.8.0 fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3123,11 +3120,11 @@ importers: specifier: workspace:* version: link:../kernel dayjs: - specifier: 1.11.13 - version: 1.11.13 + specifier: 1.11.20 + version: 1.11.20 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3176,8 +3173,8 @@ importers: specifier: 4.3.1 version: 4.3.1 fast-copy: - specifier: 3.0.2 - version: 3.0.2 + specifier: 4.0.2 + version: 4.0.2 fast-deep-equal: specifier: 3.1.3 version: 3.1.3 @@ -3185,24 +3182,24 @@ importers: specifier: 3.4.1 version: 3.4.1 ipaddr.js: - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.3.0 + version: 2.3.0 micromatch: specifier: 4.0.8 version: 4.0.8 type-fest: - specifier: 4.41.0 - version: 4.41.0 + specifier: 5.5.0 + version: 5.5.0 viem: - specifier: 2.34.0 - version: 2.34.0(typescript@5.9.2)(zod@3.24.4) + specifier: 2.47.6 + version: 2.47.6(typescript@6.0.2)(zod@4.3.6) devDependencies: '@hapi/boom': specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/test-runner': specifier: workspace:* version: link:../test-runner @@ -3213,14 +3210,14 @@ importers: specifier: 2.0.0 version: 2.0.0 bignumber.js: - specifier: 9.3.1 - version: 9.3.1 + specifier: 10.0.2 + version: 10.0.2 jsbi: specifier: 4.3.2 version: 4.3.2 lodash: - specifier: 4.17.21 - version: 4.17.21 + specifier: 4.17.23 + version: 4.17.23 micro-bmark: specifier: 0.4.2 version: 0.4.2 @@ -3243,14 +3240,14 @@ importers: specifier: workspace:* version: link:../kernel ajv: - specifier: 8.17.1 - version: 8.17.1 + specifier: 8.18.0 + version: 8.18.0 ajv-formats: specifier: 3.0.1 - version: 3.0.1(ajv@8.17.1) + version: 3.0.1(ajv@8.18.0) ajv-keywords: specifier: 5.1.0 - version: 5.1.0(ajv@8.17.1) + version: 5.1.0(ajv@8.18.0) devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3283,8 +3280,8 @@ importers: specifier: workspace:* version: link:../utils joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 devDependencies: '@mainsail/blockchain-utils': specifier: workspace:* @@ -3356,8 +3353,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@hapi/hapi': - specifier: 21.4.3 - version: 21.4.3 + specifier: 21.4.7 + version: 21.4.7 '@mainsail/constants': specifier: workspace:* version: link:../constants @@ -3371,17 +3368,17 @@ importers: specifier: workspace:* version: link:../utils fs-extra: - specifier: 11.3.1 - version: 11.3.1 + specifier: 11.3.4 + version: 11.3.4 joi: - specifier: 18.0.0 - version: 18.0.0 + specifier: 18.1.2 + version: 18.1.2 lowdb: specifier: 7.0.1 version: 7.0.1 uuid: - specifier: 11.1.0 - version: 11.1.0 + specifier: 13.0.0 + version: 13.0.0 devDependencies: '@mainsail/contracts': specifier: workspace:* @@ -3445,7 +3442,7 @@ importers: version: 0.5.6 viem: specifier: 2.22.15 - version: 2.22.15(typescript@5.9.2)(zod@3.24.4) + version: 2.22.15(typescript@6.0.2)(zod@3.24.4) tests/e2e/consensus/checks: dependencies: @@ -3457,7 +3454,7 @@ importers: version: 14.2.1 viem: specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + version: 2.33.1(typescript@6.0.2)(zod@3.24.4) tests/e2e/consensus/peer-discovery: dependencies: @@ -3490,7 +3487,7 @@ importers: version: 14.2.1 viem: specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + version: 2.33.1(typescript@6.0.2)(zod@3.24.4) tests/functional/consensus: devDependencies: @@ -3628,7 +3625,7 @@ importers: version: 0.5.6 viem: specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + version: 2.33.1(typescript@6.0.2)(zod@3.24.4) tests/functional/resync: devDependencies: @@ -3772,7 +3769,7 @@ importers: version: 0.5.6 viem: specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + version: 2.33.1(typescript@6.0.2)(zod@3.24.4) tests/functional/transaction-pool-api: devDependencies: @@ -3913,7 +3910,7 @@ importers: version: 0.5.6 viem: specifier: 2.33.1 - version: 2.33.1(typescript@5.9.2)(zod@3.24.4) + version: 2.33.1(typescript@6.0.2)(zod@3.24.4) packages: @@ -4044,8 +4041,8 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} '@dependents/detective-less@5.0.1': resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==} @@ -4063,158 +4060,158 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@esbuild/aix-ppc64@0.25.8': - resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + '@esbuild/aix-ppc64@0.27.4': + resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.8': - resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + '@esbuild/android-arm64@0.27.4': + resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.8': - resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + '@esbuild/android-arm@0.27.4': + resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.8': - resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + '@esbuild/android-x64@0.27.4': + resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.8': - resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + '@esbuild/darwin-arm64@0.27.4': + resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.8': - resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + '@esbuild/darwin-x64@0.27.4': + resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.8': - resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + '@esbuild/freebsd-arm64@0.27.4': + resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.8': - resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + '@esbuild/freebsd-x64@0.27.4': + resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.8': - resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + '@esbuild/linux-arm64@0.27.4': + resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.8': - resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + '@esbuild/linux-arm@0.27.4': + resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.8': - resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + '@esbuild/linux-ia32@0.27.4': + resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.8': - resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + '@esbuild/linux-loong64@0.27.4': + resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.8': - resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + '@esbuild/linux-mips64el@0.27.4': + resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.8': - resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + '@esbuild/linux-ppc64@0.27.4': + resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.8': - resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + '@esbuild/linux-riscv64@0.27.4': + resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.8': - resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + '@esbuild/linux-s390x@0.27.4': + resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.8': - resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + '@esbuild/linux-x64@0.27.4': + resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.8': - resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + '@esbuild/netbsd-arm64@0.27.4': + resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.8': - resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + '@esbuild/netbsd-x64@0.27.4': + resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.8': - resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + '@esbuild/openbsd-arm64@0.27.4': + resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.8': - resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + '@esbuild/openbsd-x64@0.27.4': + resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.8': - resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + '@esbuild/openharmony-arm64@0.27.4': + resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.8': - resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + '@esbuild/sunos-x64@0.27.4': + resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.8': - resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + '@esbuild/win32-arm64@0.27.4': + resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.8': - resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + '@esbuild/win32-ia32@0.27.4': + resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.8': - resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + '@esbuild/win32-x64@0.27.4': + resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -4231,53 +4228,64 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.4.0': - resolution: {integrity: sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/compat@2.0.3': + resolution: {integrity: sha512-SjIJhGigp8hmd1YGIBwh7Ovri7Kisl42GYFjrOyHhtfYGGoLW6teYi/5p8W50KSsawUPpuLOSmsq1bD0NGQLBw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: ^8.40 || 9 + eslint: ^8.40 || 9 || 10 peerDependenciesMeta: eslint: optional: true - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.3': + resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.4.1': - resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.5.3': + resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@1.1.1': + resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.38.0': - resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@3.0.3': + resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.4.0': - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.6.1': + resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@gar/promise-retry@1.0.3': resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} engines: {node: ^20.17.0 || >=22.9.0} - '@gerrit0/mini-shiki@3.9.2': - resolution: {integrity: sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==} + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} '@hapi/accept@6.0.3': resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==} @@ -4329,8 +4337,8 @@ packages: '@hapi/formula@3.0.2': resolution: {integrity: sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==} - '@hapi/hapi@21.4.3': - resolution: {integrity: sha512-Q7g0ZY4gxU69wabFKH75qR0AFOdiOECj6vGqTHBSO5Lrwe6TwD8r9LkYQIbvtG8N423VDpdVsiZP8MnBwmD6Hw==} + '@hapi/hapi@21.4.7': + resolution: {integrity: sha512-BNO7EgGdDPUaNGhkEiaW8xqk7IqzZNDljBPLcAZgyzpAKl72YR5sBlzfQG1ncrS7O1A7NPLHJkJJgd4YYHDHfg==} engines: {node: '>=14.15.0'} '@hapi/heavy@8.0.1': @@ -4370,8 +4378,8 @@ packages: '@hapi/somever@4.1.1': resolution: {integrity: sha512-lt3QQiDDOVRatS0ionFDNrDIv4eXz58IibQaZQDOg4DqqdNme8oa0iPWcE0+hkq/KTeBCPtEOjDOBKBKwDumVg==} - '@hapi/statehood@8.2.0': - resolution: {integrity: sha512-63JlCVIrsmuunWsyc3OeuFO+gH6v56swLCl7OM1w09l/exQKPUxSUDF2Slkuw8k91nIzr0A2/aPvjLOWf9ksrg==} + '@hapi/statehood@8.2.1': + resolution: {integrity: sha512-xf72TG/QINW26jUu+uL5H+crE1o8GplIgfPWwPZhnAGJzetIVAQEQYvzq+C0aEVHg5/lMMtQ+L9UryuSa5Yjkg==} '@hapi/subtext@8.1.1': resolution: {integrity: sha512-ex1Y2s/KuJktS8Ww0k6XJ5ysSKrzNym4i5pDVuCwlSgHHviHUsT1JNzE6FYhNU9TTHSNdyfue/t2m89bpkX9Jw==} @@ -4380,8 +4388,8 @@ packages: resolution: {integrity: sha512-V6xYOrr5aFv/IJqNPneaYCu8vuGTKisamqHVRS3JJnbZr18TrpXdsJOYk9pjPhFti+M2YETPebQLUr820N5NoQ==} deprecated: This version has been deprecated and is no longer supported or maintained - '@hapi/teamwork@6.0.0': - resolution: {integrity: sha512-05HumSy3LWfXpmJ9cr6HzwhAavrHkJ1ZRCmNE2qJMihdM5YcWreWPfyN0yKT2ZjCM92au3ZkuodjBxOibxM67A==} + '@hapi/teamwork@6.0.1': + resolution: {integrity: sha512-52OXRslUfYwXAOG8k58f2h2ngXYQGP0x5RPOo+eWA/FtyLgHjGMrE3+e9LSXP/0q2YfHAK5wj9aA9DTy1K+kyQ==} engines: {node: '>=14.0.0'} '@hapi/tlds@1.1.2': @@ -4400,6 +4408,9 @@ packages: '@hapi/wreck@18.1.0': resolution: {integrity: sha512-0z6ZRCmFEfV/MQqkQomJ7sl/hyxvcZM7LtuVqN3vdAO4vM9eBbowl0kaqQj9EJJQab+3Uuh1GxbGIBFy4NfJ4w==} + '@harperfast/extended-iterable@1.0.3': + resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -4428,14 +4439,9 @@ packages: resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} - '@inquirer/checkbox@4.2.0': - resolution: {integrity: sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true + '@inquirer/ansi@2.0.4': + resolution: {integrity: sha512-DpcZrQObd7S0R/U3bFdkcT5ebRwbTTC4D3tCc1vsJizmgPLxNJBo+AAFmrZwe8zk30P2QzgzGWZ3Q9uJwWuhIg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} '@inquirer/checkbox@4.3.2': resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} @@ -4446,9 +4452,9 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.14': - resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} - engines: {node: '>=18'} + '@inquirer/checkbox@5.1.2': + resolution: {integrity: sha512-PubpMPO2nJgMufkoB3P2wwxNXEMUXnBIKi/ACzDUYfaoPuM7gSTmuxJeMscoLVEsR4qqrCMf5p0SiYGWnVJ8kw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4464,9 +4470,9 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} - engines: {node: '>=18'} + '@inquirer/confirm@6.0.10': + resolution: {integrity: sha512-tiNyA73pgpQ0FQ7axqtoLUe4GDYjNCDcVsbgcA5anvwg2z6i+suEngLKKJrWKJolT//GFPZHwN30binDIHgSgQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4482,9 +4488,9 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.15': - resolution: {integrity: sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ==} - engines: {node: '>=18'} + '@inquirer/core@11.1.7': + resolution: {integrity: sha512-1BiBNDk9btIwYIzNZpkikIHXWeNzNncJePPqwDyVMhXhD1ebqbpn1mKGctpoqAbzywZfdG0O4tvmsGIcOevAPQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4500,9 +4506,9 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.17': - resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} - engines: {node: '>=18'} + '@inquirer/editor@5.0.10': + resolution: {integrity: sha512-VJx4XyaKea7t8hEApTw5dxeIyMtWXre2OiyJcICCRZI4hkoHsMoCnl/KbUnJJExLbH9csLLHMVR144ZhFE1CwA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4518,6 +4524,15 @@ packages: '@types/node': optional: true + '@inquirer/expand@5.0.10': + resolution: {integrity: sha512-fC0UHJPXsTRvY2fObiwuQYaAnHrp3aDqfwKUJSdfpgv18QUG054ezGbaRNStk/BKD5IPijeMKWej8VV8O5Q/eQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/external-editor@1.0.3': resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} @@ -4527,23 +4542,23 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.13': - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} - engines: {node: '>=18'} - - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} - - '@inquirer/input@4.2.1': - resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} - engines: {node: '>=18'} + '@inquirer/external-editor@2.0.4': + resolution: {integrity: sha512-Prenuv9C1PHj2Itx0BcAOVBTonz02Hc2Nd2DbU67PdGUaqn0nPCnV34oDyyoaZHnmfRxkpuhh/u51ThkrO+RdA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/figures@2.0.4': + resolution: {integrity: sha512-eLBsjlS7rPS3WEhmOmh1znQ5IsQrxWzxWDxO51e4urv+iVrSnIHbq4zqJIOiyNdYLa+BVjwOtdetcQx1lWPpiQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + '@inquirer/input@4.3.1': resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} engines: {node: '>=18'} @@ -4553,9 +4568,9 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.17': - resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} - engines: {node: '>=18'} + '@inquirer/input@5.0.10': + resolution: {integrity: sha512-nvZ6qEVeX/zVtZ1dY2hTGDQpVGD3R7MYPLODPgKO8Y+RAqxkrP3i/3NwF3fZpLdaMiNuK0z2NaYIx9tPwiSegQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4571,9 +4586,9 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.17': - resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} - engines: {node: '>=18'} + '@inquirer/number@4.0.10': + resolution: {integrity: sha512-Ht8OQstxiS3APMGjHV0aYAjRAysidWdwurWEo2i8yI5xbhOBWqizT0+MU1S2GCcuhIBg+3SgWVjEoXgfhY+XaA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4589,17 +4604,17 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.10.1': - resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} - engines: {node: '>=18'} + '@inquirer/password@5.0.10': + resolution: {integrity: sha512-QbNyvIE8q2GTqKLYSsA8ATG+eETo+m31DSR0+AU7x3d2FhaTWzqQek80dj3JGTo743kQc6mhBR0erMjYw5jQ0A==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/prompts@7.8.0': - resolution: {integrity: sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==} + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -4607,17 +4622,17 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.11': - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} - engines: {node: '>=18'} + '@inquirer/prompts@8.3.2': + resolution: {integrity: sha512-yFroiSj2iiBFlm59amdTvAcQFvWS6ph5oKESls/uqPBect7rTU2GbjyZO2DqxMGuIwVA8z0P4K6ViPcd/cp+0w==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: '@types/node': optional: true - '@inquirer/rawlist@4.1.5': - resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -4625,9 +4640,9 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.0': - resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} - engines: {node: '>=18'} + '@inquirer/rawlist@5.2.6': + resolution: {integrity: sha512-jfw0MLJ5TilNsa9zlJ6nmRM0ZFVZhhTICt4/6CU2Dv1ndY7l3sqqo1gIYZyMMDw0LvE1u1nzJNisfHEhJIxq5w==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4643,9 +4658,9 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.1': - resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} - engines: {node: '>=18'} + '@inquirer/search@4.1.6': + resolution: {integrity: sha512-3/6kTRae98hhDevENScy7cdFEuURnSpM3JbBNg8yfXLw88HgTOl+neUuy/l9W0No5NzGsLVydhBzTIxZP7yChQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4661,6 +4676,15 @@ packages: '@types/node': optional: true + '@inquirer/select@5.1.2': + resolution: {integrity: sha512-kTK8YIkHV+f02y7bWCh7E0u2/11lul5WepVTclr3UMBtBr05PgcZNWfMa7FY57ihpQFQH/spLMHTcr0rXy50tA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/type@3.0.10': resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} engines: {node: '>=18'} @@ -4679,36 +4703,37 @@ packages: '@types/node': optional: true - '@inversifyjs/common@1.5.2': - resolution: {integrity: sha512-WlzR9xGadABS9gtgZQ+luoZ8V6qm4Ii6RQfcfC9Ho2SOlE6ZuemFo7PKJvKI0ikm8cmKbU8hw5UK6E4qovH21w==} + '@inquirer/type@4.0.4': + resolution: {integrity: sha512-PamArxO3cFJZoOzspzo6cxVlLeIftyBsZw/S9bKY5DzxqJVZgjoj1oP8d0rskKtp7sZxBycsoer1g6UeJV1BBA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inversifyjs/common@2.0.1': + resolution: {integrity: sha512-pJAR4IAcT2jkYfZ9bD9XhtUDBLJRr8QOiSjb+2XyaHru6DLvu0VD2Id2iP7+tVRKkEe3XFUwDUEdKxcYlF699Q==} - '@inversifyjs/container@1.14.0': - resolution: {integrity: sha512-jOxjPgkDGc8N6tm2kuAg911/83Ybnf4u70EanXZPSdOskUSnxohCZmLrOJ1WRr/kzLJYCg3sqhZ5iK32z0uOPQ==} + '@inversifyjs/container@2.0.1': + resolution: {integrity: sha512-xoZU4Mha5Vo+U04xWUnD01QbpQMNoIh0nUEFlb965E3rIneUbsYYiXeLUoKl57BjXjErsOL0q8o3mXi1si8rBA==} peerDependencies: reflect-metadata: ~0.2.2 - '@inversifyjs/core@9.1.0': - resolution: {integrity: sha512-SEpW7Rqa/9f1OcaqtqSTGJQOiuSlauSDcyOcZZCyK1g15efshVw0LsYQS+wpUFkpgEYKhGRBIfvlfgWKKYiFuQ==} + '@inversifyjs/core@10.0.1': + resolution: {integrity: sha512-z+DHdTbHFETivPLPRgowz9wWhHA4FNYqQnKhPyDCz7zX9H/PIDcK4gZIF1YNaf5Uc2bd1nehSlVgfaTzVbb0AA==} - '@inversifyjs/plugin@0.2.0': - resolution: {integrity: sha512-R/JAdkTSD819pV1zi0HP54mWHyX+H2m8SxldXRgPQarS3ySV4KPyRdosWcfB8Se0JJZWZLHYiUNiS6JvMWSPjw==} + '@inversifyjs/plugin@0.3.1': + resolution: {integrity: sha512-ByklTw731fydBCTMwMpkmwm+lv0U+JWm9NEqRsz3n5KzAC5Om2XtLjqzEC2w+8Ote3gVC3Qxsx6YmG9XLIZpvg==} - '@inversifyjs/prototype-utils@0.1.2': - resolution: {integrity: sha512-WZAEycwVd8zVCPCQ7GRzuQmjYF7X5zbjI9cGigDbBoTHJ8y5US9om00IAp0RYislO+fYkMzgcB2SnlIVIzyESA==} + '@inversifyjs/prototype-utils@0.2.1': + resolution: {integrity: sha512-53cVE3cw+RxnSkGlg+jOFNSox2owJF9Fv3HgFKe4f+4aPullscltIiio88QRkx2Sc5yo3VlqPsXQFGw2CVJZnw==} - '@inversifyjs/reflect-metadata-utils@1.4.1': - resolution: {integrity: sha512-Cp77C4d2wLaHXiUB7iH6Cxb7i1lD/YDuTIHLTDzKINqGSz0DCSoL/Dg2wVkW/6Qx03r/yQMLJ+32Agl32N2X8g==} + '@inversifyjs/reflect-metadata-utils@1.5.0': + resolution: {integrity: sha512-NpJVbRbuQ6Ao2vO+aw96un3oHDFCwXI0+pplsFt0Jh0gyR8DWk4m7ml/GBNMjdbeKVW/QgJ2S6NGXjk042uwqg==} peerDependencies: reflect-metadata: ~0.2.2 - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -4753,38 +4778,41 @@ packages: resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} engines: {node: '>=v12.0.0'} - '@lmdb/lmdb-darwin-arm64@3.4.2': - resolution: {integrity: sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==} + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + + '@lmdb/lmdb-darwin-arm64@3.5.2': + resolution: {integrity: sha512-ZTEuSwB3QHOA6Jal4bi0oxAV1MK3xtzS3oUMq5OK3HSXNN4A79f9dhieZA0hgvwOTaGzEWmTd8Fg9XSkBIhAWw==} cpu: [arm64] os: [darwin] - '@lmdb/lmdb-darwin-x64@3.4.2': - resolution: {integrity: sha512-zevaowQNmrp3U7Fz1s9pls5aIgpKRsKb3dZWDINtLiozh3jZI9fBrI19lYYBxqdyiIyNdlyiidPnwPShj4aK+w==} + '@lmdb/lmdb-darwin-x64@3.5.2': + resolution: {integrity: sha512-Zs+mdB6gNqpPK6ybNbqFoSU+DCIdhE8tqeaAzRs+hNJt8V43PRvTVxu1UPBHwK2917FnQ4dL5/OIoqHDa+9Dpw==} cpu: [x64] os: [darwin] - '@lmdb/lmdb-linux-arm64@3.4.2': - resolution: {integrity: sha512-ZBEfbNZdkneebvZs98Lq30jMY8V9IJzckVeigGivV7nTHJc+89Ctomp1kAIWKlwIG0ovCDrFI448GzFPORANYg==} + '@lmdb/lmdb-linux-arm64@3.5.2': + resolution: {integrity: sha512-hT6JPw5hDCXzppBgpIFS/cQp4v2LqNMgd5nuo4U9H5/wnbMS7Prh0twu5IbDvzYZf2a/xPTXtTDRuUiFc39lEw==} cpu: [arm64] os: [linux] - '@lmdb/lmdb-linux-arm@3.4.2': - resolution: {integrity: sha512-OmHCULY17rkx/RoCoXlzU7LyR8xqrksgdYWwtYa14l/sseezZ8seKWXcogHcjulBddER5NnEFV4L/Jtr2nyxeg==} + '@lmdb/lmdb-linux-arm@3.5.2': + resolution: {integrity: sha512-GhdC4huGWDzcbZWfS+G3dW4/TopNUnO+/E7aVdfWIhslSs1FI2+sVo94040S9BPJ7lNpnf1zVxaBlLmqZpKhcw==} cpu: [arm] os: [linux] - '@lmdb/lmdb-linux-x64@3.4.2': - resolution: {integrity: sha512-vL9nM17C77lohPYE4YaAQvfZCSVJSryE4fXdi8M7uWPBnU+9DJabgKVAeyDb84ZM2vcFseoBE4/AagVtJeRE7g==} + '@lmdb/lmdb-linux-x64@3.5.2': + resolution: {integrity: sha512-aTBBxTQGdgKcqZD6ywIVCIbCIJ3fJ28OhzCxgl3zGQzzJwkDt5TSIuBtMt4oKZMgDSjuRBjtID9TOUvSRg8IQA==} cpu: [x64] os: [linux] - '@lmdb/lmdb-win32-arm64@3.4.2': - resolution: {integrity: sha512-SXWjdBfNDze4ZPeLtYIzsIeDJDJ/SdsA0pEXcUBayUIMO0FQBHfVZZyHXQjjHr4cvOAzANBgIiqaXRwfMhzmLw==} + '@lmdb/lmdb-win32-arm64@3.5.2': + resolution: {integrity: sha512-mqfNN5zb3z3QnHEPaV4Zv5zd3BhlcL+uqPNF7kGRkmCaRHuh6T9N5g/4ZqOiNHNPWglv3g8Ut15XxCKZjf6jHw==} cpu: [arm64] os: [win32] - '@lmdb/lmdb-win32-x64@3.4.2': - resolution: {integrity: sha512-IY+r3bxKW6Q6sIPiMC0L533DEfRJSXibjSI3Ft/w9Q8KQBNqEIvUFXt+09wV8S5BRk0a8uSF19YWxuRwEfI90g==} + '@lmdb/lmdb-win32-x64@3.5.2': + resolution: {integrity: sha512-JhPxlA8sIxPIdS78e4LeNfTlkF+2I/r98jKXf90pf+yhMCzyLkphcvbnWv7YL8yckp32c1uKZ1vf/JqcSiplHg==} cpu: [x64] os: [win32] @@ -4821,352 +4849,364 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.39.6': - resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} + '@mswjs/interceptors@0.41.3': + resolution: {integrity: sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==} engines: {node: '>=18'} - '@napi-rs/cli@3.1.5': - resolution: {integrity: sha512-Wn6ZPw27qJiEWglGjkaAa70AHuLtyPya6FvjINYJ5U20uvbRhoB0Ta2+bFTAFfUb9R+wvuFvog9JQdy65OmFAQ==} + '@napi-rs/cli@3.6.0': + resolution: {integrity: sha512-aA8m4+9XxnK1+0sr4GplZP0Ze90gkzO8sMKaplOK0zXbLnzsLl6O2BQQt6rTCcTRzIN24wrrByakr/imM+CxhA==} engines: {node: '>= 16'} hasBin: true peerDependencies: - '@emnapi/runtime': ^1.1.0 - emnapi: ^1.1.0 + '@emnapi/runtime': ^1.7.1 peerDependenciesMeta: '@emnapi/runtime': optional: true - emnapi: - optional: true - '@napi-rs/cross-toolchain@1.0.0': - resolution: {integrity: sha512-5Ha9SkZC8NjLB4Xe6C9v+3c+Oraz9FdbuN2L4d/mh1kTK8Y/zGt5geM/U+sboAP3HoK2aRWRnx4GK0eV3oPoUQ==} + '@napi-rs/cross-toolchain@1.0.3': + resolution: {integrity: sha512-ENPfLe4937bsKVTDA6zdABx4pq9w0tHqRrJHyaGxgaPq03a2Bd1unD5XSKjXJjebsABJ+MjAv1A2OvCgK9yehg==} peerDependencies: - '@napi-rs/cross-toolchain-arm64-target-aarch64': ^1.0.0 - '@napi-rs/cross-toolchain-arm64-target-armv7': ^1.0.0 - '@napi-rs/cross-toolchain-arm64-target-x86_64': ^1.0.0 - '@napi-rs/cross-toolchain-x64-target-aarch64': ^1.0.0 - '@napi-rs/cross-toolchain-x64-target-armv7': ^1.0.0 - '@napi-rs/cross-toolchain-x64-target-x86_64': ^1.0.0 + '@napi-rs/cross-toolchain-arm64-target-aarch64': ^1.0.3 + '@napi-rs/cross-toolchain-arm64-target-armv7': ^1.0.3 + '@napi-rs/cross-toolchain-arm64-target-ppc64le': ^1.0.3 + '@napi-rs/cross-toolchain-arm64-target-s390x': ^1.0.3 + '@napi-rs/cross-toolchain-arm64-target-x86_64': ^1.0.3 + '@napi-rs/cross-toolchain-x64-target-aarch64': ^1.0.3 + '@napi-rs/cross-toolchain-x64-target-armv7': ^1.0.3 + '@napi-rs/cross-toolchain-x64-target-ppc64le': ^1.0.3 + '@napi-rs/cross-toolchain-x64-target-s390x': ^1.0.3 + '@napi-rs/cross-toolchain-x64-target-x86_64': ^1.0.3 peerDependenciesMeta: '@napi-rs/cross-toolchain-arm64-target-aarch64': optional: true '@napi-rs/cross-toolchain-arm64-target-armv7': optional: true + '@napi-rs/cross-toolchain-arm64-target-ppc64le': + optional: true + '@napi-rs/cross-toolchain-arm64-target-s390x': + optional: true '@napi-rs/cross-toolchain-arm64-target-x86_64': optional: true '@napi-rs/cross-toolchain-x64-target-aarch64': optional: true '@napi-rs/cross-toolchain-x64-target-armv7': optional: true + '@napi-rs/cross-toolchain-x64-target-ppc64le': + optional: true + '@napi-rs/cross-toolchain-x64-target-s390x': + optional: true '@napi-rs/cross-toolchain-x64-target-x86_64': optional: true - '@napi-rs/lzma-android-arm-eabi@1.4.4': - resolution: {integrity: sha512-smZtN41ebtYw+vxn1q3IXhns1hUzFNUcgHxknZKFQSKaybYZ4KxMiiBIw5UqJ9rw1dkaHqokcC1YeAfu8vfG2A==} + '@napi-rs/lzma-android-arm-eabi@1.4.5': + resolution: {integrity: sha512-Up4gpyw2SacmyKWWEib06GhiDdF+H+CCU0LAV8pnM4aJIDqKKd5LHSlBht83Jut6frkB0vwEPmAkv4NjQ5u//Q==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/lzma-android-arm64@1.4.4': - resolution: {integrity: sha512-s+h9bM3Z31FL0IPfWF4kBCebWxJBtpFvje6ikzmeUg1/jjWAP81IJC5j75zz5TEWt+Zf3Bip0uVlQhCZmqlpKA==} + '@napi-rs/lzma-android-arm64@1.4.5': + resolution: {integrity: sha512-uwa8sLlWEzkAM0MWyoZJg0JTD3BkPknvejAFG2acUA1raXM8jLrqujWCdOStisXhqQjZ2nDMp3FV6cs//zjfuQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/lzma-darwin-arm64@1.4.4': - resolution: {integrity: sha512-aF5wxA0SFlRalxeyz7TpmFuztHlG9D0qew+1gz0tiRs4gituT3CCsR0PSBZ2LbalTY/7RqmYP4ssLQus+p8tqg==} + '@napi-rs/lzma-darwin-arm64@1.4.5': + resolution: {integrity: sha512-0Y0TQLQ2xAjVabrMDem1NhIssOZzF/y/dqetc6OT8mD3xMTDtF8u5BqZoX3MyPc9FzpsZw4ksol+w7DsxHrpMA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/lzma-darwin-x64@1.4.4': - resolution: {integrity: sha512-80gD9kvXPPBz6V4C7SXcPo0o7ySlneDVRpebAHN1DubIEwhdrMFuqmtaATwT5MTraZSrQ4CHF275MQuwiHtlGw==} + '@napi-rs/lzma-darwin-x64@1.4.5': + resolution: {integrity: sha512-vR2IUyJY3En+V1wJkwmbGWcYiT8pHloTAWdW4pG24+51GIq+intst6Uf6D/r46citObGZrlX0QvMarOkQeHWpw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/lzma-freebsd-x64@1.4.4': - resolution: {integrity: sha512-wd+jwYQRIzkGtUvInYLWSrqRtDatIvwNm/w9k43f+oABBsnP4veJkyKGGm4SQQa35Ki8IXVzYdGTa4eSTi+Org==} + '@napi-rs/lzma-freebsd-x64@1.4.5': + resolution: {integrity: sha512-XpnYQC5SVovO35tF0xGkbHYjsS6kqyNCjuaLQ2dbEblFRr5cAZVvsJ/9h7zj/5FluJPJRDojVNxGyRhTp4z2lw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/lzma-linux-arm-gnueabihf@1.4.4': - resolution: {integrity: sha512-KiMgBugjFQfgeZTebuBVHL8ta/nZ2cfzd0Jge0e0y/WX/p7ZkVyCox/TTu9EU2H9OeBAFKTRmIDoqhHlBbkqyA==} + '@napi-rs/lzma-linux-arm-gnueabihf@1.4.5': + resolution: {integrity: sha512-ic1ZZMoRfRMwtSwxkyw4zIlbDZGC6davC9r+2oX6x9QiF247BRqqT94qGeL5ZP4Vtz0Hyy7TEViWhx5j6Bpzvw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/lzma-linux-arm64-gnu@1.4.4': - resolution: {integrity: sha512-l0T2fKeDqnczeNFqFsE8W2+J7386BGaHCbD409sDGOUW3Fhn9FlHkkC4qAnWhieaLqCdnorj+LQAzYM371IXrQ==} + '@napi-rs/lzma-linux-arm64-gnu@1.4.5': + resolution: {integrity: sha512-asEp7FPd7C1Yi6DQb45a3KPHKOFBSfGuJWXcAd4/bL2Fjetb2n/KK2z14yfW8YC/Fv6x3rBM0VAZKmJuz4tysg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@napi-rs/lzma-linux-arm64-musl@1.4.4': - resolution: {integrity: sha512-rm43dqf5pw5HV3EineWl4IBbzg3Iwuiucl614AyhLHmSHTf6/AJJID7rqwM8Qbhe2abM+9NT+2WI9HRM1ZtkJA==} + '@napi-rs/lzma-linux-arm64-musl@1.4.5': + resolution: {integrity: sha512-yWjcPDgJ2nIL3KNvi4536dlT/CcCWO0DUyEOlBs/SacG7BeD6IjGh6yYzd3/X1Y3JItCbZoDoLUH8iB1lTXo3w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@napi-rs/lzma-linux-ppc64-gnu@1.4.4': - resolution: {integrity: sha512-QzNVcCdq6j4LYOtLUDEyE9wg8tY8kmbQ6TZrqjYQUD2nebTW24lmzFhdeI3xzUzVN5rRt4js1UnL1cPCT5HrSw==} + '@napi-rs/lzma-linux-ppc64-gnu@1.4.5': + resolution: {integrity: sha512-0XRhKuIU/9ZjT4WDIG/qnX7Xz7mSQHYZo9Gb3MP2gcvBgr6BA4zywQ9k3gmQaPn9ECE+CZg2V7DV7kT+x2pUMQ==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@napi-rs/lzma-linux-riscv64-gnu@1.4.4': - resolution: {integrity: sha512-7jpyKpBX0LpklkmGBzz1cQJ/QRN+E6h1xSZVeN6KCtLBrCd6LCX3owZMRzSYmdpI6Zr30DrWo0HOUZiKMzgzBg==} + '@napi-rs/lzma-linux-riscv64-gnu@1.4.5': + resolution: {integrity: sha512-QrqDIPEUUB23GCpyQj/QFyMlr8SGxxyExeZz9OWFnHfb70kXdTLWrHS/hEI1Ru+lSbQ/6xRqeoGyQ4Aqdg+/RA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@napi-rs/lzma-linux-s390x-gnu@1.4.4': - resolution: {integrity: sha512-ngUxVZIytn2UHY92RnijtT11VhWO32mfa1LFX03GWMWdQl50bV/IqcZR0WYRWlBCd7DZrOf16AY2IR/lwovE7A==} + '@napi-rs/lzma-linux-s390x-gnu@1.4.5': + resolution: {integrity: sha512-k8RVM5aMhW86E9H0QXdquwojew4H3SwPxbRVbl49/COJQWCUjGi79X6mYruMnMPEznZinUiT1jgKbFo2A00NdA==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] libc: [glibc] - '@napi-rs/lzma-linux-x64-gnu@1.4.4': - resolution: {integrity: sha512-mUGH8hpWJU4FXhn61cD7sHTUEBiWU5JYOhh6ErCIZ0BOoBH/0kYPptfqvJA6G9EfVIcfbtYKxJYYtFC5sbf+eA==} + '@napi-rs/lzma-linux-x64-gnu@1.4.5': + resolution: {integrity: sha512-6rMtBgnIq2Wcl1rQdZsnM+rtCcVCbws1nF8S2NzaUsVaZv8bjrPiAa0lwg4Eqnn1d9lgwqT+cZgm5m+//K08Kw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@napi-rs/lzma-linux-x64-musl@1.4.4': - resolution: {integrity: sha512-ysM4mYSfWGO2h8YZVn0GH7zMZX42hU0h7IomC4/oBJmAk5BIlOGnRB8XQmyz1A7neSi6aByjAlZmW4CrZlI9Uw==} + '@napi-rs/lzma-linux-x64-musl@1.4.5': + resolution: {integrity: sha512-eiadGBKi7Vd0bCArBUOO/qqRYPHt/VQVvGyYvDFt6C2ZSIjlD+HuOl+2oS1sjf4CFjK4eDIog6EdXnL0NE6iyQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@napi-rs/lzma-wasm32-wasi@1.4.4': - resolution: {integrity: sha512-MyDIU8a6jJqhK4L1ISFrb9OeKaGlI3FptCo2JFoEWYaenWHRwEepFqkyuECeIe34xtU2jtJcpXhEtpnCxuAE1Q==} + '@napi-rs/lzma-wasm32-wasi@1.4.5': + resolution: {integrity: sha512-+VyHHlr68dvey6fXc2hehw9gHVFIW3TtGF1XkcbAu65qVXsA9D/T+uuoRVqhE+JCyFHFrO0ixRbZDRK1XJt1sA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@napi-rs/lzma-win32-arm64-msvc@1.4.4': - resolution: {integrity: sha512-GqoJu7iL7OTqkBQGLps7rXQHZ5sdcZF7tOY06rlYO03ZNkUCjhNpmkuUsPXVnGstqgoGwzMNW6TcSsO/YWotEw==} + '@napi-rs/lzma-win32-arm64-msvc@1.4.5': + resolution: {integrity: sha512-eewnqvIyyhHi3KaZtBOJXohLvwwN27gfS2G/YDWdfHlbz1jrmfeHAmzMsP5qv8vGB+T80TMHNkro4kYjeh6Deg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/lzma-win32-ia32-msvc@1.4.4': - resolution: {integrity: sha512-cnExNqWKl0JkLcKlFVuqUrTuQsYP8nstWGT3fz7mPhgqHFOgGmd1l9tDFhqgul7Kt0QTddZRbKl6jlkV7DjSQw==} + '@napi-rs/lzma-win32-ia32-msvc@1.4.5': + resolution: {integrity: sha512-OeacFVRCJOKNU/a0ephUfYZ2Yt+NvaHze/4TgOwJ0J0P4P7X1mHzN+ig9Iyd74aQDXYqc7kaCXA2dpAOcH87Cg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/lzma-win32-x64-msvc@1.4.4': - resolution: {integrity: sha512-15SoQgMgktF73ZnLQPkzCwtxyQ+4VuD8n5Puis1H48QRjUNnXXpqTGFyWdLPdd14vcxbndgcYvJtSjOXTfNHiw==} + '@napi-rs/lzma-win32-x64-msvc@1.4.5': + resolution: {integrity: sha512-T4I1SamdSmtyZgDXGAGP+y5LEK5vxHUFwe8mz6D4R7Sa5/WCxTcCIgPJ9BD7RkpO17lzhlaM2vmVvMy96Lvk9Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/lzma@1.4.4': - resolution: {integrity: sha512-C53oqFQESm5XkjFKJpXtBXYm2ZiwvrQrsgM1K+/itmSXyQYa4NpB7m0W/peF8riXpxHUt6ycOeMK9rp2enTchQ==} + '@napi-rs/lzma@1.4.5': + resolution: {integrity: sha512-zS5LuN1OBPAyZpda2ZZgYOEDC+xecUdAGnrvbYzjnLXkrq/OBC3B9qcRvlxbDR3k5H/gVfvef1/jyUqPknqjbg==} engines: {node: '>= 10'} - '@napi-rs/tar-android-arm-eabi@1.0.0': - resolution: {integrity: sha512-oEntU16IkWykPJnSwv/VIICzIt2SwEsz45z2Ab+EXOas10EB+pu0z31AiSNI5pr1CaJcadbf1JGMI9aOtbAuRQ==} + '@napi-rs/tar-android-arm-eabi@1.1.0': + resolution: {integrity: sha512-h2Ryndraj/YiKgMV/r5by1cDusluYIRT0CaE0/PekQ4u+Wpy2iUVqvzVU98ZPnhXaNeYxEvVJHNGafpOfaD0TA==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/tar-android-arm64@1.0.0': - resolution: {integrity: sha512-b2X7nQ/wH2VGzzl4KhVOR/gHqxIuqrUjMY8VKJYxAGdCrmUPRfc47kersiu6DG706kSv9T+BxeeUQvwqnXZRXQ==} + '@napi-rs/tar-android-arm64@1.1.0': + resolution: {integrity: sha512-DJFyQHr1ZxNZorm/gzc1qBNLF/FcKzcH0V0Vwan5P+o0aE2keQIGEjJ09FudkF9v6uOuJjHCVDdK6S6uHtShAw==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/tar-darwin-arm64@1.0.0': - resolution: {integrity: sha512-m1Ug1452/DOUbJGSuJuHRTUCBQOXY0arGqXCHuSiaQhBQQjgBhlbHWCv291gV8CytFYd5lvSyiG2gFUU26Qd7A==} + '@napi-rs/tar-darwin-arm64@1.1.0': + resolution: {integrity: sha512-Zz2sXRzjIX4e532zD6xm2SjXEym6MkvfCvL2RMpG2+UwNVDVscHNcz3d47Pf3sysP2e2af7fBB3TIoK2f6trPw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/tar-darwin-x64@1.0.0': - resolution: {integrity: sha512-1RiC53g1y4pxX7P2L9sbZcqsw6dfXvGnTNwXHDjg4ATZncZa7uoPUWa7aHAGcQm8ZBO4P0ICt2SHOepstDWWTg==} + '@napi-rs/tar-darwin-x64@1.1.0': + resolution: {integrity: sha512-EI+CptIMNweT0ms9S3mkP/q+J6FNZ1Q6pvpJOEcWglRfyfQpLqjlC0O+dptruTPE8VamKYuqdjxfqD8hifZDOA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/tar-freebsd-x64@1.0.0': - resolution: {integrity: sha512-uLaYn+eO3ZY2ojbohdlRFcuqYP+j2alovtuLdFvCzzsArg4DSnmcJvEQ+I4l99lfyThYB1c8GA64oxSOfmn/UA==} + '@napi-rs/tar-freebsd-x64@1.1.0': + resolution: {integrity: sha512-J0PIqX+pl6lBIAckL/c87gpodLbjZB1OtIK+RDscKC9NLdpVv6VGOxzUV/fYev/hctcE8EfkLbgFOfpmVQPg2g==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/tar-linux-arm-gnueabihf@1.0.0': - resolution: {integrity: sha512-PhGIaT45i1Fj5iY6NiWYTLPUOHb7rXiwnqKhco+IXOeIclaGcEVoAbhrLiLGQrfv9viLdyhzAxECoOr+zKnApw==} + '@napi-rs/tar-linux-arm-gnueabihf@1.1.0': + resolution: {integrity: sha512-SLgIQo3f3EjkZ82ZwvrEgFvMdDAhsxCYjyoSuWfHCz0U16qx3SuGCp8+FYOPYCECHN3ZlGjXnoAIt9ERd0dEUg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/tar-linux-arm64-gnu@1.0.0': - resolution: {integrity: sha512-syDburynsi2WxhD0hVUfNDpRowG+3Luiv2BKiYOUEwMZy6E/By1vQCn2NbLAqoPxaE9N/4Cp3xcW+Hn+CZ2EFA==} + '@napi-rs/tar-linux-arm64-gnu@1.1.0': + resolution: {integrity: sha512-d014cdle52EGaH6GpYTQOP9Py7glMO1zz/+ynJPjjzYFSxvdYx0byrjumZk2UQdIyGZiJO2MEFpCkEEKFSgPYA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@napi-rs/tar-linux-arm64-musl@1.0.0': - resolution: {integrity: sha512-KlrlAxNaZbWvGKgr4g4Cm5dRdwlogBaF3fvysaqR0kT8pA4ODBHtjsbx+ErhrQNDfg6QZIEfmFn3lrsTG/lqUA==} + '@napi-rs/tar-linux-arm64-musl@1.1.0': + resolution: {integrity: sha512-L/y1/26q9L/uBqiW/JdOb/Dc94egFvNALUZV2WCGKQXc6UByPBMgdiEyW2dtoYxYYYYc+AKD+jr+wQPcvX2vrQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@napi-rs/tar-linux-ppc64-gnu@1.0.0': - resolution: {integrity: sha512-IbB4I8RFcvKI/zGsboUQPmlKoXfXgNOMiJw7Cbe7T1OBeYzDy6n/yEUEaG4zIbocxqjRVsF4ElrW1V/0Ihlqzg==} + '@napi-rs/tar-linux-ppc64-gnu@1.1.0': + resolution: {integrity: sha512-EPE1K/80RQvPbLRJDJs1QmCIcH+7WRi0F73+oTe1582y9RtfGRuzAkzeBuAGRXAQEjRQw/RjtNqr6UTJ+8UuWQ==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@napi-rs/tar-linux-s390x-gnu@1.0.0': - resolution: {integrity: sha512-Tl4HSo07u3TLsNQ4KEVfYKdHVNfF/k0o5KQlyGnePiO34Kb+NfaqSKMspjSkrmXKEc0PjB+u9af3BZdTUwml4Q==} + '@napi-rs/tar-linux-s390x-gnu@1.1.0': + resolution: {integrity: sha512-B2jhWiB1ffw1nQBqLUP1h4+J1ovAxBOoe5N2IqDMOc63fsPZKNqF1PvO/dIem8z7LL4U4bsfmhy3gBfu547oNQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] libc: [glibc] - '@napi-rs/tar-linux-x64-gnu@1.0.0': - resolution: {integrity: sha512-Xe57Yz4MKSeG6HGECiIHuBKFwAuqs2fzwblTdMd1CoSgaaUc/K/dKTDWZwPtjC0Hh5pM86K0WZuwggbsjmFGNg==} + '@napi-rs/tar-linux-x64-gnu@1.1.0': + resolution: {integrity: sha512-tbZDHnb9617lTnsDMGo/eAMZxnsQFnaRe+MszRqHguKfMwkisc9CCJnks/r1o84u5fECI+J/HOrKXgczq/3Oww==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@napi-rs/tar-linux-x64-musl@1.0.0': - resolution: {integrity: sha512-VA4RXspXyelNAtaFEf2ZLnTYXRILVlH20OGV0oqzuUcQzpwEwK2cJbYtYHK+yCYpxrNbEGsAwN+12LYJMW+NlA==} + '@napi-rs/tar-linux-x64-musl@1.1.0': + resolution: {integrity: sha512-dV6cODlzbO8u6Anmv2N/ilQHq/AWz0xyltuXoLU3yUyXbZcnWYZuB2rL8OBGPmqNcD+x9NdScBNXh7vWN0naSQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@napi-rs/tar-wasm32-wasi@1.0.0': - resolution: {integrity: sha512-yPMq3jMldKOi6rbbhKp+7zfaRsA2toIfRV7TbqSzwz64S5euiMrsZQcrq3F9oTtFu4wCSLo83IsNdgoVuiy44g==} + '@napi-rs/tar-wasm32-wasi@1.1.0': + resolution: {integrity: sha512-jIa9nb2HzOrfH0F8QQ9g3WE4aMH5vSI5/1NYVNm9ysCmNjCCtMXCAhlI3WKCdm/DwHf0zLqdrrtDFXODcNaqMw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@napi-rs/tar-win32-arm64-msvc@1.0.0': - resolution: {integrity: sha512-VdUjZK8jh6mvGRiurK3ms6Yt2hbBbtYjzKCn78Mnme2KGC585Kx1jXl7HShvreCgqh3r0162OSygoE7d/I0Jlw==} + '@napi-rs/tar-win32-arm64-msvc@1.1.0': + resolution: {integrity: sha512-vfpG71OB0ijtjemp3WTdmBKJm9R70KM8vsSExMsIQtV0lVzP07oM1CW6JbNRPXNLhRoue9ofYLiUDk8bE0Hckg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/tar-win32-ia32-msvc@1.0.0': - resolution: {integrity: sha512-8d/4iRXROPXLoe+4FEqXkpgP2KD9A45VUf76WfT6nXZwzQuoh+9WCJNRPVs5vfXV1SMnG9Z32WNc2ivCq0+HZw==} + '@napi-rs/tar-win32-ia32-msvc@1.1.0': + resolution: {integrity: sha512-hGPyPW60YSpOSgzfy68DLBHgi6HxkAM+L59ZZZPMQ0TOXjQg+p2EW87+TjZfJOkSpbYiEkULwa/f4a2hcVjsqQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/tar-win32-x64-msvc@1.0.0': - resolution: {integrity: sha512-HHtL1g0niVa4xDvyfi9wQtCTDDKkhDlaOb3bmayTqWs29mk+pcVHBST3OdXaaViSaduqdG9meosU5sOj5iKQAQ==} + '@napi-rs/tar-win32-x64-msvc@1.1.0': + resolution: {integrity: sha512-L6Ed1DxXK9YSCMyvpR8MiNAyKNkQLjsHsHK9E0qnHa8NzLFqzDKhvs5LfnWxM2kJ+F7m/e5n9zPm24kHb3LsVw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/tar@1.0.0': - resolution: {integrity: sha512-4sE8bFyOQFKcjWwBoBMtB+YIgKTqQFOFQZWKJP54jENpFulw8cieBaYoA3bbKCCFxXl2jCFulFKDtDErPWULTg==} + '@napi-rs/tar@1.1.0': + resolution: {integrity: sha512-7cmzIu+Vbupriudo7UudoMRH2OA3cTw67vva8MxeoAe5S7vPFI7z0vp0pMXiA25S8IUJefImQ90FeJjl8fjEaQ==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.0.1': - resolution: {integrity: sha512-KVlQ/jgywZpixGCKMNwxStmmbYEMyokZpCf2YuIChhfJA2uqfAKNEM8INz7zzTo55iEXfBhIIs3VqYyqzDLj8g==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 - '@napi-rs/wasm-tools-android-arm-eabi@1.0.0': - resolution: {integrity: sha512-Ks0hplmrYatIjSi8XeTObCi0x13AOQD41IQXpBjrz+UK71gDkbxyLWO7B/ckuels3mC1DW3OCQCv+q0lPnaG/A==} + '@napi-rs/wasm-tools-android-arm-eabi@1.0.1': + resolution: {integrity: sha512-lr07E/l571Gft5v4aA1dI8koJEmF1F0UigBbsqg9OWNzg80H3lDPO+auv85y3T/NHE3GirDk7x/D3sLO57vayw==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/wasm-tools-android-arm64@1.0.0': - resolution: {integrity: sha512-Ppu1/YGLSC/ohkOA8R5YfDh1dCuCHWJObu/BTorAY55YDXIiWy400CoungbYwoRT53K+ixNrg8/zRHnpuqwkRg==} + '@napi-rs/wasm-tools-android-arm64@1.0.1': + resolution: {integrity: sha512-WDR7S+aRLV6LtBJAg5fmjKkTZIdrEnnQxgdsb7Cf8pYiMWBHLU+LC49OUVppQ2YSPY0+GeYm9yuZWW3kLjJ7Bg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/wasm-tools-darwin-arm64@1.0.0': - resolution: {integrity: sha512-EUU7NvmmKASMLecu7hUHhv9XN2Thf8j+2/zCCMuFuAAlY+eZiOVfrajbZ/RE8CZ4oyfkb0bWFg/CQcmcXAatTw==} + '@napi-rs/wasm-tools-darwin-arm64@1.0.1': + resolution: {integrity: sha512-qWTI+EEkiN0oIn/N2gQo7+TVYil+AJ20jjuzD2vATS6uIjVz+Updeqmszi7zq7rdFTLp6Ea3/z4kDKIfZwmR9g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/wasm-tools-darwin-x64@1.0.0': - resolution: {integrity: sha512-hlX21sqy0AEnmn2abarmCXV3fpyIQN+fKqeHNuawti9ZpaJCL6gZCtUGqpUxURjXNjXSI8rywInJE2YmeVQSJQ==} + '@napi-rs/wasm-tools-darwin-x64@1.0.1': + resolution: {integrity: sha512-bA6hubqtHROR5UI3tToAF/c6TDmaAgF0SWgo4rADHtQ4wdn0JeogvOk50gs2TYVhKPE2ZD2+qqt7oBKB+sxW3A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/wasm-tools-freebsd-x64@1.0.0': - resolution: {integrity: sha512-T9SOSfIgrdEGQzzquKMOfD3PF6TxG5hL2o5voZtLUALA0yjO+GnpFyv8tAcxKYd7ngWzzK5Uwk7e1z9PcsQZMg==} + '@napi-rs/wasm-tools-freebsd-x64@1.0.1': + resolution: {integrity: sha512-90+KLBkD9hZEjPQW1MDfwSt5J1L46EUKacpCZWyRuL6iIEO5CgWU0V/JnEgFsDOGyyYtiTvHc5bUdUTWd4I9Vg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.0': - resolution: {integrity: sha512-qHNLY0GLTZK8M/cQOy2OAaRDfk3YOlWAwlAO4KSIAseuXHAaGya3Ay//kbmwzzs8h6TKf/eAeXDwcGxze5ecxw==} + '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.1': + resolution: {integrity: sha512-rG0QlS65x9K/u3HrKafDf8cFKj5wV2JHGfl8abWgKew0GVPyp6vfsDweOwHbWAjcHtp2LHi6JHoW80/MTHm52Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@napi-rs/wasm-tools-linux-arm64-musl@1.0.0': - resolution: {integrity: sha512-54BWWTg5I9n77PRUKErBe3BKqkmbjm0GRpUKJgGdlcessC9Oxa/yVDy2BPtmJP1pQR3VabkXR63H+ZGaH5qKxw==} + '@napi-rs/wasm-tools-linux-arm64-musl@1.0.1': + resolution: {integrity: sha512-jAasbIvjZXCgX0TCuEFQr+4D6Lla/3AAVx2LmDuMjgG4xoIXzjKWl7c4chuaD+TI+prWT0X6LJcdzFT+ROKGHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@napi-rs/wasm-tools-linux-x64-gnu@1.0.0': - resolution: {integrity: sha512-wpRkiy0QBM/zpaGAn5I1HfddQul0vGrdlindT2UHtOYK1zvam524M6LJXBtmhBkXS5a4F2HZiZXns8Wuc7dq4w==} + '@napi-rs/wasm-tools-linux-x64-gnu@1.0.1': + resolution: {integrity: sha512-Plgk5rPqqK2nocBGajkMVbGm010Z7dnUgq0wtnYRZbzWWxwWcXfZMPa8EYxrK4eE8SzpI7VlZP1tdVsdjgGwMw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@napi-rs/wasm-tools-linux-x64-musl@1.0.0': - resolution: {integrity: sha512-Ua94ruWB18uKyIz/nj+by2ZxfBbFzbqiiD564ocBHGbrUffpR6Us74uVwxO7rImc/WvCfJqap9ezqmaTvmK7SA==} + '@napi-rs/wasm-tools-linux-x64-musl@1.0.1': + resolution: {integrity: sha512-GW7AzGuWxtQkyHknHWYFdR0CHmW6is8rG2Rf4V6GNmMpmwtXt/ItWYWtBe4zqJWycMNazpfZKSw/BpT7/MVCXQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@napi-rs/wasm-tools-wasm32-wasi@1.0.0': - resolution: {integrity: sha512-gWVdt1UK575VKTnFRcYTe0qMZA5bFV2w69qDAhX8hG6tajjxbVyvu4jgsYvv/bJrBrxFsNbXMlEU1d0X7iWziA==} + '@napi-rs/wasm-tools-wasm32-wasi@1.0.1': + resolution: {integrity: sha512-/nQVSTrqSsn7YdAc2R7Ips/tnw5SPUcl3D7QrXCNGPqjbatIspnaexvaOYNyKMU6xPu+pc0BTnKVmqhlJJCPLA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.0': - resolution: {integrity: sha512-1kv+DM7z6c9OLcjMtO1/kfdxS5hwXtW1OLIHBU41dtKz5jD3quapYrCjB7AVEZh/JVM765UaLOl31huVucJjRw==} + '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.1': + resolution: {integrity: sha512-PFi7oJIBu5w7Qzh3dwFea3sHRO3pojMsaEnUIy22QvsW+UJfNQwJCryVrpoUt8m4QyZXI+saEq/0r4GwdoHYFQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.0': - resolution: {integrity: sha512-OwcyXtU2Zi3YVHYjmomM3u7jRNPY1j+IPehqCVEqd60jOTOXRZNPGoAvOC7Lw6HX/RGzOJnIcJZbVfKrz5WN1g==} + '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.1': + resolution: {integrity: sha512-gXkuYzxQsgkj05Zaq+KQTkHIN83dFAwMcTKa2aQcpYPRImFm2AQzEyLtpXmyCWzJ0F9ZYAOmbSyrNew8/us6bw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/wasm-tools-win32-x64-msvc@1.0.0': - resolution: {integrity: sha512-xat6gnp/G/WCe6U6HKzawotz9zpqsM5a+Dx+S0MPX4AKP7+oztC2/6tkp8KtOPT2bMRMekNntXadHKk0XqW61Q==} + '@napi-rs/wasm-tools-win32-x64-msvc@1.0.1': + resolution: {integrity: sha512-rEAf05nol3e3eei2sRButmgXP+6ATgm0/38MKhz9Isne82T4rPIMYsCIFj0kOisaGeVwoi2fnm7O9oWp5YVnYQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/wasm-tools@1.0.0': - resolution: {integrity: sha512-GL43zmDN6AFmomd7eTJOdZkXDvocucjqJcBs/IY51ZTxHvBeb1SXTM0/rI2VJ7C3FTiyATTt2D8chonCi0UTgw==} + '@napi-rs/wasm-tools@1.0.1': + resolution: {integrity: sha512-enkZYyuCdo+9jneCPE/0fjIta4wWnvVN9hBo2HuiMpRF0q3lzv1J6b/cl7i0mxZUKhBrV3aCKDBQnCOhwKbPmQ==} engines: {node: '>= 10'} '@noble/ciphers@1.3.0': @@ -5183,6 +5223,10 @@ packages: resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.9.1': + resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} + engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.9.2': resolution: {integrity: sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==} engines: {node: ^14.21.3 || >=16} @@ -5207,6 +5251,10 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@2.0.1': + resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} + engines: {node: '>= 20.19.0'} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -5381,12 +5429,12 @@ packages: resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} engines: {node: '>= 18'} - '@octokit/core@7.0.3': - resolution: {integrity: sha512-oNXsh2ywth5aowwIa7RKtawnkdH6LgU1ztfP9AIUCQCvzysB+WeU8o2kyyosDPwBZutPpjZDKPQGIzzrfTWweQ==} + '@octokit/core@7.0.6': + resolution: {integrity: sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + '@octokit/endpoint@11.0.3': + resolution: {integrity: sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==} engines: {node: '>= 20'} '@octokit/endpoint@9.0.6': @@ -5397,15 +5445,15 @@ packages: resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} engines: {node: '>= 18'} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + '@octokit/graphql@9.0.3': + resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==} engines: {node: '>= 20'} '@octokit/openapi-types@24.2.0': resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} - '@octokit/openapi-types@25.1.0': - resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + '@octokit/openapi-types@27.0.0': + resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} @@ -5416,8 +5464,8 @@ packages: peerDependencies: '@octokit/core': '5' - '@octokit/plugin-paginate-rest@13.1.1': - resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} + '@octokit/plugin-paginate-rest@14.0.0': + resolution: {integrity: sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -5440,8 +5488,8 @@ packages: peerDependencies: '@octokit/core': ^5 - '@octokit/plugin-rest-endpoint-methods@16.0.0': - resolution: {integrity: sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==} + '@octokit/plugin-rest-endpoint-methods@17.0.0': + resolution: {integrity: sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -5450,12 +5498,12 @@ packages: resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} engines: {node: '>= 18'} - '@octokit/request-error@7.0.0': - resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + '@octokit/request-error@7.1.0': + resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==} engines: {node: '>= 20'} - '@octokit/request@10.0.3': - resolution: {integrity: sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==} + '@octokit/request@10.0.8': + resolution: {integrity: sha512-SJZNwY9pur9Agf7l87ywFi14W+Hd9Jg6Ifivsd33+/bGUQIjNujdFiXII2/qSlN2ybqUHfp5xpekMEjIBTjlSw==} engines: {node: '>= 20'} '@octokit/request@8.4.1': @@ -5466,15 +5514,15 @@ packages: resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} engines: {node: '>= 18'} - '@octokit/rest@22.0.0': - resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} + '@octokit/rest@22.0.1': + resolution: {integrity: sha512-Jzbhzl3CEexhnivb1iQ0KJ7s5vvjMWcmRtq5aUsKmKDrRW6z3r84ngmiFKFvpZjpiU/9/S6ITPFRpn5s/3uQJw==} engines: {node: '>= 20'} '@octokit/types@13.10.0': resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} - '@octokit/types@14.1.0': - resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + '@octokit/types@16.0.0': + resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -5485,6 +5533,9 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -5570,6 +5621,9 @@ packages: '@scure/base@1.2.6': resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} + '@scure/base@2.0.0': + resolution: {integrity: sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==} + '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} @@ -5588,20 +5642,23 @@ packages: '@scure/bip39@1.6.0': resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + '@scure/bip39@2.0.1': + resolution: {integrity: sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@shikijs/engine-oniguruma@3.10.0': - resolution: {integrity: sha512-O7ofyEUm4uDBlfd+2YPc7GHA72Kr3eUw5wSgZzgK6GUniD52106diH9Fo7+7l+lhBiyWntYcvzGK8QMciwf+Xw==} + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/langs@3.10.0': - resolution: {integrity: sha512-uE9ojRozrm1PmUw2aM8EbHpT/XdWzSdv/sWRN5MCMdXMW1eOl4bMxWAlY5yhZj0GghYfMbBzMlcDKqrIjOue/Q==} + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/themes@3.10.0': - resolution: {integrity: sha512-JDnZKjYs4nhBniOmVILfEFZCA9JxxLnxG4PRQQQudn8DREhoWQelw7fhv+3Up8phzkoZWQ9TW2jp9k+6DjJS5A==} + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/types@3.10.0': - resolution: {integrity: sha512-PAeyajDDhdzefMiSZn7ENCwVaACMnO53+p5pSrJpIQOJTSX+4Qn28Y5e7I6v9wkJNyepRFfbZmzmbbnzjxBMEA==} + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -5648,17 +5705,20 @@ packages: '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@13.0.5': - resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@sinonjs/fake-timers@15.1.1': + resolution: {integrity: sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==} + + '@sinonjs/samsam@9.0.3': + resolution: {integrity: sha512-ZgYY7Dc2RW+OUdnZ1DEHg00lhRt+9BjymPKHog4PRFzr1U3MbK57+djmscWyKxzO1qfunHqs4N45WWyKIFKpiQ==} - '@sinonjs/samsam@8.0.3': - resolution: {integrity: sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==} + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} '@sqltools/formatter@1.2.5': resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} @@ -5691,8 +5751,8 @@ packages: resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} engines: {node: ^20.17.0 || >=22.9.0} - '@tybys/wasm-util@0.10.0': - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -5712,6 +5772,9 @@ packages: '@types/duplexify@3.6.4': resolution: {integrity: sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -5751,8 +5814,8 @@ packages: '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - '@types/listr@0.14.9': - resolution: {integrity: sha512-Ncsy/jtO/HZYrupLGcnp1BOswZVsNvggjIjnf2EZ1xECfU4hxcQ3FWvFEyR+/DXssz0HDm74Op/tEsyrB3eV5w==} + '@types/listr@0.14.10': + resolution: {integrity: sha512-g5/EazbMACM1JrM/oGtW28vXo4Bv0E03/FIsqqIXbR/CztuHEgR8QAJDrB1Y5bQH7/ISQh0jNV3v65NM29HgAQ==} '@types/lodash.clone@4.5.9': resolution: {integrity: sha512-euFSUq+8csIliszqTBSMh7eU41/by1JPQhTNa2gq3dncxC2Z6s87bbzVB9UUBdYDbV+FV5whFDGxz6hOKTY/EQ==} @@ -5800,14 +5863,17 @@ packages: '@types/node@24.3.0': resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/node@25.5.0': + resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/pg@8.15.5': - resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} + '@types/pg@8.20.0': + resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} @@ -5815,20 +5881,20 @@ packages: '@types/pump@1.1.3': resolution: {integrity: sha512-ZyooTTivmOwPfOwLVaszkF8Zq6mvavgjuHYitZhrIjfQAJDH+kIP3N+MzpG1zDAslsHvVz6Q8ECfivix3qLJaQ==} - '@types/pumpify@1.4.4': - resolution: {integrity: sha512-+cWbQUecD04MQYkjNBhPmcUIP368aloYmqm+ImdMKA8rMpxRNAhZAD6gIj+sAVTF1DliqrT/qUp6aGNi/9U3tw==} + '@types/pumpify@1.4.5': + resolution: {integrity: sha512-BGVAQyK5yJdfIII230fVYGY47V63hUNAhryuuS3b4lEN2LNwxUXFKsEf8QLDCjmZuimlj23BHppJgcrGvNtqKg==} - '@types/readable-stream@4.0.21': - resolution: {integrity: sha512-19eKVv9tugr03IgfXlA9UVUVRbW6IuqRO5B92Dl4a6pT7K8uaGrNS0GkxiZD0BOk6PLuXl5FhWl//eX/pzYdTQ==} + '@types/readable-stream@4.0.23': + resolution: {integrity: sha512-wwXrtQvbMHxCbBgjHaMGEmImFTQxxpfMOR/ZoQnXxB1woqkUbdLGFDgauo00Py9IudiaqSeiBiulSV9i6XIPig==} '@types/seedrandom@3.0.8': resolution: {integrity: sha512-TY1eezMU2zH2ozQoAFAQFOPpvP15g+ZgSfTZt31AUUH/Rxtnz3H+A/Sv1Snw2/amp//omibc+AEkTaA8KUeOLQ==} - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/sinon@17.0.4': - resolution: {integrity: sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==} + '@types/sinon@21.0.0': + resolution: {integrity: sha512-+oHKZ0lTI+WVLxx1IbJDNmReQaIsQJjN2e7UUrJHEeByG7bFeKJYsv1E75JxTQ9QKJDp21bAa/0W2Xo4srsDnw==} '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} @@ -5851,20 +5917,20 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@8.46.2': - resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==} + '@typescript-eslint/eslint-plugin@8.58.0': + resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.2 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/parser': ^8.58.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.46.2': - resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==} + '@typescript-eslint/parser@8.58.0': + resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/project-service@8.40.0': resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==} @@ -5872,14 +5938,14 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.2': - resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==} + '@typescript-eslint/project-service@8.58.0': + resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.46.2': - resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==} + '@typescript-eslint/scope-manager@8.58.0': + resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.40.0': @@ -5888,25 +5954,25 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.46.2': - resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==} + '@typescript-eslint/tsconfig-utils@8.58.0': + resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.46.2': - resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==} + '@typescript-eslint/type-utils@8.58.0': + resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@8.40.0': resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.46.2': - resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==} + '@typescript-eslint/types@8.58.0': + resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.40.0': @@ -5915,25 +5981,25 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.46.2': - resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==} + '@typescript-eslint/typescript-estree@8.58.0': + resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.46.2': - resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==} + '@typescript-eslint/utils@8.58.0': + resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/visitor-keys@8.40.0': resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.46.2': - resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==} + '@typescript-eslint/visitor-keys@8.58.0': + resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vue/compiler-core@3.5.18': @@ -5985,6 +6051,17 @@ packages: zod: optional: true + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -5998,13 +6075,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true @@ -6035,11 +6112,11 @@ packages: peerDependencies: ajv: ^8.8.2 - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} amp-message@0.1.2: resolution: {integrity: sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==} @@ -6058,10 +6135,6 @@ packages: resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} engines: {node: '>=4'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-escapes@7.0.0: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} @@ -6110,6 +6183,10 @@ packages: resolution: {integrity: sha512-BRrU0Bo1X9dFGw6KgGz6hWrqQuOlVEDOzkb0QSLZY9sXHqA7pNj7yHPVJRz7y/rj4EOJ3d/D5uxH+ee9leYgsg==} engines: {node: '>=10'} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + any-observable@0.3.0: resolution: {integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==} engines: {node: '>=6'} @@ -6243,8 +6320,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.20: - resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} + baseline-browser-mapping@2.10.12: + resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} + engines: {node: '>=6.0.0'} hasBin: true basic-ftp@5.0.5: @@ -6261,15 +6339,15 @@ packages: before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - better-sqlite3@12.2.0: - resolution: {integrity: sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==} - engines: {node: 20.x || 22.x || 23.x || 24.x} + better-sqlite3@12.8.0: + resolution: {integrity: sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} big-number@2.0.0: resolution: {integrity: sha512-C67Su0g+XsmXADX/UM9L/+xSbqqwq0D/qGJs2ky6Noy2FDuCZnC38ZSXODiaBvqWma2VYRZEXgm4H74PS6tCDg==} - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + bignumber.js@10.0.2: + resolution: {integrity: sha512-E8Wp9O06QA6lneJ4aRUXKYf/1GIomqUEmUMwtIOMtDxf1U52ffJY+y7JBk/8wRafA8qOIqLnXQGqonYXZdBnFQ==} bin-links@5.0.0: resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} @@ -6328,8 +6406,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.27.0: - resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -6368,6 +6446,10 @@ packages: resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} engines: {node: '>=18.20'} + byte-counter@0.1.0: + resolution: {integrity: sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==} + engines: {node: '>=20'} + byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} @@ -6376,9 +6458,9 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - c8@10.1.3: - resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==} - engines: {node: '>=18'} + c8@11.0.0: + resolution: {integrity: sha512-e/uRViGHSVIJv7zsaDKM7VRn2390TgHXqUSvYwPHBQaU6L7E9L0n9JbdkwdYPvshDT0KymBmmlwSpms3yBaMNg==} + engines: {node: 20 || >=22} hasBin: true peerDependencies: monocart-coverage-reports: ^2 @@ -6402,8 +6484,8 @@ packages: resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} engines: {node: '>=14.16'} - cacheable-request@12.0.1: - resolution: {integrity: sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==} + cacheable-request@13.0.18: + resolution: {integrity: sha512-rFWadDRKJs3s2eYdXlGggnBZKG7MTblkFBB0YllFds+UYnfogDp2wcR6JN97FhRkHTvq59n2vhNoHNZn29dh/Q==} engines: {node: '>=18'} call-bind-apply-helpers@1.0.2: @@ -6444,8 +6526,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001751: - resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} + caniuse-lite@1.0.30001782: + resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} capture-console@1.0.2: resolution: {integrity: sha512-vQNTSFr0cmHAYXXG3KG7ZJQn0XxC3K2di/wUZVb6yII6gqSN/10Egd3vV4XqJ00yCRNHy2wkN4uWHE+rJstDrw==} @@ -6474,16 +6556,13 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@5.4.4: resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} @@ -6513,6 +6592,10 @@ packages: resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} engines: {node: '>=8'} + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -6545,6 +6628,10 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-spinners@3.4.0: + resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} + engines: {node: '>=18.20'} + cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} @@ -6600,28 +6687,35 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} + engines: {node: '>=14.6'} + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} + engines: {node: '>=12.20'} + + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} + engines: {node: '>=18'} color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} + engines: {node: '>=18'} colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} @@ -6634,8 +6728,8 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} commander@2.15.1: @@ -6716,8 +6810,8 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - core-js-compat@3.46.0: - resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -6735,15 +6829,15 @@ packages: typescript: optional: true - cron@4.3.3: - resolution: {integrity: sha512-B/CJj5yL3sjtlun6RtYHvoSB26EmQ2NUmhq9ZiJSyKIM4K/fqfh9aelDFlIayD2YMeFZqWLi9hHV+c+pq2Djkw==} + cron@4.4.0: + resolution: {integrity: sha512-fkdfq+b+AHI4cKdhZlppHveI/mgz2qpiYxcm+t5E5TsxX7QrLS1VE0+7GENEk9z0EeGPcpSciGv6ez24duWhwQ==} engines: {node: '>=18.x'} croner@4.1.97: resolution: {integrity: sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==} - cross-env@10.0.0: - resolution: {integrity: sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} engines: {node: '>=20'} hasBin: true @@ -6795,12 +6889,12 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - dayjs@1.11.18: resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + dayjs@1.8.36: resolution: {integrity: sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==} @@ -6855,6 +6949,10 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + decompress-response@10.0.0: + resolution: {integrity: sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==} + engines: {node: '>=20'} + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -6867,8 +6965,8 @@ packages: babel-plugin-macros: optional: true - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -6909,9 +7007,9 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} - delay@6.0.0: - resolution: {integrity: sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==} - engines: {node: '>=16'} + delay@7.0.0: + resolution: {integrity: sha512-C3vaGs818qzZjCvVJ98GQUMVyWeg7dr5w2Nwwb2t5K8G98jOyyVO2ti2bKYk5yoYElqH3F2yA53ykuEnwD6MCg==} + engines: {node: '>=20'} delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -6953,6 +7051,10 @@ packages: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} + detect-indent@7.0.2: + resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} + engines: {node: '>=12.20'} + detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -7008,8 +7110,8 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} doctrine@2.1.0: @@ -7050,13 +7152,21 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.240: - resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==} + electron-to-chromium@1.5.329: + resolution: {integrity: sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} + emnapi@1.9.1: + resolution: {integrity: sha512-s4RbfzgbYg9cWBZXJT6LazImJQ5p+F+LyTsCWQJXbGVdPmtCtdlwqd0Oiv3O51KyYV/Hq58xszaQ/l153tK6Uw==} + peerDependencies: + node-addon-api: '>= 6.1.0' + peerDependenciesMeta: + node-addon-api: + optional: true + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -7095,9 +7205,9 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + env-paths@4.0.0: + resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} + engines: {node: '>=20'} envfile@7.1.0: resolution: {integrity: sha512-dyH4QnnZsArCLhPASr29eqBWDvKpq0GggQFTmysTT/S9TTmt1JrEKNvTBc09Cd7ujVZQful2HBGRMe2agu7Krg==} @@ -7147,8 +7257,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.39.10: - resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==} + es-toolkit@1.45.1: + resolution: {integrity: sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==} es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -7164,8 +7274,8 @@ packages: es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - esbuild@0.25.8: - resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + esbuild@0.27.4: + resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} engines: {node: '>=18'} hasBin: true @@ -7232,8 +7342,14 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-prettier@5.5.4: - resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + eslint-plugin-perfectionist@5.7.0: + resolution: {integrity: sha512-WRHj7OZS/INutQ/gKN5C1ZGnMhkQ3oKZQAA2I7rl5yM8keBtSd9oj/qlJaHuwh5873FhMPqYlttcadF0YsTN7g==} + engines: {node: ^20.0.0 || >=22.0.0} + peerDependencies: + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-prettier@5.5.5: + resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -7252,42 +7368,29 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-simple-import-sort@12.1.1: - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} - peerDependencies: - eslint: '>=5.0.0' - - eslint-plugin-sonarjs@3.0.5: - resolution: {integrity: sha512-dI62Ff3zMezUToi161hs2i1HX1ie8Ia2hO0jtNBfdgRBicAG4ydy2WPt0rMTrAe3ZrlqhpAO3w1jcQEdneYoFA==} + eslint-plugin-sonarjs@4.0.2: + resolution: {integrity: sha512-BTcT1zr1iTbmJtVlcesISwnXzh+9uhf9LEOr+RRNf4kR8xA0HQTPft4oiyOCzCOGKkpSJxjR8ZYF6H7VPyplyw==} peerDependencies: - eslint: ^8.0.0 || ^9.0.0 - - eslint-plugin-sort-keys-fix@1.1.2: - resolution: {integrity: sha512-DNPHFGCA0/hZIsfODbeLZqaGY/+q3vgtshF85r+YWDNCQ2apd9PNs/zL6ttKm0nD1IFwvxyg3YOTI7FHl4unrw==} - engines: {node: '>=0.10.0'} + eslint: ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-unicorn@62.0.0: - resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} + eslint-plugin-unicorn@64.0.0: + resolution: {integrity: sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: eslint: '>=9.38.0' - eslint-plugin-unused-imports@4.3.0: - resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==} + eslint-plugin-unused-imports@4.4.1: + resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 - eslint: ^9.0.0 || ^8.0.0 + eslint: ^10.0.0 || ^9.0.0 || ^8.0.0 peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -7297,9 +7400,13 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.38.0: - resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.1.0: + resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: jiti: '*' @@ -7307,10 +7414,6 @@ packages: jiti: optional: true - esmock@2.7.1: - resolution: {integrity: sha512-YgtZ6TSwRbdqFLkJwxVCYkt0rzKpjHb0tbDqSjWvbkm8Uy5Tm5W6ixICb3FVRkAd1uQlLOXiIn7OPY4F4f18cw==} - engines: {node: '>=14.16.0'} - esmock@2.7.3: resolution: {integrity: sha512-/M/YZOjgyLaVoY6K83pwCsGE1AJQnj4S4GyXLYgi/Y79KL8EeW6WU7Rmjc89UO7jv6ec8+j34rKeWOfiLeEu0A==} engines: {node: '>=14.16.0'} @@ -7323,9 +7426,9 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@6.2.1: - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} - engines: {node: '>=6.0.0'} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -7336,8 +7439,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -7397,8 +7500,8 @@ packages: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} - execa@9.6.0: - resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + execa@9.6.1: + resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} engines: {node: ^18.19.0 || >=20.5.0} expand-template@2.0.3: @@ -7419,18 +7522,14 @@ packages: ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - extrareqp2@1.0.0: resolution: {integrity: sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==} fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} - fast-copy@3.0.2: - resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + fast-copy@4.0.2: + resolution: {integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -7454,19 +7553,24 @@ packages: fast-levenshtein@3.0.0: resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} - fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} - fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} fast-sort@3.4.1: resolution: {integrity: sha512-76uvGPsF6So53sZAqenP9UVT3p5l7cyTHkLWVCMinh41Y8NDrK1IYXJgaBMfc1gk7nJiSRZp676kddFG2Aa5+A==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -7485,6 +7589,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -7543,10 +7656,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - findup-sync@5.0.0: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} @@ -7621,6 +7730,10 @@ packages: resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} engines: {node: '>=14.14'} + fs-extra@11.3.4: + resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} + engines: {node: '>=14.14'} + fs-minipass@3.0.3: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7758,11 +7871,18 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@13.0.6: @@ -7771,12 +7891,12 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} @@ -7790,8 +7910,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} engines: {node: '>=18'} globalthis@1.0.4: @@ -7811,8 +7931,8 @@ packages: resolution: {integrity: sha512-KOaPMremmsvx6l9BLC04LYE6ZFW4x7e4HkTe3LwBmtuYYQwpeS4XKqzhubTIkaQ1Nr+eXxeori0zuwupXMovBQ==} engines: {node: '>=20'} - got@14.4.7: - resolution: {integrity: sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g==} + got@14.6.6: + resolution: {integrity: sha512-QLV1qeYSo5l13mQzWgP/y0LbMr5Plr5fJilgAIwgnwseproEbtNym8xpLsDzeZ6MWXgNE6kdWGBjdh3zT/Qerg==} engines: {node: '>=20'} graceful-fs@4.2.10: @@ -7821,9 +7941,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -7959,6 +8076,10 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + import-fresh@4.0.0: + resolution: {integrity: sha512-Fpi660c7VPDM3fPKYovStd9IP1CPOikf6v/dGxJJMmHPcwYQIMJ4W7kO1avBYEpMqkCh+Dx3Ln6H7VYqgztLjw==} + engines: {node: '>=22.15'} + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -8015,8 +8136,8 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - inversify@7.10.3: - resolution: {integrity: sha512-pqcnrXWOg28LykoR/ndoPQJIgkoxtUgxbkcsH+43nmf1BcM4GfCBKjzC0IncWdQRYOKUdkKhOGAtQfdlhwAEiQ==} + inversify@8.1.0: + resolution: {integrity: sha512-LeMjL2MKHM0E8UmKo2ilRvdxG3o0pLZPYFjkaHwcjcFIrhzBGetphNkaWJ6YaM78uC1gK9v45i1R7CkCJDvG4Q==} ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} @@ -8029,8 +8150,8 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + ipaddr.js@2.3.0: + resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} engines: {node: '>= 10'} is-array-buffer@3.0.5: @@ -8040,9 +8161,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -8182,6 +8300,10 @@ packages: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} + is-safe-filename@0.1.1: + resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} + engines: {node: '>=20'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -8225,10 +8347,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -8315,8 +8433,8 @@ packages: resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - joi@18.0.0: - resolution: {integrity: sha512-fpbpXN/TD04Xz1/cCXzUR3ghDkhyiHjbzTILx3wNyKXIzQJ55uYAkUGWwhX72uHge/6MdFA/kp1ZUh35DlYmaA==} + joi@18.1.2: + resolution: {integrity: sha512-rF5MAmps5esSlhCA+N1b6IYHDw9j/btzGaqfgie522jS02Ju/HXBxamlXVlKEHAxoMKQL77HWI8jlqWsFuekZA==} engines: {node: '>= 20'} joycon@3.1.1: @@ -8392,6 +8510,9 @@ packages: json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json-with-bigint@3.5.8: + resolution: {integrity: sha512-eq/4KP6K34kwa7TcFdtvnftvHCD9KvHOGGICWwMFc4dOOKF5t4iYqnfLK8otCRCRv06FXOzGGyqE8h8ElMvvdw==} + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -8424,6 +8545,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -8485,8 +8609,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@16.2.6: - resolution: {integrity: sha512-s1gphtDbV4bmW1eylXpVMk2u7is7YsrLl8hzrtvC70h4ByhcMLZFY01Fx05ZUDNuv1H8HO4E+e2zgejV1jVwNw==} + lint-staged@16.4.0: + resolution: {integrity: sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==} engines: {node: '>=20.17'} hasBin: true @@ -8512,8 +8636,8 @@ packages: resolution: {integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==} engines: {node: '>=6'} - lmdb@3.4.2: - resolution: {integrity: sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==} + lmdb@3.5.2: + resolution: {integrity: sha512-od5AWh1MNylIOeX7MB7TV627MM9tzyOUn8U8FZOeWKpWFnMU5FS9pu5t41pS4+pi7OxHRyk5QVRhuUimHjfkmg==} hasBin: true load-json-file@4.0.0: @@ -8540,10 +8664,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash.clone@4.5.0: resolution: {integrity: sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==} deprecated: This package is deprecated. Use structuredClone instead. @@ -8573,6 +8693,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + log-process-errors@12.0.1: resolution: {integrity: sha512-4+s7bTovTyrlOJbV2jzQxeXt/ITfDEGw4pdp9KHu1v32gsy/56N/bWYVjqKygsGb1RaiZ1c3wd4DE4lOSY031A==} engines: {node: '>=18.18.0'} @@ -8585,8 +8708,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} log-update@2.3.0: @@ -8618,8 +8741,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.2: - resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} lru-cache@6.0.0: @@ -8687,6 +8810,10 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + hasBin: true + marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} @@ -8773,10 +8900,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} @@ -8787,6 +8910,9 @@ packages: minimatch@3.1.4: resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -8862,11 +8988,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} @@ -8884,8 +9005,8 @@ packages: engines: {node: '>=18'} hasBin: true - moment-timezone@0.6.0: - resolution: {integrity: sha512-ldA5lRNm3iJCWZcBCab4pnNL3HSZYXVb/3TYr75/1WCTWYuTqYUb5f/S384pncYjJ88lbO8Z4uPDvmoluHJc8Q==} + moment-timezone@0.6.1: + resolution: {integrity: sha512-1B9lmAhB9D9/sHaPC1N7wLFEVUoFldxOpOO96lOD1PvJ43vCd0ozDPbu0FEL3++VvawOlDkq8YD373tJmP5JHw==} moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} @@ -8918,16 +9039,16 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} + engines: {node: ^20.17.0 || >=22.9.0} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} nan@2.23.0: resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} - nano-spawn@2.0.0: - resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} - engines: {node: '>=20.17'} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8939,6 +9060,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + needle@2.4.0: resolution: {integrity: sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==} engines: {node: '>= 4.4.x'} @@ -8965,8 +9090,8 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - nock@14.0.10: - resolution: {integrity: sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==} + nock@14.0.11: + resolution: {integrity: sha512-u5xUnYE+UOOBA6SpELJheMCtj2Laqx15Vl70QxKo43Wz/6nMHXS7PrEioXLjXAwhmawdEMNImwKCcPhBJWbKVw==} engines: {node: '>=18.20.0 <20 || >=20.12.1'} node-abi@3.75.0: @@ -8989,8 +9114,8 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - node-releases@2.0.26: - resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} + node-releases@2.0.36: + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} node-source-walk@7.0.1: resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==} @@ -9028,6 +9153,10 @@ packages: resolution: {integrity: sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==} engines: {node: '>=14.16'} + normalize-url@8.1.1: + resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} + engines: {node: '>=14.16'} + npm-bundled@4.0.0: resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9036,9 +9165,9 @@ packages: resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} engines: {node: ^20.17.0 || >=22.9.0} - npm-check-updates@18.0.2: - resolution: {integrity: sha512-9uVFZUCg5oDOcbzdsrJ4BEvq2gikd23tXuF5mqpl4mxVl051lzB00Xmd7ZVjVWY3XNUF3BQKWlN/qmyD8/bwrA==} - engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} + npm-check-updates@19.6.6: + resolution: {integrity: sha512-AvlRcnlUEyBEJfblUSjYMJwYKvCIWDRuCDa6x3hyUMTMkI3kslmFm0LDqwgzQfshfNh0Z3ouKiA4fLjRN7HejQ==} + engines: {node: '>=20.0.0', npm: '>=8.12.1'} hasBin: true npm-install-checks@7.1.2: @@ -9093,8 +9222,8 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - nsfw@2.2.5: - resolution: {integrity: sha512-KcZpiMzCfCpEYA2S45pPT9x80HlYf/DyyigrFBpeFYj9O/rBi0hSn4AnRnZ77ppjSmwTzu7wZjNfKIzdTz/PSw==} + nsfw@2.3.0: + resolution: {integrity: sha512-adIoGsaAiWa/cyzToQND/JuiGFlCEfR2OgZGvtky8o5vqsht3tCUjZUeQmNPRl0flFuo9kpbtSuIo04Z8QbOCA==} engines: {node: '>=10.16.0'} number-is-nan@1.0.1: @@ -9141,6 +9270,9 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} @@ -9187,17 +9319,13 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} + ora@9.3.0: + resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} + engines: {node: '>=20'} ordered-binary@1.6.0: resolution: {integrity: sha512-IQh2aMfMIDbPjI/8a3Edr+PiOpcsB7yo8NdW7aHWVaoR/pcDldunMvnnwbk/auPGqmKeAdxtZl7MHX/QmPwhvQ==} - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} @@ -9205,24 +9333,24 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - ox@0.6.7: - resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} + ox@0.14.7: + resolution: {integrity: sha512-zSQ/cfBdolj7U4++NAvH7sI+VG0T3pEohITCgcQj8KlawvTDY4vGVhDT64Atsm0d6adWfIYHDpu88iUBMMp+AQ==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: typescript: optional: true - ox@0.8.1: - resolution: {integrity: sha512-e+z5epnzV+Zuz91YYujecW8cF01mzmrUtWotJ0oEPym/G82uccs7q0WDHTYL3eiONbTUEvcZrptAKLgTBD3u2A==} + ox@0.6.7: + resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: typescript: optional: true - ox@0.8.7: - resolution: {integrity: sha512-W1f0FiMf9NZqtHPEDEAEkyzZDwbIKfmH2qmQx8NNiQ/9JhxrSblmtLJsSfTtQG5YKowLOnBlLVguCyxm/7ztxw==} + ox@0.8.1: + resolution: {integrity: sha512-e+z5epnzV+Zuz91YYujecW8cF01mzmrUtWotJ0oEPym/G82uccs7q0WDHTYL3eiONbTUEvcZrptAKLgTBD3u2A==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: @@ -9249,10 +9377,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -9265,10 +9389,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} engines: {node: '>=8'} @@ -9390,10 +9510,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -9413,10 +9529,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - path-scurry@2.0.2: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} @@ -9432,30 +9544,33 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pg-cloudflare@1.2.7: - resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + pg-cloudflare@1.3.0: + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} - pg-connection-string@2.9.1: - resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + pg-connection-string@2.12.0: + resolution: {integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-pool@3.10.1: - resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + pg-pool@3.13.0: + resolution: {integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==} peerDependencies: pg: '>=8.0' pg-protocol@1.10.3: resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + pg-protocol@1.13.0: + resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} + pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.16.3: - resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} engines: {node: '>= 16.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -9481,11 +9596,6 @@ packages: resolution: {integrity: sha512-lGA1TNsmy2bxvRsTI2cV01kfTwKzZjnZSDmF9llYNyMHMrU4sP87lQ5taiIKm88L3cbswjl008nwyGc3WpNvzg==} engines: {node: '>=18.0.0'} - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - pidusage@2.0.21: resolution: {integrity: sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==} engines: {node: '>=8'} @@ -9502,18 +9612,18 @@ packages: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - pino-abstract-transport@2.0.0: - resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} - pino-pretty@13.1.1: - resolution: {integrity: sha512-TNNEOg0eA0u+/WuqH0MH0Xui7uqVk9D74ESOpjtebSQYbNWJk/dIxCXIxFsNfeN53JmtWqYHP2OrIZjT/CBEnA==} + pino-pretty@13.1.3: + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} hasBin: true pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.9.0: - resolution: {integrity: sha512-zxsRIQG9HzG+jEljmvmZupOMDUQ0Jpj0yAgE28jQvvrdYTlEaiGwelJpdndMl/MBuRr70heIj83QyqJUWaU8mQ==} + pino@10.3.1: + resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==} hasBin: true pkg-dir@4.2.0: @@ -9587,6 +9697,7 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true precinct@12.2.0: @@ -9602,12 +9713,12 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} hasBin: true @@ -9619,8 +9730,8 @@ packages: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} - pretty-ms@9.2.0: - resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} proc-log@5.0.0: @@ -9673,15 +9784,15 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs-cli@1.1.3: - resolution: {integrity: sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==} + protobufjs-cli@2.0.0: + resolution: {integrity: sha512-/QGByFXSLY9Was5Oq8yKn5lu1pMywGMHgE0fDR9b4nZFTvaWJonHiJxT3HHu2ZuOQAxd7ufYyQtW8Q1ZgW+gPg==} engines: {node: '>=12.0.0'} hasBin: true peerDependencies: protobufjs: ^7.0.0 - protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + protobufjs@8.0.0: + resolution: {integrity: sha512-jx6+sE9h/UryaCZhsJWbJtTEy47yXoGNYI4z8ZaRncM0zBKeRqjO2JEcOUYwrYGb1WLhXM1FfMzW3annvFv0rw==} engines: {node: '>=12.0.0'} protocols@2.0.2: @@ -9698,8 +9809,8 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} pumpify@2.0.1: resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} @@ -9733,6 +9844,10 @@ packages: quote-unquote@1.0.0: resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} + random-int@3.1.0: + resolution: {integrity: sha512-h8CRz8cpvzj0hC/iH/1Gapgcl2TQ6xtnCpyOI5WvWfXf/yrDx2DOU+tD9rX23j36IF11xg1KqB9W11Z18JPMdw==} + engines: {node: '>=12'} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -9744,8 +9859,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - rate-limiter-flexible@7.2.0: - resolution: {integrity: sha512-hrf0vIS/WOBegnHg+uPXxsXhuQYlNGfZiCmK5Wgudb12xlZUhpv9yD23yp/EW6BKQosshqnIQRQV+r3jyfIGQg==} + rate-limiter-flexible@10.0.1: + resolution: {integrity: sha512-3G6GMFz5Oz5nVnDv9gQ1LLMdExR4B1lOjogPIjehtgyxPMIkY09BGyk2eCYt36/OkV/0t12GEt6J6HpTl6RzZg==} raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} @@ -9870,10 +9985,6 @@ packages: require-package-name@2.0.1: resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - requirejs-config-file@4.0.0: resolution: {integrity: sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==} engines: {node: '>=10.13.0'} @@ -9925,6 +10036,10 @@ packages: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} + responselike@4.0.2: + resolution: {integrity: sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==} + engines: {node: '>=20'} + restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -9948,8 +10063,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rotating-file-stream@3.2.6: - resolution: {integrity: sha512-r8yShzMWUvWXkRzbOXDM1fEaMpc3qo2PzK7bBH/0p0Nl/uz8Mud/Y+0XTQxe3kbSnDF7qBH2tSe83WDKA7o3ww==} + rotating-file-stream@3.2.9: + resolution: {integrity: sha512-i9i0KkHh12ryl4xtELg+0gyoFre2PJ9RcQQLzquWsiqygyYsrZLckrqqYrthhnJZGZb4g+KUHtcoWYVq34gaug==} engines: {node: '>=14.0'} run-async@4.0.6: @@ -10039,8 +10154,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true @@ -10120,11 +10235,8 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - sinon@21.0.0: - resolution: {integrity: sha512-TOgRcwFPbfGtpqvZw+hyqJDvqfapr1qUlOizROIk4bBLjlsjlB00Pg6wMFXNtJRpu+eCZuVOaLatG7M8105kAw==} + sinon@21.0.3: + resolution: {integrity: sha512-0x8TQFr8EjADhSME01u1ZK31yv2+bd6Z5NrBCHVM+n4qL1wFqbxftmeyi3bwlr49FbbzRfrqSFOpyHCOh/YmYA==} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -10156,11 +10268,11 @@ packages: sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} - sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + sort-object-keys@2.1.0: + resolution: {integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==} - sort-package-json@3.4.0: - resolution: {integrity: sha512-97oFRRMM2/Js4oEA9LJhjyMlde+2ewpZQf53pgue27UkbEXfHJnDzHlUxQ/DWUkzqmp7DFwJp8D+wi/TYeQhpA==} + sort-package-json@3.6.1: + resolution: {integrity: sha512-Chgejw1+10p2D0U2tB7au1lHtz6TkFnxmvZktyBCRyV0GgmF6nl1IxXxAsPtJVsUyg/fo+BfCMAVVFUVRkAHrQ==} engines: {node: '>=20'} hasBin: true @@ -10225,8 +10337,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + stdin-discarder@0.3.1: + resolution: {integrity: sha512-reExS1kSGoElkextOcPkel4NE99S0BWxjUHQeDFnR8S993JxpPX7KU4MNmO19NXhlJp+8dmdCbKQVNgLJh2teA==} engines: {node: '>=18'} steno@4.0.2: @@ -10373,8 +10485,8 @@ packages: resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} engines: {node: '>=0.10.0'} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} systeminformation@5.27.7: @@ -10383,6 +10495,10 @@ packages: os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} @@ -10394,18 +10510,18 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} - tar@7.5.11: resolution: {integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==} engines: {node: '>=18'} - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} + test-exclude@8.0.0: + resolution: {integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==} + engines: {node: 20 || >=22} + text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -10420,8 +10536,9 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thread-stream@3.1.0: - resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + thread-stream@4.0.0: + resolution: {integrity: sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==} + engines: {node: '>=20'} through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -10433,6 +10550,10 @@ packages: resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} engines: {node: '>=0.12'} + tinyexec@1.0.4: + resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + engines: {node: '>=18'} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} @@ -10441,9 +10562,9 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} @@ -10487,6 +10608,12 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-graphviz@2.1.6: resolution: {integrity: sha512-XyLVuhBVvdJTJr2FJJV2L1pc4MwSjMhcunRVgDE9k4wbb2ee7ORYnPewxMWUav12vxyfUM686MSGsqnVRIInuw==} engines: {node: '>=18'} @@ -10510,8 +10637,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.20.4: - resolution: {integrity: sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} engines: {node: '>=18.0.0'} hasBin: true @@ -10552,10 +10679,6 @@ packages: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -10572,6 +10695,10 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} + type-fest@5.5.0: + resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==} + engines: {node: '>=20'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -10598,31 +10725,30 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typedoc@0.28.10: - resolution: {integrity: sha512-zYvpjS2bNJ30SoNYfHSRaFpBMZAsL7uwKbWwqoCNFWjcPnI3e/mPLh2SneH9mX7SJxtDpvDgvd9/iZxGbo7daw==} + typedoc@0.28.18: + resolution: {integrity: sha512-NTWTUOFRQ9+SGKKTuWKUioUkjxNwtS3JDRPVKZAXGHZy2wCA8bdv2iJiyeePn0xkmK+TCCqZFT0X7+2+FLjngA==} engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: - typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x - typeorm@0.3.26: - resolution: {integrity: sha512-o2RrBNn3lczx1qv4j+JliVMmtkPSqEGpG0UuZkt9tCfWkoXKu8MZnjvp2GjWPll1SehwemQw6xrbVRhmOglj8Q==} + typeorm@0.3.28: + resolution: {integrity: sha512-6GH7wXhtfq2D33ZuRXYwIsl/qM5685WZcODZb7noOOcRMteM9KF2x2ap3H0EBjnSV0VO4gNAfJT5Ukp0PkOlvg==} engines: {node: '>=16.13.0'} hasBin: true peerDependencies: - '@google-cloud/spanner': ^5.18.0 || ^6.0.0 || ^7.0.0 + '@google-cloud/spanner': ^5.18.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 '@sap/hana-client': ^2.14.22 better-sqlite3: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 ioredis: ^5.0.4 mongodb: ^5.8.0 || ^6.0.0 - mssql: ^9.1.1 || ^10.0.1 || ^11.0.1 + mssql: ^9.1.1 || ^10.0.0 || ^11.0.0 || ^12.0.0 mysql2: ^2.2.5 || ^3.0.1 oracledb: ^6.3.0 pg: ^8.5.1 pg-native: ^3.0.0 pg-query-stream: ^4.0.0 redis: ^3.1.1 || ^4.0.0 || ^5.0.14 - reflect-metadata: ^0.1.14 || ^0.2.0 sql.js: ^1.4.0 sqlite3: ^5.0.3 ts-node: ^10.7.0 @@ -10661,18 +10787,23 @@ packages: typeorm-aurora-data-api-driver: optional: true - typescript-eslint@8.46.2: - resolution: {integrity: sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==} + typescript-eslint@8.58.0: + resolution: {integrity: sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' typescript@5.9.2: resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} + engines: {node: '>=14.17'} + hasBin: true + typesync@0.14.3: resolution: {integrity: sha512-8RVMdnew14eyafWO27weaoFv+M4RDqU2ENuQ3FCmLF1jklozGK8j05E/az9fDA/Gy9IhhBU3zlTqbo3AhfqrKw==} engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} @@ -10699,9 +10830,8 @@ packages: undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} @@ -10725,6 +10855,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unlimited-timeout@0.1.0: + resolution: {integrity: sha512-D4g+mxFeQGQHzCfnvij+R35ukJ0658Zzudw7j16p4tBBbNasKkKM4SocYxqhwT5xA7a9JYWDzKkEFyMlRi5sng==} + engines: {node: '>=20'} + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -10733,8 +10867,8 @@ packages: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -10753,6 +10887,10 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true + uuid@13.0.0: + resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + hasBin: true + uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -10793,8 +10931,8 @@ packages: typescript: optional: true - viem@2.34.0: - resolution: {integrity: sha512-HJZG9Wt0DLX042MG0PK17tpataxtdAEhpta9/Q44FqKwy3xZMI5Lx4jF+zZPuXFuYjZ68R0PXqRwlswHs6r4gA==} + viem@2.47.6: + resolution: {integrity: sha512-zExmbI99NGvMdYa7fmqSTLgkwh48dmhgEqFrUgkpL4kfG4XkVefZ8dZqIKVUhZo6Uhf0FrrEXOsHm9LUyIvI2Q==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -10868,8 +11006,8 @@ packages: resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} engines: {node: '>= 12.0.0'} - winston@3.17.0: - resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==} + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} engines: {node: '>= 12.0.0'} word-wrap@1.2.5: @@ -10970,6 +11108,18 @@ packages: utf-8-validate: optional: true + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xmlcreate@2.0.4: resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} @@ -10992,8 +11142,8 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true @@ -11021,14 +11171,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} - engines: {node: '>=12.20'} - - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} - yoctocolors-cjs@2.1.3: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} @@ -11040,8 +11182,8 @@ packages: zod@3.24.4: resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} - zod@4.0.17: - resolution: {integrity: sha512-1PHjlYRevNxxdy2JZ8JcNAw7rX8V9P1AKkP+x/xZfxB0K5FYfuV+Ug6P/6NVSR2jHQ+FzDDoDHS04nYUsOIyLQ==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} snapshots: @@ -11158,9 +11300,9 @@ snapshots: '@colors/colors@1.6.0': {} - '@dabh/diagnostics@2.0.3': + '@dabh/diagnostics@2.0.8': dependencies: - colorspace: 1.1.4 + '@so-ric/colorspace': 1.1.6 enabled: 2.0.0 kuler: 2.0.0 @@ -11184,149 +11326,156 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@esbuild/aix-ppc64@0.25.8': + '@esbuild/aix-ppc64@0.27.4': optional: true - '@esbuild/android-arm64@0.25.8': + '@esbuild/android-arm64@0.27.4': optional: true - '@esbuild/android-arm@0.25.8': + '@esbuild/android-arm@0.27.4': optional: true - '@esbuild/android-x64@0.25.8': + '@esbuild/android-x64@0.27.4': optional: true - '@esbuild/darwin-arm64@0.25.8': + '@esbuild/darwin-arm64@0.27.4': optional: true - '@esbuild/darwin-x64@0.25.8': + '@esbuild/darwin-x64@0.27.4': optional: true - '@esbuild/freebsd-arm64@0.25.8': + '@esbuild/freebsd-arm64@0.27.4': optional: true - '@esbuild/freebsd-x64@0.25.8': + '@esbuild/freebsd-x64@0.27.4': optional: true - '@esbuild/linux-arm64@0.25.8': + '@esbuild/linux-arm64@0.27.4': optional: true - '@esbuild/linux-arm@0.25.8': + '@esbuild/linux-arm@0.27.4': optional: true - '@esbuild/linux-ia32@0.25.8': + '@esbuild/linux-ia32@0.27.4': optional: true - '@esbuild/linux-loong64@0.25.8': + '@esbuild/linux-loong64@0.27.4': optional: true - '@esbuild/linux-mips64el@0.25.8': + '@esbuild/linux-mips64el@0.27.4': optional: true - '@esbuild/linux-ppc64@0.25.8': + '@esbuild/linux-ppc64@0.27.4': optional: true - '@esbuild/linux-riscv64@0.25.8': + '@esbuild/linux-riscv64@0.27.4': optional: true - '@esbuild/linux-s390x@0.25.8': + '@esbuild/linux-s390x@0.27.4': optional: true - '@esbuild/linux-x64@0.25.8': + '@esbuild/linux-x64@0.27.4': optional: true - '@esbuild/netbsd-arm64@0.25.8': + '@esbuild/netbsd-arm64@0.27.4': optional: true - '@esbuild/netbsd-x64@0.25.8': + '@esbuild/netbsd-x64@0.27.4': optional: true - '@esbuild/openbsd-arm64@0.25.8': + '@esbuild/openbsd-arm64@0.27.4': optional: true - '@esbuild/openbsd-x64@0.25.8': + '@esbuild/openbsd-x64@0.27.4': optional: true - '@esbuild/openharmony-arm64@0.25.8': + '@esbuild/openharmony-arm64@0.27.4': optional: true - '@esbuild/sunos-x64@0.25.8': + '@esbuild/sunos-x64@0.27.4': optional: true - '@esbuild/win32-arm64@0.25.8': + '@esbuild/win32-arm64@0.27.4': optional: true - '@esbuild/win32-ia32@0.25.8': + '@esbuild/win32-ia32@0.27.4': optional: true - '@esbuild/win32-x64@0.25.8': + '@esbuild/win32-x64@0.27.4': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.38.0)': + '@eslint-community/eslint-utils@4.7.0(eslint@10.1.0)': dependencies: - eslint: 9.38.0 + eslint: 10.1.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0)': + '@eslint-community/eslint-utils@4.9.0(eslint@10.1.0)': dependencies: - eslint: 9.38.0 + eslint: 10.1.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0)': + dependencies: + eslint: 10.1.0 + eslint-visitor-keys: 3.4.3 - '@eslint/compat@1.4.0(eslint@9.38.0)': + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/compat@2.0.3(eslint@10.1.0)': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 1.1.1 optionalDependencies: - eslint: 9.38.0 + eslint: 10.1.0 - '@eslint/config-array@0.21.1': + '@eslint/config-array@0.23.3': dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.1 - minimatch: 3.1.2 + '@eslint/object-schema': 3.0.3 + debug: 4.4.3 + minimatch: 10.2.4 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.1': + '@eslint/config-helpers@0.5.3': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 1.1.1 - '@eslint/core@0.16.0': + '@eslint/core@1.1.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.3.5': dependencies: - ajv: 6.12.6 - debug: 4.4.1 + ajv: 6.14.0 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 + js-yaml: 4.1.1 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.38.0': {} + '@eslint/js@10.0.1(eslint@10.1.0)': + optionalDependencies: + eslint: 10.1.0 - '@eslint/object-schema@2.1.7': {} + '@eslint/object-schema@3.0.3': {} - '@eslint/plugin-kit@0.4.0': + '@eslint/plugin-kit@0.6.1': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 1.1.1 levn: 0.4.1 '@gar/promise-retry@1.0.3': {} - '@gerrit0/mini-shiki@3.9.2': + '@gerrit0/mini-shiki@3.23.0': dependencies: - '@shikijs/engine-oniguruma': 3.10.0 - '@shikijs/langs': 3.10.0 - '@shikijs/themes': 3.10.0 - '@shikijs/types': 3.10.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 '@hapi/accept@6.0.3': @@ -11395,7 +11544,7 @@ snapshots: '@hapi/formula@3.0.2': {} - '@hapi/hapi@21.4.3': + '@hapi/hapi@21.4.7': dependencies: '@hapi/accept': 6.0.3 '@hapi/ammo': 6.0.1 @@ -11410,9 +11559,9 @@ snapshots: '@hapi/podium': 5.0.2 '@hapi/shot': 6.0.2 '@hapi/somever': 4.1.1 - '@hapi/statehood': 8.2.0 + '@hapi/statehood': 8.2.1 '@hapi/subtext': 8.1.1 - '@hapi/teamwork': 6.0.0 + '@hapi/teamwork': 6.0.1 '@hapi/topo': 6.0.2 '@hapi/validate': 2.0.1 @@ -11457,7 +11606,7 @@ snapshots: '@hapi/podium@5.0.2': dependencies: '@hapi/hoek': 11.0.7 - '@hapi/teamwork': 6.0.0 + '@hapi/teamwork': 6.0.1 '@hapi/validate': 2.0.1 '@hapi/shot@6.0.2': @@ -11477,7 +11626,7 @@ snapshots: '@hapi/bounce': 3.0.2 '@hapi/hoek': 11.0.7 - '@hapi/statehood@8.2.0': + '@hapi/statehood@8.2.1': dependencies: '@hapi/boom': 10.0.1 '@hapi/bounce': 3.0.2 @@ -11499,7 +11648,7 @@ snapshots: '@hapi/teamwork@4.0.0': {} - '@hapi/teamwork@6.0.0': {} + '@hapi/teamwork@6.0.1': {} '@hapi/tlds@1.1.2': {} @@ -11522,6 +11671,8 @@ snapshots: '@hapi/bourne': 3.0.0 '@hapi/hoek': 11.0.7 + '@harperfast/extended-iterable@1.0.3': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -11539,15 +11690,7 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.2.0(@types/node@24.3.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.3.0 + '@inquirer/ansi@2.0.4': {} '@inquirer/checkbox@4.3.2(@types/node@24.3.0)': dependencies: @@ -11559,12 +11702,14 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/confirm@5.1.14(@types/node@24.3.0)': + '@inquirer/checkbox@5.1.2(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/ansi': 2.0.4 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/figures': 2.0.4 + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/confirm@5.1.21(@types/node@24.3.0)': dependencies: @@ -11573,18 +11718,12 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/core@10.1.15(@types/node@24.3.0)': + '@inquirer/confirm@6.0.10(@types/node@25.5.0)': dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/core@10.3.2(@types/node@24.3.0)': dependencies: @@ -11599,13 +11738,17 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/editor@4.2.15(@types/node@24.3.0)': + '@inquirer/core@11.1.7(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - external-editor: 3.1.0 + '@inquirer/ansi': 2.0.4 + '@inquirer/figures': 2.0.4 + '@inquirer/type': 4.0.4(@types/node@25.5.0) + cli-width: 4.1.0 + fast-wrap-ansi: 0.2.0 + mute-stream: 3.0.0 + signal-exit: 4.1.0 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/editor@4.2.23(@types/node@24.3.0)': dependencies: @@ -11615,13 +11758,13 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/expand@4.0.17(@types/node@24.3.0)': + '@inquirer/editor@5.0.10(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/external-editor': 2.0.4(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/expand@4.0.23(@types/node@24.3.0)': dependencies: @@ -11631,6 +11774,13 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 + '@inquirer/expand@5.0.10(@types/node@25.5.0)': + dependencies: + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) + optionalDependencies: + '@types/node': 25.5.0 + '@inquirer/external-editor@1.0.3(@types/node@24.3.0)': dependencies: chardet: 2.1.1 @@ -11638,16 +11788,16 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/figures@1.0.13': {} + '@inquirer/external-editor@2.0.4(@types/node@25.5.0)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 25.5.0 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.2.1(@types/node@24.3.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - optionalDependencies: - '@types/node': 24.3.0 + '@inquirer/figures@2.0.4': {} '@inquirer/input@4.3.1(@types/node@24.3.0)': dependencies: @@ -11656,12 +11806,12 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/number@3.0.17(@types/node@24.3.0)': + '@inquirer/input@5.0.10(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/number@3.0.23(@types/node@24.3.0)': dependencies: @@ -11670,13 +11820,12 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/password@4.0.17(@types/node@24.3.0)': + '@inquirer/number@4.0.10(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/password@4.0.23(@types/node@24.3.0)': dependencies: @@ -11686,6 +11835,14 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 + '@inquirer/password@5.0.10(@types/node@25.5.0)': + dependencies: + '@inquirer/ansi': 2.0.4 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) + optionalDependencies: + '@types/node': 25.5.0 + '@inquirer/prompts@7.10.1(@types/node@24.3.0)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@24.3.0) @@ -11701,20 +11858,20 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/prompts@7.8.0(@types/node@24.3.0)': - dependencies: - '@inquirer/checkbox': 4.2.0(@types/node@24.3.0) - '@inquirer/confirm': 5.1.14(@types/node@24.3.0) - '@inquirer/editor': 4.2.15(@types/node@24.3.0) - '@inquirer/expand': 4.0.17(@types/node@24.3.0) - '@inquirer/input': 4.2.1(@types/node@24.3.0) - '@inquirer/number': 3.0.17(@types/node@24.3.0) - '@inquirer/password': 4.0.17(@types/node@24.3.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.3.0) - '@inquirer/search': 3.1.0(@types/node@24.3.0) - '@inquirer/select': 4.3.1(@types/node@24.3.0) + '@inquirer/prompts@8.3.2(@types/node@25.5.0)': + dependencies: + '@inquirer/checkbox': 5.1.2(@types/node@25.5.0) + '@inquirer/confirm': 6.0.10(@types/node@25.5.0) + '@inquirer/editor': 5.0.10(@types/node@25.5.0) + '@inquirer/expand': 5.0.10(@types/node@25.5.0) + '@inquirer/input': 5.0.10(@types/node@25.5.0) + '@inquirer/number': 4.0.10(@types/node@25.5.0) + '@inquirer/password': 5.0.10(@types/node@25.5.0) + '@inquirer/rawlist': 5.2.6(@types/node@25.5.0) + '@inquirer/search': 4.1.6(@types/node@25.5.0) + '@inquirer/select': 5.1.2(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/rawlist@4.1.11(@types/node@24.3.0)': dependencies: @@ -11724,22 +11881,12 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/rawlist@4.1.5(@types/node@24.3.0)': + '@inquirer/rawlist@5.2.6(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 - - '@inquirer/search@3.1.0(@types/node@24.3.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/search@3.2.2(@types/node@24.3.0)': dependencies: @@ -11750,15 +11897,13 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inquirer/select@4.3.1(@types/node@24.3.0)': + '@inquirer/search@4.1.6(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@24.3.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/figures': 2.0.4 + '@inquirer/type': 4.0.4(@types/node@25.5.0) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 25.5.0 '@inquirer/select@4.4.2(@types/node@24.3.0)': dependencies: @@ -11770,6 +11915,15 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 + '@inquirer/select@5.1.2(@types/node@25.5.0)': + dependencies: + '@inquirer/ansi': 2.0.4 + '@inquirer/core': 11.1.7(@types/node@25.5.0) + '@inquirer/figures': 2.0.4 + '@inquirer/type': 4.0.4(@types/node@25.5.0) + optionalDependencies: + '@types/node': 25.5.0 + '@inquirer/type@3.0.10(@types/node@24.3.0)': optionalDependencies: '@types/node': 24.3.0 @@ -11778,40 +11932,38 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 - '@inversifyjs/common@1.5.2': {} + '@inquirer/type@4.0.4(@types/node@25.5.0)': + optionalDependencies: + '@types/node': 25.5.0 + + '@inversifyjs/common@2.0.1': {} - '@inversifyjs/container@1.14.0(reflect-metadata@0.2.2)': + '@inversifyjs/container@2.0.1(reflect-metadata@0.2.2)': dependencies: - '@inversifyjs/common': 1.5.2 - '@inversifyjs/core': 9.1.0(reflect-metadata@0.2.2) - '@inversifyjs/plugin': 0.2.0 - '@inversifyjs/reflect-metadata-utils': 1.4.1(reflect-metadata@0.2.2) + '@inversifyjs/common': 2.0.1 + '@inversifyjs/core': 10.0.1(reflect-metadata@0.2.2) + '@inversifyjs/plugin': 0.3.1 + '@inversifyjs/reflect-metadata-utils': 1.5.0(reflect-metadata@0.2.2) reflect-metadata: 0.2.2 - '@inversifyjs/core@9.1.0(reflect-metadata@0.2.2)': + '@inversifyjs/core@10.0.1(reflect-metadata@0.2.2)': dependencies: - '@inversifyjs/common': 1.5.2 - '@inversifyjs/prototype-utils': 0.1.2 - '@inversifyjs/reflect-metadata-utils': 1.4.1(reflect-metadata@0.2.2) + '@inversifyjs/common': 2.0.1 + '@inversifyjs/prototype-utils': 0.2.1 + '@inversifyjs/reflect-metadata-utils': 1.5.0(reflect-metadata@0.2.2) transitivePeerDependencies: - reflect-metadata - '@inversifyjs/plugin@0.2.0': {} + '@inversifyjs/plugin@0.3.1': {} - '@inversifyjs/prototype-utils@0.1.2': + '@inversifyjs/prototype-utils@0.2.1': dependencies: - '@inversifyjs/common': 1.5.2 + '@inversifyjs/common': 2.0.1 - '@inversifyjs/reflect-metadata-utils@1.4.1(reflect-metadata@0.2.2)': + '@inversifyjs/reflect-metadata-utils@1.5.0(reflect-metadata@0.2.2)': dependencies: reflect-metadata: 0.2.2 - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -11853,27 +12005,29 @@ snapshots: '@jsdoc/salty@0.2.9': dependencies: - lodash: 4.17.21 + lodash: 4.17.23 + + '@keyv/serialize@1.1.1': {} - '@lmdb/lmdb-darwin-arm64@3.4.2': + '@lmdb/lmdb-darwin-arm64@3.5.2': optional: true - '@lmdb/lmdb-darwin-x64@3.4.2': + '@lmdb/lmdb-darwin-x64@3.5.2': optional: true - '@lmdb/lmdb-linux-arm64@3.4.2': + '@lmdb/lmdb-linux-arm64@3.5.2': optional: true - '@lmdb/lmdb-linux-arm@3.4.2': + '@lmdb/lmdb-linux-arm@3.5.2': optional: true - '@lmdb/lmdb-linux-x64@3.4.2': + '@lmdb/lmdb-linux-x64@3.5.2': optional: true - '@lmdb/lmdb-win32-arm64@3.4.2': + '@lmdb/lmdb-win32-arm64@3.5.2': optional: true - '@lmdb/lmdb-win32-x64@3.4.2': + '@lmdb/lmdb-win32-x64@3.5.2': optional: true '@ltd/j-toml@1.38.0': {} @@ -11896,7 +12050,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.39.6': + '@mswjs/interceptors@0.41.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -11905,181 +12059,201 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/cli@3.1.5(@emnapi/runtime@1.4.5)(@types/node@24.3.0)': + '@napi-rs/cli@3.6.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)(@types/node@25.5.0)(node-addon-api@8.5.0)': dependencies: - '@inquirer/prompts': 7.8.0(@types/node@24.3.0) - '@napi-rs/cross-toolchain': 1.0.0 - '@napi-rs/wasm-tools': 1.0.0 - '@octokit/rest': 22.0.0 + '@inquirer/prompts': 8.3.2(@types/node@25.5.0) + '@napi-rs/cross-toolchain': 1.0.3(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@napi-rs/wasm-tools': 1.0.1(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@octokit/rest': 22.0.1 clipanion: 4.0.0-rc.4(typanion@3.14.0) colorette: 2.0.20 - debug: 4.4.1 - es-toolkit: 1.39.10 - find-up: 7.0.0 - js-yaml: 4.1.0 - semver: 7.7.2 + emnapi: 1.9.1(node-addon-api@8.5.0) + es-toolkit: 1.45.1 + js-yaml: 4.1.1 + obug: 2.1.1 + semver: 7.7.4 typanion: 3.14.0 optionalDependencies: '@emnapi/runtime': 1.4.5 transitivePeerDependencies: + - '@emnapi/core' - '@napi-rs/cross-toolchain-arm64-target-aarch64' - '@napi-rs/cross-toolchain-arm64-target-armv7' + - '@napi-rs/cross-toolchain-arm64-target-ppc64le' + - '@napi-rs/cross-toolchain-arm64-target-s390x' - '@napi-rs/cross-toolchain-arm64-target-x86_64' - '@napi-rs/cross-toolchain-x64-target-aarch64' - '@napi-rs/cross-toolchain-x64-target-armv7' + - '@napi-rs/cross-toolchain-x64-target-ppc64le' + - '@napi-rs/cross-toolchain-x64-target-s390x' - '@napi-rs/cross-toolchain-x64-target-x86_64' - '@types/node' + - node-addon-api - supports-color - '@napi-rs/cross-toolchain@1.0.0': + '@napi-rs/cross-toolchain@1.0.3(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': dependencies: - '@napi-rs/lzma': 1.4.4 - '@napi-rs/tar': 1.0.0 - debug: 4.4.1 + '@napi-rs/lzma': 1.4.5(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@napi-rs/tar': 1.1.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + debug: 4.4.3 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - supports-color - '@napi-rs/lzma-android-arm-eabi@1.4.4': + '@napi-rs/lzma-android-arm-eabi@1.4.5': optional: true - '@napi-rs/lzma-android-arm64@1.4.4': + '@napi-rs/lzma-android-arm64@1.4.5': optional: true - '@napi-rs/lzma-darwin-arm64@1.4.4': + '@napi-rs/lzma-darwin-arm64@1.4.5': optional: true - '@napi-rs/lzma-darwin-x64@1.4.4': + '@napi-rs/lzma-darwin-x64@1.4.5': optional: true - '@napi-rs/lzma-freebsd-x64@1.4.4': + '@napi-rs/lzma-freebsd-x64@1.4.5': optional: true - '@napi-rs/lzma-linux-arm-gnueabihf@1.4.4': + '@napi-rs/lzma-linux-arm-gnueabihf@1.4.5': optional: true - '@napi-rs/lzma-linux-arm64-gnu@1.4.4': + '@napi-rs/lzma-linux-arm64-gnu@1.4.5': optional: true - '@napi-rs/lzma-linux-arm64-musl@1.4.4': + '@napi-rs/lzma-linux-arm64-musl@1.4.5': optional: true - '@napi-rs/lzma-linux-ppc64-gnu@1.4.4': + '@napi-rs/lzma-linux-ppc64-gnu@1.4.5': optional: true - '@napi-rs/lzma-linux-riscv64-gnu@1.4.4': + '@napi-rs/lzma-linux-riscv64-gnu@1.4.5': optional: true - '@napi-rs/lzma-linux-s390x-gnu@1.4.4': + '@napi-rs/lzma-linux-s390x-gnu@1.4.5': optional: true - '@napi-rs/lzma-linux-x64-gnu@1.4.4': + '@napi-rs/lzma-linux-x64-gnu@1.4.5': optional: true - '@napi-rs/lzma-linux-x64-musl@1.4.4': + '@napi-rs/lzma-linux-x64-musl@1.4.5': optional: true - '@napi-rs/lzma-wasm32-wasi@1.4.4': + '@napi-rs/lzma-wasm32-wasi@1.4.5(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': dependencies: - '@napi-rs/wasm-runtime': 1.0.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@napi-rs/lzma-win32-arm64-msvc@1.4.4': + '@napi-rs/lzma-win32-arm64-msvc@1.4.5': optional: true - '@napi-rs/lzma-win32-ia32-msvc@1.4.4': + '@napi-rs/lzma-win32-ia32-msvc@1.4.5': optional: true - '@napi-rs/lzma-win32-x64-msvc@1.4.4': + '@napi-rs/lzma-win32-x64-msvc@1.4.5': optional: true - '@napi-rs/lzma@1.4.4': + '@napi-rs/lzma@1.4.5(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': optionalDependencies: - '@napi-rs/lzma-android-arm-eabi': 1.4.4 - '@napi-rs/lzma-android-arm64': 1.4.4 - '@napi-rs/lzma-darwin-arm64': 1.4.4 - '@napi-rs/lzma-darwin-x64': 1.4.4 - '@napi-rs/lzma-freebsd-x64': 1.4.4 - '@napi-rs/lzma-linux-arm-gnueabihf': 1.4.4 - '@napi-rs/lzma-linux-arm64-gnu': 1.4.4 - '@napi-rs/lzma-linux-arm64-musl': 1.4.4 - '@napi-rs/lzma-linux-ppc64-gnu': 1.4.4 - '@napi-rs/lzma-linux-riscv64-gnu': 1.4.4 - '@napi-rs/lzma-linux-s390x-gnu': 1.4.4 - '@napi-rs/lzma-linux-x64-gnu': 1.4.4 - '@napi-rs/lzma-linux-x64-musl': 1.4.4 - '@napi-rs/lzma-wasm32-wasi': 1.4.4 - '@napi-rs/lzma-win32-arm64-msvc': 1.4.4 - '@napi-rs/lzma-win32-ia32-msvc': 1.4.4 - '@napi-rs/lzma-win32-x64-msvc': 1.4.4 - - '@napi-rs/tar-android-arm-eabi@1.0.0': + '@napi-rs/lzma-android-arm-eabi': 1.4.5 + '@napi-rs/lzma-android-arm64': 1.4.5 + '@napi-rs/lzma-darwin-arm64': 1.4.5 + '@napi-rs/lzma-darwin-x64': 1.4.5 + '@napi-rs/lzma-freebsd-x64': 1.4.5 + '@napi-rs/lzma-linux-arm-gnueabihf': 1.4.5 + '@napi-rs/lzma-linux-arm64-gnu': 1.4.5 + '@napi-rs/lzma-linux-arm64-musl': 1.4.5 + '@napi-rs/lzma-linux-ppc64-gnu': 1.4.5 + '@napi-rs/lzma-linux-riscv64-gnu': 1.4.5 + '@napi-rs/lzma-linux-s390x-gnu': 1.4.5 + '@napi-rs/lzma-linux-x64-gnu': 1.4.5 + '@napi-rs/lzma-linux-x64-musl': 1.4.5 + '@napi-rs/lzma-wasm32-wasi': 1.4.5(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@napi-rs/lzma-win32-arm64-msvc': 1.4.5 + '@napi-rs/lzma-win32-ia32-msvc': 1.4.5 + '@napi-rs/lzma-win32-x64-msvc': 1.4.5 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + '@napi-rs/tar-android-arm-eabi@1.1.0': optional: true - '@napi-rs/tar-android-arm64@1.0.0': + '@napi-rs/tar-android-arm64@1.1.0': optional: true - '@napi-rs/tar-darwin-arm64@1.0.0': + '@napi-rs/tar-darwin-arm64@1.1.0': optional: true - '@napi-rs/tar-darwin-x64@1.0.0': + '@napi-rs/tar-darwin-x64@1.1.0': optional: true - '@napi-rs/tar-freebsd-x64@1.0.0': + '@napi-rs/tar-freebsd-x64@1.1.0': optional: true - '@napi-rs/tar-linux-arm-gnueabihf@1.0.0': + '@napi-rs/tar-linux-arm-gnueabihf@1.1.0': optional: true - '@napi-rs/tar-linux-arm64-gnu@1.0.0': + '@napi-rs/tar-linux-arm64-gnu@1.1.0': optional: true - '@napi-rs/tar-linux-arm64-musl@1.0.0': + '@napi-rs/tar-linux-arm64-musl@1.1.0': optional: true - '@napi-rs/tar-linux-ppc64-gnu@1.0.0': + '@napi-rs/tar-linux-ppc64-gnu@1.1.0': optional: true - '@napi-rs/tar-linux-s390x-gnu@1.0.0': + '@napi-rs/tar-linux-s390x-gnu@1.1.0': optional: true - '@napi-rs/tar-linux-x64-gnu@1.0.0': + '@napi-rs/tar-linux-x64-gnu@1.1.0': optional: true - '@napi-rs/tar-linux-x64-musl@1.0.0': + '@napi-rs/tar-linux-x64-musl@1.1.0': optional: true - '@napi-rs/tar-wasm32-wasi@1.0.0': + '@napi-rs/tar-wasm32-wasi@1.1.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': dependencies: - '@napi-rs/wasm-runtime': 1.0.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@napi-rs/tar-win32-arm64-msvc@1.0.0': + '@napi-rs/tar-win32-arm64-msvc@1.1.0': optional: true - '@napi-rs/tar-win32-ia32-msvc@1.0.0': + '@napi-rs/tar-win32-ia32-msvc@1.1.0': optional: true - '@napi-rs/tar-win32-x64-msvc@1.0.0': + '@napi-rs/tar-win32-x64-msvc@1.1.0': optional: true - '@napi-rs/tar@1.0.0': + '@napi-rs/tar@1.1.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': optionalDependencies: - '@napi-rs/tar-android-arm-eabi': 1.0.0 - '@napi-rs/tar-android-arm64': 1.0.0 - '@napi-rs/tar-darwin-arm64': 1.0.0 - '@napi-rs/tar-darwin-x64': 1.0.0 - '@napi-rs/tar-freebsd-x64': 1.0.0 - '@napi-rs/tar-linux-arm-gnueabihf': 1.0.0 - '@napi-rs/tar-linux-arm64-gnu': 1.0.0 - '@napi-rs/tar-linux-arm64-musl': 1.0.0 - '@napi-rs/tar-linux-ppc64-gnu': 1.0.0 - '@napi-rs/tar-linux-s390x-gnu': 1.0.0 - '@napi-rs/tar-linux-x64-gnu': 1.0.0 - '@napi-rs/tar-linux-x64-musl': 1.0.0 - '@napi-rs/tar-wasm32-wasi': 1.0.0 - '@napi-rs/tar-win32-arm64-msvc': 1.0.0 - '@napi-rs/tar-win32-ia32-msvc': 1.0.0 - '@napi-rs/tar-win32-x64-msvc': 1.0.0 + '@napi-rs/tar-android-arm-eabi': 1.1.0 + '@napi-rs/tar-android-arm64': 1.1.0 + '@napi-rs/tar-darwin-arm64': 1.1.0 + '@napi-rs/tar-darwin-x64': 1.1.0 + '@napi-rs/tar-freebsd-x64': 1.1.0 + '@napi-rs/tar-linux-arm-gnueabihf': 1.1.0 + '@napi-rs/tar-linux-arm64-gnu': 1.1.0 + '@napi-rs/tar-linux-arm64-musl': 1.1.0 + '@napi-rs/tar-linux-ppc64-gnu': 1.1.0 + '@napi-rs/tar-linux-s390x-gnu': 1.1.0 + '@napi-rs/tar-linux-x64-gnu': 1.1.0 + '@napi-rs/tar-linux-x64-musl': 1.1.0 + '@napi-rs/tar-wasm32-wasi': 1.1.0(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@napi-rs/tar-win32-arm64-msvc': 1.1.0 + '@napi-rs/tar-win32-ia32-msvc': 1.1.0 + '@napi-rs/tar-win32-x64-msvc': 1.1.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' '@napi-rs/wasm-runtime@0.2.4': dependencies: @@ -12087,69 +12261,75 @@ snapshots: '@emnapi/runtime': 1.4.5 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.0.1': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': dependencies: '@emnapi/core': 1.4.5 '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.10.0 + '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-tools-android-arm-eabi@1.0.0': + '@napi-rs/wasm-tools-android-arm-eabi@1.0.1': optional: true - '@napi-rs/wasm-tools-android-arm64@1.0.0': + '@napi-rs/wasm-tools-android-arm64@1.0.1': optional: true - '@napi-rs/wasm-tools-darwin-arm64@1.0.0': + '@napi-rs/wasm-tools-darwin-arm64@1.0.1': optional: true - '@napi-rs/wasm-tools-darwin-x64@1.0.0': + '@napi-rs/wasm-tools-darwin-x64@1.0.1': optional: true - '@napi-rs/wasm-tools-freebsd-x64@1.0.0': + '@napi-rs/wasm-tools-freebsd-x64@1.0.1': optional: true - '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.0': + '@napi-rs/wasm-tools-linux-arm64-gnu@1.0.1': optional: true - '@napi-rs/wasm-tools-linux-arm64-musl@1.0.0': + '@napi-rs/wasm-tools-linux-arm64-musl@1.0.1': optional: true - '@napi-rs/wasm-tools-linux-x64-gnu@1.0.0': + '@napi-rs/wasm-tools-linux-x64-gnu@1.0.1': optional: true - '@napi-rs/wasm-tools-linux-x64-musl@1.0.0': + '@napi-rs/wasm-tools-linux-x64-musl@1.0.1': optional: true - '@napi-rs/wasm-tools-wasm32-wasi@1.0.0': + '@napi-rs/wasm-tools-wasm32-wasi@1.0.1(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': dependencies: - '@napi-rs/wasm-runtime': 1.0.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.0': + '@napi-rs/wasm-tools-win32-arm64-msvc@1.0.1': optional: true - '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.0': + '@napi-rs/wasm-tools-win32-ia32-msvc@1.0.1': optional: true - '@napi-rs/wasm-tools-win32-x64-msvc@1.0.0': + '@napi-rs/wasm-tools-win32-x64-msvc@1.0.1': optional: true - '@napi-rs/wasm-tools@1.0.0': + '@napi-rs/wasm-tools@1.0.1(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5)': optionalDependencies: - '@napi-rs/wasm-tools-android-arm-eabi': 1.0.0 - '@napi-rs/wasm-tools-android-arm64': 1.0.0 - '@napi-rs/wasm-tools-darwin-arm64': 1.0.0 - '@napi-rs/wasm-tools-darwin-x64': 1.0.0 - '@napi-rs/wasm-tools-freebsd-x64': 1.0.0 - '@napi-rs/wasm-tools-linux-arm64-gnu': 1.0.0 - '@napi-rs/wasm-tools-linux-arm64-musl': 1.0.0 - '@napi-rs/wasm-tools-linux-x64-gnu': 1.0.0 - '@napi-rs/wasm-tools-linux-x64-musl': 1.0.0 - '@napi-rs/wasm-tools-wasm32-wasi': 1.0.0 - '@napi-rs/wasm-tools-win32-arm64-msvc': 1.0.0 - '@napi-rs/wasm-tools-win32-ia32-msvc': 1.0.0 - '@napi-rs/wasm-tools-win32-x64-msvc': 1.0.0 + '@napi-rs/wasm-tools-android-arm-eabi': 1.0.1 + '@napi-rs/wasm-tools-android-arm64': 1.0.1 + '@napi-rs/wasm-tools-darwin-arm64': 1.0.1 + '@napi-rs/wasm-tools-darwin-x64': 1.0.1 + '@napi-rs/wasm-tools-freebsd-x64': 1.0.1 + '@napi-rs/wasm-tools-linux-arm64-gnu': 1.0.1 + '@napi-rs/wasm-tools-linux-arm64-musl': 1.0.1 + '@napi-rs/wasm-tools-linux-x64-gnu': 1.0.1 + '@napi-rs/wasm-tools-linux-x64-musl': 1.0.1 + '@napi-rs/wasm-tools-wasm32-wasi': 1.0.1(@emnapi/core@1.4.5)(@emnapi/runtime@1.4.5) + '@napi-rs/wasm-tools-win32-arm64-msvc': 1.0.1 + '@napi-rs/wasm-tools-win32-ia32-msvc': 1.0.1 + '@napi-rs/wasm-tools-win32-x64-msvc': 1.0.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' '@noble/ciphers@1.3.0': {} @@ -12165,6 +12345,10 @@ snapshots: dependencies: '@noble/hashes': 1.7.1 + '@noble/curves@1.9.1': + dependencies: + '@noble/hashes': 1.8.0 + '@noble/curves@1.9.2': dependencies: '@noble/hashes': 1.8.0 @@ -12181,6 +12365,8 @@ snapshots: '@noble/hashes@1.8.0': {} + '@noble/hashes@2.0.1': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12208,7 +12394,7 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.2.2 + lru-cache: 11.2.7 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color @@ -12231,8 +12417,8 @@ snapshots: common-ancestor-path: 1.0.1 hosted-git-info: 9.0.2 json-stringify-nice: 1.1.4 - lru-cache: 11.2.2 - minimatch: 10.0.3 + lru-cache: 11.2.7 + minimatch: 10.2.4 nopt: 8.1.0 npm-install-checks: 7.1.2 npm-package-arg: 13.0.1 @@ -12244,7 +12430,7 @@ snapshots: proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - semver: 7.7.2 + semver: 7.7.4 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 4.0.0 @@ -12253,11 +12439,11 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.2 + semver: 7.7.4 '@npmcli/fs@5.0.0': dependencies: - semver: 7.7.2 + semver: 7.7.4 '@npmcli/git@6.0.3': dependencies: @@ -12267,7 +12453,7 @@ snapshots: npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.2 + semver: 7.7.4 which: 5.0.0 '@npmcli/git@7.0.2': @@ -12275,10 +12461,10 @@ snapshots: '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.2.2 + lru-cache: 11.2.7 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.7.4 which: 6.0.1 '@npmcli/installed-package-contents@3.0.0': @@ -12296,7 +12482,7 @@ snapshots: '@npmcli/name-from-folder': 4.0.0 '@npmcli/package-json': 7.0.2 glob: 13.0.6 - minimatch: 10.0.3 + minimatch: 10.2.4 '@npmcli/metavuln-calculator@9.0.3': dependencies: @@ -12304,7 +12490,7 @@ snapshots: json-parse-even-better-errors: 5.0.0 pacote: 21.5.0 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -12323,7 +12509,7 @@ snapshots: hosted-git-info: 9.0.2 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 '@npmcli/promise-spawn@8.0.3': @@ -12360,7 +12546,7 @@ snapshots: enquirer: 2.3.6 minimatch: 10.2.4 nx: 22.6.1 - semver: 7.7.2 + semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -12408,19 +12594,19 @@ snapshots: before-after-hook: 2.2.3 universal-user-agent: 6.0.1 - '@octokit/core@7.0.3': + '@octokit/core@7.0.6': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.3 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/graphql': 9.0.3 + '@octokit/request': 10.0.8 + '@octokit/request-error': 7.1.0 + '@octokit/types': 16.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@11.0.0': + '@octokit/endpoint@11.0.3': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 16.0.0 universal-user-agent: 7.0.3 '@octokit/endpoint@9.0.6': @@ -12434,15 +12620,15 @@ snapshots: '@octokit/types': 13.10.0 universal-user-agent: 6.0.1 - '@octokit/graphql@9.0.1': + '@octokit/graphql@9.0.3': dependencies: - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.8 + '@octokit/types': 16.0.0 universal-user-agent: 7.0.3 '@octokit/openapi-types@24.2.0': {} - '@octokit/openapi-types@25.1.0': {} + '@octokit/openapi-types@27.0.0': {} '@octokit/plugin-enterprise-rest@6.0.1': {} @@ -12451,28 +12637,28 @@ snapshots: '@octokit/core': 5.2.2 '@octokit/types': 13.10.0 - '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.3)': + '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.3 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.6 + '@octokit/types': 16.0.0 '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': dependencies: '@octokit/core': 5.2.2 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.3)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.3 + '@octokit/core': 7.0.6 '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': dependencies: '@octokit/core': 5.2.2 '@octokit/types': 13.10.0 - '@octokit/plugin-rest-endpoint-methods@16.0.0(@octokit/core@7.0.3)': + '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.3 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.6 + '@octokit/types': 16.0.0 '@octokit/request-error@5.1.1': dependencies: @@ -12480,16 +12666,17 @@ snapshots: deprecation: 2.3.1 once: 1.4.0 - '@octokit/request-error@7.0.0': + '@octokit/request-error@7.1.0': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 16.0.0 - '@octokit/request@10.0.3': + '@octokit/request@10.0.8': dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/endpoint': 11.0.3 + '@octokit/request-error': 7.1.0 + '@octokit/types': 16.0.0 fast-content-type-parse: 3.0.0 + json-with-bigint: 3.5.8 universal-user-agent: 7.0.3 '@octokit/request@8.4.1': @@ -12506,20 +12693,20 @@ snapshots: '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) - '@octokit/rest@22.0.0': + '@octokit/rest@22.0.1': dependencies: - '@octokit/core': 7.0.3 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.3) - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.3) - '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.3) + '@octokit/core': 7.0.6 + '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.6) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6) + '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.6) '@octokit/types@13.10.0': dependencies: '@octokit/openapi-types': 24.2.0 - '@octokit/types@14.1.0': + '@octokit/types@16.0.0': dependencies: - '@octokit/openapi-types': 25.1.0 + '@octokit/openapi-types': 27.0.0 '@open-draft/deferred-promise@2.2.0': {} @@ -12530,6 +12717,8 @@ snapshots: '@open-draft/until@2.1.0': {} + '@pinojs/redact@0.4.0': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -12581,7 +12770,7 @@ snapshots: '@pm2/pm2-version-check@1.0.4': dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -12634,6 +12823,8 @@ snapshots: '@scure/base@1.2.6': {} + '@scure/base@2.0.0': {} + '@scure/bip32@1.4.0': dependencies: '@noble/curves': 1.4.2 @@ -12667,22 +12858,27 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 + '@scure/bip39@2.0.1': + dependencies: + '@noble/hashes': 2.0.1 + '@scure/base': 2.0.0 + '@sec-ant/readable-stream@0.4.1': {} - '@shikijs/engine-oniguruma@3.10.0': + '@shikijs/engine-oniguruma@3.23.0': dependencies: - '@shikijs/types': 3.10.0 + '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.10.0': + '@shikijs/langs@3.23.0': dependencies: - '@shikijs/types': 3.10.0 + '@shikijs/types': 3.23.0 - '@shikijs/themes@3.10.0': + '@shikijs/themes@3.23.0': dependencies: - '@shikijs/types': 3.10.0 + '@shikijs/types': 3.23.0 - '@shikijs/types@3.10.0': + '@shikijs/types@3.23.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -12733,18 +12929,23 @@ snapshots: dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@13.0.5': + '@sinonjs/fake-timers@15.1.1': dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/samsam@8.0.3': + '@sinonjs/samsam@9.0.3': dependencies: '@sinonjs/commons': 3.0.1 type-detect: 4.1.0 + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.3 + text-hex: 1.0.0 + '@sqltools/formatter@1.2.5': {} - '@standard-schema/spec@1.0.0': {} + '@standard-schema/spec@1.1.0': {} '@szmarczak/http-timer@5.0.1': dependencies: @@ -12774,7 +12975,7 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 10.2.4 - '@tybys/wasm-util@0.10.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true @@ -12799,6 +13000,8 @@ snapshots: dependencies: '@types/node': 24.3.0 + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.8': {} '@types/fast-levenshtein@0.0.4': {} @@ -12836,7 +13039,7 @@ snapshots: '@types/linkify-it@5.0.0': {} - '@types/listr@0.14.9': + '@types/listr@0.14.10': dependencies: '@types/node': 24.3.0 rxjs: 6.6.7 @@ -12890,11 +13093,16 @@ snapshots: dependencies: undici-types: 7.10.0 + '@types/node@25.5.0': + dependencies: + undici-types: 7.18.2 + optional: true + '@types/normalize-package-data@2.4.4': {} '@types/parse-json@4.0.2': {} - '@types/pg@8.15.5': + '@types/pg@8.20.0': dependencies: '@types/node': 24.3.0 pg-protocol: 1.10.3 @@ -12909,20 +13117,20 @@ snapshots: dependencies: '@types/node': 24.3.0 - '@types/pumpify@1.4.4': + '@types/pumpify@1.4.5': dependencies: '@types/duplexify': 3.6.4 '@types/node': 24.3.0 - '@types/readable-stream@4.0.21': + '@types/readable-stream@4.0.23': dependencies: '@types/node': 24.3.0 '@types/seedrandom@3.0.8': {} - '@types/semver@7.7.0': {} + '@types/semver@7.7.1': {} - '@types/sinon@17.0.4': + '@types/sinon@21.0.0': dependencies: '@types/sinonjs__fake-timers': 8.1.5 @@ -12944,32 +13152,31 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0)(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/type-utils': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.46.2 - eslint: 9.38.0 - graphemer: 1.4.0 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/type-utils': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.0 + eslint: 10.1.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2)': + '@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2)': dependencies: - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.1 - eslint: 9.38.0 - typescript: 5.9.2 + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.0 + debug: 4.4.3 + eslint: 10.1.0 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -12977,48 +13184,48 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) '@typescript-eslint/types': 8.40.0 - debug: 4.4.1 + debug: 4.4.3 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.2(typescript@5.9.2)': + '@typescript-eslint/project-service@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.2) - '@typescript-eslint/types': 8.46.2 - debug: 4.4.1 - typescript: 5.9.2 + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/types': 8.58.0 + debug: 4.4.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.46.2': + '@typescript-eslint/scope-manager@8.58.0': dependencies: - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/visitor-keys': 8.46.2 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.2)': dependencies: - typescript: 5.9.2 + typescript: 6.0.2 - '@typescript-eslint/type-utils@8.46.2(eslint@9.38.0)(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.58.0(eslint@10.1.0)(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - debug: 4.4.1 - eslint: 9.38.0 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + debug: 4.4.3 + eslint: 10.1.0 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.40.0': {} - '@typescript-eslint/types@8.46.2': {} + '@typescript-eslint/types@8.58.0': {} '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)': dependencies: @@ -13026,40 +13233,39 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) '@typescript-eslint/types': 8.40.0 '@typescript-eslint/visitor-keys': 8.40.0 - debug: 4.4.1 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.4 ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.46.2(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.2) - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.1 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 + '@typescript-eslint/project-service': 8.58.0(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 + debug: 4.4.3 + minimatch: 10.2.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.2(eslint@9.38.0)(typescript@5.9.2)': + '@typescript-eslint/utils@8.58.0(eslint@10.1.0)(typescript@6.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.38.0) - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.2) - eslint: 9.38.0 - typescript: 5.9.2 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + eslint: 10.1.0 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -13068,10 +13274,10 @@ snapshots: '@typescript-eslint/types': 8.40.0 eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.46.2': + '@typescript-eslint/visitor-keys@8.58.0': dependencies: - '@typescript-eslint/types': 8.46.2 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.58.0 + eslint-visitor-keys: 5.0.1 '@vue/compiler-core@3.5.18': dependencies: @@ -13125,11 +13331,21 @@ snapshots: abbrev@4.0.0: {} - abitype@1.0.8(typescript@5.9.2)(zod@3.24.4): + abitype@1.0.8(typescript@6.0.2)(zod@3.24.4): optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 zod: 3.24.4 + abitype@1.2.3(typescript@6.0.2)(zod@3.24.4): + optionalDependencies: + typescript: 6.0.2 + zod: 3.24.4 + + abitype@1.2.3(typescript@6.0.2)(zod@4.3.6): + optionalDependencies: + typescript: 6.0.2 + zod: 4.3.6 + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -13139,18 +13355,18 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 - acorn@7.4.1: {} + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 acorn@8.15.0: {} + acorn@8.16.0: {} + add-stream@1.0.0: {} aes-js@4.0.0-beta.5: {} @@ -13162,23 +13378,23 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - ajv: 8.17.1 + ajv: 8.18.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.0.6 @@ -13199,10 +13415,6 @@ snapshots: ansi-escapes@3.2.0: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-escapes@7.0.0: dependencies: environment: 1.1.0 @@ -13233,6 +13445,8 @@ snapshots: ansis@4.0.0-node10: {} + ansis@4.2.0: {} + any-observable@0.3.0(rxjs@6.6.7): optionalDependencies: rxjs: 6.6.7 @@ -13333,7 +13547,7 @@ snapshots: async@2.6.4: dependencies: - lodash: 4.17.21 + lodash: 4.17.23 async@3.2.6: {} @@ -13366,7 +13580,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.20: {} + baseline-browser-mapping@2.10.12: {} basic-ftp@5.0.5: {} @@ -13379,14 +13593,14 @@ snapshots: before-after-hook@4.0.0: {} - better-sqlite3@12.2.0: + better-sqlite3@12.8.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 big-number@2.0.0: {} - bignumber.js@9.3.1: {} + bignumber.js@10.0.2: {} bin-links@5.0.0: dependencies: @@ -13445,7 +13659,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.6.0 + chalk: 5.6.2 cli-boxes: 3.0.0 string-width: 7.2.0 type-fest: 4.37.0 @@ -13469,13 +13683,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.27.0: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.20 - caniuse-lite: 1.0.30001751 - electron-to-chromium: 1.5.240 - node-releases: 2.0.26 - update-browserslist-db: 1.1.4(browserslist@4.27.0) + baseline-browser-mapping: 2.10.12 + caniuse-lite: 1.0.30001782 + electron-to-chromium: 1.5.329 + node-releases: 2.0.36 + update-browserslist-db: 1.2.3(browserslist@4.28.1) bs58@6.0.0: dependencies: @@ -13512,11 +13726,13 @@ snapshots: builtin-modules@5.0.0: {} + byte-counter@0.1.0: {} + byte-size@8.1.1: {} bytes@3.1.2: {} - c8@10.1.3: + c8@11.0.0: dependencies: '@bcoe/v8-coverage': 1.0.2 '@istanbuljs/schema': 0.1.3 @@ -13525,7 +13741,7 @@ snapshots: istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.1.7 - test-exclude: 7.0.1 + test-exclude: 8.0.0 v8-to-istanbul: 9.3.0 yargs: 17.7.2 yargs-parser: 21.1.1 @@ -13542,7 +13758,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 7.0.3 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.13 unique-filename: 4.0.0 cacache@20.0.4: @@ -13550,8 +13766,8 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.2.2 - minipass: 7.1.2 + lru-cache: 11.2.7 + minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -13570,15 +13786,15 @@ snapshots: normalize-url: 8.0.2 responselike: 3.0.0 - cacheable-request@12.0.1: + cacheable-request@13.0.18: dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 9.0.1 http-cache-semantics: 4.2.0 - keyv: 4.5.4 + keyv: 5.6.0 mimic-response: 4.0.0 - normalize-url: 8.0.2 - responselike: 3.0.0 + normalize-url: 8.1.1 + responselike: 4.0.2 call-bind-apply-helpers@1.0.2: dependencies: @@ -13618,7 +13834,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001751: {} + caniuse-lite@1.0.30001782: {} capture-console@1.0.2: dependencies: @@ -13628,7 +13844,7 @@ snapshots: catharsis@0.9.0: dependencies: - lodash: 4.17.21 + lodash: 4.17.23 chalk@1.1.3: dependencies: @@ -13659,12 +13875,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} + chalk@5.6.2: {} change-case@5.4.4: {} - chardet@0.7.0: {} - chardet@2.1.1: {} charm@0.1.2: {} @@ -13701,6 +13915,8 @@ snapshots: ci-info@4.3.1: {} + ci-info@4.4.0: {} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -13725,6 +13941,8 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.4.0: {} + cli-table3@0.6.5: dependencies: string-width: 4.2.3 @@ -13779,29 +13997,29 @@ snapshots: dependencies: color-name: 1.1.4 + color-convert@3.1.3: + dependencies: + color-name: 2.1.0 + color-name@1.1.3: {} color-name@1.1.4: {} - color-string@1.9.1: + color-name@2.1.0: {} + + color-string@2.1.4: dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 + color-name: 2.1.0 color-support@1.1.3: {} - color@3.2.1: + color@5.0.3: dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 + color-convert: 3.1.3 + color-string: 2.1.4 colorette@2.0.20: {} - colorspace@1.1.4: - dependencies: - color: 3.2.1 - text-hex: 1.0.0 - columnify@1.6.0: dependencies: strip-ansi: 6.0.1 @@ -13813,7 +14031,7 @@ snapshots: commander@12.1.0: {} - commander@14.0.2: {} + commander@14.0.3: {} commander@2.15.1: {} @@ -13877,7 +14095,7 @@ snapshots: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.7.2 + semver: 7.7.4 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -13908,9 +14126,9 @@ snapshots: cookie@0.6.0: {} - core-js-compat@3.46.0: + core-js-compat@3.49.0: dependencies: - browserslist: 4.27.0 + browserslist: 4.28.1 core-util-is@1.0.3: {} @@ -13931,14 +14149,14 @@ snapshots: optionalDependencies: typescript: 5.9.2 - cron@4.3.3: + cron@4.4.0: dependencies: '@types/luxon': 3.7.1 luxon: 3.7.1 croner@4.1.97: {} - cross-env@10.0.0: + cross-env@10.1.0: dependencies: '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 @@ -13988,10 +14206,10 @@ snapshots: dateformat@4.6.3: {} - dayjs@1.11.13: {} - dayjs@1.11.18: {} + dayjs@1.11.20: {} + dayjs@1.8.36: {} debug@2.6.9: @@ -14021,13 +14239,17 @@ snapshots: decamelize@1.2.0: {} + decompress-response@10.0.0: + dependencies: + mimic-response: 4.0.0 + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 dedent@1.5.3: {} - dedent@1.6.0: {} + dedent@1.7.2: {} deep-extend@0.6.0: {} @@ -14061,7 +14283,10 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - delay@6.0.0: {} + delay@7.0.0: + dependencies: + random-int: 3.1.0 + unlimited-timeout: 0.1.0 delayed-stream@1.0.0: {} @@ -14116,6 +14341,8 @@ snapshots: detect-indent@7.0.1: {} + detect-indent@7.0.2: {} + detect-libc@2.0.4: {} detect-newline@4.0.1: {} @@ -14178,7 +14405,7 @@ snapshots: diff@5.2.0: {} - diff@7.0.0: {} + diff@8.0.4: {} doctrine@2.1.0: dependencies: @@ -14217,10 +14444,14 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.240: {} + electron-to-chromium@1.5.329: {} elegant-spinner@1.0.1: {} + emnapi@1.9.1(node-addon-api@8.5.0): + optionalDependencies: + node-addon-api: 8.5.0 + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -14253,7 +14484,9 @@ snapshots: env-paths@2.2.1: {} - env-paths@3.0.0: {} + env-paths@4.0.0: + dependencies: + is-safe-filename: 0.1.1 envfile@7.1.0: {} @@ -14349,7 +14582,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.39.10: {} + es-toolkit@1.45.1: {} es5-ext@0.10.64: dependencies: @@ -14376,34 +14609,34 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.4 - esbuild@0.25.8: + esbuild@0.27.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.8 - '@esbuild/android-arm': 0.25.8 - '@esbuild/android-arm64': 0.25.8 - '@esbuild/android-x64': 0.25.8 - '@esbuild/darwin-arm64': 0.25.8 - '@esbuild/darwin-x64': 0.25.8 - '@esbuild/freebsd-arm64': 0.25.8 - '@esbuild/freebsd-x64': 0.25.8 - '@esbuild/linux-arm': 0.25.8 - '@esbuild/linux-arm64': 0.25.8 - '@esbuild/linux-ia32': 0.25.8 - '@esbuild/linux-loong64': 0.25.8 - '@esbuild/linux-mips64el': 0.25.8 - '@esbuild/linux-ppc64': 0.25.8 - '@esbuild/linux-riscv64': 0.25.8 - '@esbuild/linux-s390x': 0.25.8 - '@esbuild/linux-x64': 0.25.8 - '@esbuild/netbsd-arm64': 0.25.8 - '@esbuild/netbsd-x64': 0.25.8 - '@esbuild/openbsd-arm64': 0.25.8 - '@esbuild/openbsd-x64': 0.25.8 - '@esbuild/openharmony-arm64': 0.25.8 - '@esbuild/sunos-x64': 0.25.8 - '@esbuild/win32-arm64': 0.25.8 - '@esbuild/win32-ia32': 0.25.8 - '@esbuild/win32-x64': 0.25.8 + '@esbuild/aix-ppc64': 0.27.4 + '@esbuild/android-arm': 0.27.4 + '@esbuild/android-arm64': 0.27.4 + '@esbuild/android-x64': 0.27.4 + '@esbuild/darwin-arm64': 0.27.4 + '@esbuild/darwin-x64': 0.27.4 + '@esbuild/freebsd-arm64': 0.27.4 + '@esbuild/freebsd-x64': 0.27.4 + '@esbuild/linux-arm': 0.27.4 + '@esbuild/linux-arm64': 0.27.4 + '@esbuild/linux-ia32': 0.27.4 + '@esbuild/linux-loong64': 0.27.4 + '@esbuild/linux-mips64el': 0.27.4 + '@esbuild/linux-ppc64': 0.27.4 + '@esbuild/linux-riscv64': 0.27.4 + '@esbuild/linux-s390x': 0.27.4 + '@esbuild/linux-x64': 0.27.4 + '@esbuild/netbsd-arm64': 0.27.4 + '@esbuild/netbsd-x64': 0.27.4 + '@esbuild/openbsd-arm64': 0.27.4 + '@esbuild/openbsd-x64': 0.27.4 + '@esbuild/openharmony-arm64': 0.27.4 + '@esbuild/sunos-x64': 0.27.4 + '@esbuild/win32-arm64': 0.27.4 + '@esbuild/win32-ia32': 0.27.4 + '@esbuild/win32-x64': 0.27.4 escalade@3.2.0: {} @@ -14440,17 +14673,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - eslint: 9.38.0 + '@typescript-eslint/parser': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + eslint: 10.1.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14459,9 +14692,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.38.0 + eslint: 10.1.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14473,111 +14706,108 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.2) + '@typescript-eslint/parser': 8.58.0(eslint@10.1.0)(typescript@6.0.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.5.4(eslint@9.38.0)(prettier@3.6.2): + eslint-plugin-perfectionist@5.7.0(eslint@10.1.0)(typescript@6.0.2): dependencies: - eslint: 9.38.0 - prettier: 3.6.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.11 + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + eslint: 10.1.0 + natural-orderby: 5.0.0 + transitivePeerDependencies: + - supports-color + - typescript - eslint-plugin-promise@7.2.1(eslint@9.38.0): + eslint-plugin-prettier@5.5.5(eslint@10.1.0)(prettier@3.8.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.38.0) - eslint: 9.38.0 + eslint: 10.1.0 + prettier: 3.8.1 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.38.0): + eslint-plugin-promise@7.2.1(eslint@10.1.0): dependencies: - eslint: 9.38.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@10.1.0) + eslint: 10.1.0 - eslint-plugin-sonarjs@3.0.5(eslint@9.38.0): + eslint-plugin-sonarjs@4.0.2(eslint@10.1.0): dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 builtin-modules: 3.3.0 bytes: 3.1.2 - eslint: 9.38.0 + eslint: 10.1.0 functional-red-black-tree: 1.0.1 + globals: 17.4.0 jsx-ast-utils-x: 0.1.0 lodash.merge: 4.6.2 - minimatch: 9.0.5 + minimatch: 10.2.4 scslre: 0.3.0 - semver: 7.7.2 - typescript: 5.9.2 - - eslint-plugin-sort-keys-fix@1.1.2: - dependencies: - espree: 6.2.1 - esutils: 2.0.3 - natural-compare: 1.4.0 - requireindex: 1.2.0 + semver: 7.7.4 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 - eslint-plugin-unicorn@62.0.0(eslint@9.38.0): + eslint-plugin-unicorn@64.0.0(eslint@10.1.0): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0) - '@eslint/plugin-kit': 0.4.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0) change-case: 5.4.4 - ci-info: 4.3.1 + ci-info: 4.4.0 clean-regexp: 1.0.0 - core-js-compat: 3.46.0 - eslint: 9.38.0 - esquery: 1.6.0 + core-js-compat: 3.49.0 + eslint: 10.1.0 find-up-simple: 1.0.1 - globals: 16.4.0 + globals: 17.4.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 pluralize: 8.0.0 regexp-tree: 0.1.27 regjsparser: 0.13.0 - semver: 7.7.3 + semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0): dependencies: - eslint: 9.38.0 + eslint: 10.1.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0)(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2) - eslint-scope@8.4.0: + eslint-scope@9.1.2: dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-visitor-keys@1.3.0: {} - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} - eslint@9.38.0: + eslint-visitor-keys@5.0.1: {} + + eslint@10.1.0: dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.1 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.38.0 - '@eslint/plugin-kit': 0.4.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@10.1.0) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.3 + '@eslint/config-helpers': 0.5.3 + '@eslint/core': 1.1.1 + '@eslint/plugin-kit': 0.6.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 + ajv: 6.14.0 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -14587,15 +14817,12 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.4 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: - supports-color - esmock@2.7.1: {} - esmock@2.7.3: {} esniff@2.0.1: @@ -14611,11 +14838,11 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 - espree@6.2.1: + espree@11.2.0: dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - eslint-visitor-keys: 1.3.0 + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 espree@9.6.1: dependencies: @@ -14625,7 +14852,7 @@ snapshots: esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -14692,7 +14919,7 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@9.6.0: + execa@9.6.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.6 @@ -14702,7 +14929,7 @@ snapshots: is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 - pretty-ms: 9.2.0 + pretty-ms: 9.3.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.1 @@ -14755,12 +14982,6 @@ snapshots: dependencies: type: 2.7.3 - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - extrareqp2@1.0.0(debug@4.3.7): dependencies: follow-redirects: 1.15.10(debug@4.3.7) @@ -14769,7 +14990,7 @@ snapshots: fast-content-type-parse@3.0.0: {} - fast-copy@3.0.2: {} + fast-copy@4.0.2: {} fast-deep-equal@3.1.3: {} @@ -14793,14 +15014,22 @@ snapshots: dependencies: fastest-levenshtein: 1.0.16 - fast-redact@3.5.0: {} - fast-safe-stringify@2.1.1: {} fast-sort@3.4.1: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + fast-uri@3.0.6: {} + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + fastest-levenshtein@1.0.16: {} fastq@1.19.1: @@ -14813,6 +15042,10 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fecha@4.2.3: {} figures@1.7.0: @@ -14888,12 +15121,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - findup-sync@5.0.0: dependencies: detect-file: 1.0.0 @@ -14959,9 +15186,15 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.4: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-minipass@3.0.3: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 fs.realpath@1.0.0: {} @@ -15047,7 +15280,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -15071,7 +15304,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.7.2 + semver: 7.7.4 git-sha1@0.1.2: {} @@ -15103,7 +15336,16 @@ snapshots: foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 - minipass: 7.1.2 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -15111,10 +15353,10 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 4.1.1 - minimatch: 10.0.3 - minipass: 7.1.2 + minimatch: 10.2.4 + minipass: 7.1.3 package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 + path-scurry: 2.0.2 glob@13.0.6: dependencies: @@ -15127,7 +15369,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.1.4 once: 1.4.0 path-is-absolute: 1.0.1 @@ -15155,7 +15397,7 @@ snapshots: globals@14.0.0: {} - globals@16.4.0: {} + globals@17.4.0: {} globalthis@1.0.4: dependencies: @@ -15182,26 +15424,25 @@ snapshots: p-cancelable: 4.0.1 responselike: 3.0.0 - got@14.4.7: + got@14.6.6: dependencies: '@sindresorhus/is': 7.0.2 - '@szmarczak/http-timer': 5.0.1 + byte-counter: 0.1.0 cacheable-lookup: 7.0.0 - cacheable-request: 12.0.1 - decompress-response: 6.0.0 + cacheable-request: 13.0.18 + decompress-response: 10.0.0 form-data-encoder: 4.1.0 http2-wrapper: 2.2.1 + keyv: 5.6.0 lowercase-keys: 3.0.0 p-cancelable: 4.0.1 - responselike: 3.0.0 + responselike: 4.0.2 type-fest: 4.41.0 graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -15261,7 +15502,7 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.2 + lru-cache: 11.2.7 html-escaper@2.0.2: {} @@ -15278,7 +15519,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -15290,7 +15531,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -15317,7 +15558,7 @@ snapshots: ignore-walk@8.0.0: dependencies: - minimatch: 10.0.3 + minimatch: 10.2.4 ignore@5.3.2: {} @@ -15328,6 +15569,8 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-fresh@4.0.0: {} + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 @@ -15360,7 +15603,7 @@ snapshots: npm-package-arg: 13.0.1 promzard: 2.0.0 read: 4.1.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 validate-npm-package-name: 6.0.2 @@ -15382,11 +15625,11 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - inversify@7.10.3(reflect-metadata@0.2.2): + inversify@8.1.0(reflect-metadata@0.2.2): dependencies: - '@inversifyjs/common': 1.5.2 - '@inversifyjs/container': 1.14.0(reflect-metadata@0.2.2) - '@inversifyjs/core': 9.1.0(reflect-metadata@0.2.2) + '@inversifyjs/common': 2.0.1 + '@inversifyjs/container': 2.0.1(reflect-metadata@0.2.2) + '@inversifyjs/core': 10.0.1(reflect-metadata@0.2.2) transitivePeerDependencies: - reflect-metadata @@ -15399,7 +15642,7 @@ snapshots: ipaddr.js@1.9.1: {} - ipaddr.js@2.2.0: {} + ipaddr.js@2.3.0: {} is-array-buffer@3.0.5: dependencies: @@ -15409,8 +15652,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.2: {} - is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -15530,6 +15771,8 @@ snapshots: is-regexp@1.0.0: {} + is-safe-filename@0.1.1: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -15567,8 +15810,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} - is-unicode-supported@2.1.0: {} is-url-superb@4.0.0: {} @@ -15651,7 +15892,7 @@ snapshots: chalk: 4.1.2 pretty-format: 30.3.0 - joi@18.0.0: + joi@18.1.2: dependencies: '@hapi/address': 5.1.1 '@hapi/formula': 3.0.2 @@ -15659,7 +15900,7 @@ snapshots: '@hapi/pinpoint': 2.0.1 '@hapi/tlds': 1.1.2 '@hapi/topo': 6.0.2 - '@standard-schema/spec': 1.0.0 + '@standard-schema/spec': 1.1.0 joycon@3.1.1: {} @@ -15733,6 +15974,8 @@ snapshots: json-stringify-safe@5.0.1: {} + json-with-bigint@3.5.8: {} + json5@1.0.2: dependencies: minimist: 1.2.8 @@ -15759,6 +16002,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + keyv@5.6.0: + dependencies: + '@keyv/serialize': 1.1.1 + kind-of@6.0.3: {} klaw@3.0.0: @@ -15877,7 +16124,7 @@ snapshots: npm-package-arg: 13.0.1 npm-registry-fetch: 19.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 sigstore: 4.1.0 ssri: 12.0.0 transitivePeerDependencies: @@ -15893,15 +16140,14 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@16.2.6: + lint-staged@16.4.0: dependencies: - commander: 14.0.2 + commander: 14.0.3 listr2: 9.0.5 - micromatch: 4.0.8 - nano-spawn: 2.0.0 - pidtree: 0.6.0 + picomatch: 4.0.3 string-argv: 0.3.2 - yaml: 2.8.1 + tinyexec: 1.0.4 + yaml: 2.8.3 listr-silent-renderer@1.1.1: {} @@ -15948,21 +16194,22 @@ snapshots: - zen-observable - zenObservable - lmdb@3.4.2: + lmdb@3.5.2: dependencies: + '@harperfast/extended-iterable': 1.0.3 msgpackr: 1.11.5 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.0 weak-lru-cache: 1.2.2 optionalDependencies: - '@lmdb/lmdb-darwin-arm64': 3.4.2 - '@lmdb/lmdb-darwin-x64': 3.4.2 - '@lmdb/lmdb-linux-arm': 3.4.2 - '@lmdb/lmdb-linux-arm64': 3.4.2 - '@lmdb/lmdb-linux-x64': 3.4.2 - '@lmdb/lmdb-win32-arm64': 3.4.2 - '@lmdb/lmdb-win32-x64': 3.4.2 + '@lmdb/lmdb-darwin-arm64': 3.5.2 + '@lmdb/lmdb-darwin-x64': 3.5.2 + '@lmdb/lmdb-linux-arm': 3.5.2 + '@lmdb/lmdb-linux-arm64': 3.5.2 + '@lmdb/lmdb-linux-x64': 3.5.2 + '@lmdb/lmdb-win32-arm64': 3.5.2 + '@lmdb/lmdb-win32-x64': 3.5.2 load-json-file@4.0.0: dependencies: @@ -15993,10 +16240,6 @@ snapshots: dependencies: p-locate: 5.0.0 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - lodash.clone@4.5.0: {} lodash.clonedeep@4.5.0: {} @@ -16015,6 +16258,8 @@ snapshots: lodash@4.17.21: {} + lodash@4.17.23: {} + log-process-errors@12.0.1: dependencies: is-error-instance: 3.0.1 @@ -16031,10 +16276,10 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@6.0.0: + log-symbols@7.0.1: dependencies: - chalk: 5.6.0 - is-unicode-supported: 1.3.0 + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.1 log-update@2.3.0: dependencies: @@ -16073,7 +16318,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.2: {} + lru-cache@11.2.7: {} lru-cache@6.0.0: dependencies: @@ -16089,7 +16334,7 @@ snapshots: luxon@3.7.1: {} - madge@8.0.0(typescript@5.9.2): + madge@8.0.0(typescript@6.0.2): dependencies: chalk: 4.1.2 commander: 7.2.0 @@ -16104,7 +16349,7 @@ snapshots: ts-graphviz: 2.1.6 walkdir: 0.4.1 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -16114,7 +16359,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 make-fetch-happen@14.0.3: dependencies: @@ -16155,7 +16400,7 @@ snapshots: '@npmcli/redact': 4.0.0 cacache: 20.0.4 http-cache-semantics: 4.2.0 - minipass: 7.1.2 + minipass: 7.1.3 minipass-fetch: 5.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -16183,6 +16428,15 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + markdown-it@14.1.1: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + marked@4.3.0: {} math-intrinsics@1.1.0: {} @@ -16253,10 +16507,6 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - minimatch@10.2.4: dependencies: brace-expansion: 5.0.5 @@ -16269,6 +16519,10 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + minimatch@5.1.6: dependencies: brace-expansion: 2.0.2 @@ -16291,7 +16545,7 @@ snapshots: minipass-collect@2.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass-fetch@4.0.1: dependencies: @@ -16303,9 +16557,9 @@ snapshots: minipass-fetch@5.0.2: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass-sized: 2.0.0 - minizlib: 3.0.2 + minizlib: 3.1.0 optionalDependencies: iconv-lite: 0.7.2 @@ -16323,7 +16577,7 @@ snapshots: minipass-sized@2.0.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass@3.3.6: dependencies: @@ -16345,8 +16599,6 @@ snapshots: mkdirp@1.0.4: {} - mkdirp@3.0.1: {} - modify-values@1.0.1: {} module-definition@6.0.1: @@ -16363,7 +16615,7 @@ snapshots: requirejs: 2.3.7 requirejs-config-file: 4.0.0 - moment-timezone@0.6.0: + moment-timezone@0.6.1: dependencies: moment: 2.30.1 @@ -16403,6 +16655,8 @@ snapshots: mute-stream@2.0.0: {} + mute-stream@3.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -16411,14 +16665,14 @@ snapshots: nan@2.23.0: {} - nano-spawn@2.0.0: {} - nanoid@3.3.11: {} napi-build-utils@2.0.0: {} natural-compare@1.4.0: {} + natural-orderby@5.0.0: {} + needle@2.4.0: dependencies: debug: 3.2.7 @@ -16442,15 +16696,15 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - nock@14.0.10: + nock@14.0.11: dependencies: - '@mswjs/interceptors': 0.39.6 + '@mswjs/interceptors': 0.41.3 json-stringify-safe: 5.0.1 propagate: 2.0.1 node-abi@3.75.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 node-addon-api@6.1.0: {} @@ -16468,14 +16722,14 @@ snapshots: make-fetch-happen: 15.0.2 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.7.2 - tar: 7.5.11 + semver: 7.7.4 + tar: 7.5.13 tinyglobby: 0.2.14 which: 6.0.1 transitivePeerDependencies: - supports-color - node-releases@2.0.26: {} + node-releases@2.0.36: {} node-source-walk@7.0.1: dependencies: @@ -16509,13 +16763,15 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.1 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} normalize-url@8.0.2: {} + normalize-url@8.1.1: {} + npm-bundled@4.0.0: dependencies: npm-normalize-package-bin: 4.0.0 @@ -16524,15 +16780,15 @@ snapshots: dependencies: npm-normalize-package-bin: 5.0.0 - npm-check-updates@18.0.2: {} + npm-check-updates@19.6.6: {} npm-install-checks@7.1.2: dependencies: - semver: 7.7.2 + semver: 7.7.4 npm-install-checks@8.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 npm-normalize-package-bin@4.0.0: {} @@ -16542,14 +16798,14 @@ snapshots: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.1: dependencies: hosted-git-info: 9.0.2 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-name: 6.0.2 npm-packlist@10.0.3: @@ -16562,14 +16818,14 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.7.2 + semver: 7.7.4 npm-pick-manifest@11.0.3: dependencies: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.1 - semver: 7.7.2 + semver: 7.7.4 npm-registry-fetch@18.0.2: dependencies: @@ -16606,7 +16862,7 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - nsfw@2.2.5: + nsfw@2.3.0: dependencies: node-addon-api: 8.5.0 @@ -16640,14 +16896,14 @@ snapshots: ora: 5.3.0 picocolors: 1.1.1 resolve.exports: 2.0.3 - semver: 7.7.2 + semver: 7.7.4 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.5 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.1 + yaml: 2.8.3 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: @@ -16699,6 +16955,8 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + obug@2.1.1: {} + on-exit-leak-free@2.1.2: {} on-finished@2.4.1: @@ -16772,22 +17030,19 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@8.2.0: + ora@9.3.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 cli-cursor: 5.0.0 - cli-spinners: 2.9.2 + cli-spinners: 3.4.0 is-interactive: 2.0.0 is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 + log-symbols: 7.0.1 + stdin-discarder: 0.3.1 + string-width: 8.1.0 ordered-binary@1.6.0: {} - os-tmpdir@1.0.2: {} - outvariant@1.4.3: {} own-keys@1.0.1: @@ -16796,36 +17051,36 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.6.7(typescript@5.9.2)(zod@3.24.4): + ox@0.14.7(typescript@6.0.2)(zod@4.3.6): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.9.6 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.2.3(typescript@6.0.2)(zod@4.3.6) eventemitter3: 5.0.1 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - zod - ox@0.8.1(typescript@5.9.2)(zod@3.24.4): + ox@0.6.7(typescript@6.0.2)(zod@3.24.4): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.6 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.2.3(typescript@6.0.2)(zod@3.24.4) eventemitter3: 5.0.1 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - zod - ox@0.8.7(typescript@5.9.2)(zod@3.24.4): + ox@0.8.1(typescript@6.0.2)(zod@3.24.4): dependencies: '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 @@ -16833,10 +17088,10 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.2.3(typescript@6.0.2)(zod@3.24.4) eventemitter3: 5.0.1 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - zod @@ -16856,10 +17111,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.1 - p-locate@2.0.0: dependencies: p-limit: 1.3.0 @@ -16872,10 +17123,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - p-map-series@2.1.0: {} p-map@2.1.0: {} @@ -16911,7 +17158,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -16932,7 +17179,7 @@ snapshots: ky: 1.8.2 registry-auth-token: 5.1.0 registry-url: 6.0.1 - semver: 7.7.2 + semver: 7.7.4 pacote@21.0.1: dependencies: @@ -16952,7 +17199,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.1.0 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.13 transitivePeerDependencies: - supports-color @@ -16966,7 +17213,7 @@ snapshots: '@npmcli/run-script': 10.0.3 cacache: 20.0.4 fs-minipass: 3.0.3 - minipass: 7.1.2 + minipass: 7.1.3 npm-package-arg: 13.0.1 npm-packlist: 10.0.3 npm-pick-manifest: 11.0.3 @@ -16974,7 +17221,7 @@ snapshots: proc-log: 6.1.0 sigstore: 4.1.0 ssri: 13.0.1 - tar: 7.4.3 + tar: 7.5.13 transitivePeerDependencies: - supports-color @@ -17027,8 +17274,6 @@ snapshots: path-exists@4.0.0: {} - path-exists@5.0.0: {} - path-is-absolute@1.0.1: {} path-key@3.1.1: {} @@ -17040,16 +17285,11 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 - - path-scurry@2.0.0: - dependencies: - lru-cache: 11.2.2 - minipass: 7.1.2 + minipass: 7.1.3 path-scurry@2.0.2: dependencies: - lru-cache: 11.2.2 + lru-cache: 11.2.7 minipass: 7.1.3 path-to-regexp@0.1.7: {} @@ -17060,19 +17300,21 @@ snapshots: path-type@4.0.0: {} - pg-cloudflare@1.2.7: + pg-cloudflare@1.3.0: optional: true - pg-connection-string@2.9.1: {} + pg-connection-string@2.12.0: {} pg-int8@1.0.1: {} - pg-pool@3.10.1(pg@8.16.3): + pg-pool@3.13.0(pg@8.20.0): dependencies: - pg: 8.16.3 + pg: 8.20.0 pg-protocol@1.10.3: {} + pg-protocol@1.13.0: {} + pg-types@2.2.0: dependencies: pg-int8: 1.0.1 @@ -17081,15 +17323,15 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.16.3: + pg@8.20.0: dependencies: - pg-connection-string: 2.9.1 - pg-pool: 3.10.1(pg@8.16.3) - pg-protocol: 1.10.3 + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: - pg-cloudflare: 1.2.7 + pg-cloudflare: 1.3.0 pgpass@1.0.5: dependencies: @@ -17103,8 +17345,6 @@ snapshots: picospinner@3.0.0: {} - pidtree@0.6.0: {} - pidusage@2.0.21: dependencies: safe-buffer: 5.2.1 @@ -17118,41 +17358,41 @@ snapshots: pify@3.0.0: {} - pino-abstract-transport@2.0.0: + pino-abstract-transport@3.0.0: dependencies: split2: 4.2.0 - pino-pretty@13.1.1: + pino-pretty@13.1.3: dependencies: colorette: 2.0.20 dateformat: 4.6.3 - fast-copy: 3.0.2 + fast-copy: 4.0.2 fast-safe-stringify: 2.1.1 help-me: 5.0.0 joycon: 3.1.1 minimist: 1.2.8 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 - pump: 3.0.3 + pino-abstract-transport: 3.0.0 + pump: 3.0.4 secure-json-parse: 4.0.0 sonic-boom: 4.2.0 strip-json-comments: 5.0.3 pino-std-serializers@7.0.0: {} - pino@9.9.0: + pino@10.3.1: dependencies: + '@pinojs/redact': 0.4.0 atomic-sleep: 1.0.0 - fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 2.0.0 + pino-abstract-transport: 3.0.0 pino-std-serializers: 7.0.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 sonic-boom: 4.2.0 - thread-stream: 3.1.0 + thread-stream: 4.0.0 pkg-dir@4.2.0: dependencies: @@ -17166,7 +17406,7 @@ snapshots: pm2-axon-rpc@0.7.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -17174,7 +17414,7 @@ snapshots: dependencies: amp: 0.3.1 amp-message: 0.1.2 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 transitivePeerDependencies: - supports-color @@ -17191,7 +17431,7 @@ snapshots: pm2-sysmonit@1.2.8: dependencies: async: 3.2.6 - debug: 4.4.1 + debug: 4.4.3 pidusage: 2.0.21 systeminformation: 5.27.7 tx2: 1.0.5 @@ -17212,7 +17452,7 @@ snapshots: cli-tableau: 2.0.1 commander: 2.15.1 croner: 4.1.97 - dayjs: 1.11.13 + dayjs: 1.11.20 debug: 4.4.1 enquirer: 2.3.6 eventemitter2: 5.0.1 @@ -17276,7 +17516,7 @@ snapshots: mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 node-abi: 3.75.0 - pump: 3.0.3 + pump: 3.0.4 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.3 @@ -17306,11 +17546,11 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 - prettier@3.6.2: {} + prettier@3.8.1: {} pretty-format@30.3.0: dependencies: @@ -17322,7 +17562,7 @@ snapshots: dependencies: parse-ms: 2.1.0 - pretty-ms@9.2.0: + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -17364,7 +17604,7 @@ snapshots: proto-list@1.2.4: {} - protobufjs-cli@1.1.3(protobufjs@7.5.4): + protobufjs-cli@2.0.0(protobufjs@8.0.0): dependencies: chalk: 4.1.2 escodegen: 1.14.3 @@ -17373,12 +17613,12 @@ snapshots: glob: 8.1.0 jsdoc: 4.0.4 minimist: 1.2.8 - protobufjs: 7.5.4 - semver: 7.7.2 + protobufjs: 8.0.0 + semver: 7.7.4 tmp: 0.2.5 uglify-js: 3.19.3 - protobufjs@7.5.4: + protobufjs@8.0.0: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -17403,7 +17643,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -17415,7 +17655,7 @@ snapshots: proxy-from-env@1.1.0: {} - pump@3.0.3: + pump@3.0.4: dependencies: end-of-stream: 1.4.5 once: 1.4.0 @@ -17424,7 +17664,7 @@ snapshots: dependencies: duplexify: 4.1.3 inherits: 2.0.4 - pump: 3.0.3 + pump: 3.0.4 punycode.js@2.3.1: {} @@ -17444,6 +17684,8 @@ snapshots: quote-unquote@1.0.0: {} + random-int@3.1.0: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -17454,7 +17696,7 @@ snapshots: range-parser@1.2.1: {} - rate-limiter-flexible@7.2.0: {} + rate-limiter-flexible@10.0.1: {} raw-body@2.5.2: dependencies: @@ -17553,7 +17795,7 @@ snapshots: refa@0.12.1: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 reflect-metadata@0.2.2: {} @@ -17570,7 +17812,7 @@ snapshots: regexp-ast-analysis@0.7.1: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 refa: 0.12.1 regexp-tree@0.1.27: {} @@ -17602,7 +17844,7 @@ snapshots: require-in-the-middle@5.2.0: dependencies: - debug: 4.4.1 + debug: 4.4.3 module-details-from-path: 1.0.4 resolve: 1.22.10 transitivePeerDependencies: @@ -17610,8 +17852,6 @@ snapshots: require-package-name@2.0.1: {} - requireindex@1.2.0: {} - requirejs-config-file@4.0.0: dependencies: esprima: 4.0.1 @@ -17621,7 +17861,7 @@ snapshots: requizzle@0.2.4: dependencies: - lodash: 4.17.21 + lodash: 4.17.23 resolve-alpn@1.2.1: {} @@ -17654,6 +17894,10 @@ snapshots: dependencies: lowercase-keys: 3.0.0 + responselike@4.0.2: + dependencies: + lowercase-keys: 3.0.0 + restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -17675,7 +17919,7 @@ snapshots: rfdc@1.4.1: {} - rotating-file-stream@3.2.6: {} + rotating-file-stream@3.2.9: {} run-async@4.0.6: {} @@ -17733,7 +17977,7 @@ snapshots: scslre@0.3.0: dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -17753,7 +17997,7 @@ snapshots: semver@7.7.2: {} - semver@7.7.3: {} + semver@7.7.4: {} send@0.18.0: dependencies: @@ -17875,16 +18119,12 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - simple-swizzle@0.2.2: - dependencies: - is-arrayish: 0.3.2 - - sinon@21.0.0: + sinon@21.0.3: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 13.0.5 - '@sinonjs/samsam': 8.0.3 - diff: 7.0.0 + '@sinonjs/fake-timers': 15.1.1 + '@sinonjs/samsam': 9.0.3 + diff: 8.0.4 supports-color: 7.2.0 sisteransi@1.0.5: {} @@ -17903,7 +18143,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 socks: 2.8.6 transitivePeerDependencies: - supports-color @@ -17917,17 +18157,17 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - sort-object-keys@1.1.3: {} + sort-object-keys@2.1.0: {} - sort-package-json@3.4.0: + sort-package-json@3.6.1: dependencies: - detect-indent: 7.0.1 + detect-indent: 7.0.2 detect-newline: 4.0.1 git-hooks-list: 4.1.1 is-plain-obj: 4.1.0 - semver: 7.7.2 - sort-object-keys: 1.1.3 - tinyglobby: 0.2.14 + semver: 7.7.4 + sort-object-keys: 2.1.0 + tinyglobby: 0.2.15 source-map-js@1.2.1: {} @@ -17976,13 +18216,13 @@ snapshots: ssri@13.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 stack-trace@0.0.10: {} statuses@2.0.1: {} - stdin-discarder@0.2.2: {} + stdin-discarder@0.3.1: {} steno@4.0.2: {} @@ -18126,20 +18366,22 @@ snapshots: symbol-observable@1.2.0: {} - synckit@0.11.11: + synckit@0.11.12: dependencies: '@pkgr/core': 0.2.9 systeminformation@5.27.7: optional: true + tagged-tag@1.0.0: {} + tapable@2.2.2: {} tar-fs@2.1.3: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.3 + pump: 3.0.4 tar-stream: 2.2.0 tar-stream@2.2.0: @@ -18150,28 +18392,27 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar@7.4.3: + tar@7.5.11: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 + minizlib: 3.1.0 yallist: 5.0.0 - tar@7.5.11: + tar@7.5.13: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 - minipass: 7.1.2 + minipass: 7.1.3 minizlib: 3.1.0 yallist: 5.0.0 - test-exclude@7.0.1: + test-exclude@8.0.0: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 - minimatch: 9.0.5 + glob: 13.0.6 + minimatch: 10.2.4 text-extensions@1.9.0: {} @@ -18185,7 +18426,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thread-stream@3.1.0: + thread-stream@4.0.0: dependencies: real-require: 0.2.0 @@ -18201,6 +18442,8 @@ snapshots: es5-ext: 0.10.64 next-tick: 1.1.0 + tinyexec@1.0.4: {} + tinyglobby@0.2.12: dependencies: fdir: 6.4.6(picomatch@4.0.3) @@ -18211,9 +18454,10 @@ snapshots: fdir: 6.4.6(picomatch@4.0.3) picomatch: 4.0.3 - tmp@0.0.33: + tinyglobby@0.2.15: dependencies: - os-tmpdir: 1.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tmp@0.2.3: {} @@ -18243,6 +18487,10 @@ snapshots: dependencies: typescript: 5.9.2 + ts-api-utils@2.5.0(typescript@6.0.2): + dependencies: + typescript: 6.0.2 + ts-graphviz@2.1.6: dependencies: '@ts-graphviz/adapter': 2.0.6 @@ -18271,9 +18519,9 @@ snapshots: tslib@2.8.1: {} - tsx@4.20.4: + tsx@4.21.0: dependencies: - esbuild: 0.25.8 + esbuild: 0.27.4 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -18313,8 +18561,6 @@ snapshots: type-fest@0.18.1: {} - type-fest@0.21.3: {} - type-fest@0.6.0: {} type-fest@0.8.1: {} @@ -18323,6 +18569,10 @@ snapshots: type-fest@4.41.0: {} + type-fest@5.5.0: + dependencies: + tagged-tag: 1.0.0 + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -18365,26 +18615,26 @@ snapshots: typedarray@0.0.6: {} - typedoc@0.28.10(typescript@5.9.2): + typedoc@0.28.18(typescript@6.0.2): dependencies: - '@gerrit0/mini-shiki': 3.9.2 + '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.0 - minimatch: 9.0.5 - typescript: 5.9.2 - yaml: 2.8.1 + markdown-it: 14.1.1 + minimatch: 10.2.4 + typescript: 6.0.2 + yaml: 2.8.3 - typeorm@0.3.26(better-sqlite3@12.2.0)(pg@8.16.3)(reflect-metadata@0.2.2): + typeorm@0.3.28(better-sqlite3@12.8.0)(pg@8.20.0): dependencies: '@sqltools/formatter': 1.2.5 - ansis: 3.17.0 + ansis: 4.2.0 app-root-path: 3.1.0 buffer: 6.0.3 - dayjs: 1.11.13 - debug: 4.4.1 - dedent: 1.6.0 + dayjs: 1.11.20 + debug: 4.4.3 + dedent: 1.7.2 dotenv: 16.6.1 - glob: 10.4.5 + glob: 10.5.0 reflect-metadata: 0.2.2 sha.js: 2.4.12 sql-highlight: 6.1.0 @@ -18392,25 +18642,27 @@ snapshots: uuid: 11.1.0 yargs: 17.7.2 optionalDependencies: - better-sqlite3: 12.2.0 - pg: 8.16.3 + better-sqlite3: 12.8.0 + pg: 8.20.0 transitivePeerDependencies: - babel-plugin-macros - supports-color - typescript-eslint@8.46.2(eslint@9.38.0)(typescript@5.9.2): + typescript-eslint@8.58.0(eslint@10.1.0)(typescript@6.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0)(typescript@5.9.2))(eslint@9.38.0)(typescript@5.9.2) - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0)(typescript@5.9.2) - eslint: 9.38.0 - typescript: 5.9.2 + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0)(typescript@6.0.2))(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0)(typescript@6.0.2) + eslint: 10.1.0 + typescript: 6.0.2 transitivePeerDependencies: - supports-color typescript@5.9.2: {} + typescript@6.0.2: {} + typesync@0.14.3: dependencies: ansis: 3.17.0 @@ -18421,7 +18673,7 @@ snapshots: picospinner: 3.0.0 semver: 7.7.2 tinyglobby: 0.2.14 - yaml: 2.8.1 + yaml: 2.8.3 transitivePeerDependencies: - supports-color @@ -18442,7 +18694,8 @@ snapshots: undici-types@7.10.0: {} - unicorn-magic@0.1.0: {} + undici-types@7.18.2: + optional: true unicorn-magic@0.3.0: {} @@ -18460,13 +18713,15 @@ snapshots: universalify@2.0.1: {} + unlimited-timeout@0.1.0: {} + unpipe@1.0.0: {} upath@2.0.1: {} - update-browserslist-db@1.1.4(browserslist@4.27.0): + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -18480,6 +18735,8 @@ snapshots: uuid@11.1.0: {} + uuid@13.0.0: {} + uuid@9.0.1: {} uvu@0.5.6: @@ -18504,52 +18761,52 @@ snapshots: vary@1.1.2: {} - viem@2.22.15(typescript@5.9.2)(zod@3.24.4): + viem@2.22.15(typescript@6.0.2)(zod@3.24.4): dependencies: '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.0.8(typescript@6.0.2)(zod@3.24.4) isows: 1.0.6(ws@8.18.0) - ox: 0.6.7(typescript@5.9.2)(zod@3.24.4) + ox: 0.6.7(typescript@6.0.2)(zod@3.24.4) ws: 8.18.0 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - viem@2.33.1(typescript@5.9.2)(zod@3.24.4): + viem@2.33.1(typescript@6.0.2)(zod@3.24.4): dependencies: '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.0.8(typescript@6.0.2)(zod@3.24.4) isows: 1.0.7(ws@8.18.2) - ox: 0.8.1(typescript@5.9.2)(zod@3.24.4) + ox: 0.8.1(typescript@6.0.2)(zod@3.24.4) ws: 8.18.2 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - viem@2.34.0(typescript@5.9.2)(zod@3.24.4): + viem@2.47.6(typescript@6.0.2)(zod@4.3.6): dependencies: - '@noble/curves': 1.9.6 + '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.9.2)(zod@3.24.4) + abitype: 1.2.3(typescript@6.0.2)(zod@4.3.6) isows: 1.0.7(ws@8.18.3) - ox: 0.8.7(typescript@5.9.2)(zod@3.24.4) + ox: 0.14.7(typescript@6.0.2)(zod@4.3.6) ws: 8.18.3 optionalDependencies: - typescript: 5.9.2 + typescript: 6.0.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -18647,10 +18904,10 @@ snapshots: readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.17.0: + winston@3.19.0: dependencies: '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.3 + '@dabh/diagnostics': 2.0.8 async: 3.2.6 is-stream: 2.0.1 logform: 2.7.0 @@ -18716,6 +18973,8 @@ snapshots: ws@8.18.3: {} + ws@8.20.0: {} + xmlcreate@2.0.4: {} xtend@4.0.2: {} @@ -18728,7 +18987,7 @@ snapshots: yaml@1.10.2: {} - yaml@2.8.1: {} + yaml@2.8.3: {} yargs-parser@20.2.9: {} @@ -18758,10 +19017,6 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.1: {} - - yoctocolors-cjs@2.1.2: {} - yoctocolors-cjs@2.1.3: {} yoctocolors@2.1.1: {} @@ -18769,4 +19024,4 @@ snapshots: zod@3.24.4: optional: true - zod@4.0.17: {} + zod@4.3.6: {} diff --git a/scripts/generate-unit-workflow.js b/scripts/generate-unit-workflow.js index b44adb3f00..b0e6b4b184 100644 --- a/scripts/generate-unit-workflow.js +++ b/scripts/generate-unit-workflow.js @@ -34,7 +34,7 @@ const workflow = { }, { name: "Get pnpm store directory", - // eslint-disable-next-line sort-keys-fix/sort-keys-fix + // eslint-disable-next-line perfectionist/sort-objects id: "pnpm-cache", run: 'echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT', shell: "bash", diff --git a/tests/functional/consensus/source/proposer-calculator.ts b/tests/functional/consensus/source/proposer-calculator.ts index 5de65ae348..86a30f0649 100644 --- a/tests/functional/consensus/source/proposer-calculator.ts +++ b/tests/functional/consensus/source/proposer-calculator.ts @@ -6,4 +6,8 @@ export class ProposerCalculator implements Contracts.BlockchainUtils.ProposerCal public getValidatorIndex(round: number): number { return 0; } + + public getValidatorIndexFrom(roundValidators: number, totalRound: number, round: number): number { + return 0; + } } diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 6705894420..4e6d7831f8 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -4,7 +4,6 @@ "baseUrl": "./", "declaration": true, "emitDecoratorMetadata": true, - "esModuleInterop": true, "experimentalDecorators": true, "forceConsistentCasingInFileNames": true, "lib": ["es2021"], diff --git a/tsconfig.json b/tsconfig.json index c36eda7ff5..e7f79bf02d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,10 @@ { "compilerOptions": { "assumeChangesOnlyAffectDirectDependencies": true, - "baseUrl": "./", "composite": true, "declaration": true, "declarationMap": true, "emitDecoratorMetadata": true, - "esModuleInterop": true, "experimentalDecorators": true, "forceConsistentCasingInFileNames": true, "lib": ["ES2023"], @@ -26,6 +24,7 @@ "strict": true, "stripInternal": true, "target": "es2023", + "types": ["node"], "typeRoots": ["reflect-metadata", "node_modules/@types"], "useUnknownInCatchVariables": false },