From 85cd87844fde9325eeacfe599edf3524434aba86 Mon Sep 17 00:00:00 2001 From: Zoe Date: Sun, 8 Dec 2024 15:14:54 -0600 Subject: [PATCH] Major upgrade (#70) --- eslint.config.mjs | 1 + package.json | 39 +- src/helpers/base-domain.mts | 46 +- src/helpers/common-config.mts | 95 +- src/helpers/sensor.mts | 7 +- src/helpers/sqlite.mts | 37 +- src/helpers/storage.mts | 20 +- src/mock/generator.mts | 21 +- src/services/configure.service.mts | 4 +- src/services/device.service.mts | 9 +- src/services/discovery.service.mts | 9 +- .../domains/alarm-control-panel.service.mts | 71 +- .../domains/binary-sensor.service.mts | 32 +- src/services/domains/button.service.mts | 10 +- src/services/domains/camera.service.mts | 40 +- src/services/domains/climate.service.mts | 53 +- src/services/domains/cover.service.mts | 40 +- src/services/domains/date.service.mts | 53 +- src/services/domains/datetime.service.mts | 50 +- src/services/domains/fan.service.mts | 43 +- src/services/domains/humidifier.service.mts | 44 +- src/services/domains/image.service.mts | 36 +- src/services/domains/lawn-mower.service.mts | 32 +- src/services/domains/light.service.mts | 53 +- src/services/domains/lock.service.mts | 64 +- src/services/domains/media-player.service.mts | 85 +- src/services/domains/notify.service.mts | 14 +- src/services/domains/number.service.mts | 37 +- src/services/domains/remote.service.mts | 32 +- src/services/domains/scene.service.mts | 10 +- src/services/domains/select.service.mts | 34 +- src/services/domains/sensor.service.mts | 24 +- src/services/domains/siren.service.mts | 32 +- src/services/domains/switch.service.mts | 50 +- src/services/domains/text.service.mts | 43 +- src/services/domains/time.service.mts | 42 +- src/services/domains/todo-list.service.mts | 32 +- src/services/domains/update.service.mts | 47 +- src/services/domains/vacuum.service.mts | 34 +- src/services/domains/valve.service.mts | 40 +- src/services/domains/water-heater.service.mts | 43 +- src/services/generator.service.mts | 37 +- src/services/locals.service.mts | 23 +- src/services/socket.service.mts | 44 +- src/services/sqlite.service.mts | 83 +- src/services/storage.service.mts | 138 +- src/synapse.module.mts | 59 +- tsconfig.json | 13 +- yarn.lock | 3539 ++++++----------- 49 files changed, 2562 insertions(+), 2882 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 98bc958..6cc4a8c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -63,6 +63,7 @@ export default [ "unicorn/prefer-module": "off", "@typescript-eslint/no-magic-numbers": "warn", "unicorn/no-object-as-default-parameter": "off", + "@typescript-eslint/no-floating-promises": "error", "unicorn/no-null": "off", "sonarjs/no-empty-function": "off", "sonarjs/no-unused-expressions": "off", diff --git a/package.json b/package.json index 8ef0a60..2fc4f8f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "@digital-alchemy/synapse", "repository": "https://github.com/Digital-Alchemy-TS/synapse", "homepage": "https://docs.digital-alchemy.app/Synapse", - "version": "24.11.4", + "version": "24.12.1", "scripts": { "start:mock": "tsx src/mock/main.mts", "build": "rm -rf dist; tsc", @@ -28,7 +28,7 @@ }, "license": "MIT", "dependencies": { - "better-sqlite3": "^11.5.0" + "better-sqlite3": "^11.7.0" }, "peerDependencies": { "@digital-alchemy/core": "*", @@ -38,22 +38,25 @@ "uuid": "*" }, "devDependencies": { - "@cspell/eslint-plugin": "^8.16.0", - "@digital-alchemy/core": "^24.11.3", - "@digital-alchemy/hass": "^24.11.3", - "@eslint/compat": "^1.2.3", + "@cspell/eslint-plugin": "^8.16.1", + "@digital-alchemy/core": "^24.11.4", + "@digital-alchemy/hass": "^24.11.4", + "@eslint/compat": "^1.2.4", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.15.0", + "@eslint/js": "^9.16.0", "@types/better-sqlite3": "^7.6.12", - "@types/node": "^22.9.1", + "@types/bun": "^1.1.14", + "@types/node": "^22.10.1", "@types/node-cron": "^3.0.11", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.13", - "@typescript-eslint/eslint-plugin": "8.15.0", - "@typescript-eslint/parser": "8.15.0", + "@typescript-eslint/eslint-plugin": "8.17.0", + "@typescript-eslint/parser": "8.17.0", + "bun": "^1.1.38", + "bun-types": "^1.1.38", "dayjs": "^1.11.13", - "dotenv": "^16.4.5", - "eslint": "9.15.0", + "dotenv": "^16.4.7", + "eslint": "9.16.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsonc": "^2.18.2", @@ -61,17 +64,17 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-security": "^3.0.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-sonarjs": "^2.0.4", + "eslint-plugin-sonarjs": "^3.0.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-unicorn": "^56.0.1", "node-cron": "^3.0.3", - "prettier": "^3.3.3", + "prettier": "^3.4.2", "tsx": "^4.19.2", - "type-fest": "^4.27.0", - "typescript": "^5.7.0-beta", + "type-fest": "^4.30.0", + "typescript": "^5.7.2", "uuid": "^11.0.3", - "vitest": "^2.1.5", + "vitest": "^2.1.8", "ws": "^8.18.0" }, - "packageManager": "yarn@4.5.1" + "packageManager": "yarn@4.5.3" } diff --git a/src/helpers/base-domain.mts b/src/helpers/base-domain.mts index a23fc36..edcf600 100644 --- a/src/helpers/base-domain.mts +++ b/src/helpers/base-domain.mts @@ -3,7 +3,7 @@ import { TRawDomains } from "@digital-alchemy/hass"; import { createHash } from "crypto"; import { EmptyObject } from "type-fest"; -import { EntityConfigCommon } from "./common-config.mts"; +import { EntityConfigCommon, NonReactive } from "./common-config.mts"; import { TSynapseId } from "./utility.mts"; export type RemovableCallback = ( @@ -11,6 +11,22 @@ export type RemovableCallback = ( remove: () => void, ) => TBlackHole; +export type TSerialize< + CONFIGURATION extends object = object, + SERIALIZE_TYPES extends unknown = unknown, +> = { + serialize: ( + property: keyof CONFIGURATION, + data: SERIALIZE_TYPES, + options: CONFIGURATION, + ) => string; + unserialize: ( + property: keyof CONFIGURATION, + data: string, + options: CONFIGURATION, + ) => SERIALIZE_TYPES; +}; + export type CreateRemovableCallback = ( callback: RemovableCallback, ) => { remove: () => void }; @@ -46,21 +62,7 @@ export type DomainGeneratorOptions< * ensure that data is valid before handing off to internals */ validate?: (current: CONFIGURATION, key: keyof CONFIGURATION, value: unknown) => void | never; -} & ( - | { - serialize: ( - property: keyof CONFIGURATION, - data: SERIALIZE_TYPES, - options: CONFIGURATION, - ) => string; - unserialize: ( - property: keyof CONFIGURATION, - data: string, - options: CONFIGURATION, - ) => SERIALIZE_TYPES; - } - | EmptyObject -); +} & (TSerialize | EmptyObject); export type TEventMap = Record; @@ -69,9 +71,10 @@ export type AddEntityOptions< EVENT_MAP extends Record, ATTRIBUTES extends object, LOCALS extends object, + DATA extends object, > = { context: TContext; -} & EntityConfigCommon & +} & EntityConfigCommon & CONFIGURATION & Partial<{ [EVENT in keyof EVENT_MAP]: RemovableCallback; @@ -100,3 +103,12 @@ export const formatObjectId = (input: string) => .replaceAll(/_+/g, "_"); export const LATE_READY = -1; + +export type CallbackData< + LOCALS extends object, + ATTRIBUTES extends object, + EXTRA extends object = {}, +> = { + locals: LOCALS; + attributes: ATTRIBUTES; +} & NonReactive>; diff --git a/src/helpers/common-config.mts b/src/helpers/common-config.mts index b5f61a0..3fbcb8e 100644 --- a/src/helpers/common-config.mts +++ b/src/helpers/common-config.mts @@ -12,7 +12,11 @@ import { CreateRemovableCallback, TEventMap } from "./base-domain.mts"; import { TSynapseEntityStorage } from "./storage.mts"; import { TSynapseDeviceId } from "./utility.mts"; -export type EntityConfigCommon = { +export type EntityConfigCommon< + ATTRIBUTES extends object, + LOCALS extends object, + DATA extends object, +> = { /** * Use a different device to register this entity */ @@ -33,8 +37,8 @@ export type EntityConfigCommon * This ID uniquely identifies the entity, through `entity_id` renames */ unique_id?: string; - disabled?: SettableConfiguration; - icon?: SettableConfiguration; + disabled?: SettableConfiguration; + icon?: SettableConfiguration; /** * An entity with a category will: * - Not be exposed to cloud, Alexa, or Google Assistant components @@ -62,31 +66,73 @@ export type EntityConfigCommon * can be used as a sqlite backed cache for entity specific data */ locals?: LOCALS; + /** + * Automatically trigger reactive config updates in response to updates from these entities + * + * List gets merged with `onUpdate` array in the configs, is convenient shorthand + */ + bind?: Updatable[]; }; export const isCommonConfigKey = ( key: string, -): key is keyof EntityConfigCommon => COMMON_CONFIG_KEYS.has(key); +): key is keyof EntityConfigCommon => COMMON_CONFIG_KEYS.has(key); + +export type SettableConfiguration = + /** + * Straight provide the value. + * If this changes in the definition (hard coded value usually), then the entity config will be reset + * + * This option can be used with assignments + * + * ```typescript + * entity.field = new_value; + * ``` + */ + | TYPE + // Verbose form + | ReactiveConfig + // Equiv of the `current` for the verbose reactive config + // If you don't need the other options (or prefer bind), this works great 👍 + | ((data: DATA) => TYPE); -export type SettableConfiguration = TYPE | ReactiveConfig; +export type Updatable = { + onUpdate: (callback: (data: DATA) => TBlackHole) => void; +}; -export type ReactiveConfig = { +/** + * > **NOTE**: `onUpdate` list is merged with the `bind` array that is provided to the entity + * ```typescript + * { + * icon: { + * current() { + * return someLogic ? "mdi:cookie-clock" : "mdi:cookie-alert-outline"; + * }, + * onUpdate: [hassEntityReference, synapseEntityReference], + * // every 30 seconds by default + * schedule: CronExpression.EVERY_SECOND, + * }, + * } + * ``` + */ +export type ReactiveConfig = { /** * Update immediately in response to entity updates */ - onUpdate?: { onUpdate: (callback: () => TBlackHole) => void }[]; - + onUpdate?: Updatable[]; /** * Every 30s by default */ schedule?: CronExpression | string; - /** * Calculate current value */ - current(): TYPE; + current(data: DATA): TYPE; }; +export const isShortReactiveConfig = (key: string, value: unknown): value is ReactiveConfig => + is.function(value) && key !== "attributes" && !NO_LIVE_UPDATE.has(key); + export const isReactiveConfig = (key: string, value: unknown): value is ReactiveConfig => is.object(value) && is.function((value as { current: () => void }).current) && @@ -127,13 +173,18 @@ export type NON_SETTABLE = export type NonReactive = { [KEY in Extract]: CONFIGURATION[KEY] extends SettableConfiguration< - infer TYPE + infer TYPE, + object > ? TYPE : CONFIGURATION[KEY]; }; -export type CommonMethods = { +export type CommonMethods< + CONFIGURATION extends object, + LOCALS extends object, + DATA extends object, +> = { /** * Look up the actual entity_id that is mapped to this entity by unique_id */ @@ -173,7 +224,7 @@ export type CommonMethods = /** * @internal */ - storage: TSynapseEntityStorage>; + storage: TSynapseEntityStorage>; /** * add a listener that can be removed with the removeAllListeners call * @@ -202,16 +253,17 @@ type ProxyBase< EVENT_MAP extends TEventMap, ATTRIBUTES extends object, LOCALS extends object, -> = CommonMethods & + DATA extends object, +> = CommonMethods & NonReactive & BuildCallbacks & - EntityConfigCommon & { + EntityConfigCommon & { /** * @internal * * duplicate the entity proxy, used for management of listeners */ - child: (context: TContext) => ProxyBase; + child: (context: TContext) => ProxyBase; }; /** @@ -224,7 +276,8 @@ export type SynapseEntityProxy< EVENT_MAP extends TEventMap, ATTRIBUTES extends object, LOCALS extends object, - PROXY = ProxyBase, + DATA extends object, + PROXY = ProxyBase, > = Omit>; export type BuildCallbacks = { @@ -233,4 +286,10 @@ export type BuildCallbacks = { string > as CamelCase<`on-${EVENT_NAME}`>]: CreateRemovableCallback; }; -export type GenericSynapseEntity = SynapseEntityProxy; +export type GenericSynapseEntity = SynapseEntityProxy< + object, + TEventMap, + object, + object, + DATA +>; diff --git a/src/helpers/sensor.mts b/src/helpers/sensor.mts index 5a8c90b..05079fc 100644 --- a/src/helpers/sensor.mts +++ b/src/helpers/sensor.mts @@ -341,7 +341,7 @@ type NumberSensors = ( * * Note that the `datetime.datetime` returned by the `last_reset` property will be converted to an ISO 8601-formatted string when the entity's state attributes are updated. When changing `last_reset`, the `state` must be a valid number. */ - last_reset?: SettableConfiguration; + last_reset?: SettableConfiguration; /** * Type of state. @@ -359,7 +359,8 @@ export type SensorConfiguration< ATTRIBUTES extends object, LOCALS extends object, STATE_TYPE extends string | number | Date | Dayjs, -> = EntityConfigCommon & + DATA extends object, +> = EntityConfigCommon & SensorDeviceClasses & { - state?: SettableConfiguration; + state?: SettableConfiguration; }; diff --git a/src/helpers/sqlite.mts b/src/helpers/sqlite.mts index 89e9d77..130c8a4 100644 --- a/src/helpers/sqlite.mts +++ b/src/helpers/sqlite.mts @@ -5,6 +5,7 @@ export const ENTITY_CREATE = `CREATE TABLE IF NOT EXISTS HomeAssistantEntity ( unique_id TEXT NOT NULL UNIQUE, entity_id TEXT NOT NULL, state_json TEXT NOT NULL, + base_state TEXT NOT NULL, first_observed DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, last_reported DATETIME NOT NULL, last_modified DATETIME NOT NULL, @@ -21,36 +22,43 @@ export const LOCALS_CREATE = `CREATE TABLE IF NOT EXISTS HomeAssistantEntityLoca )`; export const ENTITY_UPSERT = `INSERT INTO HomeAssistantEntity ( - unique_id, entity_id, state_json, first_observed, last_reported, last_modified, application_name + unique_id, + entity_id, + state_json, + first_observed, + last_reported, + last_modified, + base_state, + application_name ) VALUES ( - @unique_id, @entity_id, @state_json, @first_observed, @last_reported, @last_modified, @application_name + $unique_id, + $entity_id, + $state_json, + $first_observed, + $last_reported, + $last_modified, + $base_state, + $application_name ) ON CONFLICT(unique_id) DO UPDATE SET entity_id = excluded.entity_id, last_reported = excluded.last_reported, last_modified = excluded.last_modified, state_json = excluded.state_json, + base_state = excluded.base_state, application_name = excluded.application_name`; export const ENTITY_LOCALS_UPSERT = `INSERT INTO HomeAssistantEntityLocals ( unique_id, key, value_json, last_modified ) VALUES ( - @unique_id, @key, @value_json, @last_modified + $unique_id, $key, $value_json, $last_modified ) ON CONFLICT(unique_id, key) DO UPDATE SET value_json = excluded.value_json, last_modified = excluded.last_modified`; -export const SELECT_QUERY = `SELECT * - FROM HomeAssistantEntity - WHERE unique_id = ? AND application_name = ?`; - -export const SELECT_LOCALS_QUERY = `SELECT * - FROM HomeAssistantEntityLocals - WHERE unique_id = ?`; - +export const DELETE_LOCALS_BY_UNIQUE_ID_QUERY = `DELETE FROM HomeAssistantEntityLocals WHERE unique_id = ?`; export const DELETE_LOCALS_QUERY = `DELETE FROM HomeAssistantEntityLocals WHERE unique_id = ? AND key = ?`; - -export const DELETE_LOCALS_BY_UNIQUE_ID_QUERY = `DELETE FROM HomeAssistantEntityLocals - WHERE unique_id = ?`; +export const SELECT_LOCALS_QUERY = `SELECT * FROM HomeAssistantEntityLocals WHERE unique_id = ?`; +export const SELECT_QUERY = `SELECT * FROM HomeAssistantEntity WHERE unique_id = ? AND application_name = ?`; export type HomeAssistantEntityLocalRow = { id?: number; @@ -68,6 +76,7 @@ export type HomeAssistantEntityRow = { first_observed: string; last_reported: string; last_modified: string; + base_state: string; application_name: string; locals: LOCALS; }; diff --git a/src/helpers/storage.mts b/src/helpers/storage.mts index 531c733..be494d5 100644 --- a/src/helpers/storage.mts +++ b/src/helpers/storage.mts @@ -1,7 +1,7 @@ import { ENTITY_STATE, PICK_ENTITY, TRawDomains } from "@digital-alchemy/hass"; -import { AddEntityOptions } from "./base-domain.mts"; -import { EntityConfigCommon } from "./common-config.mts"; +import { AddEntityOptions, TSerialize } from "./base-domain.mts"; +import { EntityConfigCommon, Updatable } from "./common-config.mts"; import { TSynapseId } from "./utility.mts"; export type TSynapseEntityStorage = { @@ -17,10 +17,17 @@ export type TSynapseEntityStorage = { export type AddStateOptions< ATTRIBUTES extends object, LOCALS extends object, - CONFIGURATION extends EntityConfigCommon, + CONFIGURATION extends EntityConfigCommon, + DATA extends object, > = { domain: TRawDomains; - entity: AddEntityOptions, ATTRIBUTES, LOCALS>; + /** + * Automatically trigger reactive config updates in response to updates from these entities + * + * List gets merged with `onUpdate` array in the configs, is convenient shorthand + */ + bind?: Updatable[]; + entity: AddEntityOptions, ATTRIBUTES, LOCALS, DATA>; /** * initial import from typescript defs */ @@ -28,9 +35,10 @@ export type AddStateOptions< CONFIGURATION, Record, ATTRIBUTES, - LOCALS + LOCALS, + DATA >)[]; -}; +} & TSerialize; export type ConfigMapper = | { diff --git a/src/mock/generator.mts b/src/mock/generator.mts index 371af5e..6a50c08 100644 --- a/src/mock/generator.mts +++ b/src/mock/generator.mts @@ -43,6 +43,7 @@ export function EntityGenerator({ scheduler, synapse, context, logger }: TServic name: "blinking", suggested_object_id: "blinking_the_binary_sensor", }); + // binary_sensor.is_on scheduler.setInterval(() => { const number = Math.floor(Math.random() * SECOND); sensor.storage.set("state", number); @@ -88,16 +89,16 @@ export function EntityGenerator({ scheduler, synapse, context, logger }: TServic }, name: "Example switch", }); - const acp = synapse.alarm_control_panel({ - arm_night({ code }) { - logger.info({ code }, `arm_night called with code via static attachment`); - }, - context, - name: "Example alarm panel", - }); - acp.onArmNight(({ code }) => - logger.info({ code }, `arm_night called with code via dynamic attachment`), - ); + // const acp = synapse.alarm_control_panel({ + // arm_night({ code }) { + // logger.info({ code }, `arm_night called with code via static attachment`); + // }, + // context, + // name: "Example alarm panel", + // }); + // acp.onArmNight(({ code }) => + // logger.info({ code }, `arm_night called with code via dynamic attachment`), + // ); synapse.lock({ context, is_locked: false, diff --git a/src/services/configure.service.mts b/src/services/configure.service.mts index 87e7bd3..d91ab94 100644 --- a/src/services/configure.service.mts +++ b/src/services/configure.service.mts @@ -64,7 +64,9 @@ export function ConfigurationService({ lifecycle.onBootstrap(async () => await synapse.configure.checkInstallState()); lifecycle.onReady(() => { - if (!synapse.configure.isRegistered()) { + if (synapse.configure.isRegistered()) { + logger.trace("detected installed addon"); + } else { logger.warn({ name: "onReady" }, `application is not registered in hass`); } }); diff --git a/src/services/device.service.mts b/src/services/device.service.mts index 468065c..1969cb9 100644 --- a/src/services/device.service.mts +++ b/src/services/device.service.mts @@ -30,6 +30,7 @@ export function DeviceService({ config, lifecycle, logger, internal, synapse }: try { const contents = fs.readFileSync(file, "utf8"); const data = JSON.parse(contents) as { version: string }; + logger.trace({ version: data?.version }, "loaded package version"); return data?.version; } catch (error) { logger.error(error); @@ -60,13 +61,17 @@ export function DeviceService({ config, lifecycle, logger, internal, synapse }: */ id(data?: string[] | string) { data ??= [host, internal.boot.application.name, cwd()]; - return md5ToUUID( + const id = md5ToUUID( createHash("md5") .update(is.string(data) ? data : data.join("-")) .digest("hex"), ); + logger.trace({ data, id }, "generated device id"); + return id; }, + idList: () => [...DEVICE_REGISTRY.keys()], + list() { return [...DEVICE_REGISTRY.keys()].map(unique_id => ({ ...DEVICE_REGISTRY.get(unique_id), @@ -84,10 +89,12 @@ export function DeviceService({ config, lifecycle, logger, internal, synapse }: register(id: string, data: HassDeviceMetadata): TSynapseDeviceId { DEVICE_REGISTRY.set(id, data); + logger.trace({ data, id }, "register device"); return id as TSynapseDeviceId; }, setVersion(version: string) { + logger.trace({ version }, "update declared version"); synapseVersion = version; }, }; diff --git a/src/services/discovery.service.mts b/src/services/discovery.service.mts index 46a7916..10ec666 100644 --- a/src/services/discovery.service.mts +++ b/src/services/discovery.service.mts @@ -15,6 +15,7 @@ export function DiscoveryService({ const APP_METADATA = () => ({ app: internal.boot.application.name, device: synapse.device.getInfo(), + hash: synapse.storage.hash(), hostname: hostname(), secondary_devices: synapse.device.list(), title: config.synapse.METADATA_TITLE, @@ -34,13 +35,13 @@ export function DiscoveryService({ hass.socket.onEvent({ context, event: `${EVENT_NAMESPACE}/discovery`, - exec() { + async exec() { if (synapse.configure.isRegistered()) { logger.debug({ name: "discovery" }, `received global discovery request, ignoring`); return; } logger.info({ name: "discovery" }, `global discovery`); - hass.socket.fireEvent(`${EVENT_NAMESPACE}/identify`, { compressed: payload() }); + await hass.socket.fireEvent(`${EVENT_NAMESPACE}/identify`, { compressed: payload() }); }, }); @@ -48,9 +49,9 @@ export function DiscoveryService({ hass.socket.onEvent({ context, event: `${EVENT_NAMESPACE}/discovery/${name}`, - exec() { + async exec() { logger.info({ name: "discovery" }, `app discovery`); - hass.socket.fireEvent(`${EVENT_NAMESPACE}/identify/${name}`, { + await hass.socket.fireEvent(`${EVENT_NAMESPACE}/identify/${name}`, { compressed: payload(), }); }, diff --git a/src/services/domains/alarm-control-panel.service.mts b/src/services/domains/alarm-control-panel.service.mts index 9be93fb..4ef3833 100644 --- a/src/services/domains/alarm-control-panel.service.mts +++ b/src/services/domains/alarm-control-panel.service.mts @@ -1,6 +1,11 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; export type AlarmControlPanelStates = | "disarmed" @@ -14,14 +19,14 @@ export type AlarmControlPanelStates = | "disarming" | "triggered"; -export type AlarmControlPanelConfiguration = { - state?: SettableConfiguration; +export type AlarmControlPanelConfiguration = { + state?: SettableConfiguration; /** * Whether the code is required for arm actions. * * default: true */ - code_arm_required?: SettableConfiguration; + code_arm_required?: SettableConfiguration; /** * One of the states listed in the code formats section. */ @@ -29,7 +34,7 @@ export type AlarmControlPanelConfiguration = { /** * Last change triggered by. */ - changed_by?: SettableConfiguration; + changed_by?: SettableConfiguration; supported_features?: number; /** * default: true @@ -47,9 +52,9 @@ export type AlarmControlPanelEvents = { alarm_disarm: { code: string }; }; -export function VirtualAlarmControlPanel({ context, synapse }: TServiceParams) { +export function VirtualAlarmControlPanel({ context, synapse, logger }: TServiceParams) { const generate = synapse.generator.create< - AlarmControlPanelConfiguration, + AlarmControlPanelConfiguration, AlarmControlPanelEvents >({ bus_events: [ @@ -73,24 +78,54 @@ export function VirtualAlarmControlPanel({ context, synapse }: TServiceParams) { ], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + AlarmControlPanelConfiguration + >, + >({ managed = true, ...options }: AddEntityOptions< - AlarmControlPanelConfiguration, + AlarmControlPanelConfiguration, AlarmControlPanelEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >) { - const entity = generate.addEntity(options); + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onArmCustomBypass(() => entity.storage.set("state", "armed_away")); - entity.onTrigger(() => entity.storage.set("state", "triggered")); - entity.onArmVacation(() => entity.storage.set("state", "armed_vacation")); - entity.onArmNight(() => entity.storage.set("state", "armed_night")); - entity.onArmAway(() => entity.storage.set("state", "armed_away")); - entity.onArmHome(() => entity.storage.set("state", "armed_home")); - entity.onAlarmDisarm(() => entity.storage.set("state", "disarmed")); + entity.onArmCustomBypass(() => { + logger.trace("[managed] onArmCustomBypass"); + entity.storage.set("state", "armed_away"); + }); + entity.onTrigger(() => { + logger.trace("[managed] onTrigger"); + entity.storage.set("state", "triggered"); + }); + entity.onArmVacation(() => { + logger.trace("[managed] onArmVacation"); + entity.storage.set("state", "armed_vacation"); + }); + entity.onArmNight(() => { + logger.trace("[managed] onArmNight"); + entity.storage.set("state", "armed_night"); + }); + entity.onArmAway(() => { + logger.trace("[managed] onArmAway"); + entity.storage.set("state", "armed_away"); + }); + entity.onArmHome(() => { + logger.trace("[managed] onArmHome"); + entity.storage.set("state", "armed_home"); + }); + entity.onAlarmDisarm(() => { + logger.trace("[managed] onAlarmDisarm"); + entity.storage.set("state", "disarmed"); + }); } return entity; }; diff --git a/src/services/domains/binary-sensor.service.mts b/src/services/domains/binary-sensor.service.mts index 1dabf61..b6d2921 100644 --- a/src/services/domains/binary-sensor.service.mts +++ b/src/services/domains/binary-sensor.service.mts @@ -1,9 +1,14 @@ import { TServiceParams } from "@digital-alchemy/core"; import { BinarySensorDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type BinarySensorConfiguration = { +export type BinarySensorConfiguration = { /** * Type of binary sensor. */ @@ -11,7 +16,7 @@ export type BinarySensorConfiguration = { /** * If the binary sensor is currently on or off. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; }; export type BinarySensorEvents = { @@ -19,19 +24,30 @@ export type BinarySensorEvents = { }; export function VirtualBinarySensor({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, BinarySensorEvents>({ context, default_config: { is_on: false }, domain: "binary_sensor", load_config_keys: ["device_class", "is_on"], }); - return ( + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + BinarySensorConfiguration + >, + >( options: AddEntityOptions< - BinarySensorConfiguration, + BinarySensorConfiguration, BinarySensorEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/button.service.mts b/src/services/domains/button.service.mts index 3ca584b..b7937bf 100644 --- a/src/services/domains/button.service.mts +++ b/src/services/domains/button.service.mts @@ -1,7 +1,7 @@ import { TServiceParams } from "@digital-alchemy/core"; import { ButtonDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams } from "../../helpers/index.mts"; +import { AddEntityOptions, BasicAddParams, CallbackData } from "../../helpers/index.mts"; export type ButtonConfiguration = { device_class?: `${ButtonDeviceClass}`; @@ -21,12 +21,16 @@ export function VirtualButton({ context, synapse }: TServiceParams) { load_config_keys: ["device_class"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData, + >( options: AddEntityOptions< ButtonConfiguration, ButtonEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, ) => generate.addEntity(options); } diff --git a/src/services/domains/camera.service.mts b/src/services/domains/camera.service.mts index 5ea29fd..0060c93 100644 --- a/src/services/domains/camera.service.mts +++ b/src/services/domains/camera.service.mts @@ -1,8 +1,13 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type CameraConfiguration = { +export type CameraConfiguration = { /** * The brand (manufacturer) of the camera. */ @@ -10,7 +15,7 @@ export type CameraConfiguration = { /** * The interval between frames of the stream. */ - frame_interval?: SettableConfiguration; + frame_interval?: SettableConfiguration; /** * Used with CameraEntityFeature.STREAM to tell the frontend which type of stream to use (StreamType.HLS or StreamType.WEB_RTC) */ @@ -18,15 +23,15 @@ export type CameraConfiguration = { /** * Indication of whether the camera is on. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * Indication of whether the camera is recording. Used to determine state. */ - is_recording?: SettableConfiguration; + is_recording?: SettableConfiguration; /** * Indication of whether the camera is streaming. Used to determine state. */ - is_streaming?: SettableConfiguration; + is_streaming?: SettableConfiguration; /** * The model of the camera. */ @@ -34,7 +39,7 @@ export type CameraConfiguration = { /** * Indication of whether the camera has motion detection enabled. */ - motion_detection_enabled?: SettableConfiguration; + motion_detection_enabled?: SettableConfiguration; /** * Determines whether or not to use the Stream integration to generate still images */ @@ -58,7 +63,7 @@ export type CameraEvents = { }; export function VirtualCamera({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, CameraEvents>({ bus_events: ["turn_on", "turn_off", "enable_motion_detection", "disable_motion_detection"], context, // @ts-expect-error its fine @@ -77,12 +82,23 @@ export function VirtualCamera({ context, synapse }: TServiceParams) { ], }); - return ( + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + CameraConfiguration + >, + >( options: AddEntityOptions< - CameraConfiguration, + CameraConfiguration, CameraEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/climate.service.mts b/src/services/domains/climate.service.mts index 5072b04..ce362f6 100644 --- a/src/services/domains/climate.service.mts +++ b/src/services/domains/climate.service.mts @@ -1,9 +1,15 @@ import { TServiceParams } from "@digital-alchemy/core"; import { HVACAction, HVACMode } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; export type ClimateConfiguration< + DATA extends object, PRESET_MODES extends string = string, SWING_MODES extends string = string, FAN_MODES extends string = string, @@ -11,15 +17,15 @@ export type ClimateConfiguration< /** * The current humidity. */ - current_humidity?: SettableConfiguration; + current_humidity?: SettableConfiguration; /** * The current temperature. */ - current_temperature?: SettableConfiguration; + current_temperature?: SettableConfiguration; /** * The current fan mode. */ - fan_mode?: SettableConfiguration; + fan_mode?: SettableConfiguration; /** * The list of available fan modes. */ @@ -27,11 +33,11 @@ export type ClimateConfiguration< /** * The current HVAC action (heating, cooling) */ - hvac_action?: SettableConfiguration; + hvac_action?: SettableConfiguration; /** * The current operation (e.g. heat, cool, idle). Used to determine state. */ - hvac_mode: SettableConfiguration; + hvac_mode: SettableConfiguration; /** * List of available operation modes. */ @@ -59,7 +65,7 @@ export type ClimateConfiguration< /** * The current active preset. */ - preset_mode?: SettableConfiguration; + preset_mode?: SettableConfiguration; /** * The available presets. */ @@ -67,7 +73,7 @@ export type ClimateConfiguration< /** * The swing setting. */ - swing_mode?: SettableConfiguration; + swing_mode?: SettableConfiguration; /** * Returns the list of available swing modes. */ @@ -75,23 +81,23 @@ export type ClimateConfiguration< /** * The target humidity the device is trying to reach. */ - target_humidity?: SettableConfiguration; + target_humidity?: SettableConfiguration; /** * The temperature currently set to be reached. */ - target_temperature_high?: SettableConfiguration; + target_temperature_high?: SettableConfiguration; /** * The upper bound target temperature */ - target_temperature_low?: SettableConfiguration; + target_temperature_low?: SettableConfiguration; /** * The lower bound target temperature */ - target_temperature_step?: SettableConfiguration; + target_temperature_step?: SettableConfiguration; /** * The supported step size a target temperature can be increased or decreased */ - target_temperature?: SettableConfiguration; + target_temperature?: SettableConfiguration; /** * The unit of temperature measurement for the system (TEMP_CELSIUS or TEMP_FAHRENHEIT). */ @@ -129,7 +135,7 @@ type ClimateEvents = { }; export function VirtualClimate({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, ClimateEvents>({ bus_events: [ "set_hvac_mode", "turn_on", @@ -170,12 +176,23 @@ export function VirtualClimate({ context, synapse }: TServiceParams) { ], }); - return ( + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + ClimateConfiguration + >, + >( options: AddEntityOptions< - ClimateConfiguration, + ClimateConfiguration, ClimateEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/cover.service.mts b/src/services/domains/cover.service.mts index 870e97f..e905166 100644 --- a/src/services/domains/cover.service.mts +++ b/src/services/domains/cover.service.mts @@ -1,30 +1,35 @@ import { TServiceParams } from "@digital-alchemy/core"; import { CoverDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type CoverConfiguration = { +export type CoverConfiguration = { /** * The current position of cover where 0 means closed and 100 is fully open. */ - current_cover_position?: SettableConfiguration; + current_cover_position?: SettableConfiguration; /** * The current tilt position of the cover where 0 means closed/no tilt and 100 means open/maximum tilt. */ - current_cover_tilt_position?: SettableConfiguration; + current_cover_tilt_position?: SettableConfiguration; device_class?: `${CoverDeviceClass}`; /** * If the cover is closed or not. Used to determine state. */ - is_closed?: SettableConfiguration; + is_closed?: SettableConfiguration; /** * If the cover is closing or not. Used to determine state. */ - is_closing?: SettableConfiguration; + is_closing?: SettableConfiguration; /** * If the cover is opening or not. Used to determine state. */ - is_opening?: SettableConfiguration; + is_opening?: SettableConfiguration; }; export type CoverEvents = { @@ -55,7 +60,7 @@ export type CoverEvents = { }; export function VirtualCover({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, CoverEvents>({ bus_events: [ "stop_cover_tilt", "set_cover_tilt_position", @@ -79,12 +84,23 @@ export function VirtualCover({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + CoverConfiguration + >, + >( options: AddEntityOptions< - CoverConfiguration, + CoverConfiguration, CoverEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/date.service.mts b/src/services/domains/date.service.mts index 20a266a..b6d46f1 100644 --- a/src/services/domains/date.service.mts +++ b/src/services/domains/date.service.mts @@ -5,6 +5,7 @@ import { AddEntityOptions, BasicAddParams, BuildCallbacks, + CallbackData, SettableConfiguration, SynapseEntityException, } from "../../helpers/index.mts"; @@ -17,12 +18,12 @@ type MD = `${number}${number}`; */ export type SynapseDateFormat = `${Year}-${MD}-${MD}`; -export type DateConfiguration = { +export type DateConfiguration = { /** * default: true */ managed?: boolean; -} & DateSettable; +} & DateSettable; export type DateEvents = { set_value: { value: VALUE }; @@ -35,10 +36,10 @@ type DateParams = BasicAddParams & { }; type SerializeTypes = SynapseDateFormat | Date | Dayjs; -type DateSettable = - | { date_type?: "iso"; native_value?: SettableConfiguration } - | { date_type: "dayjs"; native_value?: SettableConfiguration } - | { date_type: "date"; native_value?: SettableConfiguration }; +type DateSettable = + | { date_type?: "iso"; native_value?: SettableConfiguration } + | { date_type: "dayjs"; native_value?: SettableConfiguration } + | { date_type: "date"; native_value?: SettableConfiguration }; const FORMAT = "YYYY-MM-DD"; @@ -50,22 +51,22 @@ type CallbackType = D extends "dayjs" export function VirtualDate({ context, synapse, logger }: TServiceParams) { // #MARK: generator - const generate = synapse.generator.create({ + const generate = synapse.generator.create, DateEvents, SerializeTypes>({ bus_events: ["set_value"], context, // @ts-expect-error its fine domain: "date", load_config_keys: ["native_value"], - serialize(property: keyof DateConfiguration, data: SerializeTypes) { + serialize(property: keyof DateConfiguration, data: SerializeTypes) { if (property !== "native_value") { return data as string; } return dayjs(data).format(FORMAT); }, unserialize( - property: keyof DateTimeConfiguration, + property: keyof DateTimeConfiguration, data: string, - options: DateTimeConfiguration, + options: DateTimeConfiguration, ): SerializeTypes { if (property !== "native_value") { return data as SerializeTypes; @@ -83,7 +84,11 @@ export function VirtualDate({ context, synapse, logger }: TServiceParams) { } } }, - validate(current: DateConfiguration, key: keyof DateConfiguration, newValue: unknown) { + validate( + current: DateConfiguration, + key: keyof DateConfiguration, + newValue: unknown, + ) { if (key !== "native_value") { return true; } @@ -97,13 +102,31 @@ export function VirtualDate({ context, synapse, logger }: TServiceParams) { }); // #MARK: builder - return function ({ + return function < + PARAMS extends DateParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + DateConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + DateConfiguration, + DateEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + options.native_value ??= dayjs(); + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onSetValue(({ value }) => entity.storage.set("native_value", value)); + entity.onSetValue(({ value }) => { + logger.trace({ value }, "[managed] onSetValue"); + entity.storage.set("native_value", value); + }); } type DynamicCallbacks = BuildCallbacks>>; diff --git a/src/services/domains/datetime.service.mts b/src/services/domains/datetime.service.mts index bbffac5..f84e717 100644 --- a/src/services/domains/datetime.service.mts +++ b/src/services/domains/datetime.service.mts @@ -5,33 +5,34 @@ import { AddEntityOptions, BasicAddParams, BuildCallbacks, + CallbackData, SettableConfiguration, SynapseEntityException, } from "../../helpers/index.mts"; -type DateTimeSettable = +type DateTimeSettable = | { date_type?: "iso"; /** * iso date string */ - native_value?: SettableConfiguration; + native_value?: SettableConfiguration; } | { date_type: "dayjs"; - native_value?: SettableConfiguration; + native_value?: SettableConfiguration; } | { date_type: "date"; - native_value?: SettableConfiguration; + native_value?: SettableConfiguration; }; -export type DateTimeConfiguration = { +export type DateTimeConfiguration = { /** * default: true */ managed?: boolean; -} & DateTimeSettable; +} & DateTimeSettable; export type DateTimeEvents = { set_value: { value: VALUE }; @@ -53,22 +54,26 @@ type SerializeTypes = string | Date | Dayjs; export function VirtualDateTime({ context, synapse, logger }: TServiceParams) { // #MARK: generator - const generate = synapse.generator.create({ + const generate = synapse.generator.create< + DateTimeConfiguration, + DateTimeEvents, + SerializeTypes + >({ bus_events: ["set_value"], context, // @ts-expect-error its fine domain: "datetime", load_config_keys: ["native_value"], - serialize(property: keyof DateTimeConfiguration, data: SerializeTypes) { + serialize(property: keyof DateTimeConfiguration, data: SerializeTypes) { if (property !== "native_value") { return data as string; } return dayjs(data).toISOString(); }, unserialize( - property: keyof DateTimeConfiguration, + property: keyof DateTimeConfiguration, data: string, - options: DateTimeConfiguration, + options: DateTimeConfiguration, ): SerializeTypes { if (property !== "native_value") { return data as SerializeTypes; @@ -86,7 +91,11 @@ export function VirtualDateTime({ context, synapse, logger }: TServiceParams) { } } }, - validate(current: DateTimeConfiguration, key: keyof DateTimeConfiguration, newValue: unknown) { + validate( + current: DateTimeConfiguration, + key: keyof DateTimeConfiguration, + newValue: unknown, + ) { if (key !== "native_value") { return true; } @@ -104,18 +113,27 @@ export function VirtualDateTime({ context, synapse, logger }: TServiceParams) { }); // #MARK: builder - return function ({ + return function < + PARAMS extends DateTimeParams, + DATA extends object = CallbackData, + >({ managed = true, ...options }: AddEntityOptions< - DateTimeConfiguration, + DateTimeConfiguration, DateTimeEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >) { - const entity = generate.addEntity(options); + options.native_value ??= dayjs(); + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onSetValue(({ value }) => entity.storage.set("native_value", value)); + entity.onSetValue(({ value }) => { + logger.trace({ value }, "[managed] onSetValue"); + entity.storage.set("native_value", value); + }); } type DynamicCallbacks = BuildCallbacks>>; type TypedVirtualDateTime = Omit & diff --git a/src/services/domains/fan.service.mts b/src/services/domains/fan.service.mts index db7a41c..25108d0 100644 --- a/src/services/domains/fan.service.mts +++ b/src/services/domains/fan.service.mts @@ -1,28 +1,33 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type FanConfiguration = { +export type FanConfiguration = { /** * The current direction of the fan. */ - current_direction?: SettableConfiguration; + current_direction?: SettableConfiguration; /** * True if the fan is on. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * True if the fan is oscillating. */ - oscillating?: SettableConfiguration; + oscillating?: SettableConfiguration; /** * The current speed percentage. Must be a value between 0 (off) and 100. */ - percentage?: SettableConfiguration; + percentage?: SettableConfiguration; /** * The current preset_mode. One of the values in preset_modes or None if no preset is active. */ - preset_mode?: SettableConfiguration; + preset_mode?: SettableConfiguration; /** * The list of supported preset_modes. This is an arbitrary list of str and should not contain any speeds. */ @@ -52,7 +57,7 @@ export type FanEvents = { }; export function VirtualFan({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, FanEvents>({ bus_events: [ "set_direction", "set_preset_mode", @@ -76,7 +81,23 @@ export function VirtualFan({ context, synapse }: TServiceParams) { ], }); - return ( - options: AddEntityOptions, - ) => generate.addEntity(options); + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + FanConfiguration + >, + >( + options: AddEntityOptions< + FanConfiguration, + FanEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >, + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/humidifier.service.mts b/src/services/domains/humidifier.service.mts index ba72945..3fd08b3 100644 --- a/src/services/domains/humidifier.service.mts +++ b/src/services/domains/humidifier.service.mts @@ -1,13 +1,18 @@ import { TServiceParams } from "@digital-alchemy/core"; import { HumidifierDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type HumidifierConfiguration = { +export type HumidifierConfiguration = { /** * Returns the current status of the device. */ - action?: SettableConfiguration; + action?: SettableConfiguration; /** * The available modes. Requires `SUPPORT_MODES`. */ @@ -15,7 +20,7 @@ export type HumidifierConfiguration = { /** * The current humidity measured by the device. */ - current_humidity?: SettableConfiguration; + current_humidity?: SettableConfiguration; /** * Type of hygrostat */ @@ -23,23 +28,23 @@ export type HumidifierConfiguration = { /** * Whether the device is on or off. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * The maximum humidity. */ - max_humidity?: SettableConfiguration; + max_humidity?: SettableConfiguration; /** * The minimum humidity. */ - min_humidity?: SettableConfiguration; + min_humidity?: SettableConfiguration; /** * The current active mode. Requires `SUPPORT_MODES`. */ - mode?: SettableConfiguration<`${HumidifierModes}`>; + mode?: SettableConfiguration<`${HumidifierModes}`, DATA>; /** * The target humidity the device is trying to reach. */ - target_humidity?: SettableConfiguration; + target_humidity?: SettableConfiguration; }; export type HumidifierModes = @@ -66,7 +71,7 @@ export type HumidifierEvents = { }; export function VirtualHumidifier({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, HumidifierEvents>({ bus_events: ["set_humidity", "turn_on", "turn_off"], context, // @ts-expect-error its fine @@ -84,12 +89,23 @@ export function VirtualHumidifier({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + HumidifierConfiguration + >, + >( options: AddEntityOptions< - HumidifierConfiguration, + HumidifierConfiguration, HumidifierEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/image.service.mts b/src/services/domains/image.service.mts index 7e80afe..6dd0a67 100644 --- a/src/services/domains/image.service.mts +++ b/src/services/domains/image.service.mts @@ -1,21 +1,26 @@ import { TServiceParams } from "@digital-alchemy/core"; import { Dayjs } from "dayjs"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type ImageConfiguration = { +export type ImageConfiguration = { /** * The content-type of the image, set automatically if the image entity provides a URL. */ - content_type?: SettableConfiguration; + content_type?: SettableConfiguration; /** * Timestamp of when the image was last updated. Used to determine state. Frontend will call image or async_image after this changes. */ - image_last_updated?: SettableConfiguration; + image_last_updated?: SettableConfiguration; /** * Optional URL from where the image should be fetched. */ - image_url?: SettableConfiguration; + image_url?: SettableConfiguration; }; export type ImageEvents = { @@ -23,7 +28,7 @@ export type ImageEvents = { }; export function VirtualImage({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, ImageEvents>({ bus_events: [], context, // @ts-expect-error its fine @@ -31,12 +36,23 @@ export function VirtualImage({ context, synapse }: TServiceParams) { load_config_keys: ["content_type", "image_last_updated", "image_url"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + ImageConfiguration + >, + >( options: AddEntityOptions< - ImageConfiguration, + ImageConfiguration, ImageEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/lawn-mower.service.mts b/src/services/domains/lawn-mower.service.mts index 5b90896..a52b413 100644 --- a/src/services/domains/lawn-mower.service.mts +++ b/src/services/domains/lawn-mower.service.mts @@ -1,12 +1,17 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type LawnMowerConfiguration = { +export type LawnMowerConfiguration = { /** * Current activity. */ - activity?: SettableConfiguration<"mowing" | "docked" | "paused" | "error">; + activity?: SettableConfiguration<"mowing" | "docked" | "paused" | "error", DATA>; supported_features?: number; }; @@ -23,7 +28,7 @@ export type LawnMowerEvents = { }; export function VirtualLawnMower({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, LawnMowerEvents>({ bus_events: ["start_mowing", "dock", "pause"], context, // @ts-expect-error its fine @@ -31,12 +36,23 @@ export function VirtualLawnMower({ context, synapse }: TServiceParams) { load_config_keys: ["activity", "supported_features"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + LawnMowerConfiguration + >, + >( options: AddEntityOptions< - LawnMowerConfiguration, + LawnMowerConfiguration, LawnMowerEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/light.service.mts b/src/services/domains/light.service.mts index 03e3281..3feadce 100644 --- a/src/services/domains/light.service.mts +++ b/src/services/domains/light.service.mts @@ -1,27 +1,32 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type LightConfiguration = { +export type LightConfiguration = { /** * The brightness of this light between 1..255 */ - brightness?: SettableConfiguration; + brightness?: SettableConfiguration; /** * The color mode of the light. * The returned color mode must be present in the supported_color_modes property unless the light is rendering an effect. */ - color_mode?: SettableConfiguration; + color_mode?: SettableConfiguration; /** * The CT color value in K. * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode.COLOR_TEMP and ignored otherwise. */ - color_temp_kelvin?: SettableConfiguration; + color_temp_kelvin?: SettableConfiguration; /** * The current effect. * Should be EFFECT_OFF if the light supports effects and no effect is currently rendered. */ - effect?: SettableConfiguration; + effect?: SettableConfiguration; /** * The list of supported effects. */ @@ -30,11 +35,11 @@ export type LightConfiguration = { * The hue and saturation color value (float, float). * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode.HS and ignored otherwise. */ - hs_color?: SettableConfiguration<[number, number]>; + hs_color?: SettableConfiguration<[number, number], DATA>; /** * If the light entity is on or not. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * The coldest color_temp_kelvin that this light supports. */ @@ -48,19 +53,22 @@ export type LightConfiguration = { * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode. * RGB and ignored otherwise. */ - rgb_color?: SettableConfiguration<[r: number, g: number, b: number]>; + rgb_color?: SettableConfiguration<[r: number, g: number, b: number], DATA>; /** * The rgbw color value (int, int, int, int). * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode. * RGBW and ignored otherwise. */ - rgbw_color?: SettableConfiguration<[r: number, g: number, b: number, w: number]>; + rgbw_color?: SettableConfiguration<[r: number, g: number, b: number, w: number], DATA>; /** * The rgbww color value (int, int, int, int, int). * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode. * RGBWW and ignored otherwise. */ - rgbww_color?: SettableConfiguration<[r: number, g: number, b: number, w: number, w: number]>; + rgbww_color?: SettableConfiguration< + [r: number, g: number, b: number, w: number, w: number], + DATA + >; /** * Flag supported color modes. */ @@ -70,7 +78,7 @@ export type LightConfiguration = { * The xy color value (float, float). * This property will be copied to the light's state attribute when the light's color mode is set to ColorMode.XY and ignored otherwise. */ - xy_color?: SettableConfiguration<[number, number]>; + xy_color?: SettableConfiguration<[number, number], DATA>; }; export type LightEvents = { @@ -83,7 +91,7 @@ export type LightEvents = { }; export function VirtualLight({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, LightEvents>({ bus_events: ["turn_on", "turn_off"], context, domain: "light", @@ -106,12 +114,23 @@ export function VirtualLight({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + LightConfiguration + >, + >( options: AddEntityOptions< - LightConfiguration, + LightConfiguration, LightEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/lock.service.mts b/src/services/domains/lock.service.mts index c4c54bd..6dc6725 100644 --- a/src/services/domains/lock.service.mts +++ b/src/services/domains/lock.service.mts @@ -1,40 +1,45 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type LockConfiguration = { +export type LockConfiguration = { /** * Describes what the last change was triggered by. */ - changed_by?: SettableConfiguration; + changed_by?: SettableConfiguration; /** * Regex for code format or None if no code is required. */ - code_format?: SettableConfiguration; + code_format?: SettableConfiguration; /** * Indication of whether the lock is currently locked. Used to determine state. */ - is_locked?: SettableConfiguration; + is_locked?: SettableConfiguration; /** * Indication of whether the lock is currently locking. Used to determine state. */ - is_locking?: SettableConfiguration; + is_locking?: SettableConfiguration; /** * Indication of whether the lock is currently unlocking. Used to determine state. */ - is_unlocking?: SettableConfiguration; + is_unlocking?: SettableConfiguration; /** * Indication of whether the lock is currently jammed. Used to determine state. */ - is_jammed?: SettableConfiguration; + is_jammed?: SettableConfiguration; /** * Indication of whether the lock is currently opening. Used to determine state. */ - is_opening?: SettableConfiguration; + is_opening?: SettableConfiguration; /** * Indication of whether the lock is currently open. Used to determine state. */ - is_open?: SettableConfiguration; + is_open?: SettableConfiguration; supported_features?: number; /** * default: true @@ -54,8 +59,8 @@ export type LockEvents = { }; }; -export function VirtualLock({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualLock({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, LockEvents>({ bus_events: ["lock", "unlock", "open"], context, // @ts-expect-error its fine @@ -73,15 +78,38 @@ export function VirtualLock({ context, synapse }: TServiceParams) { ], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + LockConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + LockConfiguration, + LockEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onLock(({}) => entity.storage.set("is_locked", true)); - entity.onUnlock(({}) => entity.storage.set("is_locked", false)); - entity.onOpen(({}) => entity.storage.set("is_open", true)); + entity.onLock(({}) => { + logger.trace("[managed] onLock"); + entity.storage.set("is_locked", true); + }); + entity.onUnlock(({}) => { + logger.trace("[managed] onUnlock"); + entity.storage.set("is_locked", false); + }); + entity.onOpen(({}) => { + logger.trace("[managed] onOpen"); + entity.storage.set("is_open", true); + }); } return entity; }; diff --git a/src/services/domains/media-player.service.mts b/src/services/domains/media-player.service.mts index fa5bdc7..d601f34 100644 --- a/src/services/domains/media-player.service.mts +++ b/src/services/domains/media-player.service.mts @@ -1,7 +1,12 @@ import { TServiceParams } from "@digital-alchemy/core"; import { Dayjs } from "dayjs"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; enum MediaType { MUSIC = "music", @@ -26,17 +31,18 @@ enum MediaDeviceClass { type MediaPlayerEnqueue = "add" | "next" | "play" | "replace"; export type MediaPlayerConfiguration< + DATA extends object, SOURCES extends string = string, SOUND_MODES extends string = string, > = { /** * ID of the current running app. */ - app_id?: SettableConfiguration; + app_id?: SettableConfiguration; /** * Name of the current running app. */ - app_name?: SettableConfiguration; + app_name?: SettableConfiguration; /** * Type of media player. */ @@ -45,95 +51,95 @@ export type MediaPlayerConfiguration< * A dynamic list of player entities which are currently grouped together for synchronous playback. * If the platform has a concept of defining a group leader, the leader should be the first element in that list. */ - group_members?: SettableConfiguration; + group_members?: SettableConfiguration; /** * True if if volume is currently muted. */ - is_volume_muted?: SettableConfiguration; + is_volume_muted?: SettableConfiguration; /** * Album artist of current playing media, music track only. */ - media_album_artist?: SettableConfiguration; + media_album_artist?: SettableConfiguration; /** * Album name of current playing media, music track only. */ - media_album_name?: SettableConfiguration; + media_album_name?: SettableConfiguration; /** * Album artist of current playing media, music track only. */ - media_artist?: SettableConfiguration; + media_artist?: SettableConfiguration; /** * Channel currently playing. */ - media_channel?: SettableConfiguration; + media_channel?: SettableConfiguration; /** * Content ID of current playing media. */ - media_content_id?: SettableConfiguration; + media_content_id?: SettableConfiguration; /** * Content type of current playing media. */ - media_content_type?: SettableConfiguration<`${MediaType}`>; + media_content_type?: SettableConfiguration<`${MediaType}`, DATA>; /** * Duration of current playing media in seconds. */ - media_duration?: SettableConfiguration; + media_duration?: SettableConfiguration; /** * Episode of current playing media, TV show only. */ - media_episode?: SettableConfiguration; + media_episode?: SettableConfiguration; /** * Hash of media image, defaults to SHA256 of media_image_url if media_image_url is not None. */ - media_image_hash?: SettableConfiguration; + media_image_hash?: SettableConfiguration; /** * True if property media_image_url is accessible outside of the home network. */ - media_image_remotely_accessible?: SettableConfiguration; + media_image_remotely_accessible?: SettableConfiguration; /** * Image URL of current playing media. */ - media_image_url?: SettableConfiguration; + media_image_url?: SettableConfiguration; /** * Title of Playlist currently playing. */ - media_playlist?: SettableConfiguration; + media_playlist?: SettableConfiguration; /** * Position of current playing media in seconds. */ - media_position?: SettableConfiguration; + media_position?: SettableConfiguration; /** * Timestamp of when _attr_media_position was last updated. The timestamp should be set by calling homeassistant.util.dt.utcnow(). */ - media_position_updated_at?: SettableConfiguration; + media_position_updated_at?: SettableConfiguration; /** * Season of current playing media, TV show only. */ - media_season?: SettableConfiguration; + media_season?: SettableConfiguration; /** * Title of series of current playing media, TV show only. */ - media_series_title?: SettableConfiguration; + media_series_title?: SettableConfiguration; /** * Title of current playing media. */ - media_title?: SettableConfiguration; + media_title?: SettableConfiguration; /** * Track number of current playing media, music track only. */ - media_track?: SettableConfiguration; + media_track?: SettableConfiguration; /** * Current repeat mode. */ - repeat?: SettableConfiguration; + repeat?: SettableConfiguration; /** * True if shuffle is enabled. */ - shuffle?: SettableConfiguration; + shuffle?: SettableConfiguration; /** * The current sound mode of the media player. */ - sound_mode?: SettableConfiguration; + sound_mode?: SettableConfiguration; /** * Dynamic list of available sound modes. */ @@ -141,7 +147,7 @@ export type MediaPlayerConfiguration< /** * The currently selected input source for the media player. */ - source?: SettableConfiguration; + source?: SettableConfiguration; /** * The list of possible input sources for the media player. (This list should contain human readable names, suitable for frontend display). */ @@ -151,11 +157,11 @@ export type MediaPlayerConfiguration< /** * Volume level of the media player in the range (0..1). */ - volume_level?: SettableConfiguration; + volume_level?: SettableConfiguration; /** * Volume step to use for the volume_up and volume_down services. */ - volume_step?: SettableConfiguration; + volume_step?: SettableConfiguration; }; export type MediaPlayerEvents = { @@ -170,7 +176,7 @@ export type MediaPlayerEvents = { }; export function VirtualMediaPlayer({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, MediaPlayerEvents>({ bus_events: ["select_sound_mode", "select_source", "play_media"], context, // @ts-expect-error its fine @@ -211,12 +217,23 @@ export function VirtualMediaPlayer({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + MediaPlayerConfiguration + >, + >( options: AddEntityOptions< - MediaPlayerConfiguration, + MediaPlayerConfiguration, MediaPlayerEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/notify.service.mts b/src/services/domains/notify.service.mts index c54ea07..b422ee5 100644 --- a/src/services/domains/notify.service.mts +++ b/src/services/domains/notify.service.mts @@ -1,6 +1,6 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams } from "../../helpers/index.mts"; +import { AddEntityOptions, BasicAddParams, CallbackData } from "../../helpers/index.mts"; export type NotifyConfiguration = { // @@ -22,12 +22,18 @@ export function VirtualNotify({ context, synapse }: TServiceParams) { load_config_keys: [], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData, + >( options: AddEntityOptions< NotifyConfiguration, NotifyEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + return generate.addEntity(options); + }; } diff --git a/src/services/domains/number.service.mts b/src/services/domains/number.service.mts index 5e8f11d..df6ef11 100644 --- a/src/services/domains/number.service.mts +++ b/src/services/domains/number.service.mts @@ -3,17 +3,18 @@ import { TServiceParams } from "@digital-alchemy/core"; import { AddEntityOptions, BasicAddParams, + CallbackData, SensorDeviceClasses, SettableConfiguration, } from "../../helpers/index.mts"; -export type NumberConfiguration = SensorDeviceClasses & { +export type NumberConfiguration = SensorDeviceClasses & { /** * Defines how the number should be displayed in the UI. * It's recommended to use the default `auto`. * Can be `box` or `slider` to force a display mode. */ - mode?: SettableConfiguration<"auto" | "slider" | "box">; + mode?: SettableConfiguration<"auto" | "slider" | "box", DATA>; /** * The maximum accepted value in the number's native_unit_of_measurement (inclusive) */ @@ -29,7 +30,7 @@ export type NumberConfiguration = SensorDeviceClasses & { /** * The value of the number in the number's native_unit_of_measurement. */ - native_value?: SettableConfiguration; + native_value?: SettableConfiguration; /** * default: true */ @@ -40,8 +41,8 @@ export type NumberEvents = { set_value: { value: number }; }; -export function VirtualNumber({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualNumber({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, NumberEvents>({ bus_events: ["set_value"], context, // @ts-expect-error its fine @@ -57,13 +58,31 @@ export function VirtualNumber({ context, synapse }: TServiceParams) { ], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + NumberConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + NumberConfiguration, + NumberEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + // @ts-expect-error it's fine + const entity = generate.addEntity(options); + if (managed) { - entity.onSetValue(({ value }) => entity.storage.set("native_value", value)); + entity.onSetValue(({ value }) => { + logger.trace({ value }, "[managed] onSetValue"); + entity.storage.set("native_value", value); + }); } return entity; }; diff --git a/src/services/domains/remote.service.mts b/src/services/domains/remote.service.mts index 11e113f..abd15ee 100644 --- a/src/services/domains/remote.service.mts +++ b/src/services/domains/remote.service.mts @@ -1,12 +1,17 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type RemoteConfiguration = { +export type RemoteConfiguration = { /** * Return the current active activity */ - current_activity?: SettableConfiguration; + current_activity?: SettableConfiguration; /** * Return the list of available activities */ @@ -28,7 +33,7 @@ export type RemoteEvents = { }; export function VirtualRemote({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, RemoteEvents>({ bus_events: [ "turn_on", "turn_off", @@ -43,12 +48,23 @@ export function VirtualRemote({ context, synapse }: TServiceParams) { load_config_keys: ["current_activity", "activity_list", "supported_features"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + RemoteConfiguration + >, + >( options: AddEntityOptions< - RemoteConfiguration, + RemoteConfiguration, RemoteEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/scene.service.mts b/src/services/domains/scene.service.mts index bbc606f..d5ef4a8 100644 --- a/src/services/domains/scene.service.mts +++ b/src/services/domains/scene.service.mts @@ -1,7 +1,7 @@ import { TServiceParams } from "@digital-alchemy/core"; import { EmptyObject } from "type-fest"; -import { AddEntityOptions, BasicAddParams } from "../../helpers/index.mts"; +import { AddEntityOptions, BasicAddParams, CallbackData } from "../../helpers/index.mts"; export type SceneConfiguration = EmptyObject; @@ -16,12 +16,16 @@ export function VirtualScene({ context, synapse }: TServiceParams) { domain: "scene", }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData, + >( options: AddEntityOptions< SceneConfiguration, SceneEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, ) => generate.addEntity(options); } diff --git a/src/services/domains/select.service.mts b/src/services/domains/select.service.mts index 28a90d6..78e3d02 100644 --- a/src/services/domains/select.service.mts +++ b/src/services/domains/select.service.mts @@ -4,14 +4,15 @@ import { AddEntityOptions, BasicAddParams, BuildCallbacks, + CallbackData, SettableConfiguration, } from "../../helpers/index.mts"; -export type SelectConfiguration = { +export type SelectConfiguration = { /** * The current select option */ - current_option?: SettableConfiguration; + current_option?: SettableConfiguration; /** * A list of available options as strings */ @@ -28,8 +29,8 @@ export type SelectEvents = { select_option: { option: OPTIONS }; }; -export function VirtualSelect({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualSelect({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, SelectEvents>({ bus_events: ["select_option"], context, // @ts-expect-error its fine @@ -37,23 +38,36 @@ export function VirtualSelect({ context, synapse }: TServiceParams) { load_config_keys: ["current_option", "options"], }); - return function ({ + return function < + PARAMS extends SelectOptions, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + SelectConfiguration + >, + >({ managed = true, ...options }: AddEntityOptions< - SelectConfiguration, + SelectConfiguration, SelectEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >) { - const entity = generate.addEntity(options); + // @ts-expect-error it's fine + const entity = generate.addEntity(options); + if (managed) { - entity.onSelectOption(({ option }) => entity.storage.set("current_option", option)); + entity.onSelectOption(({ option }) => { + logger.trace({ option }, "[managed] onSelectOption"); + entity.storage.set("current_option", option); + }); } type DynamicCallbacks = BuildCallbacks>; type TypedVirtualSelect = Omit & DynamicCallbacks & - Omit, "managed">; + Omit, "managed">; return entity as TypedVirtualSelect; }; diff --git a/src/services/domains/sensor.service.mts b/src/services/domains/sensor.service.mts index 6cdd67e..79d8ef9 100644 --- a/src/services/domains/sensor.service.mts +++ b/src/services/domains/sensor.service.mts @@ -2,6 +2,7 @@ import { is, TServiceParams } from "@digital-alchemy/core"; import { AddEntityOptions, + CallbackData, SensorConfiguration, SynapseEntityException, } from "../../helpers/index.mts"; @@ -65,12 +66,12 @@ type AddParams = { attributes?: object; }; -type Generic = SensorConfiguration; +type Generic = SensorConfiguration; export function VirtualSensor({ context, synapse, logger }: TServiceParams) { function checkOptions( value: string, - current: SensorConfiguration, + current: SensorConfiguration, ) { if ( "options" in current && @@ -106,7 +107,7 @@ export function VirtualSensor({ context, synapse, logger }: TServiceParams) { "last_reset", "suggested_display_precision", "suggested_unit_of_measurement", - ] as (keyof Generic)[], + ] as Extract[], // eslint-disable-next-line sonarjs/no-invariant-returns validate(current, key, value: unknown) { if (key !== "state") { @@ -120,12 +121,20 @@ export function VirtualSensor({ context, synapse, logger }: TServiceParams) { }, }); - return ( + return < + PARAMS extends AddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + SensorConfiguration + >, + >( options: AddEntityOptions< - SensorConfiguration, + SensorConfiguration, SensorEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, ) => { if ("options" in options) { @@ -182,7 +191,8 @@ export function VirtualSensor({ context, synapse, logger }: TServiceParams) { } } } - const out = generate.addEntity(options); + // @ts-expect-error it's fine + const out = generate.addEntity(options); type SynapseSensor = Omit & { state: PARAMS["state"] }; diff --git a/src/services/domains/siren.service.mts b/src/services/domains/siren.service.mts index 4b90b76..b408445 100644 --- a/src/services/domains/siren.service.mts +++ b/src/services/domains/siren.service.mts @@ -1,12 +1,17 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type SirenConfiguration = { +export type SirenConfiguration = { /** * Whether the device is on or off. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * The list or dictionary of available tones on the device to pass into the turn_on service. * If a dictionary is provided, when a user uses the dict value of a tone, @@ -27,7 +32,7 @@ export type SirenEvents = { }; export function VirtualSiren({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, SirenEvents>({ bus_events: ["turn_on", "turn_off"], context, // @ts-expect-error its fine @@ -35,12 +40,23 @@ export function VirtualSiren({ context, synapse }: TServiceParams) { load_config_keys: ["is_on", "available_tones", "supported_features"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + SirenConfiguration + >, + >( options: AddEntityOptions< - SirenConfiguration, + SirenConfiguration, SirenEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/switch.service.mts b/src/services/domains/switch.service.mts index 6b149db..9a20f18 100644 --- a/src/services/domains/switch.service.mts +++ b/src/services/domains/switch.service.mts @@ -1,14 +1,19 @@ import { TServiceParams } from "@digital-alchemy/core"; import { SwitchDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type SwitchConfiguration = { +export type SwitchConfiguration = { device_class?: `${SwitchDeviceClass}`; /** * If the switch is currently on or off. */ - is_on?: SettableConfiguration; + is_on?: SettableConfiguration; /** * default: true */ @@ -27,23 +32,46 @@ export type SwitchEvents = { }; }; -export function VirtualSwitch({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualSwitch({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, SwitchEvents>({ bus_events: ["turn_on", "turn_off", "toggle"], context, domain: "switch", load_config_keys: ["device_class", "is_on"], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + SwitchConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + SwitchConfiguration, + SwitchEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onToggle(() => entity.storage.set("is_on", !entity.storage.get("is_on"))); - entity.onTurnOff(() => entity.storage.set("is_on", false)); - entity.onTurnOn(() => entity.storage.set("is_on", true)); + entity.onToggle(() => { + logger.trace("[managed] onToggle"); + entity.storage.set("is_on", !entity.storage.get("is_on")); + }); + entity.onTurnOff(() => { + logger.trace("[managed] onTurnOff"); + entity.storage.set("is_on", false); + }); + entity.onTurnOn(() => { + logger.trace("[managed] onTurnOn"); + entity.storage.set("is_on", true); + }); } return entity; }; diff --git a/src/services/domains/text.service.mts b/src/services/domains/text.service.mts index 3289882..1363fc9 100644 --- a/src/services/domains/text.service.mts +++ b/src/services/domains/text.service.mts @@ -1,8 +1,13 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type TextConfiguration = { +export type TextConfiguration = { /** * Defines how the text should be displayed in the UI. Can be text or password. */ @@ -18,11 +23,11 @@ export type TextConfiguration = { /** * A regex pattern that the text value must match to be valid. */ - pattern?: SettableConfiguration; + pattern?: SettableConfiguration; /** * The value of the text. */ - native_value?: SettableConfiguration; + native_value?: SettableConfiguration; /** * default: true */ @@ -33,8 +38,8 @@ export type TextEvents = { set_value: { value: string }; }; -export function VirtualText({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualText({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, TextEvents>({ bus_events: ["set_value"], context, // @ts-expect-error its fine @@ -42,13 +47,31 @@ export function VirtualText({ context, synapse }: TServiceParams) { load_config_keys: ["mode", "native_max", "native_min", "pattern", "native_value"], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + TextConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + TextConfiguration, + TextEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + // @ts-expect-error it's fine + const entity = generate.addEntity(options); + if (managed) { - entity.onSetValue(({ value }) => entity.storage.set("native_value", value)); + entity.onSetValue(({ value }) => { + logger.trace({ value }, "[managed] onSetValue"); + entity.storage.set("native_value", value); + }); } return entity; }; diff --git a/src/services/domains/time.service.mts b/src/services/domains/time.service.mts index a856774..e40c1f9 100644 --- a/src/services/domains/time.service.mts +++ b/src/services/domains/time.service.mts @@ -1,11 +1,17 @@ import { TServiceParams } from "@digital-alchemy/core"; +import dayjs from "dayjs"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; export type SynapseTimeFormat = `${number}${number}:${number}${number}:${number}${number}`; -export type TimeConfiguration = { - native_value?: SettableConfiguration; +export type TimeConfiguration = { + native_value?: SettableConfiguration; /** * default: true @@ -17,8 +23,8 @@ export type TimeEvents = { set_value: { value: SynapseTimeFormat }; }; -export function VirtualTime({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ +export function VirtualTime({ context, synapse, logger }: TServiceParams) { + const generate = synapse.generator.create, TimeEvents>({ bus_events: ["set_value"], context, // @ts-expect-error its fine @@ -26,13 +32,31 @@ export function VirtualTime({ context, synapse }: TServiceParams) { load_config_keys: ["native_value"], }); - return function ({ + return function < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + TimeConfiguration + >, + >({ managed = true, ...options - }: AddEntityOptions) { - const entity = generate.addEntity(options); + }: AddEntityOptions< + TimeConfiguration, + TimeEvents, + PARAMS["attributes"], + PARAMS["locals"], + DATA + >) { + options.native_value ??= dayjs().format("HH:mm:ss") as SynapseTimeFormat; + // @ts-expect-error it's fine + const entity = generate.addEntity(options); if (managed) { - entity.onSetValue(({ value }) => entity.storage.set("native_value", value)); + entity.onSetValue(({ value }) => { + logger.trace({ value }, "[managed] onSetValue"); + entity.storage.set("native_value", value); + }); } return entity; }; diff --git a/src/services/domains/todo-list.service.mts b/src/services/domains/todo-list.service.mts index 88da81f..f0393fe 100644 --- a/src/services/domains/todo-list.service.mts +++ b/src/services/domains/todo-list.service.mts @@ -1,7 +1,12 @@ import { TServiceParams } from "@digital-alchemy/core"; import { Dayjs } from "dayjs"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; export type TodoItem = { /** @@ -29,11 +34,11 @@ export type TodoItem = { description?: string; }; -export type TodoConfiguration = { +export type TodoConfiguration = { /** * Required. The ordered contents of the To-do list. */ - todo_items: SettableConfiguration; + todo_items: SettableConfiguration; supported_features?: number; }; @@ -44,7 +49,7 @@ export type TodoEvents = { }; export function VirtualTodoList({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, TodoEvents>({ bus_events: ["create_todo_item", "delete_todo_item", "move_todo_item"], context, // @ts-expect-error its fine @@ -52,12 +57,23 @@ export function VirtualTodoList({ context, synapse }: TServiceParams) { load_config_keys: ["todo_items", "supported_features"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + TodoConfiguration + >, + >( options: AddEntityOptions< - TodoConfiguration, + TodoConfiguration, TodoEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/update.service.mts b/src/services/domains/update.service.mts index 2a680b2..5bd772e 100644 --- a/src/services/domains/update.service.mts +++ b/src/services/domains/update.service.mts @@ -1,27 +1,33 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; +import { DateConfiguration } from "./date.service.mts"; -export type UpdateConfiguration = { +export type UpdateConfiguration = { /** * The device or service that the entity represents has auto update logic. * When this is set to `true` you can not skip updates. */ - auto_update?: SettableConfiguration; + auto_update?: SettableConfiguration; device_class?: "firmware"; /** * Update installation progress. * Can either return a boolean (True if in progress, False if not) or an integer to indicate the progress from 0 to 100%. */ - in_progress?: SettableConfiguration; + in_progress?: SettableConfiguration; /** * The currently installed and used version of the software. */ - installed_version?: SettableConfiguration; + installed_version?: SettableConfiguration; /** * The latest version of the software available. */ - latest_version?: SettableConfiguration; + latest_version?: SettableConfiguration; /** * This method can be implemented so users can can get the full release notes in the more-info dialog of the Home Assistant Frontend before they install the update. * @@ -29,21 +35,21 @@ export type UpdateConfiguration = { * * This method requires UpdateEntityFeature.RELEASE_NOTES to be set. */ - release_notes?: SettableConfiguration; + release_notes?: SettableConfiguration; /** * Summary of the release notes or changelog. * This is not suitable for long changelogs but merely suitable for a short excerpt update description of max 255 characters. */ - release_summary?: SettableConfiguration; + release_summary?: SettableConfiguration; /** * URL to the full release notes of the latest version available. */ - release_url?: SettableConfiguration; + release_url?: SettableConfiguration; supported_features?: number; /** * Title of the software. This helps to differentiate between the device or entity name versus the title of the software installed. */ - title?: SettableConfiguration; + title?: SettableConfiguration; }; export type UpdateEvents = { @@ -51,7 +57,7 @@ export type UpdateEvents = { }; export function VirtualUpdate({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, UpdateEvents>({ bus_events: ["install"], context, // @ts-expect-error its fine @@ -70,12 +76,23 @@ export function VirtualUpdate({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + DateConfiguration + >, + >( options: AddEntityOptions< - UpdateConfiguration, + UpdateConfiguration, UpdateEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/vacuum.service.mts b/src/services/domains/vacuum.service.mts index f134d86..bf7d40a 100644 --- a/src/services/domains/vacuum.service.mts +++ b/src/services/domains/vacuum.service.mts @@ -1,16 +1,21 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type VacuumConfiguration = { +export type VacuumConfiguration = { /** * Current battery level. */ - battery_level?: SettableConfiguration; + battery_level?: SettableConfiguration; /** * The current fan speed. */ - fan_speed?: SettableConfiguration; + fan_speed?: SettableConfiguration; /** * List of available fan speeds. */ @@ -46,7 +51,7 @@ export type VacuumEvents = { }; export function VirtualVacuum({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, VacuumEvents>({ bus_events: [ "clean_spot", "locate", @@ -63,12 +68,23 @@ export function VirtualVacuum({ context, synapse }: TServiceParams) { load_config_keys: ["battery_level", "fan_speed", "fan_speed_list", "supported_features"], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + VacuumConfiguration + >, + >( options: AddEntityOptions< - VacuumConfiguration, + VacuumConfiguration, VacuumEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/valve.service.mts b/src/services/domains/valve.service.mts index 4817174..5994b9e 100644 --- a/src/services/domains/valve.service.mts +++ b/src/services/domains/valve.service.mts @@ -1,31 +1,36 @@ import { TServiceParams } from "@digital-alchemy/core"; import { ValveDeviceClass } from "@digital-alchemy/hass"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; -export type ValveConfiguration = { +export type ValveConfiguration = { /** * The current position of the valve where 0 means closed and 100 is fully open. * This attribute is required on valves with reports_position = True, where it's used to determine state. */ - current_valve_position?: SettableConfiguration; + current_valve_position?: SettableConfiguration; /** * If the valve is closed or not. Used to determine state for valves that don't report position. */ - is_closed?: SettableConfiguration; + is_closed?: SettableConfiguration; /** * If the valve is opening or not. Used to determine state. */ - is_opening?: SettableConfiguration; + is_opening?: SettableConfiguration; /** * If the valve knows its position or not. */ - reports_position: SettableConfiguration; + reports_position: SettableConfiguration; device_class?: `${ValveDeviceClass}`; /** * If the valve is closing or not. Used to determine state. */ - is_closing?: SettableConfiguration; + is_closing?: SettableConfiguration; supported_features?: number; }; @@ -45,7 +50,7 @@ export type ValveEvents = { }; export function VirtualValve({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, ValveEvents>({ bus_events: ["open_valve", "close_valve", "set_valve_position", "stop_valve"], context, // @ts-expect-error its fine @@ -61,12 +66,23 @@ export function VirtualValve({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + ValveConfiguration + >, + >( options: AddEntityOptions< - ValveConfiguration, + ValveConfiguration, ValveEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/domains/water-heater.service.mts b/src/services/domains/water-heater.service.mts index 9595e34..568c90a 100644 --- a/src/services/domains/water-heater.service.mts +++ b/src/services/domains/water-heater.service.mts @@ -1,8 +1,14 @@ import { TServiceParams } from "@digital-alchemy/core"; -import { AddEntityOptions, BasicAddParams, SettableConfiguration } from "../../helpers/index.mts"; +import { + AddEntityOptions, + BasicAddParams, + CallbackData, + SettableConfiguration, +} from "../../helpers/index.mts"; +import { DateConfiguration } from "./date.service.mts"; -export type WaterHeaterConfiguration = { +export type WaterHeaterConfiguration = { /** * The minimum temperature that can be set. */ @@ -14,19 +20,19 @@ export type WaterHeaterConfiguration = { /** * The current temperature. */ - current_temperature?: SettableConfiguration; + current_temperature?: SettableConfiguration; /** * The temperature we are trying to reach. */ - target_temperature?: SettableConfiguration; + target_temperature?: SettableConfiguration; /** * Upper bound of the temperature we are trying to reach. */ - target_temperature_high?: SettableConfiguration; + target_temperature_high?: SettableConfiguration; /** * Lower bound of the temperature we are trying to reach. */ - target_temperature_low?: SettableConfiguration; + target_temperature_low?: SettableConfiguration; /** * One of TEMP_CELSIUS, TEMP_FAHRENHEIT, or TEMP_KELVIN. */ @@ -34,7 +40,7 @@ export type WaterHeaterConfiguration = { /** * The current operation mode. */ - current_operation?: SettableConfiguration; + current_operation?: SettableConfiguration; /** * List of possible operation modes. */ @@ -43,7 +49,7 @@ export type WaterHeaterConfiguration = { * List of supported features. */ supported_features?: number; - is_away_mode_on?: SettableConfiguration; + is_away_mode_on?: SettableConfiguration; }; export type WaterHeaterEvents = { @@ -68,7 +74,7 @@ export type WaterHeaterEvents = { }; export function VirtualWaterHeater({ context, synapse }: TServiceParams) { - const generate = synapse.generator.create({ + const generate = synapse.generator.create, WaterHeaterEvents>({ bus_events: [ "set_temperature", "set_operation_mode", @@ -95,12 +101,23 @@ export function VirtualWaterHeater({ context, synapse }: TServiceParams) { ], }); - return ( + return < + PARAMS extends BasicAddParams, + DATA extends object = CallbackData< + PARAMS["locals"], + PARAMS["attributes"], + DateConfiguration + >, + >( options: AddEntityOptions< - WaterHeaterConfiguration, + WaterHeaterConfiguration, WaterHeaterEvents, PARAMS["attributes"], - PARAMS["locals"] + PARAMS["locals"], + DATA >, - ) => generate.addEntity(options); + ) => { + // @ts-expect-error it's fine + return generate.addEntity(options); + }; } diff --git a/src/services/generator.service.mts b/src/services/generator.service.mts index a197943..ff13f2b 100644 --- a/src/services/generator.service.mts +++ b/src/services/generator.service.mts @@ -83,8 +83,8 @@ export function DomainGeneratorService({ busTransfer(bus_events); // #MARK: addEntity - function addEntity( - entity: AddEntityOptions, + function addEntity( + entity: AddEntityOptions, clone = false, ) { // * defaults @@ -94,6 +94,7 @@ export function DomainGeneratorService({ : entity.unique_id; // - suggested_object_id - required on python side due to the way the code is set up entity.suggested_object_id ??= formatObjectId(entity.name); + const unique_id = entity.unique_id as TUniqueId; const currentProxy = knownEntities.get(unique_id); @@ -103,21 +104,27 @@ export function DomainGeneratorService({ CONFIGURATION, EVENT_MAP, ATTRIBUTES, - LOCALS + LOCALS, + DATA >; } else if (currentProxy) { logger.debug({ unique_id }, `creating clone`); } - type mergedConfig = CONFIGURATION & EntityConfigCommon; + type mergedConfig = CONFIGURATION & EntityConfigCommon; // * initialize storage const storage = clone ? synapse.storage.find(unique_id) - : synapse.storage.add({ + : synapse.storage.add({ + bind: entity.bind, domain, entity, load_config_keys, + // @ts-expect-error don't care + serialize: "serialize" in extra ? extra.serialize : undefined, + // @ts-expect-error don't care + unserialize: "unserialize" in extra ? extra.unserialize : undefined, }); // * map bus events @@ -162,7 +169,8 @@ export function DomainGeneratorService({ CONFIGURATION, EVENT_MAP, ATTRIBUTES, - LOCALS + LOCALS, + DATA >; const listeners = new Set<() => void>(); @@ -179,11 +187,13 @@ export function DomainGeneratorService({ } const current = entityRefs.get(id); if (current) { + logger.trace({ id }, "entity ref from cache"); return current; } if (!is.empty(entityRefs)) { logger.warn({ existing: [...entityRefs.keys()], new_id: id }, `leaking reference`); } + logger.trace({ id }, "loading entity ref"); const ref = hass.refBy.id(id); entityRefs.set(id, ref); return ref; @@ -193,9 +203,11 @@ export function DomainGeneratorService({ const outProxy = new Proxy(thing, { deleteProperty(_, property: string) { if (property === "locals") { + logger.debug({ unique_id }, "delete all locals"); locals.reset(); return true; } + logger.warn({ property }, "cannot delete entity property"); return false; }, @@ -229,6 +241,7 @@ export function DomainGeneratorService({ // #MARK: child case "child": { return function (context: TContext) { + logger.trace({ unique_id }, "generate child"); const child = addEntity( { // copy input data @@ -241,6 +254,7 @@ export function DomainGeneratorService({ true, ) as unknown as GenericSynapseEntity; const remove = internal.removeFn(() => { + logger.trace({ unique_id }, "cleanup child"); listeners.delete(remove); child.removeAllListeners(); }); @@ -258,6 +272,7 @@ export function DomainGeneratorService({ // #MARK: addListener case "addListener": { return function (listener: RemoveCallback) { + logger.trace({ unique_id }, "add listener"); const rm = () => { logger.trace("removing listener"); listener(); @@ -270,6 +285,7 @@ export function DomainGeneratorService({ // #MARK: removeAllListeners case "removeAllListeners": { return function () { + logger.debug({ unique_id }, "removeAllListeners"); // remove will delete from set listeners.forEach(remove => remove()); }; @@ -278,6 +294,7 @@ export function DomainGeneratorService({ // #MARK: purge case "purge": { return function () { + logger.info({ unique_id }, "purge"); listeners.forEach(remove => remove()); entityRefs.forEach((entity, key) => { entity.removeAllListeners(); @@ -291,12 +308,14 @@ export function DomainGeneratorService({ case "onUpdate": { type ENTITY_ID = Extract; return function (callback: TAnyFunction) { + logger.trace({ unique_id }, "attach onUpdate"); const removableCallback = async ( new_state: ENTITY_STATE, old_state: ENTITY_STATE, ) => await internal.safeExec(async () => callback(new_state, old_state, remove)); function remove() { + logger.trace({ unique_id }, "remove onUpdate"); event.removeListener(unique_id, removableCallback); listeners.delete(remove); } @@ -310,6 +329,7 @@ export function DomainGeneratorService({ // #MARK: nextState case "nextState": { return function (timeoutMs?: number) { + logger.trace({ timeoutMs, unique_id }, "nextState"); return getEntity()?.nextState(timeoutMs); }; } @@ -317,6 +337,7 @@ export function DomainGeneratorService({ // #MARK: waitForState case "waitForState": { return function (state: string | number, timeoutMs?: number) { + logger.trace({ state, timeoutMs, unique_id }, "waitForState"); return getEntity()?.waitForState(state, timeoutMs); }; } @@ -338,6 +359,7 @@ export function DomainGeneratorService({ set(_, property: Extract, newValue) { // * replace all locals if (property === "locals") { + logger.trace({ newValue }, "replace locals"); return locals.replace(newValue); } // * manage entity config properties @@ -364,6 +386,7 @@ export function DomainGeneratorService({ ); return false; } + logger.trace({ property }, "updating storage"); storage.set(property, newValue); return true; } @@ -371,7 +394,6 @@ export function DomainGeneratorService({ return false; }, }); - knownEntities.set(unique_id, outProxy as unknown as GenericSynapseEntity); return outProxy; } @@ -381,6 +403,7 @@ export function DomainGeneratorService({ return { create, + knownEntities, removableListener, }; } diff --git a/src/services/locals.service.mts b/src/services/locals.service.mts index a6ab382..88d9206 100644 --- a/src/services/locals.service.mts +++ b/src/services/locals.service.mts @@ -8,21 +8,31 @@ import { SELECT_LOCALS_QUERY, TSynapseId, } from "../helpers/index.mts"; +import { prefix } from "./sqlite.service.mts"; -export function SynapseLocalsService({ synapse, logger, internal }: TServiceParams) { +export function SynapseLocalsService({ synapse, logger, internal, event }: TServiceParams) { // #MARK: updateLocal function updateLocal(unique_id: TSynapseId, key: string, content: unknown) { const database = synapse.sqlite.getDatabase(); + logger.trace({ key, unique_id }, "updateLocal"); + + if (is.undefined(content)) { + logger.debug({ key, unique_id }, `delete local (value {undefined})`); + database.prepare(DELETE_LOCALS_QUERY).run([unique_id, key]); + return; + } const value_json = JSON.stringify(content); const last_modified = new Date().toISOString(); - - database.prepare(ENTITY_LOCALS_UPSERT).run({ + const param = prefix({ key, last_modified, unique_id, value_json, }); + logger.trace({ param }, "update local"); + + database.prepare(ENTITY_LOCALS_UPSERT).run(param); } // #MARK: loadLocals @@ -33,6 +43,7 @@ export function SynapseLocalsService({ synapse, logger, internal }: TServicePara */ function loadLocals(unique_id: TSynapseId) { if (!internal.boot.completedLifecycleEvents.has("PostConfig")) { + logger.warn("cannot load locals before [PostConfig]"); return undefined; } logger.trace({ unique_id }, "initial load of locals"); @@ -62,6 +73,7 @@ export function SynapseLocalsService({ synapse, logger, internal }: TServicePara if (!locals.has(key)) { return true; } + logger.trace({ key, unique_id }, "delete local"); const database = synapse.sqlite.getDatabase(); database.prepare(DELETE_LOCALS_QUERY).run([unique_id, key]); locals.delete(key); @@ -102,6 +114,7 @@ export function SynapseLocalsService({ synapse, logger, internal }: TServicePara set(_, property: string, value) { locals ??= loadLocals(unique_id); if (!locals) { + logger.trace("ignoring set attempt, locals not available"); return false; } if (is.equal(locals.get(property), value)) { @@ -112,18 +125,20 @@ export function SynapseLocalsService({ synapse, logger, internal }: TServicePara logger.debug({ unique_id }, `updating [%s]`, property); synapse.locals.updateLocal(unique_id, property, value); locals.set(property, value); + event.emit(unique_id); return true; }, }); return { proxy, - replace: (data: LOCALS) => { locals ??= loadLocals(unique_id); if (!locals) { + logger.trace("ignoring replace attempt, locals not available"); return false; } + logger.debug("replace locals"); const incoming = Object.keys(data); const current = is.unique([...Object.keys(defaults), ...locals.keys()]); diff --git a/src/services/socket.service.mts b/src/services/socket.service.mts index e3fd674..7a14662 100644 --- a/src/services/socket.service.mts +++ b/src/services/socket.service.mts @@ -1,27 +1,66 @@ import { SECOND, TServiceParams } from "@digital-alchemy/core"; import { TUniqueId } from "@digital-alchemy/hass"; +type HeartBeatPayload = { + now: number; + hash: string; +}; + export function SynapseSocketService({ logger, lifecycle, hass, scheduler, config, + context, synapse, internal, }: TServiceParams) { const getIdentifier = () => internal.boot.application.name; const name = (a: string) => [config.synapse.EVENT_NAMESPACE, a, getIdentifier()].join("/"); + const emitted = new Set(); + + async function emitHeartBeat() { + const now = Date.now(); + const hash = synapse.storage.hash(); + emitted.add(now); + await hass.socket.fireEvent(name("heartbeat"), { hash, now } satisfies HeartBeatPayload); + scheduler.setTimeout(() => emitted.delete(now), SECOND); + } + function setupHeartbeat() { logger.trace({ name: setupHeartbeat }, `starting heartbeat`); return scheduler.setInterval( - async () => await hass.socket.fireEvent(name("heartbeat")), + async () => await emitHeartBeat(), config.synapse.HEARTBEAT_INTERVAL * SECOND, ); } + // * onPostConfig lifecycle.onPostConfig(() => { + hass.socket.onEvent({ + context, + event: name("refresh"), + async exec({ data }: { data: string }) { + logger.error("HIT"); + await hass.fetch.fetch({ + method: "post", + url: `/api/config/config_entries/entry/${data}/reload`, + }); + }, + }); + if (config.synapse.TRACE_SIBLING_HEARTBEATS) { + hass.socket.onEvent({ + context, + event: name("heartbeat"), + exec({ data }: { data: HeartBeatPayload }) { + if (!emitted.has(data.now)) { + logger.debug({ data }, "not my heartbeat"); + } + }, + }); + } if (!config.synapse.EMIT_HEARTBEAT) { return; } @@ -31,10 +70,11 @@ export function SynapseSocketService({ // * onConnect hass.socket.onConnect(async function onConnect() { if (!config.synapse.EMIT_HEARTBEAT) { + logger.warn("heartbeat disabled"); return; } logger.debug({ name: onConnect }, `reconnect heartbeat`); - await hass.socket.fireEvent(name("heartbeat")); + await emitHeartBeat(); }); // * onPreShutdown diff --git a/src/services/sqlite.service.mts b/src/services/sqlite.service.mts index 97611b1..589b954 100644 --- a/src/services/sqlite.service.mts +++ b/src/services/sqlite.service.mts @@ -15,60 +15,101 @@ export type SynapseSqliteDriver = typeof SQLiteDriver; type SynapseSqlite = { getDatabase: () => Database; load: (unique_id: TSynapseId, defaults: object) => HomeAssistantEntityRow; - setDriver: (driver: SynapseSqliteDriver) => void; - update: (unique_id: TSynapseId, content: object) => void; + update: (unique_id: TSynapseId, content: object, defaults?: object) => void; }; -export function SQLiteService({ +const isBun = !is.empty(process.versions.bun); +async function getDriver(): Promise { + if (isBun) { + const { Database } = await import("bun:sqlite"); + return Database as unknown as SynapseSqliteDriver; + } + const { default: Database } = await import("better-sqlite3"); + return Database; +} +export function prefix(data: object) { + return isBun + ? Object.fromEntries(Object.entries(data).map(([key, value]) => [`$${key}`, value])) + : data; +} + +const bunRewrite = (data: T) => + Object.fromEntries( + Object.entries(data).map(([key, value]) => [ + key, + is.object(value) && "current" in value ? "dynamic" : value, + ]), + ) as T; + +export async function SQLiteService({ lifecycle, config, logger, hass, internal, synapse, -}: TServiceParams): SynapseSqlite { +}: TServiceParams): Promise { let database: Database; + const application_name = internal.boot.application.name; - let Driver: SynapseSqliteDriver = SQLiteDriver; + const Driver = await getDriver(); + const registeredDefaults = new Map(); lifecycle.onPostConfig(() => { + logger.trace("create if not exists tables"); database = new Driver(config.synapse.SQLITE_DB); database.prepare(ENTITY_CREATE).run(); database.prepare(LOCALS_CREATE).run(); }); - lifecycle.onShutdownStart(() => database.close()); + lifecycle.onShutdownStart(() => { + logger.trace("close database"); + database.close(); + }); // #MARK: update - function update(unique_id: TSynapseId, content: object) { + function update(unique_id: TSynapseId, content: object, defaults?: object) { const entity_id = hass.entity.registry.current.find(i => i.unique_id === unique_id)?.entity_id; if (is.empty(entity_id)) { if (synapse.configure.isRegistered()) { - logger.warn({ name: update, unique_id }, `not exists`); + logger.warn( + { name: update, unique_id }, + `app registered, but entity does not exist (reload?)`, + ); + return; } + logger.warn("app not registered, skipping write"); return; } const state_json = JSON.stringify(content); const now = new Date().toISOString(); const insert = database.prepare(ENTITY_UPSERT); - insert.run({ - application_name, - entity_id, + defaults ??= registeredDefaults.get(unique_id); + const data = prefix({ + application_name: application_name, + base_state: JSON.stringify(defaults), + entity_id: entity_id, first_observed: now, last_modified: now, last_reported: now, - state_json, - unique_id, + state_json: state_json, + unique_id: unique_id, }); + logger.trace({ ...data }, "update entity"); + insert.run(data); } + // #MARK: loadRow function loadRow(unique_id: TSynapseId) { + logger.trace({ unique_id }, "load entity"); const row = database .prepare<[TSynapseId, string], HomeAssistantEntityRow>(SELECT_QUERY) .get(unique_id, application_name); if (!row) { + logger.debug("entity not found in database"); return undefined; } + logger.trace({ entity_id: row.entity_id, unique_id }, "load entity"); return row; } @@ -79,19 +120,27 @@ export function SQLiteService({ ): HomeAssistantEntityRow { // - if exists, return existing data const data = loadRow(unique_id); + const cleaned = bunRewrite(defaults); + registeredDefaults.set(unique_id, cleaned); if (data) { - return data; + const current = JSON.parse(data.base_state); + if (is.equal(cleaned, current)) { + logger.trace({ unique_id }, "equal defaults"); + return data; + } + logger.info({ unique_id }, "hard config change detected, resetting entity"); + // might do some smart merge logic later 🤷‍♀️ + // technically no specific action is needed here since the below will override } // - if new: insert then try again - logger.debug({ name: load, unique_id }, `creating new sqlite entry`); - update(unique_id, defaults); + logger.trace({ name: load, unique_id }, `creating new sqlite entry`); + update(unique_id, cleaned, cleaned); return loadRow(unique_id); } return { getDatabase: () => database, load, - setDriver: (driver: SynapseSqliteDriver) => (Driver = driver), update, }; } diff --git a/src/services/storage.service.mts b/src/services/storage.service.mts index 9944fa7..b1314e6 100644 --- a/src/services/storage.service.mts +++ b/src/services/storage.service.mts @@ -1,10 +1,21 @@ -import { CronExpression, InternalError, is, TServiceParams } from "@digital-alchemy/core"; +import { + CronExpression, + debounce, + DOWN, + HALF, + InternalError, + is, + SECOND, + TServiceParams, + UP, +} from "@digital-alchemy/core"; import { TRawDomains, TUniqueId } from "@digital-alchemy/hass"; import { AddStateOptions, COMMON_CONFIG_KEYS, EntityConfigCommon, + generateHash, isCommonConfigKey, isReactiveConfig, NO_LIVE_UPDATE, @@ -13,8 +24,11 @@ import { TSynapseId, } from "../helpers/index.mts"; -const LATE_POST_CONFIG = -1; +const RESYNC_DELAY = HALF * SECOND; +/** + * Storage entries are generated on a 1-1 basis with entities using `add` + */ export function StorageService({ logger, context, @@ -27,6 +41,18 @@ export function StorageService({ const registry = new Map(); const domain_lookup = new Map(); + hass.events.onEntityRegistryUpdate(async () => { + await debounce("synapse_storage", RESYNC_DELAY); + logger.info("entity storage resync"); + registry.forEach((_, unique_id) => { + synapse.sqlite.update(unique_id, registry.get(unique_id).export()); + }); + }); + + /** + * Convert the registry into the expected data format for sending to Home Assistant + */ + // #MARK: dump function dump() { const list = [...registry.keys()]; const out = {} as Record; @@ -40,25 +66,64 @@ export function StorageService({ } // #MARK: add + /** + * + */ function add< LOCALS extends object, ATTRIBUTES extends object, - CONFIGURATION extends EntityConfigCommon, - >({ entity, load_config_keys, domain }: AddStateOptions) { + CONFIGURATION extends EntityConfigCommon, + DATA extends object, + >({ + entity, + load_config_keys, + domain, + bind = [], + serialize, + }: AddStateOptions) { if (registry.has(entity.unique_id as TSynapseId)) { throw new InternalError(context, `ENTITY_COLLISION`, `${domain} registry already id`); } domain_lookup.set(entity.unique_id, domain); let initialized = false; + type ValueData = Record; + type LoadKeys = keyof EntityConfigCommon; + let CURRENT_VALUE = {} as ValueData; + const load = [...load_config_keys, ...COMMON_CONFIG_KEYS.values()] as LoadKeys[]; - let CURRENT_VALUE = {} as Record; + // run through the import + load.forEach(key => { + let value = entity[key]; + if (!NO_LIVE_UPDATE.has(key) && is.function(value)) { + // @ts-expect-error fixme + value = { current: value } as unknown; + } + if (isReactiveConfig(key, value)) { + registerReactiveConfig(key, value); + return; + } + CURRENT_VALUE[key] = value; + }); // #MARK: createSettableConfig - function createSettableConfig(key: keyof CONFIGURATION, config: ReactiveConfig) { + /** + * Handle the the logic for the reactive + */ + function registerReactiveConfig(key: keyof CONFIGURATION, config: ReactiveConfig) { + // keep this one local to make sure the correct listener gets gc'd + // never can be sure when property refs might change (tin foil hat) + const unique_id = entity.unique_id; + + /** + * update handler + */ function updateSettableConfig() { const current_value = storage.get(key); - const new_value = config.current() as CONFIGURATION[typeof key]; + const known = synapse.generator.knownEntities.get(unique_id); + // console.log({ known }); + const new_value = config.current(known) as CONFIGURATION[typeof key]; if (new_value === current_value) { + logger.trace({ key, unique_id: entity.unique_id }, "ignoring noop"); return; } logger.trace( @@ -67,40 +132,45 @@ export function StorageService({ ); storage.set(key, new_value); } + + // Check periodically to ensure accuracy with time based things scheduler.cron({ exec: updateSettableConfig, schedule: config.schedule || CronExpression.EVERY_30_SECONDS, }); - if (!is.empty(config.onUpdate)) { - config.onUpdate.forEach(entity => entity.onUpdate(updateSettableConfig)); + + const onUpdate = [...bind, ...(config.onUpdate ?? [])]; + // Track reference entities + if (!is.empty(onUpdate)) { + onUpdate.forEach(entity => entity.onUpdate(updateSettableConfig)); } lifecycle.onReady(() => updateSettableConfig()); - event.on(entity.unique_id, updateSettableConfig); + event.on(unique_id, updateSettableConfig); setImmediate(() => updateSettableConfig()); + return is.removeFn(() => { + event.removeListener(unique_id, updateSettableConfig); + }); } - type LoadKeys = keyof EntityConfigCommon; - - // * import - const load = [...load_config_keys, ...COMMON_CONFIG_KEYS.values()] as LoadKeys[]; - - load.forEach(key => { - const value = entity[key]; - if (isReactiveConfig(key, value)) { - createSettableConfig(key, value); - return; - } - CURRENT_VALUE[key] = value; - }); - // #MARK: storage const storage = { - export: () => ({ ...CURRENT_VALUE }), + export: () => { + const keys = Object.keys(CURRENT_VALUE) as Extract[]; + return Object.fromEntries( + keys.map(i => { + if (serialize) { + // @ts-expect-error don't care + return [i, serialize(i, CURRENT_VALUE[i], undefined)]; + } + return [i, CURRENT_VALUE[i]]; + }), + ) as ValueData; + }, get: key => CURRENT_VALUE[key], isStored: key => isCommonConfigKey(key) || load_config_keys.includes(key), keys: () => load, purge() { - // + logger.warn("you should report this... I think"); }, set: (key: Extract, value) => { const unique_id = entity.unique_id as TSynapseId; @@ -109,6 +179,7 @@ export function StorageService({ } CURRENT_VALUE[key] = value; if (initialized) { + logger.trace({ key, unique_id }, "update locals"); synapse.sqlite.update(unique_id, registry.get(unique_id).export()); if (hass.socket.connectionState === "connected") { setImmediate(async () => await synapse.socket.send(unique_id, CURRENT_VALUE)); @@ -120,23 +191,24 @@ export function StorageService({ registry.set(entity.unique_id as TSynapseId, storage as unknown as TSynapseEntityStorage); // * value loading - lifecycle.onPostConfig(function onPostConfig() { + lifecycle.onReady(function onReady() { // - identify id const unique_id = entity.unique_id as TSynapseId; // - ?? const data = synapse.sqlite.load(unique_id, CURRENT_VALUE); - if (is.empty(data?.state_json)) { initialized = true; + logger.debug({ unique_id }, "initial create entity row"); + synapse.sqlite.update(unique_id, registry.get(unique_id).export()); return; } // - load previous value - logger.trace({ entity_id: data.entity_id, name: onPostConfig }, `importing value`); + logger.debug({ entity_id: data.entity_id, name: onReady }, `importing value from db`); CURRENT_VALUE = JSON.parse(data.state_json); initialized = true; - }, LATE_POST_CONFIG); + }); // * done return storage; @@ -147,5 +219,11 @@ export function StorageService({ dump, find: (id: TSynapseId | TUniqueId) => registry.get(id as TSynapseId) as unknown as TSynapseEntityStorage, + hash: () => + generateHash( + [...registry.keys(), ...synapse.device.idList()] + .toSorted((a, b) => (a > b ? UP : DOWN)) + .join("|"), + ), }; } diff --git a/src/synapse.module.mts b/src/synapse.module.mts index f2c7fa4..172cf55 100644 --- a/src/synapse.module.mts +++ b/src/synapse.module.mts @@ -13,44 +13,27 @@ import { StorageService, SynapseLocalsService, SynapseSocketService, - VirtualAlarmControlPanel, VirtualBinarySensor, VirtualButton, - VirtualCamera, - VirtualClimate, - VirtualCover, VirtualDate, VirtualDateTime, - VirtualFan, - VirtualImage, - VirtualLawnMower, - VirtualLight, VirtualLock, - VirtualMediaPlayer, - VirtualNotify, VirtualNumber, - VirtualRemote, VirtualScene, VirtualSelect, VirtualSensor, - VirtualSiren, VirtualSwitch, VirtualText, VirtualTime, - VirtualTodoList, - VirtualUpdate, - VirtualVacuum, - VirtualValve, - VirtualWaterHeater, } from "./services/index.mts"; const DOMAINS = { - alarm_control_panel: VirtualAlarmControlPanel, + // alarm_control_panel: VirtualAlarmControlPanel, binary_sensor: VirtualBinarySensor, button: VirtualButton, - camera: VirtualCamera, - climate: VirtualClimate, - cover: VirtualCover, + // camera: VirtualCamera, + // climate: VirtualClimate, + // cover: VirtualCover, /** * ### Customize date type * @@ -73,15 +56,15 @@ const DOMAINS = { * ``` */ datetime: VirtualDateTime, - fan: VirtualFan, - image: VirtualImage, - lawn_mower: VirtualLawnMower, - light: VirtualLight, + // fan: VirtualFan, + // image: VirtualImage, + // lawn_mower: VirtualLawnMower, + // light: VirtualLight, lock: VirtualLock, - media_player: VirtualMediaPlayer, - notify: VirtualNotify, + // media_player: VirtualMediaPlayer, + // notify: VirtualNotify, number: VirtualNumber, - remote: VirtualRemote, + // remote: VirtualRemote, scene: VirtualScene, select: VirtualSelect, /** @@ -94,15 +77,15 @@ const DOMAINS = { * ``` */ sensor: VirtualSensor, - siren: VirtualSiren, + // siren: VirtualSiren, switch: VirtualSwitch, text: VirtualText, time: VirtualTime, - todo_list: VirtualTodoList, - update: VirtualUpdate, - vacuum: VirtualVacuum, - valve: VirtualValve, - water_heater: VirtualWaterHeater, + // todo_list: VirtualTodoList, + // update: VirtualUpdate, + // vacuum: VirtualVacuum, + // valve: VirtualValve, + // water_heater: VirtualWaterHeater, }; export const LIB_SYNAPSE = CreateLibrary({ @@ -145,6 +128,14 @@ export const LIB_SYNAPSE = CreateLibrary({ description: "Location to persist entity state at", type: "string", }, + TRACE_SIBLING_HEARTBEATS: { + default: false, + description: [ + "Set to true to output debug info about other synapse apps emitting heartbeats to the same instance of Home Assistant", + "Logs emitted at trace level, for debugging only", + ], + type: "boolean", + }, }, depends: [LIB_HASS], name: "synapse", diff --git a/tsconfig.json b/tsconfig.json index 269b893..6c7def7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,17 +6,22 @@ "esModuleInterop": true, "importHelpers": true, "isolatedModules": true, - "lib": ["ESNext"], + "lib": [ + "ESNext" + ], "module": "ESNext", "moduleResolution": "Bundler", "noImplicitAny": true, "declaration": true, "noImplicitReturns": true, - "noUnusedLocals": true, - "noUnusedParameters": true, + "noUnusedLocals": false, + "noUnusedParameters": false, "rootDir": "./src", "skipDefaultLibCheck": true, - "types": ["vitest/globals"], + "types": [ + "vitest/globals", + "bun-types" + ], "rewriteRelativeImportExtensions": true, "skipLibCheck": true, "noUncheckedIndexedAccess": true, diff --git a/yarn.lock b/yarn.lock index a4c8281..fb7270b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,17 +15,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": "npm:^7.24.7" - picocolors: "npm:^1.0.0" - checksum: 10/4812e94885ba7e3213d49583a155fdffb05292330f0a9b2c41b49288da70cf3c746a3fda0bf1074041a6d741c33f8d7be24be5e96f41ef77395eeddc5c9ff624 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.25.9": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -36,45 +26,39 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: 10/d37a8936cc355a9ca3050102e03d179bdae26bd2e5c99a977637376c192b23637a039795f153c849437a086727628c9860e2c6af92d7151396e2362c09176337 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.4, @babel/compat-data@npm:^7.25.9": - version: 7.26.2 - resolution: "@babel/compat-data@npm:7.26.2" - checksum: 10/ed9eed6b62ce803ef4a320b1dac76b0302abbb29c49dddf96f3e3207d9717eb34e299a8651bb1582e9c3346ead74b6d595ffced5b3dae718afa08b18741f8402 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": + version: 7.26.3 + resolution: "@babel/compat-data@npm:7.26.3" + checksum: 10/0bf4e491680722aa0eac26f770f2fae059f92e2ac083900b241c90a2c10f0fc80e448b1feccc2b332687fab4c3e33e9f83dee9ef56badca1fb9f3f71266d9ebf languageName: node linkType: hard -"@babel/core@npm:7.25.2": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" +"@babel/core@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10/0d6ec10ff430df66f654c089d6f7ef1d9bed0c318ac257ad5f0dfa0caa45666011828ae75f998bcdb279763e892b091b2925d0bc483299e61649d2c7a2245e33 + checksum: 10/65767bfdb1f02e80d3af4f138066670ef8fdd12293de85ef151758a901c191c797e86d2e99b11c4cdfca33c72385ecaf38bbd7fa692791ec44c77763496b9b93 languageName: node linkType: hard -"@babel/eslint-parser@npm:7.25.1": - version: 7.25.1 - resolution: "@babel/eslint-parser@npm:7.25.1" +"@babel/eslint-parser@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/eslint-parser@npm:7.25.9" dependencies: "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1" eslint-visitor-keys: "npm:^2.1.0" @@ -82,41 +66,20 @@ __metadata: peerDependencies: "@babel/core": ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 10/9a2ddab3accd391a1eb95cb1ea655daa8603515d0f17081c542db8621c6bbbc65aa3b9b96b779854eed80cc8664a8969d7ac54479e8738876c0be5d26fd66efa - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" - dependencies: - "@babel/types": "npm:^7.25.6" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10/541e4fbb6ea7806f44232d70f25bf09dee9a57fe43d559e375536870ca5261ebb4647fec3af40dcbb3325ea2a49aff040e12a4e6f88609eaa88f10c4e27e31f8 + checksum: 10/ebb68d80b1fa2b964ad1147cc610e0c69b224e620419a885ba5abc996740523bee636a0d447fc29a0d495dbce5fa0246737b25e9e679cca6c5797fdac5176378 languageName: node linkType: hard -"@babel/generator@npm:^7.25.9": - version: 7.26.2 - resolution: "@babel/generator@npm:7.26.2" +"@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/generator@npm:7.26.3" dependencies: - "@babel/parser": "npm:^7.26.2" - "@babel/types": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.3" + "@babel/types": "npm:^7.26.3" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10/71ace82b5b07a554846a003624bfab93275ccf73cdb9f1a37a4c1094bf9dc94bb677c67e8b8c939dbd6c5f0eda2e8f268aa2b0d9c3b9511072565660e717e045 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/a9017bfc1c4e9f2225b967fbf818004703de7cf29686468b54002ffe8d6b56e0808afa20d636819fcf3a34b89ba72f52c11bdf1d69f303928ee10d92752cad95 + checksum: 10/c1d8710cc1c52af9d8d67f7d8ea775578aa500887b327d2a81e27494764a6ef99e438dd7e14cf7cd3153656492ee27a8362980dc438087c0ca39d4e75532c638 languageName: node linkType: hard @@ -129,30 +92,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/e1bb465b3b0155702d82cfef09e3813e87a6d777cdd2c513796861eac14953340491eafea1d4109278bf4ceb48b54074c45758f042c0544d00c498090bee5a6f - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10/eccb2d75923d2d4d596f9ff64716e8664047c4192f1b44c7d5c07701d4a3498ac2587a72ddae1046e65a501bc630eb7df4557958b08ec2dcf5b4a264a052f111 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.25.9": +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: @@ -165,23 +105,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.7": - version: 7.25.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.4" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/47218da9fd964af30d41f0635d9e33eed7518e03aa8f10c3eb8a563bb2c14f52be3e3199db5912ae0e26058c23bb511c811e565c55ecec09427b04b867ed13c2 - languageName: node - linkType: hard - "@babel/helper-create-class-features-plugin@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" @@ -199,35 +122,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": - version: 7.25.2 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - regexpu-core: "npm:^5.3.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/33dd627eef9e4229aba66789efd8fb7342fc2667b821d4b7947c7294f6d472cf025ff2db9b358a1e03de98376de44e839f0611a456a57127fd6e4b4dbfc96c51 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.25.9" - regexpu-core: "npm:^6.1.1" + regexpu-core: "npm:^6.2.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/bc2b6a365ddf490c416661833dbf4430ae0c66132acccb5ce257e82026dd9db54da788bfbdcb7e0032aa0cba965cb1be169b1e1fb2c8c029b81625da4963f6b9 + checksum: 10/4c44122ea11c4253ee78a9c083b7fbce96c725e2cb43cc864f0e8ea2749f7b6658617239c6278df9f132d09a7545c8fe0336ed2895ad7c80c71507828a7bc8ba languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.2": - version: 0.6.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" +"@babel/helper-define-polyfill-provider@npm:^0.6.2, @babel/helper-define-polyfill-provider@npm:^0.6.3": + version: 0.6.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.3" dependencies: "@babel/helper-compilation-targets": "npm:^7.22.6" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -236,17 +146,7 @@ __metadata: resolve: "npm:^1.14.2" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/bb32ec12024d3f16e70641bc125d2534a97edbfdabbc9f69001ec9c4ce46f877c7a224c566aa6c8c510c3b0def2e43dc4433bf6a40896ba5ce0cef4ea5ccbcff - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" - dependencies: - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" - checksum: 10/ac878761cfd0a46c081cda0da75cc186f922cf16e8ecdd0c4fb6dca4330d9fe4871b41a9976224cf9669c9e7fe0421b5c27349f2e99c125fa0be871b327fa770 + checksum: 10/b79a77ac8fbf1aaf6c7f99191871760508e87d75a374ff3c39c6599a17d9bb82284797cd451769305764e504546caf22ae63367b22d6e45e32d0a8f4a34aab53 languageName: node linkType: hard @@ -260,16 +160,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/df8bfb2bb18413aa151ecd63b7d5deb0eec102f924f9de6bc08022ced7ed8ca7fed914562d2f6fa5b59b74a5d6e255dc35612b2bc3b8abf361e13f61b3704770 - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -280,21 +170,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/a3bcf7815f3e9d8b205e0af4a8d92603d685868e45d119b621357e274996bf916216bb95ab5c6a60fde3775b91941555bf129d608e3d025b04f8aac84589f300 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.25.9": +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: @@ -307,15 +183,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/da7a7f2d1bb1be4cffd5fa820bd605bc075c7dd014e0458f608bb6f34f450fe9412c8cea93e788227ab396e0e02c162d7b1db3fbcb755a6360e354c485d61df0 - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" @@ -325,14 +192,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 10/adbc9fc1142800a35a5eb0793296924ee8057fe35c61657774208670468a9fbfbb216f2d0bc46c680c5fefa785e5ff917cc1674b10bd75cdf9a6aa3444780630 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.25.9": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" checksum: 10/e347d87728b1ab10b6976d46403941c8f9008c045ea6d99997a7ffca7b852dc34b6171380f7b17edf94410e0857ff26f3a53d8618f11d73744db86e8ca9b8c64 @@ -352,19 +212,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" - dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/97c6c17780cb9692132f7243f5a21fb6420104cb8ff8752dc03cfc9a1912a243994c0290c77ff096637ab6f2a7363b63811cfc68c2bad44e6b39460ac2f6a63f - languageName: node - linkType: hard - "@babel/helper-replace-supers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-replace-supers@npm:7.25.9" @@ -378,36 +225,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/5083e190186028e48fc358a192e4b93ab320bd016103caffcfda81302a13300ccce46c9cd255ae520c25d2a6a9b47671f93e5fe5678954a2329dc0a685465c49 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-simple-access@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/a16a6cfa5e8ac7144e856bcdaaf0022cf5de028fc0c56ce21dd664a6e900999a4285c587a209f2acf9de438c0d60bfb497f5f34aa34cbaf29da3e2f8d8d7feb7 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/784a6fdd251a9a7e42ccd04aca087ecdab83eddc60fda76a2950e00eb239cc937d3c914266f0cc476298b52ac3f44ffd04c358e808bd17552a7e008d75494a77 - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" @@ -418,13 +235,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -432,34 +242,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.25.9": +"@babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.25.9": +"@babel/helper-validator-option@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-option@npm:7.25.9" checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - "@babel/helper-wrap-function@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-wrap-function@npm:7.25.9" @@ -471,41 +267,28 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/69b73f38cdd4f881b09b939a711e76646da34f4834f4ce141d7a49a6bb1926eab1c594148970a8aa9360398dff800f63aade4e81fafdd7c8d8a8489ea93bfec1 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.6" - bin: - parser: ./bin/babel-parser.js - checksum: 10/830aab72116aa14eb8d61bfa8f9d69fc8f3a43d909ce993cb4350ae14d3af1a2f740a54410a22d821c48a253263643dfecbc094f9608e6a70ce9ff3c0bbfe91a + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10/fd4757f65d10b64cfdbf4b3adb7ea6ffff9497c53e0786452f495d1f7794da7e0898261b4db65e1c62bbb9a360d7d78a1085635c23dfc3af2ab6dcba06585f86 languageName: node linkType: hard -"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/parser@npm:7.26.2" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/parser@npm:7.26.3" dependencies: - "@babel/types": "npm:^7.26.0" + "@babel/types": "npm:^7.26.3" bin: parser: ./bin/babel-parser.js - checksum: 10/8baee43752a3678ad9f9e360ec845065eeee806f1fdc8e0f348a8a0e13eef0959dabed4a197c978896c493ea205c804d0a1187cc52e4a1ba017c7935bab4983d + checksum: 10/e7e3814b2dc9ee3ed605d38223471fa7d3a84cbe9474d2b5fa7ac57dc1ddf75577b1fd3a93bf7db8f41f28869bda795cddd80223f980be23623b6434bf4c88a8 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" dependencies: @@ -517,7 +300,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" dependencies: @@ -528,7 +311,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: @@ -539,7 +322,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: @@ -552,7 +335,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: @@ -564,16 +347,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-proposal-decorators@npm:7.24.7" +"@babel/plugin-proposal-decorators@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-proposal-decorators@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-decorators": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-decorators": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/456ed3143b7b825bf72e58354f8afbffb0a34e987e2d306b565e0a032402d2c3e283863e09496784c5a5b94865b0ec379f6bc41cc760b3294b685a7cc52bc670 + checksum: 10/f564de219ace3980cd679c719738390c02e2e6f562b330bfb941fab94c128bcb2b30e9970e1aae82d3b908703e162e4a62fb9269c7e9fb4bad83d0a56cdb41af languageName: node linkType: hard @@ -586,40 +369,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-decorators@npm:^7.24.7": +"@babel/plugin-syntax-decorators@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-syntax-decorators@npm:7.25.9" dependencies: @@ -630,28 +380,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - "@babel/plugin-syntax-flow@npm:^7.25.9": version: 7.26.0 resolution: "@babel/plugin-syntax-flow@npm:7.26.0" @@ -663,7 +391,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.7": +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: @@ -674,47 +402,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.25.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/5afeba6b8979e61e8e37af905514891920eab103a08b36216f5518474328f9fae5204357bfadf6ce4cc80cb96848cdb7b8989f164ae93bd063c86f3f586728c0 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" +"@babel/plugin-syntax-import-attributes@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/a93516ae5b34868ab892a95315027d4e5e38e8bd1cfca6158f2974b0901cbb32bbe64ea10ad5b25f919ddc40c6d8113c4823372909c9c9922170c12b0b1acecb + checksum: 10/c122aa577166c80ee67f75aebebeef4150a132c4d3109d25d7fc058bf802946f883e330f20b78c1d3e3a5ada631c8780c263d2d01b5dbaecc69efefeedd42916 languageName: node linkType: hard @@ -729,94 +424,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -829,7 +436,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: @@ -840,7 +447,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: @@ -853,7 +460,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: @@ -866,7 +473,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: @@ -877,7 +484,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.0": +"@babel/plugin-transform-block-scoping@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: @@ -888,7 +495,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.4": +"@babel/plugin-transform-class-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: @@ -900,7 +507,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.7": +"@babel/plugin-transform-class-static-block@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: @@ -912,7 +519,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.4": +"@babel/plugin-transform-classes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: @@ -928,7 +535,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7": +"@babel/plugin-transform-computed-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: @@ -940,7 +547,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.8": +"@babel/plugin-transform-destructuring@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: @@ -951,7 +558,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.7": +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: @@ -963,7 +570,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: @@ -974,7 +581,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" dependencies: @@ -986,7 +593,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: @@ -997,19 +604,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.26.3" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9" "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/57e1bb4135dd16782fe84b49dd360cce8f9bf5f62eb10424dcdaf221e54a8bacdf50f2541c5ac01dea9f833a6c628613d71be915290938a93454389cba4de06b + checksum: 10/0d8da2e552a50a775fe8e6e3c32621d20d3c5d1af7ab40ca2f5c7603de057b57b1b5850f74040e4ecbe36c09ac86d92173ad1e223a2a3b3df3cc359ca4349738 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: @@ -1020,7 +626,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.24.7": +"@babel/plugin-transform-flow-strip-types@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.9" dependencies: @@ -1032,7 +638,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.7": +"@babel/plugin-transform-for-of@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: @@ -1044,7 +650,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1": +"@babel/plugin-transform-function-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: @@ -1057,7 +663,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.7": +"@babel/plugin-transform-json-strings@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: @@ -1068,7 +674,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2": +"@babel/plugin-transform-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: @@ -1079,7 +685,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: @@ -1090,7 +696,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: @@ -1101,7 +707,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.7": +"@babel/plugin-transform-modules-amd@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: @@ -1113,20 +719,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-simple-access": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/a7390ca999373ccdef91075f274d1ace3a5cb79f9b9118ed6f76e94867ed454cf798a6f312ce2c4cdc1e035a25d810d754e4cb2e4d866acb4219490f3585de60 + checksum: 10/f817f02fa04d13f1578f3026239b57f1003bebcf9f9b8d854714bed76a0e4986c79bd6d2e0ac14282c5d309454a8dab683c179709ca753b0152a69c69f3a78e3 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: @@ -1140,7 +745,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.7": +"@babel/plugin-transform-modules-umd@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: @@ -1152,7 +757,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: @@ -1164,7 +769,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.7": +"@babel/plugin-transform-new-target@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: @@ -1175,7 +780,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: @@ -1186,7 +791,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: @@ -1197,7 +802,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: @@ -1210,7 +815,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.7": +"@babel/plugin-transform-object-super@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: @@ -1222,7 +827,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: @@ -1233,7 +838,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.25.9": +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: @@ -1245,17 +850,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-parameters@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/41ff6bda926fabfb2e5d90b70621f279330691bed92009297340a8e776cfe9c3f2dda6afbc31dd3cbdccdfa9a5c57f2046e3ccc84f963c3797356df003d1703a - languageName: node - linkType: hard - "@babel/plugin-transform-parameters@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-parameters@npm:7.25.9" @@ -1267,7 +861,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.4": +"@babel/plugin-transform-private-methods@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: @@ -1279,7 +873,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: @@ -1292,7 +886,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.7": +"@babel/plugin-transform-property-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: @@ -1303,7 +897,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.24.7": +"@babel/plugin-transform-react-display-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" dependencies: @@ -1314,7 +908,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.24.7": +"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" dependencies: @@ -1325,21 +919,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.24.7": - version: 7.25.2 - resolution: "@babel/plugin-transform-react-jsx@npm:7.25.2" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/plugin-syntax-jsx": "npm:^7.24.7" - "@babel/types": "npm:^7.25.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/4cab88496285a98853413c9b2525053506728f13d04aefc1b37e6d9f0dc4ea15e0d4c9e59b36b43d0b204bd3c56761e7b0ec56b3ae60a58880a0017b157a0250 - languageName: node - linkType: hard - "@babel/plugin-transform-react-jsx@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" @@ -1355,7 +934,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7": +"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" dependencies: @@ -1367,7 +946,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.7": +"@babel/plugin-transform-regenerator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: @@ -1379,7 +958,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.7": +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/726deca486bbd4b176f8a966eb0f4aabc19d9def3b8dabb8b3a656778eca0df1fda3f3c92b213aa5a184232fdafd5b7bd73b4e24ca4345c498ef6baff2bda4e1 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" dependencies: @@ -1390,7 +981,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: @@ -1401,7 +992,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7": +"@babel/plugin-transform-spread@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: @@ -1413,7 +1004,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: @@ -1424,7 +1015,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.7": +"@babel/plugin-transform-template-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: @@ -1435,7 +1026,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: @@ -1446,7 +1037,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: @@ -1457,7 +1048,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: @@ -1469,7 +1060,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: @@ -1481,7 +1072,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.4": +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: @@ -1493,109 +1084,95 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.25.4": - version: 7.25.4 - resolution: "@babel/preset-env@npm:7.25.4" +"@babel/preset-env@npm:7.26.0": + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" dependencies: - "@babel/compat-data": "npm:^7.25.4" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-option": "npm:^7.24.8" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" + "@babel/compat-data": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" + "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" - "@babel/plugin-transform-modules-amd": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" - "@babel/plugin-transform-modules-umd": "npm:^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-new-target": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-object-super": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.25.4" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-property-literals": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-reserved-words": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-template-literals": "npm:^7.24.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.4" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" + "@babel/plugin-transform-block-scoping": "npm:^7.25.9" + "@babel/plugin-transform-class-properties": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.26.0" + "@babel/plugin-transform-classes": "npm:^7.25.9" + "@babel/plugin-transform-computed-properties": "npm:^7.25.9" + "@babel/plugin-transform-destructuring": "npm:^7.25.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" + "@babel/plugin-transform-for-of": "npm:^7.25.9" + "@babel/plugin-transform-function-name": "npm:^7.25.9" + "@babel/plugin-transform-json-strings": "npm:^7.25.9" + "@babel/plugin-transform-literals": "npm:^7.25.9" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" + "@babel/plugin-transform-modules-amd": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-umd": "npm:^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-new-target": "npm:^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" + "@babel/plugin-transform-object-super": "npm:^7.25.9" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/plugin-transform-private-methods": "npm:^7.25.9" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" + "@babel/plugin-transform-property-literals": "npm:^7.25.9" + "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" + "@babel/plugin-transform-reserved-words": "npm:^7.25.9" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" + "@babel/plugin-transform-spread": "npm:^7.25.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" + "@babel/plugin-transform-template-literals": "npm:^7.25.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.6" babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.37.1" + core-js-compat: "npm:^3.38.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/45ca65bdc7fa11ca51167804052460eda32bf2e6620c7ba998e2d95bc867595913532ee7d748e97e808eabcc66aabe796bd75c59014d996ec8183fa5a7245862 + checksum: 10/a7a80314f845deea713985a6316361c476621c76cfe5c6c28e8b9558f01634b49bbfdd3581ef94b5d6cff5c2b8830468aa53a73f5b5c1224db2dfea5db7e676f languageName: node linkType: hard -"@babel/preset-flow@npm:7.24.7": - version: 7.24.7 - resolution: "@babel/preset-flow@npm:7.24.7" +"@babel/preset-flow@npm:7.25.9": + version: 7.25.9 + resolution: "@babel/preset-flow@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-option": "npm:^7.24.7" - "@babel/plugin-transform-flow-strip-types": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-flow-strip-types": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/20fe02b5bc3a9d5b353d164d5ef89841032605434ae351d14309a041d6dc5bd0df3417d0510a6468813392d54793825ba6b04d8c5a5377eee31fc2b55503bf26 + checksum: 10/b1591ea63a7ace7e34bcefa6deba9e2814d7f082e3c074e2648efb68a1a49016ccefbea024156ba28bd3042a4e768e3eb8b5ecfe433978144fdaaadd36203ba2 languageName: node linkType: hard @@ -1612,46 +1189,28 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:7.24.7": - version: 7.24.7 - resolution: "@babel/preset-react@npm:7.24.7" +"@babel/preset-react@npm:7.26.3": + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-option": "npm:^7.24.7" - "@babel/plugin-transform-react-display-name": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx-development": "npm:^7.24.7" - "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/e861e6b923e8eacb01c2e931310b4a5b2ae2514a089a37390051700d1103ab87003f2abc0b389a12db7be24971dd8eaabee794b799d3e854cb0c22ba07a33100 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 10/c57fb730b17332b7572574b74364a77d70faa302a281a62819476fa3b09822974fd75af77aea603ad77378395be64e81f89f0e800bf86cbbf21652d49ce12ee8 + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-react-display-name": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/88cb78c402b79f32389ee06451da51698d5b1da7641d9a47482883f537fe5441a138bd4c077d8533fd6d557406b08911c47b94402cea843db598e020bdd9a373 languageName: node linkType: hard "@babel/runtime@npm:^7.8.4": - version: 7.25.6 - resolution: "@babel/runtime@npm:7.25.6" + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10/0c4134734deb20e1005ffb9165bf342e1074576621b246d8e5e41cc7cb315a885b7d98950fbf5c63619a2990a56ae82f444d35fe8c4691a0b70c2fe5673667dc - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 + checksum: 10/9f4ea1c1d566c497c052d505587554e782e021e6ccd302c2ad7ae8291c8e16e3f19d4a7726fb64469e057779ea2081c28b7dbefec6d813a22f08a35712c0f699 languageName: node linkType: hard @@ -1666,67 +1225,41 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.4": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.6" - "@babel/parser": "npm:^7.25.6" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10/de75a918299bc27a44ec973e3f2fa8c7902bbd67bd5d39a0be656f3c1127f33ebc79c12696fbc8170a0b0e1072a966d4a2126578d7ea2e241b0aeb5d16edc738 - languageName: node - linkType: hard - "@babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" + version: 7.26.4 + resolution: "@babel/traverse@npm:7.26.4" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.3" + "@babel/parser": "npm:^7.26.3" "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/types": "npm:^7.26.3" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/7431614d76d4a053e429208db82f2846a415833f3d9eb2e11ef72eeb3c64dfd71f4a4d983de1a4a047b36165a1f5a64de8ca2a417534cc472005c740ffcb9c6a - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.4.4": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10/7b54665e1b51f525fe0f451efdd9fe7a4a6dfba3fd4956c3530bc77336b66ffe3d78c093796ed044119b5d213176af7cf326f317a2057c538d575c6cefcb3562 + checksum: 10/30c81a80d66fc39842814bc2e847f4705d30f3859156f130d90a0334fe1d53aa81eed877320141a528ecbc36448acc0f14f544a7d410fa319d1c3ab63b50b58f languageName: node linkType: hard -"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/types@npm:7.26.0" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.4.4": + version: 7.26.3 + resolution: "@babel/types@npm:7.26.3" dependencies: "@babel/helper-string-parser": "npm:^7.25.9" "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10/40780741ecec886ed9edae234b5eb4976968cc70d72b4e5a40d55f83ff2cc457de20f9b0f4fe9d858350e43dab0ea496e7ef62e2b2f08df699481a76df02cd6e + checksum: 10/c31d0549630a89abfa11410bf82a318b0c87aa846fbf5f9905e47ba5e2aa44f41cc746442f105d622c519e4dc532d35a8d8080460ff4692f9fc7485fbf3a00eb languageName: node linkType: hard -"@cspell/cspell-bundled-dicts@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/cspell-bundled-dicts@npm:8.16.0" +"@cspell/cspell-bundled-dicts@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/cspell-bundled-dicts@npm:8.16.1" dependencies: "@cspell/dict-ada": "npm:^4.0.5" "@cspell/dict-al": "npm:^1.0.3" "@cspell/dict-aws": "npm:^4.0.7" "@cspell/dict-bash": "npm:^4.1.8" "@cspell/dict-companies": "npm:^3.1.7" - "@cspell/dict-cpp": "npm:^6.0.1" + "@cspell/dict-cpp": "npm:^6.0.2" "@cspell/dict-cryptocurrencies": "npm:^5.0.3" "@cspell/dict-csharp": "npm:^4.0.5" "@cspell/dict-css": "npm:^4.0.16" @@ -1737,7 +1270,7 @@ __metadata: "@cspell/dict-elixir": "npm:^4.0.6" "@cspell/dict-en-common-misspellings": "npm:^2.0.7" "@cspell/dict-en-gb": "npm:1.1.33" - "@cspell/dict-en_us": "npm:^4.3.26" + "@cspell/dict-en_us": "npm:^4.3.28" "@cspell/dict-filetypes": "npm:^3.0.8" "@cspell/dict-flutter": "npm:^1.0.3" "@cspell/dict-fonts": "npm:^4.0.3" @@ -1745,7 +1278,7 @@ __metadata: "@cspell/dict-fullstack": "npm:^3.2.3" "@cspell/dict-gaming-terms": "npm:^1.0.8" "@cspell/dict-git": "npm:^3.0.3" - "@cspell/dict-golang": "npm:^6.0.16" + "@cspell/dict-golang": "npm:^6.0.17" "@cspell/dict-google": "npm:^1.0.4" "@cspell/dict-haskell": "npm:^4.0.4" "@cspell/dict-html": "npm:^4.0.10" @@ -1760,53 +1293,53 @@ __metadata: "@cspell/dict-markdown": "npm:^2.0.7" "@cspell/dict-monkeyc": "npm:^1.0.9" "@cspell/dict-node": "npm:^5.0.5" - "@cspell/dict-npm": "npm:^5.1.11" + "@cspell/dict-npm": "npm:^5.1.14" "@cspell/dict-php": "npm:^4.0.13" "@cspell/dict-powershell": "npm:^5.0.13" "@cspell/dict-public-licenses": "npm:^2.0.11" "@cspell/dict-python": "npm:^4.2.12" "@cspell/dict-r": "npm:^2.0.4" "@cspell/dict-ruby": "npm:^5.0.7" - "@cspell/dict-rust": "npm:^4.0.9" + "@cspell/dict-rust": "npm:^4.0.10" "@cspell/dict-scala": "npm:^5.0.6" - "@cspell/dict-software-terms": "npm:^4.1.13" + "@cspell/dict-software-terms": "npm:^4.1.17" "@cspell/dict-sql": "npm:^2.1.8" "@cspell/dict-svelte": "npm:^1.0.5" "@cspell/dict-swift": "npm:^2.0.4" "@cspell/dict-terraform": "npm:^1.0.6" "@cspell/dict-typescript": "npm:^3.1.11" "@cspell/dict-vue": "npm:^3.0.3" - checksum: 10/b872bb95358ba41812476f432ecd573becc580f43e0377e0d8da9f0028eaa39211eda05d5f0502d8d8562b806a9b6e743b4000a5a2eafccbe724cf0803f14121 + checksum: 10/ba3e86dfef207a84cd91f9982995db6cb5442691637b87b76a6d55ff11f453bffd1f4742cf053700d61f0928b5402951cbeea0de29f8605d147f7df453128544 languageName: node linkType: hard -"@cspell/cspell-pipe@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/cspell-pipe@npm:8.16.0" - checksum: 10/4f6cac2463443c19207061688d4560505ec667c684cbbd6f9d5b92f41fbf7a6aa246adbf5f73000e34262ef529cde97b9a38ff75f3af4730486f0d95302dad2c +"@cspell/cspell-pipe@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/cspell-pipe@npm:8.16.1" + checksum: 10/c2d80992e33cf7cb2cc28bcc488b663ff0e47d1d654d968c789b9048b09953bb3bc8e9dc9f370fc609e29b6ac483e858eddadd616930f4874aaa4800c71154e1 languageName: node linkType: hard -"@cspell/cspell-resolver@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/cspell-resolver@npm:8.16.0" +"@cspell/cspell-resolver@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/cspell-resolver@npm:8.16.1" dependencies: global-directory: "npm:^4.0.1" - checksum: 10/1ca62a507d9298ed409848973ce916f579988d690e34209f19e7ef58e8fc1ac111f419cf2ad3f390d387da045002c850cd9d94f3d2a63ceb226c6f3af83a499d + checksum: 10/8ccd6dddf6c552659d252a4e2b410476efba3b6a2b2ea3fad7da6f9992f438c5c141251e5c19c823f177d5793e3ea46014e283c186d5ac5564c8dd743998c1c6 languageName: node linkType: hard -"@cspell/cspell-service-bus@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/cspell-service-bus@npm:8.16.0" - checksum: 10/1cefdc51a131c7c1bd9655345fecadde0bc6bb30d977f9ce7a6b29ad6e5ab2dbb97dfc9c620d5c95d3f06cac8bfabb9b2b13dff731abe103351411012aebf71c +"@cspell/cspell-service-bus@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/cspell-service-bus@npm:8.16.1" + checksum: 10/ea33d8c59fbb7c3fcdde911a4a438d64f2ef7d3488ef86ce3f6828a268fd13743ee6e69e0db68ce60c12fc85d738ff3cac3fd4357ad96b4970a82ddf9e6a9522 languageName: node linkType: hard -"@cspell/cspell-types@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/cspell-types@npm:8.16.0" - checksum: 10/981d5506e62558683b17b900d197fbb439335232aec68871c7911e1595252c1637140a2b4949cd523e4e44eaa7ac4f58a65cc5fccf0230031b9698720f65d6cc +"@cspell/cspell-types@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/cspell-types@npm:8.16.1" + checksum: 10/4da5cc84b01c7c8ad43fdbded1a283ce5be51883581b57869a4c12b7a39dad82dce35dcf0af8013531a1e3a885f0623a997e6a05c01104d66973a2356e31d1b8 languageName: node linkType: hard @@ -1845,7 +1378,7 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-cpp@npm:^6.0.1": +"@cspell/dict-cpp@npm:^6.0.2": version: 6.0.2 resolution: "@cspell/dict-cpp@npm:6.0.2" checksum: 10/2c18e409634654fcb013787820d0b2dff9211971ade286e436d56fa6abcf9b9cd555c1846a3fe7866f9be8daf9c6660ed783ce0462fe4076ca722bed7e201857 @@ -1929,10 +1462,10 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-en_us@npm:^4.3.26": - version: 4.3.26 - resolution: "@cspell/dict-en_us@npm:4.3.26" - checksum: 10/39a8a5dc63f85cda473976e4810c46db311fc415ec648eb664641da4e3faa46249f6be77551d67b3eef350dc915b78fd248098038fc3a8de1de93426b27d728b +"@cspell/dict-en_us@npm:^4.3.28": + version: 4.3.28 + resolution: "@cspell/dict-en_us@npm:4.3.28" + checksum: 10/9fc20ef30ee785c51942190eee13b8838a695ca6da2367ae331b5dcdd37f22f96297454922cfdaee608517d9794d03ac67e916abbdf900c122d32dbbf7e96795 languageName: node linkType: hard @@ -1985,10 +1518,10 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-golang@npm:^6.0.16": - version: 6.0.16 - resolution: "@cspell/dict-golang@npm:6.0.16" - checksum: 10/9ff4e93947fdd91bf83c8bd433799ed7c976651d718b47e1f2cc4407818fa54b32b0e868e993ec7b4ba949bbc68b09ddc39d90e18df926682a82825e12602e74 +"@cspell/dict-golang@npm:^6.0.17": + version: 6.0.17 + resolution: "@cspell/dict-golang@npm:6.0.17" + checksum: 10/394dfc74b36e35b2b5fb8eb5dd0fd800500845a1873d02c2b3399e4b5515baf06f8537497d68e612047962e827256df20fd05453be57244964af248976e8d4f3 languageName: node linkType: hard @@ -2095,10 +1628,10 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-npm@npm:^5.1.11": - version: 5.1.11 - resolution: "@cspell/dict-npm@npm:5.1.11" - checksum: 10/ac52b7c024bc48bd50cf4208d4d1c5d646445c31041f6f277c462b561cd1d0e7ae6431035f3c8bca3c2c593bc68ecf4888b961452efe5b5187eba5c0e44c62f0 +"@cspell/dict-npm@npm:^5.1.14": + version: 5.1.15 + resolution: "@cspell/dict-npm@npm:5.1.15" + checksum: 10/8a2c9145e8581f1e7c5f23849099efbe1dbb73511fbc55cb2d37ec0693e9634f6c238b0ddaca6c69bbc38472b1b4515cd4a5aad35f96e23413592a88e38512e8 languageName: node linkType: hard @@ -2124,11 +1657,11 @@ __metadata: linkType: hard "@cspell/dict-python@npm:^4.2.12": - version: 4.2.12 - resolution: "@cspell/dict-python@npm:4.2.12" + version: 4.2.13 + resolution: "@cspell/dict-python@npm:4.2.13" dependencies: "@cspell/dict-data-science": "npm:^2.0.5" - checksum: 10/f58a511c4afeb4997bd207583c18875cd523115af8806f143e09084431b2ec6b5abe35d6f0875428b6e56e99a6f5a369fa6ad4d77f2336da0f2a1726d010fb72 + checksum: 10/4ca16d54160b89d0ba22f0eaed738f0d5a97977aa21b3a9b386054627c5c87b9d955528a5ed87d3cf8c981de499a0793351c01008ddeb98cf3e86da4b188706e languageName: node linkType: hard @@ -2146,10 +1679,10 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-rust@npm:^4.0.9": - version: 4.0.9 - resolution: "@cspell/dict-rust@npm:4.0.9" - checksum: 10/1421dbdb9e4e8c13ba1d12f1b637cb4d83b152fe21be4b1c878ec3078f2485f5913566573b5a8b54df50e4b6446cc4dcf8cb9b4cddc0bcdbd7fe461be1595c99 +"@cspell/dict-rust@npm:^4.0.10": + version: 4.0.10 + resolution: "@cspell/dict-rust@npm:4.0.10" + checksum: 10/fd8335395d6ff30311aa998427a8cdaccb758dab21369492b9766fc092f3be399ad76f89dd8354dde8e6b268fff071f6920ca762c8e68b2e9902bada8325e0a0 languageName: node linkType: hard @@ -2160,10 +1693,10 @@ __metadata: languageName: node linkType: hard -"@cspell/dict-software-terms@npm:^4.1.13": - version: 4.1.13 - resolution: "@cspell/dict-software-terms@npm:4.1.13" - checksum: 10/74f65d35b727505c626a3323052c2cef6a95cb5052b92ff8e6abe29172358889f2007336034a7fd9cb86ead314ff93400d421a99eadc37ee43faad8b6b2e86b5 +"@cspell/dict-software-terms@npm:^4.1.17": + version: 4.1.18 + resolution: "@cspell/dict-software-terms@npm:4.1.18" + checksum: 10/8d2ed693f608bff533b58b26d01c5dec9ecf0e5e42c2eb20fafbc37313d950b3dd21ab6ef4de4df938a4dbedd3717a2b85246f20c10c44a32bb5492b3da4f882 languageName: node linkType: hard @@ -2209,53 +1742,53 @@ __metadata: languageName: node linkType: hard -"@cspell/dynamic-import@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/dynamic-import@npm:8.16.0" +"@cspell/dynamic-import@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/dynamic-import@npm:8.16.1" dependencies: import-meta-resolve: "npm:^4.1.0" - checksum: 10/8d5f764b029baf9c64ae6513e8160fe73a5465283fe86bdcfe807ba22e6869eb0fec0cd5a7c7061900683272d1d5f5c8e5ec7b864ad5ddccfdd8c5947bb16a08 + checksum: 10/9059bc5e381c66fb9623f4165d93ddb9ceab75c56a3af850549a6b051f30dd87801f3fba407fbd966a6a714adec61857a422a3547bf6ea53dd9d3a514640a8e1 languageName: node linkType: hard -"@cspell/eslint-plugin@npm:^8.16.0": - version: 8.16.0 - resolution: "@cspell/eslint-plugin@npm:8.16.0" +"@cspell/eslint-plugin@npm:^8.16.1": + version: 8.16.1 + resolution: "@cspell/eslint-plugin@npm:8.16.1" dependencies: - "@cspell/cspell-types": "npm:8.16.0" - "@cspell/url": "npm:8.16.0" - cspell-lib: "npm:8.16.0" + "@cspell/cspell-types": "npm:8.16.1" + "@cspell/url": "npm:8.16.1" + cspell-lib: "npm:8.16.1" synckit: "npm:^0.9.2" peerDependencies: eslint: ^7 || ^8 || ^9 - checksum: 10/3be4871ae79af9a7f2aa2f352ce94e160db68ee5ab62039b686bb8f579400422dcdfb7aa00fba2a7b3c20437c5a52750ba1d4a061a3c3c8d6a1eea9f5d1b0a1b + checksum: 10/9f8f68a8783aad0b8cbbef9c7ba6e193c8b36a859f2606d4d5eb854bb29b10c3f524e5a73ac197c229914054fff8993d673c843960ff1dcd071d8eb0d1e0e7ad languageName: node linkType: hard -"@cspell/filetypes@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/filetypes@npm:8.16.0" - checksum: 10/fa4641db833f1865ab95ffaec625a390149e26a615cf9f4182afeff858506a9b547e9d65c57968dcb1b1007e44e3be7a34955d597a04ccadb3106e8a0ec6df39 +"@cspell/filetypes@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/filetypes@npm:8.16.1" + checksum: 10/d10541f5ede3bc94913e206fa65e99c846d569f411d5d1406b29daa919b4efb8f9c53dffd89ed67e6f7da71e98ba62e5e535dd38a2e71e57ef9d73abe8144ffe languageName: node linkType: hard -"@cspell/strong-weak-map@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/strong-weak-map@npm:8.16.0" - checksum: 10/cc9a2b8f9059fed5d440f29023376d416a2a9e08116facd7b494feacea3e9129f44ef1ade0152d763b0afb93b6c91d1adb7864d1524819db927ce5934685c17f +"@cspell/strong-weak-map@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/strong-weak-map@npm:8.16.1" + checksum: 10/907e480997f60fd6d38120f5eb69ac356a99cbe6b8f35511668a0a826d30a9a8458de513216421fd119f7c3d09ba49bbf143ebcd153921228ddf20dae2ed98a2 languageName: node linkType: hard -"@cspell/url@npm:8.16.0": - version: 8.16.0 - resolution: "@cspell/url@npm:8.16.0" - checksum: 10/490d2ddddc6750041ecf56255b8d14402db0875b6bd908ef07221c9084ac315c9e11f734a30f2cb424e4c4d37402a1ec01cb4124b0f37c7187bcf029e21fd822 +"@cspell/url@npm:8.16.1": + version: 8.16.1 + resolution: "@cspell/url@npm:8.16.1" + checksum: 10/365f4e018aaf027735549880cbb4ed48715e863682a6d346180f90dcbf0c37ce3c70341f92015f8cfae7e7e700a981ab5cc93ee8f9c2663ea48076730952becb languageName: node linkType: hard -"@digital-alchemy/core@npm:^24.11.3": - version: 24.11.3 - resolution: "@digital-alchemy/core@npm:24.11.3" +"@digital-alchemy/core@npm:^24.11.4": + version: 24.11.4 + resolution: "@digital-alchemy/core@npm:24.11.4" dependencies: chalk: "npm:^5.3.0" dayjs: "npm:^1.11.13" @@ -2265,23 +1798,23 @@ __metadata: minimist: "npm:^1.2.8" node-cron: "npm:^3.0.3" uuid: "npm:^11.0.3" - checksum: 10/c078a12e06ae8b08629b2743013e2bf031822c126611260a572cf48eb2165043057f67a17cd66c524ff90286dc47915dfaf666bbd452ed1989d758e4dde2bd61 + checksum: 10/8cae1cca33651a5171e23008e659c0b2769e5575a04233c9c3374837e2cf8fcfa7ae9d16d9fb730e639c0efd910dc6e87b775296c9b7f5fb0e2151bf21a41a0e languageName: node linkType: hard -"@digital-alchemy/hass@npm:^24.11.3": - version: 24.11.3 - resolution: "@digital-alchemy/hass@npm:24.11.3" +"@digital-alchemy/hass@npm:^24.11.4": + version: 24.11.4 + resolution: "@digital-alchemy/hass@npm:24.11.4" dependencies: - "@digital-alchemy/core": "npm:^24.11.3" + "@digital-alchemy/core": "npm:^24.11.4" dayjs: "npm:^1.11.13" semver: "npm:^7.6.3" - type-fest: "npm:^4.27.0" + type-fest: "npm:^4.28.0" uuid: "npm:^11.0.3" ws: "npm:^8.18.0" bin: mock-assistant: scripts/mock-assistant.sh - checksum: 10/bcc9bfa40a643fd2cc6ecc9bc4d49cb3d867ea3356c1c16be40ebae7e22516f5dedc55122b1c9e663babae8db6dcf68f14dd37f586a2374ac323311cff842b56 + checksum: 10/184eeef2d0ed5a029cbeff767327b721187a4d954f71e81903fa8cb4613935d5dc5e0c3b1457a030c018c64aa4fe7bc6cb1cb2df4b934786d37324990b26daa2 languageName: node linkType: hard @@ -2289,23 +1822,26 @@ __metadata: version: 0.0.0-use.local resolution: "@digital-alchemy/synapse@workspace:." dependencies: - "@cspell/eslint-plugin": "npm:^8.16.0" - "@digital-alchemy/core": "npm:^24.11.3" - "@digital-alchemy/hass": "npm:^24.11.3" - "@eslint/compat": "npm:^1.2.3" + "@cspell/eslint-plugin": "npm:^8.16.1" + "@digital-alchemy/core": "npm:^24.11.4" + "@digital-alchemy/hass": "npm:^24.11.4" + "@eslint/compat": "npm:^1.2.4" "@eslint/eslintrc": "npm:^3.2.0" - "@eslint/js": "npm:^9.15.0" + "@eslint/js": "npm:^9.16.0" "@types/better-sqlite3": "npm:^7.6.12" - "@types/node": "npm:^22.9.1" + "@types/bun": "npm:^1.1.14" + "@types/node": "npm:^22.10.1" "@types/node-cron": "npm:^3.0.11" "@types/uuid": "npm:^10.0.0" "@types/ws": "npm:^8.5.13" - "@typescript-eslint/eslint-plugin": "npm:8.15.0" - "@typescript-eslint/parser": "npm:8.15.0" - better-sqlite3: "npm:^11.5.0" + "@typescript-eslint/eslint-plugin": "npm:8.17.0" + "@typescript-eslint/parser": "npm:8.17.0" + better-sqlite3: "npm:^11.7.0" + bun: "npm:^1.1.38" + bun-types: "npm:^1.1.38" dayjs: "npm:^1.11.13" - dotenv: "npm:^16.4.5" - eslint: "npm:9.15.0" + dotenv: "npm:^16.4.7" + eslint: "npm:9.16.0" eslint-config-prettier: "npm:9.1.0" eslint-plugin-import: "npm:^2.31.0" eslint-plugin-jsonc: "npm:^2.18.2" @@ -2313,16 +1849,16 @@ __metadata: eslint-plugin-prettier: "npm:^5.2.1" eslint-plugin-security: "npm:^3.0.1" eslint-plugin-simple-import-sort: "npm:^12.1.1" - eslint-plugin-sonarjs: "npm:^2.0.4" + eslint-plugin-sonarjs: "npm:^3.0.1" eslint-plugin-sort-keys-fix: "npm:^1.1.2" eslint-plugin-unicorn: "npm:^56.0.1" node-cron: "npm:^3.0.3" - prettier: "npm:^3.3.3" + prettier: "npm:^3.4.2" tsx: "npm:^4.19.2" - type-fest: "npm:^4.27.0" - typescript: "npm:^5.7.0-beta" + type-fest: "npm:^4.30.0" + typescript: "npm:^5.7.2" uuid: "npm:^11.0.3" - vitest: "npm:^2.1.5" + vitest: "npm:^2.1.8" ws: "npm:^8.18.0" peerDependencies: "@digital-alchemy/core": "*" @@ -2663,57 +2199,52 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: - eslint-visitor-keys: "npm:^3.3.0" + eslint-visitor-keys: "npm:^3.4.3" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10/8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 + checksum: 10/ae92a11412674329b4bd38422518601ec9ceae28e251104d1cad83715da9d38e321f68c817c39b64e66d0af7d98df6f9a10ad2dc638911254b47fb8932df00ef languageName: node linkType: hard -"@eslint-community/regexpp@npm:4.11.1, @eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.8.0": - version: 4.11.1 - resolution: "@eslint-community/regexpp@npm:4.11.1" - checksum: 10/934b6d3588c7f16b18d41efec4fdb89616c440b7e3256b8cb92cfd31ae12908600f2b986d6c1e61a84cbc10256b1dd3448cd1eec79904bd67ac365d0f1aba2e2 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.12.1": +"@eslint-community/regexpp@npm:4.12.1, @eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.8.0": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc languageName: node linkType: hard -"@eslint/compat@npm:^1.2.3": - version: 1.2.3 - resolution: "@eslint/compat@npm:1.2.3" +"@eslint/compat@npm:^1.2.4": + version: 1.2.4 + resolution: "@eslint/compat@npm:1.2.4" peerDependencies: eslint: ^9.10.0 peerDependenciesMeta: eslint: optional: true - checksum: 10/5a8fc6ecb127a1ce757c2b94e4a71fd72939c3e9007eb80c0a819618e1c7cc98ffe3e5229a504c52e6f5b5dc0f6be3b899fa6a3dedb220cb4a02c8d5d0c333df + checksum: 10/872ac21e3f430575ba70916d83f5a4e7e9cc7fa953111c99ecef225d1ed05b66fbdb5034761dd9035f00c3f0d7ca7657f8cbfa4ff7ead3967f630c8c783d2beb languageName: node linkType: hard "@eslint/config-array@npm:^0.19.0": - version: 0.19.0 - resolution: "@eslint/config-array@npm:0.19.0" + version: 0.19.1 + resolution: "@eslint/config-array@npm:0.19.1" dependencies: - "@eslint/object-schema": "npm:^2.1.4" + "@eslint/object-schema": "npm:^2.1.5" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10/16e4ec468ebcb10255ab8c61234c1b3e7ac5506016e432fb489a1c5528cace7a60ddb07515516e7fc166b1dbe6c407d8a6bfbaa2e7531d445d8feb845c989913 + checksum: 10/1243b01f463de85c970c18f0994f9d1850dafe8cc8c910edb64105d845edd3cacaa0bbf028bf35a6daaf5a179021140b6a8b1dc7a2f915b42c2d35f022a9c201 languageName: node linkType: hard "@eslint/core@npm:^0.9.0": - version: 0.9.0 - resolution: "@eslint/core@npm:0.9.0" - checksum: 10/2d11e9c6fac14cfa817c7a9939fd6b79f2120928e4933952d061651db93797e0fcd67c858a14980ac26e90f6e0e49051436aefa4a4b06a26f24e3028366f73d9 + version: 0.9.1 + resolution: "@eslint/core@npm:0.9.1" + dependencies: + "@types/json-schema": "npm:^7.0.15" + checksum: 10/f2263f8f94fdf84fc34573e027de98f1fce6287120513ae672ddf0652c75b9fa77c314d565628fc58e0a6f959766acc34c8191f9b94f1757b910408ffa04adde languageName: node linkType: hard @@ -2734,26 +2265,26 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.15.0, @eslint/js@npm:^9.15.0": - version: 9.15.0 - resolution: "@eslint/js@npm:9.15.0" - checksum: 10/cdea71574a8be164147f426ffa5eca05a9c7fbfbae98387ed0cf772292fc9fb5ded69ce96eac110aaa633f6b7504ec551e1d33f2d6690ae95b11ec395553bae1 +"@eslint/js@npm:9.16.0, @eslint/js@npm:^9.16.0": + version: 9.16.0 + resolution: "@eslint/js@npm:9.16.0" + checksum: 10/122da09b6a2c6a92d68be26146af1da17d9d4e03cf9435a874d341f18519122eef9ed229e52a1b781dc5987239754954e80a0b11bbe8f65df96e9ef8f3b438ad languageName: node linkType: hard -"@eslint/object-schema@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/object-schema@npm:2.1.4" - checksum: 10/221e8d9f281c605948cd6e030874aacce83fe097f8f9c1964787037bccf08e82b7aa9eff1850a30fffac43f1d76555727ec22a2af479d91e268e89d1e035131e +"@eslint/object-schema@npm:^2.1.5": + version: 2.1.5 + resolution: "@eslint/object-schema@npm:2.1.5" + checksum: 10/bb07ec53357047f20de923bcd61f0306d9eee83ef41daa32e633e154a44796b5bd94670169eccb8fd8cb4ff42228a43b86953a6321f789f98194baba8207b640 languageName: node linkType: hard "@eslint/plugin-kit@npm:^0.2.3": - version: 0.2.3 - resolution: "@eslint/plugin-kit@npm:0.2.3" + version: 0.2.4 + resolution: "@eslint/plugin-kit@npm:0.2.4" dependencies: levn: "npm:^0.4.1" - checksum: 10/0d0653ef840823fd5c0354ef8f1937e7763dbe830173eb6d2d55a19374bf04a06dff0e5214330c10a9425cf38655f632bb0d7d0666249b366e506ae291d82f7e + checksum: 10/e34d02ea1dccd716e51369620263a4b2167aff3c0510ed776e21336cc3ad7158087449a76931baf07cdc33810cb6919db375f2e9f409435d2c6e0dd5f4786b25 languageName: node linkType: hard @@ -2782,9 +2313,9 @@ __metadata: linkType: hard "@humanwhocodes/retry@npm:^0.3.0": - version: 0.3.0 - resolution: "@humanwhocodes/retry@npm:0.3.0" - checksum: 10/e574bab58680867414e225c9002e9a97eb396f85871c180fbb1a9bcdf9ded4b4de0b327f7d0c43b775873362b7c92956d4b322e8bc4b90be56077524341f04b2 + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 10/eb457f699529de7f07649679ec9e0353055eebe443c2efe71c6dd950258892475a038e13c6a8c5e13ed1fb538cdd0a8794faa96b24b6ffc4c87fb1fc9f70ad7f languageName: node linkType: hard @@ -2809,6 +2340,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" @@ -2887,25 +2427,81 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" dependencies: agent-base: "npm:^7.1.0" http-proxy-agent: "npm:^7.0.0" https-proxy-agent: "npm:^7.0.1" lru-cache: "npm:^10.0.1" socks-proxy-agent: "npm:^8.0.3" - checksum: 10/96fc0036b101bae5032dc2a4cd832efb815ce9b33f9ee2f29909ee49d96a0026b3565f73c507a69eb8603f5cb32e0ae45a70cab1e2655990a4e06ae99f7f572a + checksum: 10/775c9a7eb1f88c195dfb3bce70c31d0fe2a12b28b754e25c08a3edb4bc4816bfedb7ac64ef1e730579d078ca19dacf11630e99f8f3c3e0fd7b23caa5fd6d30a6 languageName: node linkType: hard -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" dependencies: semver: "npm:^7.3.5" - checksum: 10/1e0e04087049b24b38bc0b30d87a9388ee3ca1d3fdfc347c2f77d84fcfe6a51f250bc57ba2c1f614d7e4285c6c62bf8c769bc19aa0949ea39e5b043ee023b0bd + checksum: 10/405c4490e1ff11cf299775449a3c254a366a4b1ffc79d87159b0ee7d5558ac9f6a2f8c0735fd6ff3873cef014cb1a44a5f9127cb6a1b2dbc408718cca9365b5a + languageName: node + linkType: hard + +"@oven/bun-darwin-aarch64@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-darwin-aarch64@npm:1.1.38" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oven/bun-darwin-x64-baseline@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-darwin-x64-baseline@npm:1.1.38" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oven/bun-darwin-x64@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-darwin-x64@npm:1.1.38" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oven/bun-linux-aarch64@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-linux-aarch64@npm:1.1.38" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@oven/bun-linux-x64-baseline@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-linux-x64-baseline@npm:1.1.38" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oven/bun-linux-x64@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-linux-x64@npm:1.1.38" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@oven/bun-windows-x64-baseline@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-windows-x64-baseline@npm:1.1.38" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oven/bun-windows-x64@npm:1.1.38": + version: 1.1.38 + resolution: "@oven/bun-windows-x64@npm:1.1.38" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2923,128 +2519,135 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.26.0" +"@rollup/rollup-android-arm-eabi@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-android-arm64@npm:4.26.0" +"@rollup/rollup-android-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm64@npm:4.28.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.26.0" +"@rollup/rollup-darwin-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.28.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.26.0" +"@rollup/rollup-darwin-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.28.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.26.0" +"@rollup/rollup-freebsd-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.26.0" +"@rollup/rollup-freebsd-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.28.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.26.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.26.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.26.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.26.0" +"@rollup/rollup-linux-arm64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.26.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.26.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.26.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.26.0" +"@rollup/rollup-linux-x64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.26.0" +"@rollup/rollup-linux-x64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.26.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.26.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.26.0": - version: 4.26.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.26.0" +"@rollup/rollup-win32-x64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3065,6 +2668,15 @@ __metadata: languageName: node linkType: hard +"@types/bun@npm:^1.1.14": + version: 1.1.14 + resolution: "@types/bun@npm:1.1.14" + dependencies: + bun-types: "npm:1.1.37" + checksum: 10/2ed1cb533af81b399752302fb416d32971f8f478567240c9d39245e57bf9b723461f66672d8ab6b93a1376fedcae31747674afed34a57042bc525c46118ac93e + languageName: node + linkType: hard + "@types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" @@ -3093,21 +2705,21 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 22.7.0 - resolution: "@types/node@npm:22.7.0" +"@types/node@npm:*, @types/node@npm:^22.10.1": + version: 22.10.1 + resolution: "@types/node@npm:22.10.1" dependencies: - undici-types: "npm:~6.19.2" - checksum: 10/6476d94a4c0fbf60df56634063e8aa26da1152e7096daf374f1eb010eab1c7ef4cdb75ab2508480e82c0b56538e0e7bdfc72af47e7a4e4ace37f2035eddfd3c2 + undici-types: "npm:~6.20.0" + checksum: 10/c802a526da2f3fa3ccefd00a71244e7cb825329951719e79e8fec62b1dbc2855388c830489770611584665ce10be23c05ed585982038b24924e1ba2c2cce03fd languageName: node linkType: hard -"@types/node@npm:^22.9.1": - version: 22.9.1 - resolution: "@types/node@npm:22.9.1" +"@types/node@npm:~20.12.8": + version: 20.12.14 + resolution: "@types/node@npm:20.12.14" dependencies: - undici-types: "npm:~6.19.8" - checksum: 10/43fadcb3a914a1daff8e559839f235eec65fe80bfef5016b361dbc7952c9bc9d79456c78d89beab275a9e9e5accff37e838c019ab519f821f12c953cd6c24b50 + undici-types: "npm:~5.26.4" + checksum: 10/8ce987f0b7e15116e92894c51ee53fe0cbd98dafb5693a2e7d490f16396552528114d055ca1b144d3fdc5ba7d5f5ce28ad091a693c24337615f047cefc3faa36 languageName: node linkType: hard @@ -3125,7 +2737,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.13": +"@types/ws@npm:^8.5.13, @types/ws@npm:~8.5.10": version: 8.5.13 resolution: "@types/ws@npm:8.5.13" dependencies: @@ -3134,38 +2746,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.16.1" - dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.16.1" - "@typescript-eslint/type-utils": "npm:7.16.1" - "@typescript-eslint/utils": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" - natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/fddbfe461f85d10ee3967b89efa3c704806074af6806833f982915b21754567a98c5a486627174cc6b0ac4cb5f1282865d64ae251a5cbf6dbbbe191d0268520a - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.15.0" +"@typescript-eslint/eslint-plugin@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.17.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.15.0" - "@typescript-eslint/type-utils": "npm:8.15.0" - "@typescript-eslint/utils": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/type-utils": "npm:8.17.0" + "@typescript-eslint/utils": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -3176,71 +2765,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/881a6ff3bb38e731027fa223c3cc38a29ffe32502f294b69f5e8099e7a678bab76845a2dfd4ab4d2f301c0f433e9c5e220ea5c8f13f91a508b00b997aaf3e4ed + checksum: 10/753630802632dc1bb15d4b86afe60b5280d080cc6715648f6b717093a81d31f8aa621f823d0aa5632d1cf05f3c8f4ea356eff49efd11d9f7c154cb16d2ac2d79 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/parser@npm:8.15.0" +"@typescript-eslint/parser@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/parser@npm:8.17.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.15.0" - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/typescript-estree": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/typescript-estree": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/2261cb63f561db8a613edc2307e9ef3826754b3d6876de076aa768f63bbf5428fb939ce1f050fd7f8512fecca15e7a70ee4f09e0aab9030737ea38a7bc37a4be - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/scope-manager@npm:7.16.1" - dependencies: - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" - checksum: 10/57ce02c2624e49988b01666b3e13d1adb44ab78f2dafc47a56800d57bff624779b348928a905393fa5f2cce94a5844173ab81f32b81f0bb2897f10bbaf9cab6a + checksum: 10/464981e1424e4a7849ca7253b54092a67d33130d28ecf492efd56d5ce69e640a876b7f84e59f1e368e763125432c34e7de28d78c0eef1bda4e9a9d52de0ccac5 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/scope-manager@npm:8.15.0" +"@typescript-eslint/scope-manager@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/scope-manager@npm:8.17.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" - checksum: 10/70abd5f049c5568a1b33391d85b5842ffae513f5b2bb5630bd26619a50e41ea5e6b620970958f94e0129ffff9ab69997f396f782195923aa45dfbb2df0941a14 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/type-utils@npm:7.16.1" - dependencies: - "@typescript-eslint/typescript-estree": "npm:7.16.1" - "@typescript-eslint/utils": "npm:7.16.1" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/38a72a3de8a2c3455d19e6d43e67ac6e1dc23e93b2d84571282b0323fadadcab33df1a89787c76fc99e45514e41a08bc9f5cb51287a7da48f56c64b512a3269b + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" + checksum: 10/fa934d9fd88070833c57a3e79c0f933d0b68884c00293a1d571889b882e5c9680ccfdc5c77a7160d5a4b8b46657f93db2468a4726a517fce4d3bc764b66f1995 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/type-utils@npm:8.15.0" +"@typescript-eslint/type-utils@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/type-utils@npm:8.17.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.15.0" - "@typescript-eslint/utils": "npm:8.15.0" + "@typescript-eslint/typescript-estree": "npm:8.17.0" + "@typescript-eslint/utils": "npm:8.17.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -3248,49 +2810,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/612f0499f7ee89bd8b70531daba1edd343648def2284c414684db9b7636f4beba7c995e05fe8222c5e63f4dd78fdcbb7bcd8453c2c6f376bc73731fa511a5b0f - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/types@npm:7.16.1" - checksum: 10/cfb48821ffb5a5307e67ce05b9ec2f4775c560dc53011e313d4fa75d033e0130ce0d364ac92ad3634d325c16a889ddc3201e8a742217c73be8d34385da85620b - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/types@npm:8.15.0" - checksum: 10/d31605748984794e586ed62e9052bd3794ba646ae75f60b9da5de644ad0e76aa64e47386a4e113ba2d66836927e03c836586ef586261c8ae627acc06fb7e275c + checksum: 10/a755935a0c16d6b9456effb1cad5e9605936e60799b57394cd143620dd862a90bcac12f720a009e32cafdae315fda343252117db4dc83520e0d21f1c28889792 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.16.1" - dependencies: - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/visitor-keys": "npm:7.16.1" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/7f88176f2d25779ec2d40df4c6bd0a26aa41494ee0302d4895b4d0cb4e284385c1e218ac2ad67ed90b5e1bf82b78b8aa4b903b5906fbf7101b08c409ce778e9c +"@typescript-eslint/types@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/types@npm:8.17.0" + checksum: 10/46baf69ab30dd814a390590b94ca64c407ac725cb0143590ddcaf72fa43c940cec180539752ce4af26ac7e0ae2f5f921cfd0d07b088ca680f8a28800d4d33a5f languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.15.0" +"@typescript-eslint/typescript-estree@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.17.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -3300,78 +2836,54 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/e9bf3aab855578f046e0a91ff91a7d08423a5c8bc0bedfc5f2af3c9b6eb98a9fe693a23e4bf56791930e838de16811ce91edae07702c9621c0ad7a56838c7c0c - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/utils@npm:7.16.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.16.1" - "@typescript-eslint/types": "npm:7.16.1" - "@typescript-eslint/typescript-estree": "npm:7.16.1" - peerDependencies: - eslint: ^8.56.0 - checksum: 10/b3c279d706ff1b3a0002c8e0f0fcf559b63f4296e218199a25863054bda5b28d5a7ab6ad4ad1d0b7fa2c6cd9f2d0dcd7f784c3f75026fae7b58846695481ec45 + checksum: 10/8a1f8be767b82e75d41eedda7fdb5135787ceaab480671b6d9891b5f92ee3a13f19ad6f48d5abf5e4f2afc4dd3317c621c1935505ef098f22b67be2f9d01ab7b languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/utils@npm:8.15.0" +"@typescript-eslint/utils@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/utils@npm:8.17.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.15.0" - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/typescript-estree": "npm:8.15.0" + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/typescript-estree": "npm:8.17.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/22f6d5727aabbcd108ca2cc0563e85ec3a616759a9ef8aae6c22687e6dc8da3dc2a1ea3e075b811cad5512451bb26fe90d74ebba573c2ba7d219c9a4256a1787 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.16.1" - dependencies: - "@typescript-eslint/types": "npm:7.16.1" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/f5088d72b6ca48f4e525b7b5d6c6c9254d0d039d2959fd91200691218e8ac8f3e56287ec8bc411a79609e9d85ed5fc6c4f7d2edd80fadf734aeb6f6bfc833322 + checksum: 10/e82934468bece55ccf633be9f3fe6cae26791fa6488b5af08ea22566f6b32e1296917e46cb1fe39bba7717ebdf0dca49935112760c4439a11af36b3b7925917a languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.15.0" +"@typescript-eslint/visitor-keys@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.17.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" + "@typescript-eslint/types": "npm:8.17.0" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10/31916783cd038ab46a0012d6c664e4d93409b12e911dd1d2fe122506d82fda0ec2411d63632b90c19cd39451c8abfb7a138b0918a4e22019e328c4709748c806 + checksum: 10/e7a3c3b9430ecefb8e720f735f8a94f87901f055c75dc8eec60052dfdf90cc28dd33f03c11cd8244551dc988bf98d1db9bd09ef8fd3c51236912cab3680b9c6b languageName: node linkType: hard -"@vitest/expect@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/expect@npm:2.1.5" +"@vitest/expect@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/expect@npm:2.1.8" dependencies: - "@vitest/spy": "npm:2.1.5" - "@vitest/utils": "npm:2.1.5" + "@vitest/spy": "npm:2.1.8" + "@vitest/utils": "npm:2.1.8" chai: "npm:^5.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10/bc10f719c32f29e951754287d774a773535363d26a0425e85d0752fbf3cda3e168447522ef755ee5ac211f1916474feaac0d43f9e9e67c4260e202e532268429 + checksum: 10/3594149dd67dfac884a90f8b6a35687cdddd2f5f764562819bf7b66ae2eacfd4aa5e8914155deb4082fbe5a3792dced2fd7e59a948ffafe67acba4d2229dfe5f languageName: node linkType: hard -"@vitest/mocker@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/mocker@npm:2.1.5" +"@vitest/mocker@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/mocker@npm:2.1.8" dependencies: - "@vitest/spy": "npm:2.1.5" + "@vitest/spy": "npm:2.1.8" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.12" peerDependencies: @@ -3382,57 +2894,57 @@ __metadata: optional: true vite: optional: true - checksum: 10/2557f2f77f4c7ac0cce79fcd62a99aa8d50979dca14fad1d0578e6f3b3d1855cdab1c7bbfa72a0468bf5f6f172b34b01116cc12758f4181d3819cd1e36a6751e + checksum: 10/f04060f42102caa4cca72059e63c1ecae8b8e091aaa61a2d4a914b129fc711ada4ad117eb0184e49e363757784ed1117fdbf9f4a81a45fe575fd92769740a970 languageName: node linkType: hard -"@vitest/pretty-format@npm:2.1.5, @vitest/pretty-format@npm:^2.1.5": - version: 2.1.5 - resolution: "@vitest/pretty-format@npm:2.1.5" +"@vitest/pretty-format@npm:2.1.8, @vitest/pretty-format@npm:^2.1.8": + version: 2.1.8 + resolution: "@vitest/pretty-format@npm:2.1.8" dependencies: tinyrainbow: "npm:^1.2.0" - checksum: 10/98bf4e20c0efb893ffb2fe7713f84ccafd362d5022222ce097aab2368c2b0eccf3578d7ef4c26ea2f3d52e3c95f5fc7185ba36d7475d95537aab31ec4ac55d3a + checksum: 10/f0f60c007424194887ad398d202867d58d850154de327993925041e2972357544eea95a22e0bb3a62a470b006ff8de5f691d2078708dcd7f625e24f8a06b26e7 languageName: node linkType: hard -"@vitest/runner@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/runner@npm:2.1.5" +"@vitest/runner@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/runner@npm:2.1.8" dependencies: - "@vitest/utils": "npm:2.1.5" + "@vitest/utils": "npm:2.1.8" pathe: "npm:^1.1.2" - checksum: 10/7b47b089f52db06dee526030435ba3897e8dd7006c0c2d5498070fe10300ae76e46cdaa46562191c7be34544e6d447b0c861996de16659c97e5f7b92c82e5b8a + checksum: 10/27f265a3ab1e20297b948b06232bfa4dc9fda44d1f9bb6206baa9e6fa643b71143ebfd2d1771570296b7ee74a12d684e529a830f545ad61235cefb454e94a8e9 languageName: node linkType: hard -"@vitest/snapshot@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/snapshot@npm:2.1.5" +"@vitest/snapshot@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/snapshot@npm:2.1.8" dependencies: - "@vitest/pretty-format": "npm:2.1.5" + "@vitest/pretty-format": "npm:2.1.8" magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" - checksum: 10/a650483fd76db5639ecbb168d599fcb45b020cb89a5ed8e3a74f3419852362a1b9ed443496e320cf3b8054e7b44f6537d67e280d2dfac99a53a2823321fdbf81 + checksum: 10/71edf4f574d317579c605ed0a7ecab7ee96fddcebc777bd130774a770ddc692c538f9f5b3dfde89af83ecb36f7338fe880943c83cede58f55e3556768a1a0749 languageName: node linkType: hard -"@vitest/spy@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/spy@npm:2.1.5" +"@vitest/spy@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/spy@npm:2.1.8" dependencies: tinyspy: "npm:^3.0.2" - checksum: 10/8985357bd571feec03c7b3f9941322ba88adbd30f1490485106e5fb6cf12655ae218776e2616b51439bf783db5bacbe4ecc26e674f053a0a9d6cd2f61213eac6 + checksum: 10/9a1cb9cf6b23c122681469b5890d91ca26fc8d74953b3d46d293a5d2a4944490106891f6a178cd732ab7a8abbda339f43681c81d1594565ecc3bf3e7f9b7735f languageName: node linkType: hard -"@vitest/utils@npm:2.1.5": - version: 2.1.5 - resolution: "@vitest/utils@npm:2.1.5" +"@vitest/utils@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/utils@npm:2.1.8" dependencies: - "@vitest/pretty-format": "npm:2.1.5" + "@vitest/pretty-format": "npm:2.1.8" loupe: "npm:^3.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10/c40c6784d26d0ae8f0125e01a4fe204bc6f6dc5179efaae194042040c4f52b974f3400dde3604f9ed963dba385464690c0c8177623236511e296f5e802cd8533 + checksum: 10/be1f4254347199fb5c1d9de8e4537dad4af3f434c033e7cd023165bd4b7e9de16fa0f86664256ab331120585df95ed6be8eea58b209b510651b49f6482051733 languageName: node linkType: hard @@ -3461,16 +2973,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.12.0, acorn@npm:^8.5.0, acorn@npm:^8.9.0": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" - bin: - acorn: bin/acorn - checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 - languageName: node - linkType: hard - -"acorn@npm:^8.14.0": +"acorn@npm:^8.14.0, acorn@npm:^8.5.0, acorn@npm:^8.9.0": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -3479,22 +2982,10 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: 10/c478fec8f79953f118704d007a38f2a185458853f5c45579b9669372bd0e12602e88dc2ad0233077831504f7cd6fcc8251c383375bba5eaaf563b102938bda26 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: 10/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 10/3db6d8d4651f2aa1a9e4af35b96ab11a7607af57a24f3bc721a387eaa3b5f674e901f0a648b0caefd48f3fd117c7761b79a3b55854e2aebaa96c3f32cf76af84 languageName: node linkType: hard @@ -3524,15 +3015,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -3556,16 +3038,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:~5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" - dependencies: - deep-equal: "npm:^2.0.5" - checksum: 10/e5da608a7c4954bfece2d879342b6c218b6b207e2d9e5af270b5e38ef8418f02d122afdc948b68e32649b849a38377785252059090d66fa8081da95d1609c0d2 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": +"array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -3596,27 +3069,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"array.prototype.findlast@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.findlast@npm:1.2.5" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31 - languageName: node - linkType: hard - "array.prototype.findlastindex@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlastindex@npm:1.2.5" @@ -3655,19 +3107,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.4": - version: 1.1.4 - resolution: "array.prototype.tosorted@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - es-errors: "npm:^1.3.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d - languageName: node - linkType: hard - "arraybuffer.prototype.slice@npm:^1.0.3": version: 1.0.3 resolution: "arraybuffer.prototype.slice@npm:1.0.3" @@ -3691,13 +3130,6 @@ __metadata: languageName: node linkType: hard -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: 10/85a1c24af4707871c27cfe456bd2ff7fcbe678f3d1c878ac968c9557735a171a17bdcc8c8f903ceab3fc3c49d5b3da2194e6ab0a6be7fec0e133fa028f21ba1b - languageName: node - linkType: hard - "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -3707,30 +3139,16 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.10.0": - version: 4.10.0 - resolution: "axe-core@npm:4.10.0" - checksum: 10/6158489a7a704edc98bd30ed56243b8280c5203c60e095a2feb5bff95d9bf2ef10becfe359b1cbc8601338418999c26cf4eee704181dedbcb487f4d63a06d8d5 - languageName: node - linkType: hard - -"axobject-query@npm:^4.1.0": - version: 4.1.0 - resolution: "axobject-query@npm:4.1.0" - checksum: 10/e275dea9b673f71170d914f2d2a18be5d57d8d29717b629e7fedd907dcc2ebdc7a37803ff975874810bd423f222f299c020d28fde40a146f537448bf6bfecb6e - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs2@npm:^0.4.10": - version: 0.4.11 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + version: 0.4.12 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.12" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + "@babel/helper-define-polyfill-provider": "npm:^0.6.3" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/9c79908bed61b9f52190f254e22d3dca6ce25769738642579ba8d23832f3f9414567a90d8367a31831fa45d9b9607ac43d8d07ed31167d8ca8cda22871f4c7a1 + checksum: 10/38b8cd69f0ba6a35f7f1cc08960f79fbc4572fe80e60aced719dab33a77c7872ee0faebc72da95852ae0d86df1aeaa54660bf309871db1934c5a4904f0744327 languageName: node linkType: hard @@ -3747,13 +3165,13 @@ __metadata: linkType: hard "babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + version: 0.6.3 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.3" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + "@babel/helper-define-polyfill-provider": "npm:^0.6.3" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + checksum: 10/d12696e6b3f280eb78fac551619ca4389262db62c7352cd54bf679d830df8b35596eef2de77cf00db6648eada1c99d49c4f40636dbc9c335a1e5420cfef96750 languageName: node linkType: hard @@ -3771,14 +3189,14 @@ __metadata: languageName: node linkType: hard -"better-sqlite3@npm:^11.5.0": - version: 11.5.0 - resolution: "better-sqlite3@npm:11.5.0" +"better-sqlite3@npm:^11.7.0": + version: 11.7.0 + resolution: "better-sqlite3@npm:11.7.0" dependencies: bindings: "npm:^1.5.0" node-gyp: "npm:latest" prebuild-install: "npm:^7.1.1" - checksum: 10/c76f450f6313b47317270dae9a641c41ca95b2be7b08024741298d019f0c453ebb0ac0707a33af558fcb41373026944dc8409871ee010c7ed08cab869a116371 + checksum: 10/a09bb28c0292bb7c037896ee99197815841275bca2d14f63b58994188239f292642c8c7ea3e0206d8ea6c7530d7b03d7343138ebeb9a4cc855c0b3663e00c812 languageName: node linkType: hard @@ -3830,20 +3248,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.24.0 - resolution: "browserslist@npm:4.24.0" - dependencies: - caniuse-lite: "npm:^1.0.30001663" - electron-to-chromium: "npm:^1.5.28" - node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" - bin: - browserslist: cli.js - checksum: 10/26c1b8ba257a0b51b102080ba9d42945af2abaa8c4cf6da21cd47b3f123fc1e81640203b293214356c2c17d9d265bb3a5ed428b6d302f383576dd6ce8fd5036c - languageName: node - linkType: hard - "browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": version: 4.24.2 resolution: "browserslist@npm:4.24.2" @@ -3875,6 +3279,63 @@ __metadata: languageName: node linkType: hard +"bun-types@npm:1.1.37": + version: 1.1.37 + resolution: "bun-types@npm:1.1.37" + dependencies: + "@types/node": "npm:~20.12.8" + "@types/ws": "npm:~8.5.10" + checksum: 10/dde4eb8a1162d552d1186aa4ca9145b7ff5706db8e5b871743234b260f2b6f0b0e8c6cbd044c5f6592187b40152d59a92b88a6aa5ac99a82eefe6bae90d2a8e1 + languageName: node + linkType: hard + +"bun-types@npm:^1.1.38": + version: 1.1.38 + resolution: "bun-types@npm:1.1.38" + dependencies: + "@types/node": "npm:~20.12.8" + "@types/ws": "npm:~8.5.10" + checksum: 10/6b3714498bb195fdb92c8e49663fc93fdc9603c5bf605381017f36ea31185b4b1bae6f45a146a7ccb2fffa08e972fbe4c668477dd059ce864c6320141e3b00fc + languageName: node + linkType: hard + +"bun@npm:^1.1.38": + version: 1.1.38 + resolution: "bun@npm:1.1.38" + dependencies: + "@oven/bun-darwin-aarch64": "npm:1.1.38" + "@oven/bun-darwin-x64": "npm:1.1.38" + "@oven/bun-darwin-x64-baseline": "npm:1.1.38" + "@oven/bun-linux-aarch64": "npm:1.1.38" + "@oven/bun-linux-x64": "npm:1.1.38" + "@oven/bun-linux-x64-baseline": "npm:1.1.38" + "@oven/bun-windows-x64": "npm:1.1.38" + "@oven/bun-windows-x64-baseline": "npm:1.1.38" + dependenciesMeta: + "@oven/bun-darwin-aarch64": + optional: true + "@oven/bun-darwin-x64": + optional: true + "@oven/bun-darwin-x64-baseline": + optional: true + "@oven/bun-linux-aarch64": + optional: true + "@oven/bun-linux-x64": + optional: true + "@oven/bun-linux-x64-baseline": + optional: true + "@oven/bun-windows-x64": + optional: true + "@oven/bun-windows-x64-baseline": + optional: true + bin: + bun: bin/bun.exe + bunx: bin/bun.exe + checksum: 10/8c609dc62af1296ddc4144404df3c0338d32aa6573fcd1942aa256e58977e37440746e5d7c84c5e9baafd74738504aa97f5c90ce093d7161b9dd596c9b9c4f73 + conditions: (os=darwin | os=linux | os=win32) & (cpu=arm64 | cpu=x64) + languageName: node + linkType: hard + "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -3889,11 +3350,11 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" dependencies: - "@npmcli/fs": "npm:^3.1.0" + "@npmcli/fs": "npm:^4.0.0" fs-minipass: "npm:^3.0.0" glob: "npm:^10.2.2" lru-cache: "npm:^10.0.1" @@ -3901,24 +3362,33 @@ __metadata: minipass-collect: "npm:^2.0.1" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104 + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10/ea026b27b13656330c2bbaa462a88181dcaa0435c1c2e705db89b31d9bdf7126049d6d0445ba746dca21454a0cfdf1d6f47fd39d34c8c8435296b30bc5738a13 languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" +"call-bind-apply-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "call-bind-apply-helpers@npm:1.0.0" dependencies: - es-define-property: "npm:^1.0.0" es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" + checksum: 10/853e9c30632a356ad0f66037b65f6c45eabecb5570012b6be53f2d83f03c61c845fcb0e4eb5ff8a0d7e3877d36588950d822d4beb742c9cfa90f4bf62a9fe960 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" get-intrinsic: "npm:^1.2.4" - set-function-length: "npm:^1.2.1" - checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + set-function-length: "npm:^1.2.2" + checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce languageName: node linkType: hard @@ -3929,17 +3399,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001663": - version: 1.0.30001663 - resolution: "caniuse-lite@npm:1.0.30001663" - checksum: 10/a67aba45e10bf56f584f82ab414ff21f5d23ddbd71936839b79c305710b332d8b91df37948a525fe1c9cede81ab56a3d831ee6e3f1fa11c4f299651ea49a8067 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001669": - version: 1.0.30001676 - resolution: "caniuse-lite@npm:1.0.30001676" - checksum: 10/73d5ff987c4075fe3885282361626956d50124c01c6811cca071efd94c2a26ff5045cd3b902a418b505840eb4b3fc8e0252a65392effd7061749e9c9e6c16d35 + version: 1.0.30001687 + resolution: "caniuse-lite@npm:1.0.30001687" + checksum: 10/0b6a064d5df185ec60b842dba5a27d2c54a66967b7f89571bfd0a8256f0863b1f2a910da6a19ed1b8f534bedf0663cae90309a4a6899bba2286205d459b32f95 languageName: node linkType: hard @@ -3956,17 +3419,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 - languageName: node - linkType: hard - "chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -3998,17 +3450,17 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c languageName: node linkType: hard "ci-info@npm:^4.0.0": - version: 4.0.0 - resolution: "ci-info@npm:4.0.0" - checksum: 10/c983bb7ff1b06648f4a47432201abbd58291147d8ab5043dbb5c03e1a0e3fb2347f40d29b66a3044f28ffeb5dade01ac35aa6bd4e7464a44d9a49a3d7532415a + version: 4.1.0 + resolution: "ci-info@npm:4.1.0" + checksum: 10/546628efd04e37da3182a58b6995a3313deb86ec7c8112e22ffb644317a61296b89bbfa128219e5bfcce43d9613a434ed89907ed8e752db947f7291e0405125f languageName: node linkType: hard @@ -4021,13 +3473,6 @@ __metadata: languageName: node linkType: hard -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 10/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - "clear-module@npm:^4.1.2": version: 4.1.2 resolution: "clear-module@npm:4.1.2" @@ -4038,15 +3483,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -4056,13 +3492,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -4097,7 +3526,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.1": +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": version: 3.39.0 resolution: "core-js-compat@npm:3.39.0" dependencies: @@ -4106,15 +3535,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.38.0": - version: 3.38.1 - resolution: "core-js-compat@npm:3.38.1" - dependencies: - browserslist: "npm:^4.23.3" - checksum: 10/4e2f219354fd268895f79486461a12df96f24ed307321482fe2a43529c5a64e7c16bcba654980ba217d603444f5141d43a79058aeac77511085f065c5da72207 - languageName: node - linkType: hard - "core-util-is@npm:^1.0.3": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -4122,103 +3542,92 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 10/e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.5": - version: 7.0.5 - resolution: "cross-spawn@npm:7.0.5" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10/c95062469d4bdbc1f099454d01c0e77177a3733012d41bf907a71eb8d22d2add43b5adf6a0a14ef4e7feaf804082714d6c262ef4557a1c480b86786c120d18e2 + checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 languageName: node linkType: hard -"cspell-config-lib@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-config-lib@npm:8.16.0" +"cspell-config-lib@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-config-lib@npm:8.16.1" dependencies: - "@cspell/cspell-types": "npm:8.16.0" + "@cspell/cspell-types": "npm:8.16.1" comment-json: "npm:^4.2.5" - yaml: "npm:^2.6.0" - checksum: 10/44dd4ef256f94930cdf5c90a411365c88acf198fdfdc449916587ee590ab3cb879931827be6bb49538b92ff29e765e02771ef48bb6e4838890acb82b0a767eea + yaml: "npm:^2.6.1" + checksum: 10/f127a94511a423bfe595891b0f096b6cd4066eea73ff3fd5049d301e785afd4ceeacd8a5b29b444cb9406a7721436aef0dfc014a5d7c337db9dd0cf9637048aa languageName: node linkType: hard -"cspell-dictionary@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-dictionary@npm:8.16.0" +"cspell-dictionary@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-dictionary@npm:8.16.1" dependencies: - "@cspell/cspell-pipe": "npm:8.16.0" - "@cspell/cspell-types": "npm:8.16.0" - cspell-trie-lib: "npm:8.16.0" + "@cspell/cspell-pipe": "npm:8.16.1" + "@cspell/cspell-types": "npm:8.16.1" + cspell-trie-lib: "npm:8.16.1" fast-equals: "npm:^5.0.1" - checksum: 10/847e10ee7a8b37d1e938ae5c10fe557b68b660d4b96c214d62d038a1ffde51066a79691b6d309fc5bcf7cdd668e824d6520772f99fd6d18970c9eba3e44c3493 + checksum: 10/c0b217393f564e76fc8f4eaa4b88a1d6b1c1ad64790e183159d074a3c65d5843a85f93cbf99b6dfc7ca945fd389dd53d23fa012ba9773365d9ad6ae0b5f146d1 languageName: node linkType: hard -"cspell-glob@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-glob@npm:8.16.0" +"cspell-glob@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-glob@npm:8.16.1" dependencies: - "@cspell/url": "npm:8.16.0" + "@cspell/url": "npm:8.16.1" micromatch: "npm:^4.0.8" - checksum: 10/52ffd5a764490dc575023c51e98dafa37e0175047820e9d006d47b5fdb32ac9213670371e4c445ee5b0a4b49ca8c4b30ec003dec6757883e276777897d94fc97 + checksum: 10/6f1a63797fc7ed2b8dd9b48a514f70d400b7b908ed6d01872fe9669cacd384039460c4da98f71c2f83ed0fcb28b30edd7ce0d5d97293b39a139b907f07a4673f languageName: node linkType: hard -"cspell-grammar@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-grammar@npm:8.16.0" +"cspell-grammar@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-grammar@npm:8.16.1" dependencies: - "@cspell/cspell-pipe": "npm:8.16.0" - "@cspell/cspell-types": "npm:8.16.0" + "@cspell/cspell-pipe": "npm:8.16.1" + "@cspell/cspell-types": "npm:8.16.1" bin: cspell-grammar: bin.mjs - checksum: 10/a830277f546062015bed9b16ce7dd0aece6ef1d5d3dead387b6ce127ed2e25375bce05c23a08adcab961dbc33c7094c5dc2adeea4ece69032be92ee101f99eb6 + checksum: 10/6cf43614be8cbdc0d9d00c29e62eed0facb230ac9a95c42342fbea3ae6af2cd65e16e1c3bc72848ffb21a8503d269e78a15977f355912b11df519f81ec94035d languageName: node linkType: hard -"cspell-io@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-io@npm:8.16.0" +"cspell-io@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-io@npm:8.16.1" dependencies: - "@cspell/cspell-service-bus": "npm:8.16.0" - "@cspell/url": "npm:8.16.0" - checksum: 10/44d71149b4ae2348ca1e87be2ab1a72a27bfe1092dca92ecbc34a2fd7aabbff24128f49c0b36df4d6359de22e4eaeaee4c97728b7479ca2ca9fb26099612dd0b + "@cspell/cspell-service-bus": "npm:8.16.1" + "@cspell/url": "npm:8.16.1" + checksum: 10/a93f5412df23469efd3015a5067ad4bf369e198136475e85c6724169186f65ac51f779070a94ad33b3d6b666977df465e3d0d1c2d17b5d276dbce8211a1eb946 languageName: node linkType: hard -"cspell-lib@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-lib@npm:8.16.0" +"cspell-lib@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-lib@npm:8.16.1" dependencies: - "@cspell/cspell-bundled-dicts": "npm:8.16.0" - "@cspell/cspell-pipe": "npm:8.16.0" - "@cspell/cspell-resolver": "npm:8.16.0" - "@cspell/cspell-types": "npm:8.16.0" - "@cspell/dynamic-import": "npm:8.16.0" - "@cspell/filetypes": "npm:8.16.0" - "@cspell/strong-weak-map": "npm:8.16.0" - "@cspell/url": "npm:8.16.0" + "@cspell/cspell-bundled-dicts": "npm:8.16.1" + "@cspell/cspell-pipe": "npm:8.16.1" + "@cspell/cspell-resolver": "npm:8.16.1" + "@cspell/cspell-types": "npm:8.16.1" + "@cspell/dynamic-import": "npm:8.16.1" + "@cspell/filetypes": "npm:8.16.1" + "@cspell/strong-weak-map": "npm:8.16.1" + "@cspell/url": "npm:8.16.1" clear-module: "npm:^4.1.2" comment-json: "npm:^4.2.5" - cspell-config-lib: "npm:8.16.0" - cspell-dictionary: "npm:8.16.0" - cspell-glob: "npm:8.16.0" - cspell-grammar: "npm:8.16.0" - cspell-io: "npm:8.16.0" - cspell-trie-lib: "npm:8.16.0" + cspell-config-lib: "npm:8.16.1" + cspell-dictionary: "npm:8.16.1" + cspell-glob: "npm:8.16.1" + cspell-grammar: "npm:8.16.1" + cspell-io: "npm:8.16.1" + cspell-trie-lib: "npm:8.16.1" env-paths: "npm:^3.0.0" fast-equals: "npm:^5.0.1" gensequence: "npm:^7.0.0" @@ -4227,25 +3636,18 @@ __metadata: vscode-languageserver-textdocument: "npm:^1.0.12" vscode-uri: "npm:^3.0.8" xdg-basedir: "npm:^5.1.0" - checksum: 10/d6e30e9cad91b58e82215ef2ca5c1b9be09e8c505fe22bc4c3487adc074dd3bffd03db61521943617420d190f14fed103bc18dc5b5d43b3ac54d846e1c131484 + checksum: 10/ef48e1eca4cc5b01818c5629ab26b37c4859a762e3302086acd2a3c4ddfba20cd5fb54b6ffdc29da65522087c4f471e9d99b042d90518cc62d9e232a075f04e5 languageName: node linkType: hard -"cspell-trie-lib@npm:8.16.0": - version: 8.16.0 - resolution: "cspell-trie-lib@npm:8.16.0" +"cspell-trie-lib@npm:8.16.1": + version: 8.16.1 + resolution: "cspell-trie-lib@npm:8.16.1" dependencies: - "@cspell/cspell-pipe": "npm:8.16.0" - "@cspell/cspell-types": "npm:8.16.0" + "@cspell/cspell-pipe": "npm:8.16.1" + "@cspell/cspell-types": "npm:8.16.1" gensequence: "npm:^7.0.0" - checksum: 10/9bf028ca51f031a33d7fcc91223e57c8f3792b4492bb26746dc50a73073ea53bd669c6e465cb0ec57e8775fc07ac523b853ae8024d467154a8744bed53983fcc - languageName: node - linkType: hard - -"damerau-levenshtein@npm:^1.0.8": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: 10/f4eba1c90170f96be25d95fa3857141b5f81e254f7e4d530da929217b19990ea9a0390fc53d3c1cafac9152fda78e722ea4894f765cf6216be413b5af1fbf821 + checksum: 10/d130e482fc1e31480187d7a629a86fd1d66ddeb2d4cf3979a39755ff1e669d06c69608026d176e5f439fe8eb5cc0911fc12f84098da4dcbba8bfa095f5d3f08f languageName: node linkType: hard @@ -4290,14 +3692,14 @@ __metadata: linkType: hard "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7": - version: 4.3.7 - resolution: "debug@npm:4.3.7" + version: 4.4.0 + resolution: "debug@npm:4.4.0" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10/71168908b9a78227ab29d5d25fe03c5867750e31ce24bf2c44a86efc5af041758bb56569b0a3d48a9b5344c00a24a777e6f4100ed6dfd9534a42c1dde285125a + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 languageName: node linkType: hard @@ -4326,32 +3728,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.3 - resolution: "deep-equal@npm:2.2.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.5" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.2" - is-arguments: "npm:^1.1.1" - is-array-buffer: "npm:^3.0.2" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.2" - isarray: "npm:^2.0.5" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.1" - side-channel: "npm:^1.0.4" - which-boxed-primitive: "npm:^1.0.2" - which-collection: "npm:^1.0.1" - which-typed-array: "npm:^1.1.13" - checksum: 10/1ce49d0b71d0f14d8ef991a742665eccd488dfc9b3cada069d4d7a86291e591c92d2589c832811dea182b4015736b210acaaebce6184be356c1060d176f5a05f - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -4377,7 +3753,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -4395,15 +3771,6 @@ __metadata: languageName: node linkType: hard -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -4413,10 +3780,21 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.4.5": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 10/55a3134601115194ae0f924e54473459ed0d9fc340ae610b676e248cca45aa7c680d86365318ea964e6da4e2ea80c4514c1adab5adb43d6867fb57ff068f95c8 +"dotenv@npm:^16.4.5, dotenv@npm:^16.4.7": + version: 16.4.7 + resolution: "dotenv@npm:16.4.7" + checksum: 10/f13bfe97db88f0df4ec505eeffb8925ec51f2d56a3d0b6d916964d8b4af494e6fb1633ba5d09089b552e77ab2a25de58d70259b2c5ed45ec148221835fc99a0c + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "dunder-proto@npm:1.0.0" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10/08e0487edc6b5f5e7cc91cbbe2cd7a81919f296b2e8092277776a75280005b340ab22c12b16ad0371c531e76d11898dae617325573144f50839e8f310df2a6ef languageName: node linkType: hard @@ -4427,17 +3805,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.28": - version: 1.5.28 - resolution: "electron-to-chromium@npm:1.5.28" - checksum: 10/dfe890eaeec6f48d245895060edbfd6a0ff8b1a102b22324b2b33cd4aaabe39748a4a9f687be6a5e08f1d8fb1fac0d3bcd96da00d47771a3665d8641111a5f07 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.41": - version: 1.5.50 - resolution: "electron-to-chromium@npm:1.5.50" - checksum: 10/635ca4b593e64697fbebc9fe7f557abcb030e5f6edcefb596ae3f8c9313221a754b513b70f2ba12595a9ee5733442b2b58db9eed7a2fa63e9f7539d581dd4ac0 + version: 1.5.71 + resolution: "electron-to-chromium@npm:1.5.71" + checksum: 10/feb1655236b9de715f837e07e4bcb49b199f20ce7b6b8ab8e7e4120220bcb85b96227af72cb5bbed88ff3cb7c09110fe8b04be9504a34a24694fc2e630a64704 languageName: node linkType: hard @@ -4503,9 +3874,9 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5": + version: 1.23.5 + resolution: "es-abstract@npm:1.23.5" dependencies: array-buffer-byte-length: "npm:^1.0.1" arraybuffer.prototype.slice: "npm:^1.0.3" @@ -4522,7 +3893,7 @@ __metadata: function.prototype.name: "npm:^1.1.6" get-intrinsic: "npm:^1.2.4" get-symbol-description: "npm:^1.0.2" - globalthis: "npm:^1.0.3" + globalthis: "npm:^1.0.4" gopd: "npm:^1.0.1" has-property-descriptors: "npm:^1.0.2" has-proto: "npm:^1.0.3" @@ -4538,10 +3909,10 @@ __metadata: is-string: "npm:^1.0.7" is-typed-array: "npm:^1.1.13" is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" + object-inspect: "npm:^1.13.3" object-keys: "npm:^1.1.1" object.assign: "npm:^4.1.5" - regexp.prototype.flags: "npm:^1.5.2" + regexp.prototype.flags: "npm:^1.5.3" safe-array-concat: "npm:^1.1.2" safe-regex-test: "npm:^1.0.3" string.prototype.trim: "npm:^1.2.9" @@ -4553,16 +3924,14 @@ __metadata: typed-array-length: "npm:^1.0.6" unbox-primitive: "npm:^1.0.2" which-typed-array: "npm:^1.1.15" - checksum: 10/2da795a6a1ac5fc2c452799a409acc2e3692e06dc6440440b076908617188899caa562154d77263e3053bcd9389a07baa978ab10ac3b46acc399bd0c77be04cb + checksum: 10/2170afde7e1d2497586ad74176c2e12196db947fb1b3287fc097781a871b75ebe3aef5247e951e3bb3972a830b8d0eaa82a509518836a6d9f9fb4934b9294467 languageName: node linkType: hard -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.2.4" - checksum: 10/f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 languageName: node linkType: hard @@ -4573,45 +3942,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433 - languageName: node - linkType: hard - -"es-iterator-helpers@npm:^1.0.19": - version: 1.0.19 - resolution: "es-iterator-helpers@npm:1.0.19" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - es-errors: "npm:^1.3.0" - es-set-tostringtag: "npm:^2.0.3" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - globalthis: "npm:^1.0.3" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - internal-slot: "npm:^1.0.7" - iterator.prototype: "npm:^1.1.2" - safe-array-concat: "npm:^1.1.2" - checksum: 10/980a8081cf6798fe17fcea193b0448d784d72d76aca7240b10813207c67e3dc0d8a23992263870c4fc291da5a946935b0c56dec4fa1a9de8fee0165e4fa1fc58 - languageName: node - linkType: hard - "es-module-lexer@npm:^1.5.4": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" @@ -4649,13 +3979,13 @@ __metadata: linkType: hard "es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" dependencies: - is-callable: "npm:^1.1.4" - is-date-object: "npm:^1.0.1" - is-symbol: "npm:^1.0.2" - checksum: 10/74aeeefe2714cf99bb40cab7ce3012d74e1e2c1bd60d0a913b467b269edde6e176ca644b5ba03a5b865fb044a29bca05671cd445c85ca2cdc2de155d7fc8fe9b + is-callable: "npm:^1.2.7" + is-date-object: "npm:^1.0.5" + is-symbol: "npm:^1.0.4" + checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b languageName: node linkType: hard @@ -4822,7 +4152,7 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.2, escalade@npm:^3.2.0": +"escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 @@ -4844,13 +4174,13 @@ __metadata: linkType: hard "eslint-compat-utils@npm:^0.6.0": - version: 0.6.0 - resolution: "eslint-compat-utils@npm:0.6.0" + version: 0.6.4 + resolution: "eslint-compat-utils@npm:0.6.4" dependencies: semver: "npm:^7.5.4" peerDependencies: eslint: ">=6.0.0" - checksum: 10/726534ad9a873485790e190999136ac80d4ccf363345242c3669cc49fd08f2cfa7b03477e81d292419067152d898db20f4f198acfe2e7ff1fff9bbc97effb441 + checksum: 10/97f08f4aa8d9a1bc1087aaeceab46a5fa65a6d70703c1a2f2cd533562381208fdd0a293ce0f63ad607f1e697ddb348ef1076b02f5afa83c70f4a07ca0dcec90e languageName: node linkType: hard @@ -4903,46 +4233,6 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.9.0": - version: 2.11.1 - resolution: "eslint-module-utils@npm:2.11.1" - dependencies: - debug: "npm:^3.2.7" - peerDependenciesMeta: - eslint: - optional: true - checksum: 10/88285f758cc2d4a07410a5b765cc2858319075e12bedb65ae26459f1bc5a18c2b154f9026d4acb5049896c3815adb29087fd07b2b04d26beb59182bd6028b121 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:2.30.0": - version: 2.30.0 - resolution: "eslint-plugin-import@npm:2.30.0" - dependencies: - "@rtsao/scc": "npm:^1.1.0" - array-includes: "npm:^3.1.8" - array.prototype.findlastindex: "npm:^1.2.5" - array.prototype.flat: "npm:^1.3.2" - array.prototype.flatmap: "npm:^1.3.2" - debug: "npm:^3.2.7" - doctrine: "npm:^2.1.0" - eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.9.0" - hasown: "npm:^2.0.2" - is-core-module: "npm:^2.15.1" - is-glob: "npm:^4.0.3" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - object.groupby: "npm:^1.0.3" - object.values: "npm:^1.2.0" - semver: "npm:^6.3.1" - tsconfig-paths: "npm:^3.15.0" - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10/a5f85dfe76e27286c28a01d137769726ce3f758bcc03aa6b6f9e18700a40a08f57239f82e07efcab763c4b03a02d425edcc29fbecf40aad0124286978c6bc63c - languageName: node - linkType: hard - "eslint-plugin-import@npm:^2.31.0": version: 2.31.0 resolution: "eslint-plugin-import@npm:2.31.0" @@ -4990,32 +4280,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:6.10.0": - version: 6.10.0 - resolution: "eslint-plugin-jsx-a11y@npm:6.10.0" - dependencies: - aria-query: "npm:~5.1.3" - array-includes: "npm:^3.1.8" - array.prototype.flatmap: "npm:^1.3.2" - ast-types-flow: "npm:^0.0.8" - axe-core: "npm:^4.10.0" - axobject-query: "npm:^4.1.0" - damerau-levenshtein: "npm:^1.0.8" - emoji-regex: "npm:^9.2.2" - es-iterator-helpers: "npm:^1.0.19" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^3.3.5" - language-tags: "npm:^1.0.9" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - safe-regex-test: "npm:^1.0.3" - string.prototype.includes: "npm:^2.0.0" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - checksum: 10/d66e5e541a5a747d8a7ffd6e45b79c9da416b42be5891c259f3d9af63ed8897b5ff67373b00682ecdfc04fe2a2bc9df9c23b2f1749a228221d2dae0914543303 - languageName: node - linkType: hard - "eslint-plugin-no-unsanitized@npm:^4.1.2": version: 4.1.2 resolution: "eslint-plugin-no-unsanitized@npm:4.1.2" @@ -5045,43 +4309,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:4.6.2": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 - languageName: node - linkType: hard - -"eslint-plugin-react@npm:7.36.1": - version: 7.36.1 - resolution: "eslint-plugin-react@npm:7.36.1" - dependencies: - array-includes: "npm:^3.1.8" - array.prototype.findlast: "npm:^1.2.5" - array.prototype.flatmap: "npm:^1.3.2" - array.prototype.tosorted: "npm:^1.1.4" - doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.0.19" - estraverse: "npm:^5.3.0" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" - minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.8" - object.fromentries: "npm:^2.0.8" - object.values: "npm:^1.2.0" - prop-types: "npm:^15.8.1" - resolve: "npm:^2.0.0-next.5" - semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.11" - string.prototype.repeat: "npm:^1.0.0" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10/bca154b446c35af4859a92fd043dcfe5c74851eb27652234020548570bb81d37cc9f1eb1795b3c9e7514de6c9b48f42fcc00153062eca879dab45ab84e49d0b1 - languageName: node - linkType: hard - "eslint-plugin-security@npm:^3.0.1": version: 3.0.1 resolution: "eslint-plugin-security@npm:3.0.1" @@ -5100,36 +4327,28 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-sonarjs@npm:^2.0.4": - version: 2.0.4 - resolution: "eslint-plugin-sonarjs@npm:2.0.4" - dependencies: - "@babel/core": "npm:7.25.2" - "@babel/eslint-parser": "npm:7.25.1" - "@babel/plugin-proposal-decorators": "npm:7.24.7" - "@babel/preset-env": "npm:7.25.4" - "@babel/preset-flow": "npm:7.24.7" - "@babel/preset-react": "npm:7.24.7" - "@eslint-community/regexpp": "npm:4.11.1" - "@typescript-eslint/eslint-plugin": "npm:7.16.1" - "@typescript-eslint/utils": "npm:7.16.1" +"eslint-plugin-sonarjs@npm:^3.0.1": + version: 3.0.1 + resolution: "eslint-plugin-sonarjs@npm:3.0.1" + dependencies: + "@babel/core": "npm:7.26.0" + "@babel/eslint-parser": "npm:7.25.9" + "@babel/plugin-proposal-decorators": "npm:7.25.9" + "@babel/preset-env": "npm:7.26.0" + "@babel/preset-flow": "npm:7.25.9" + "@babel/preset-react": "npm:7.26.3" + "@eslint-community/regexpp": "npm:4.12.1" builtin-modules: "npm:3.3.0" bytes: "npm:3.1.2" - eslint-plugin-import: "npm:2.30.0" - eslint-plugin-jsx-a11y: "npm:6.10.0" - eslint-plugin-react: "npm:7.36.1" - eslint-plugin-react-hooks: "npm:4.6.2" - eslint-scope: "npm:8.1.0" functional-red-black-tree: "npm:1.0.1" jsx-ast-utils: "npm:3.3.5" - minimatch: "npm:10.0.1" + minimatch: "npm:9.0.5" scslre: "npm:0.3.0" semver: "npm:7.6.3" - typescript: "npm:5.6.2" - vue-eslint-parser: "npm:9.4.3" + typescript: "npm:^5" peerDependencies: eslint: ^8.0.0 || ^9.0.0 - checksum: 10/4f068f24abd83553ac74bdf8fb7da26f285c0b811a64a7ba109630a930c08c8d52740076e2abc5e55899d3b9b42101806bb799eabae184b7841e16edac93bf32 + checksum: 10/ffb04d1e010bb2dd21b5c80e40f138514f098ab7599ec9b6b19f7b980ab7828b4226fd96516bf0468264beea401496371b574a6dfb5ddcc2b95c183c3d86a843 languageName: node linkType: hard @@ -5181,26 +4400,6 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:8.1.0": - version: 8.1.0 - resolution: "eslint-scope@npm:8.1.0" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10/4c34a12fbeb0677822a9e93e81f2027e39e6f27557c17bc1e5ff76debbd41e748c3673517561792bda9e276245f89fbfd9b0b24fcec3b33a04ee2196729b3489 - languageName: node - linkType: hard - -"eslint-scope@npm:^7.1.1": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 - languageName: node - linkType: hard - "eslint-scope@npm:^8.2.0": version: 8.2.0 resolution: "eslint-scope@npm:8.2.0" @@ -5225,20 +4424,13 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.0.0": - version: 4.0.0 - resolution: "eslint-visitor-keys@npm:4.0.0" - checksum: 10/c7617166e6291a15ce2982b5c4b9cdfb6409f5c14562712d12e2584480cdf18609694b21d7dad35b02df0fa2cd037505048ded54d2f405c64f600949564eb334 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^4.2.0": version: 4.2.0 resolution: "eslint-visitor-keys@npm:4.2.0" @@ -5246,16 +4438,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:9.15.0": - version: 9.15.0 - resolution: "eslint@npm:9.15.0" +"eslint@npm:9.16.0": + version: 9.16.0 + resolution: "eslint@npm:9.16.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" "@eslint/config-array": "npm:^0.19.0" "@eslint/core": "npm:^0.9.0" "@eslint/eslintrc": "npm:^3.2.0" - "@eslint/js": "npm:9.15.0" + "@eslint/js": "npm:9.16.0" "@eslint/plugin-kit": "npm:^0.2.3" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -5291,22 +4483,11 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10/7ac1a2e6070bae64b2b0588fabad528cd3e478a6ba5e9f8185d8d9f2dce17a36630bd019b5d32d1052ea177444ab9c83f3c08baa76121c13e1ed0584ef158956 - languageName: node - linkType: hard - -"espree@npm:^10.0.1": - version: 10.1.0 - resolution: "espree@npm:10.1.0" - dependencies: - acorn: "npm:^8.12.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.0.0" - checksum: 10/a673aa39a19a51763d92272f8f3772ae3d4b10624740bb72d5f273b631b43f1a5a32b385c1da6ae6bc10be05a5913bc4679ebd22a09c7b336a745204834806ea + checksum: 10/b47a34392a55bc08594ee2fed2777d7aff96f38b584791ccded44d88b72795acfe15b18643fd4046f680734a1f16244d554f34a485f660fa723e25d609fb12ba languageName: node linkType: hard -"espree@npm:^10.3.0": +"espree@npm:^10.0.1, espree@npm:^10.3.0": version: 10.3.0 resolution: "espree@npm:10.3.0" dependencies: @@ -5328,7 +4509,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.0.0, espree@npm:^9.3.1, espree@npm:^9.6.1": +"espree@npm:^9.0.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -5349,7 +4530,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.5.0, esquery@npm:^1.6.0": +"esquery@npm:^1.5.0, esquery@npm:^1.6.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -5374,7 +4555,7 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e @@ -5439,7 +4620,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -5531,9 +4712,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49 + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10/ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 languageName: node linkType: hard @@ -5563,15 +4744,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec - languageName: node - linkType: hard - "fs-minipass@npm:^3.0.0": version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" @@ -5647,16 +4819,19 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" +"get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.5 + resolution: "get-intrinsic@npm:1.2.5" dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + dunder-proto: "npm:^1.0.0" + es-define-property: "npm:^1.0.1" es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: 10/85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + checksum: 10/3f124f0e811326dab513b5478e4744e0fa95427752d78b28881c22de2b9d6aac1a08a7930cb700bbb327acf9662a06131e65a66c8bb6ccc9bbc6d956a7c7cefd languageName: node linkType: hard @@ -5705,7 +4880,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -5745,13 +4920,13 @@ __metadata: linkType: hard "globals@npm:^15.9.0": - version: 15.9.0 - resolution: "globals@npm:15.9.0" - checksum: 10/19bca70131c5d3e0d4171deed0f8ae16adda19f18d39b67421056f1eaa160b4433c3ffc8eb69b8b19adebbbdad4834d8a0494c5fe1ae295f0f769a5c0331d794 + version: 15.13.0 + resolution: "globals@npm:15.13.0" + checksum: 10/ba84d0612d516bcc1dabdd9ce66667956e1a87401fb53be6c379f8f6a04f8e6ce415b584801ae2689a90e788e89bb38adfafc854a8a50ae8e322bb4dd35a2105 languageName: node linkType: hard -"globalthis@npm:^1.0.3": +"globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: @@ -5761,26 +4936,10 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 10/5fbc7ad57b368ae4cd2f41214bd947b045c1a4be2f194a7be1778d71f8af9dbf4004221f3b6f23e30820eb0d052b4f819fe6ebe8221e2a3c6f0ee4ef173421ca +"gopd@npm:^1.0.1, gopd@npm:^1.1.0, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 languageName: node linkType: hard @@ -5798,20 +4957,13 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": +"has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -5835,17 +4987,19 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a +"has-proto@npm:^1.0.3": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: "npm:^1.0.0" + checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935 languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa languageName: node linkType: hard @@ -5892,12 +5046,12 @@ __metadata: linkType: hard "https-proxy-agent@npm:^7.0.1": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: "npm:^7.0.2" + agent-base: "npm:^7.1.2" debug: "npm:4" - checksum: 10/6679d46159ab3f9a5509ee80c3a3fc83fba3a920a5e18d32176c3327852c3c00ad640c0c4210a8fd70ea3c4a6d3a1b375bf01942516e7df80e2646bdc77658ab + checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 languageName: node linkType: hard @@ -5983,7 +5137,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": +"internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" dependencies: @@ -6004,17 +5158,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/a170c7e26082e10de9be6e96d32ae3db4d5906194051b792e85fae3393b53cf2cb5b3557863e5c8ccbab55e2fd8f2f75aa643d437613f72052cf0356615c34be - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": +"is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" dependencies: @@ -6040,22 +5184,22 @@ __metadata: languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" dependencies: - has-bigints: "npm:^1.0.1" - checksum: 10/cc981cf0564c503aaccc1e5f39e994ae16ae2d1a8fcd14721f14ad431809071f39ec568cfceef901cff408045f1a6d6bac90d1b43eeb0b8e3bc34c8eb1bdb4c4 + has-bigints: "npm:^1.0.2" + checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" +"is-boolean-object@npm:^1.2.0": + version: 1.2.0 + resolution: "is-boolean-object@npm:1.2.0" dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/ba794223b56a49a9f185e945eeeb6b7833b8ea52a335cec087d08196cf27b538940001615d3bb976511287cefe94e5907d55f00bb49580533f9ca9b4515fcc2e + call-bind: "npm:^1.0.7" + has-tostringtag: "npm:^1.0.2" + checksum: 10/8a7d62f68d8cb2824859a6be8b2f6667978c3e3ac63f521d5f91a78a7bb2be93446e2312eba40c3ff12f585673419900715e057f83a3a03a48cf98ffe9e444c2 languageName: node linkType: hard @@ -6068,7 +5212,7 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 @@ -6093,7 +5237,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": +"is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -6109,12 +5253,12 @@ __metadata: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.0 + resolution: "is-finalizationregistry@npm:1.1.0" dependencies: - call-bind: "npm:^1.0.2" - checksum: 10/1b8e9e1bf2075e862315ef9d38ce6d39c43ca9d81d46f73b34473506992f4b0fbaadb47ec9b420a5e76afe3f564d9f1f0d9b552ef272cc2395e0f21d743c9c29 + call-bind: "npm:^1.0.7" + checksum: 10/0a812f3ef86fa3e3caf6bb8c6d61b7fc65df88f9751f73617331a5a7e35bb0a192d0c320dbf2f8b97a6819491e52126615313ba9900529697f226235627c58b5 languageName: node linkType: hard @@ -6143,14 +5287,7 @@ __metadata: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 10/93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-map@npm:^2.0.2, is-map@npm:^2.0.3": +"is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb @@ -6164,12 +5301,13 @@ __metadata: languageName: node linkType: hard -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" +"is-number-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-number-object@npm:1.1.0" dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/8700dcf7f602e0a9625830541345b8615d04953655acbf5c6d379c58eb1af1465e71227e95d501343346e1d49b6f2d53cbc166b1fc686a7ec19151272df582f9 + call-bind: "npm:^1.0.7" + has-tostringtag: "npm:^1.0.2" + checksum: 10/d0907f2e5fc3002cbd934fbf2276a32f901a567fc888d851bc4acf837d22bce53529aabb63a260eae154b411ce078df17872afeed25dfe80f2cdbffd3babf54a languageName: node linkType: hard @@ -6181,16 +5319,18 @@ __metadata: linkType: hard "is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" + version: 1.2.0 + resolution: "is-regex@npm:1.2.0" dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/36d9174d16d520b489a5e9001d7d8d8624103b387be300c50f860d9414556d0485d74a612fdafc6ebbd5c89213d947dcc6b6bff6b2312093f71ea03cbb19e564 + call-bind: "npm:^1.0.7" + gopd: "npm:^1.1.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/68df70b5696f865f495551d506c0514e3a221db887d5375c6fb4412389a8ceaf4071e557126fead1bcee21ab38be4548f04e7f6510d793b5150df1e8e2556191 languageName: node linkType: hard -"is-set@npm:^2.0.2, is-set@npm:^2.0.3": +"is-set@npm:^2.0.3": version: 2.0.3 resolution: "is-set@npm:2.0.3" checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 @@ -6206,21 +5346,24 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" +"is-string@npm:^1.0.7, is-string@npm:^1.1.0": + version: 1.1.0 + resolution: "is-string@npm:1.1.0" dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef + call-bind: "npm:^1.0.7" + has-tostringtag: "npm:^1.0.2" + checksum: 10/77331f04c38b36e8438abc7111345335ba845a71fd2e05b1e2ae678128fa236b992f480dcbdbab10f99e115ff87cd5a01e61b3f2cbe02daae2c6177a05890d56 languageName: node linkType: hard -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.0": + version: 1.1.0 + resolution: "is-symbol@npm:1.1.0" dependencies: - has-symbols: "npm:^1.0.2" - checksum: 10/a47dd899a84322528b71318a89db25c7ecdec73197182dad291df15ffea501e17e3c92c8de0bfb50e63402747399981a687b31c519971b1fa1a27413612be929 + call-bind: "npm:^1.0.7" + has-symbols: "npm:^1.0.3" + safe-regex-test: "npm:^1.0.3" + checksum: 10/923cb95ea531e6ffb73350ff8d09a0a8e659bde6f01e10723d109181bec9799b38a0afa78870c7873af234f135b557f694d62a6cdb8a43054298dd640a2b02be languageName: node linkType: hard @@ -6280,19 +5423,6 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" - dependencies: - define-properties: "npm:^1.2.1" - get-intrinsic: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - reflect.getprototypeof: "npm:^1.0.4" - set-function-name: "npm:^2.0.1" - checksum: 10/b5013967ad8f28c9ca1be8e159eb10f591b8e46deae87476fe39d668c04374fe9158c815e8b6d2f45885b0a3fd842a8ba13f497ec762b3a0eff49bec278670b1 - languageName: node - linkType: hard - "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -6306,7 +5436,7 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": +"js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 @@ -6331,15 +5461,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 - languageName: node - linkType: hard - "jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -6418,7 +5539,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:3.3.5, jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": +"jsx-ast-utils@npm:3.3.5": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" dependencies: @@ -6439,22 +5560,6 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:^0.3.20": - version: 0.3.23 - resolution: "language-subtag-registry@npm:0.3.23" - checksum: 10/fe13ed74ab9f862db8e5747b98cc9aa08d52a19f85b5cdb4975cd364c8539bd2da3380e4560d2dbbd728ec33dff8a4b4421fcb2e5b1b1bdaa21d16f91a54d0d4 - languageName: node - linkType: hard - -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" - dependencies: - language-subtag-registry: "npm:^0.3.20" - checksum: 10/d3a7c14b694e67f519153d6df6cb200681648d38d623c3bfa9d6a66a5ec5493628acb88e9df5aceef3cf1902ab263a205e7d59ee4cf1d6bb67e707b83538bd6d - languageName: node - linkType: hard - "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -6504,24 +5609,6 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 - languageName: node - linkType: hard - -"loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 - languageName: node - linkType: hard - "loupe@npm:^3.1.0, loupe@npm:^3.1.2": version: 3.1.2 resolution: "loupe@npm:3.1.2" @@ -6546,35 +5633,34 @@ __metadata: linkType: hard "magic-string@npm:^0.30.12": - version: 0.30.12 - resolution: "magic-string@npm:0.30.12" + version: 0.30.14 + resolution: "magic-string@npm:0.30.14" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10/98016180a52b28efc1362152b45671067facccdaead6b70c1c14c566cba98491bc2e1336474b0996397730dca24400e85649da84d3da62b2560ed03c067573e6 + checksum: 10/8ca0f8937c2824e48ebc70e7e065a193c467713639cc6e5972aaba0fa5417b375a6f62c383410a19a66e618c386bb7253fbd3ccbfb0144bb310f0ba772121f12 languageName: node linkType: hard -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" dependencies: - "@npmcli/agent": "npm:^2.0.0" - cacache: "npm:^18.0.0" + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" http-cache-semantics: "npm:^4.1.1" - is-lambda: "npm:^1.0.1" minipass: "npm:^7.0.2" - minipass-fetch: "npm:^3.0.0" + minipass-fetch: "npm:^4.0.0" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - proc-log: "npm:^4.2.0" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" promise-retry: "npm:^2.0.1" - ssri: "npm:^10.0.0" - checksum: 10/11bae5ad6ac59b654dbd854f30782f9de052186c429dfce308eda42374528185a100ee40ac9ffdc36a2b6c821ecaba43913e4730a12f06f15e895ea9cb23fa59 + ssri: "npm:^12.0.0" + checksum: 10/fce0385840b6d86b735053dfe941edc2dd6468fda80fe74da1eeff10cbd82a75760f406194f2bc2fa85b99545b2bc1f84c08ddf994b21830775ba2d1a87e8bdf languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -6605,12 +5691,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:10.0.1": - version: 10.0.1 - resolution: "minimatch@npm:10.0.1" +"minimatch@npm:9.0.5, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: "npm:^2.0.1" - checksum: 10/082e7ccbc090d5f8c4e4e029255d5a1d1e3af37bda837da2b8b0085b1503a1210c91ac90d9ebfe741d8a5f286ece820a1abb4f61dc1f82ce602a055d461d93f3 + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 languageName: node linkType: hard @@ -6623,15 +5709,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 - languageName: node - linkType: hard - "minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -6648,18 +5725,18 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" +"minipass-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "minipass-fetch@npm:4.0.0" dependencies: encoding: "npm:^0.1.13" minipass: "npm:^7.0.3" minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" + minizlib: "npm:^3.0.1" dependenciesMeta: encoding: optional: true - checksum: 10/c669948bec1373313aaa8f104b962a3ced9f45c49b26366a4b0ae27ccdfa9c5740d72c8a84d3f8623d7a61c5fc7afdfda44789008c078f61a62441142efc4a97 + checksum: 10/4b0772dbee77727b469dc5bfc371541d9aba1e243fbb46ddc1b9ff7efa4de4a4cf5ff3a359d6a3b3a460ca26df9ae67a9c93be26ab6417c225e49d63b52b2801 languageName: node linkType: hard @@ -6699,27 +5776,20 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 languageName: node linkType: hard -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 + minipass: "npm:^7.0.4" + rimraf: "npm:^5.0.5" + checksum: 10/622cb85f51e5c206a080a62d20db0d7b4066f308cb6ce82a9644da112367c3416ae7062017e631eb7ac8588191cfa4a9a279b8651c399265202b298e98c4acef languageName: node linkType: hard @@ -6730,12 +5800,12 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" bin: - mkdirp: bin/cmd.js - checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2 + mkdirp: dist/cjs/src/bin.js + checksum: 10/16fd79c28645759505914561e249b9a1f5fe3362279ad95487a4501e4467abeb714fd35b95307326b8fd03f3c7719065ef11a6f97b7285d7888306d1bd2232ba languageName: node linkType: hard @@ -6747,11 +5817,11 @@ __metadata: linkType: hard "nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" bin: nanoid: bin/nanoid.cjs - checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 + checksum: 10/2d1766606cf0d6f47b6f0fdab91761bb81609b2e3d367027aff45e6ee7006f660fb7e7781f4a34799fe6734f1268eeed2e37a5fdee809ade0c2d4eb11b0f9c40 languageName: node linkType: hard @@ -6769,19 +5839,19 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 languageName: node linkType: hard "node-abi@npm:^3.3.0": - version: 3.68.0 - resolution: "node-abi@npm:3.68.0" + version: 3.71.0 + resolution: "node-abi@npm:3.71.0" dependencies: semver: "npm:^7.3.5" - checksum: 10/577ffe569606d52e2e8c00a4d23e87ec3fcd30369ba5cb0b38a95bf418d41208c6b1645694d04b7e85756ed116469a3a5f108661735bc810f2a383c5a6ff3a1c + checksum: 10/0a1cef5106c43d67f9f8a911b0c9d5ee08971eda002ba466606c8e6164964456f5211f37966717efc3d5d49bae32f0cf9290254b1286bf71f0ba158a4f8a9846 languageName: node linkType: hard @@ -6795,22 +5865,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.2.0 - resolution: "node-gyp@npm:10.2.0" + version: 11.0.0 + resolution: "node-gyp@npm:11.0.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" glob: "npm:^10.3.10" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^4.1.0" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" semver: "npm:^7.3.5" - tar: "npm:^6.2.1" - which: "npm:^4.0.0" + tar: "npm:^7.4.3" + which: "npm:^5.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe + checksum: 10/5d07430e887a906f85c7c6ed87e8facb7ecd4ce42d948a2438c471df2e24ae6af70f4def114ec1a03127988d164648dda8d75fe666f3c4b431e53856379fdf13 languageName: node linkType: hard @@ -6821,14 +5891,14 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" +"nopt@npm:^8.0.0": + version: 8.0.0 + resolution: "nopt@npm:8.0.0" dependencies: abbrev: "npm:^2.0.0" bin: nopt: bin/nopt.js - checksum: 10/95a1f6dec8a81cd18cdc2fed93e6f0b4e02cf6bdb4501c848752c6e34f9883d9942f036a5e3b21a699047d8a448562d891e67492df68ec9c373e6198133337ae + checksum: 10/2d137f64b6f9331ec97047dd1cbbe4dcd9a61ceef4fd0f2252c0bbac1d69ba15671e6fd83a441328824b3ca78afe6ebe1694f12ebcd162b73a221582a06179ff languageName: node linkType: hard @@ -6844,27 +5914,10 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1": - version: 1.13.2 - resolution: "object-inspect@npm:1.13.2" - checksum: 10/7ef65583b6397570a17c56f0c1841e0920e83900f2c94638927abb7b81ac08a19c7aae135bd9dcca96208cac0c7332b4650fb927f027b0cf92d71df2990d0561 - languageName: node - linkType: hard - -"object-is@npm:^1.1.5": - version: 1.1.6 - resolution: "object-is@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a +"object-inspect@npm:^1.13.1, object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 10/14cb973d8381c69e14d7f1c8c75044eb4caf04c6dabcf40ca5c2ce42dc2073ae0bb2a9939eeca142b0c05215afaa1cd5534adb7c8879c32cba2576e045ed8368 languageName: node linkType: hard @@ -6887,17 +5940,6 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.8": - version: 1.1.8 - resolution: "object.entries@npm:1.1.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10/2301918fbd1ee697cf6ff7cd94f060c738c0a7d92b22fd24c7c250e9b593642c9707ad2c44d339303c1439c5967d8964251cdfc855f7f6ec55db2dd79e8dc2a7 - languageName: node - linkType: hard - "object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" @@ -6991,12 +6033,10 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 10/7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 10/2ef48ccfc6dd387253d71bf502604f7893ed62090b2c9d73387f10006c342606b05233da0e4f29388227b61eb5aeface6197e166520c465c234552eeab2fe633 languageName: node linkType: hard @@ -7008,9 +6048,9 @@ __metadata: linkType: hard "package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: 10/ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 languageName: node linkType: hard @@ -7075,13 +6115,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - "pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" @@ -7096,14 +6129,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10/a2ad60d94d185c30f2a140b19c512547713fb89b920d32cc6cf658fa786d63a37ba7b8451872c3d9fc34883971fb6e5878e07a20b60506e0bb2554dce9169ccb - languageName: node - linkType: hard - -"picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -7180,19 +6206,19 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.3.3": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" +"prettier@npm:^3.4.2": + version: 3.4.2 + resolution: "prettier@npm:3.4.2" bin: prettier: bin/prettier.cjs - checksum: 10/5beac1f30b5b40162532b8e2f7c3a4eb650910a2695e9c8512a62ffdc09dae93190c29db9107fa7f26d1b6c71aad3628ecb9b5de1ecb0911191099be109434d7 + checksum: 10/a3e806fb0b635818964d472d35d27e21a4e17150c679047f5501e1f23bd4aa806adf660f0c0d35214a210d5d440da6896c2e86156da55f221a57938278dc326e languageName: node linkType: hard -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: 10/35610bdb0177d3ab5d35f8827a429fb1dc2518d9e639f2151ac9007f01a061c30e0c635a970c9b00c39102216160f6ec54b62377c92fac3b7bfc2ad4b98d195c languageName: node linkType: hard @@ -7206,17 +6232,6 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.8.1": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: "npm:^1.4.0" - object-assign: "npm:^4.1.1" - react-is: "npm:^16.13.1" - checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 - languageName: node - linkType: hard - "pump@npm:^3.0.0": version: 3.0.2 resolution: "pump@npm:3.0.2" @@ -7255,13 +6270,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.1": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf - languageName: node - linkType: hard - "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -7305,22 +6313,23 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.6 - resolution: "reflect.getprototypeof@npm:1.0.6" +"reflect.getprototypeof@npm:^1.0.6": + version: 1.0.8 + resolution: "reflect.getprototypeof@npm:1.0.8" dependencies: - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.1" + dunder-proto: "npm:^1.0.0" + es-abstract: "npm:^1.23.5" es-errors: "npm:^1.3.0" get-intrinsic: "npm:^1.2.4" - globalthis: "npm:^1.0.3" - which-builtin-type: "npm:^1.1.3" - checksum: 10/518f6457e4bb470c9b317d239c62d4b4a05678b7eae4f1c3f4332fad379b3ea6d2d8999bfad448547fdba8fb77e4725cfe8c6440d0168ff387f16b4f19f759ad + gopd: "npm:^1.2.0" + which-builtin-type: "npm:^1.2.0" + checksum: 10/bd583a59261faf22504267caaecd548d4c9b5df1addc9f9fa2dcd716ef9dcb947198c3999cbd827dd5b396ab0ed76772479102c2f3d3f7bfc9adb9c1c37bbc72 languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0, regenerate-unicode-properties@npm:^10.2.0": +"regenerate-unicode-properties@npm:^10.2.0": version: 10.2.0 resolution: "regenerate-unicode-properties@npm:10.2.0" dependencies: @@ -7371,43 +6380,29 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" +"regexp.prototype.flags@npm:^1.5.3": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: - call-bind: "npm:^1.0.6" + call-bind: "npm:^1.0.7" define-properties: "npm:^1.2.1" es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c - languageName: node - linkType: hard - -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": "npm:^0.8.0" - regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.1.0" - regjsparser: "npm:^0.9.1" - unicode-match-property-ecmascript: "npm:^2.0.0" - unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10/ed0d7c66d84c633fbe8db4939d084c780190eca11f6920807dfb8ebac59e2676952cd8f2008d9c86ae8cf0463ea5fd12c5cff09ef2ce7d51ee6b420a5eb4d177 + set-function-name: "npm:^2.0.2" + checksum: 10/fe17bc4eebbc72945aaf9dd059eb7784a5ca453a67cc4b5b3e399ab08452c9a05befd92063e2c52e7b24d9238c60031656af32dd57c555d1ba6330dbf8c23b43 languageName: node linkType: hard -"regexpu-core@npm:^6.1.1": - version: 6.1.1 - resolution: "regexpu-core@npm:6.1.1" +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" dependencies: regenerate: "npm:^1.4.2" regenerate-unicode-properties: "npm:^10.2.0" regjsgen: "npm:^0.8.0" - regjsparser: "npm:^0.11.0" + regjsparser: "npm:^0.12.0" unicode-match-property-ecmascript: "npm:^2.0.0" unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10/6a7ffb42781cacedd7df3c47c72e2d725401a699855be94a37ece5e29d3f25ab3abdd81d73f2d9d32ebc4d41bd25e3c3cc21e5284203faf19e60943adc55252d + checksum: 10/4d054ffcd98ca4f6ca7bf0df6598ed5e4a124264602553308add41d4fa714a0c5bcfb5bc868ac91f7060a9c09889cc21d3180a3a14c5f9c5838442806129ced3 languageName: node linkType: hard @@ -7429,25 +6424,14 @@ __metadata: languageName: node linkType: hard -"regjsparser@npm:^0.11.0": - version: 0.11.2 - resolution: "regjsparser@npm:0.11.2" +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" dependencies: jsesc: "npm:~3.0.2" bin: regjsparser: bin/parser - checksum: 10/8075eb76d6cde8a3f188696eb18ebf229376944d35e3043f73b889a15156cf539f2801941a5630433060512cbcb2f92f6a194fac44f2e0f1497517e12aa565b3 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: "npm:~0.5.0" - bin: - regjsparser: bin/parser - checksum: 10/be7757ef76e1db10bf6996001d1021048b5fb12f5cb470a99b8cf7f3ff943f0f0e2291c0dcdbb418b458ddc4ac10e48680a822b69ef487a0284c8b6b77beddc3 + checksum: 10/c2d6506b3308679de5223a8916984198e0493649a67b477c66bdb875357e3785abbf3bedf7c5c2cf8967d3b3a7bdf08b7cbd39e65a70f9e1ffad584aecf5f06a languageName: node linkType: hard @@ -7499,19 +6483,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.5": - version: 2.0.0-next.5 - resolution: "resolve@npm:2.0.0-next.5" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79 - languageName: node - linkType: hard - "resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" @@ -7525,19 +6496,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": - version: 2.0.0-next.5 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2 - languageName: node - linkType: hard - "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -7552,28 +6510,40 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: "npm:^10.3.7" + bin: + rimraf: dist/esm/bin.mjs + checksum: 10/f3b8ce81eecbde4628b07bdf9e2fa8b684e0caea4999acb1e3b0402c695cd41f28cd075609a808e61ce2672f528ca079f675ab1d8e8d5f86d56643a03e0b8d2e + languageName: node + linkType: hard + "rollup@npm:^4.20.0": - version: 4.26.0 - resolution: "rollup@npm:4.26.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.26.0" - "@rollup/rollup-android-arm64": "npm:4.26.0" - "@rollup/rollup-darwin-arm64": "npm:4.26.0" - "@rollup/rollup-darwin-x64": "npm:4.26.0" - "@rollup/rollup-freebsd-arm64": "npm:4.26.0" - "@rollup/rollup-freebsd-x64": "npm:4.26.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.26.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.26.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.26.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.26.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.26.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.26.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.26.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.26.0" - "@rollup/rollup-linux-x64-musl": "npm:4.26.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.26.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.26.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.26.0" + version: 4.28.1 + resolution: "rollup@npm:4.28.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.28.1" + "@rollup/rollup-android-arm64": "npm:4.28.1" + "@rollup/rollup-darwin-arm64": "npm:4.28.1" + "@rollup/rollup-darwin-x64": "npm:4.28.1" + "@rollup/rollup-freebsd-arm64": "npm:4.28.1" + "@rollup/rollup-freebsd-x64": "npm:4.28.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.28.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.28.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.28.1" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.28.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.28.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.28.1" + "@rollup/rollup-linux-x64-musl": "npm:4.28.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.28.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.28.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.28.1" "@types/estree": "npm:1.0.6" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -7597,6 +6567,8 @@ __metadata: optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true "@rollup/rollup-linux-powerpc64le-gnu": optional: true "@rollup/rollup-linux-riscv64-gnu": @@ -7617,7 +6589,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/aec4d876617298400c0c03d35fed67e5193addc82a76f2b2a2f4c2b000cafbca84a33cf2e686dea1d1caa06fe4028dd94b8e6cd1f5bc3bbd19026a188bb2ec55 + checksum: 10/4337898d07e646835b52494b43b4ccd6929da87af2b0febc05ab217fd2425cfda05af5efaea6037c1641c90d803eb5b3e491eefdd47b28fda85af4f46a0dad34 languageName: node linkType: hard @@ -7696,7 +6668,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": +"semver@npm:7.6.3, semver@npm:^7.3.5, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -7714,7 +6686,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -7728,7 +6700,7 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2": +"set-function-name@npm:^2.0.2": version: 2.0.2 resolution: "set-function-name@npm:2.0.2" dependencies: @@ -7756,7 +6728,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": +"side-channel@npm:^1.0.4": version: 1.0.6 resolution: "side-channel@npm:1.0.6" dependencies: @@ -7800,13 +6772,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -7815,13 +6780,13 @@ __metadata: linkType: hard "socks-proxy-agent@npm:^8.0.3": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: "npm:^7.1.1" + agent-base: "npm:^7.1.2" debug: "npm:^4.3.4" socks: "npm:^2.8.3" - checksum: 10/c8e7c2b398338b49a0a0f4d2bae5c0602aeeca6b478b99415927b6c5db349ca258448f2c87c6958ebf83eea17d42cbc5d1af0bfecb276cac10b9658b0f07f7d7 + checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c languageName: node linkType: hard @@ -7883,12 +6848,12 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" dependencies: minipass: "npm:^7.0.3" - checksum: 10/f92c1b3cc9bfd0a925417412d07d999935917bc87049f43ebec41074661d64cf720315661844106a77da9f8204b6d55ae29f9514e673083cae39464343af2a8b + checksum: 10/7024c1a6e39b3f18aa8f1c8290e884fe91b0f9ca5a6c6d410544daad54de0ba664db879afe16412e187c6c292fd60b937f047ee44292e5c2af2dcc6d8e1a9b48 languageName: node linkType: hard @@ -7906,15 +6871,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10/2a23a36f4f6bfa63f46ae2d53a3f80fe8276110b95a55345d8ed3d92125413494033bc8697eb774e8f7aeb5725f70e3d69753caa2ecacdac6258c16fa8aa8b0f - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -7937,46 +6893,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.includes@npm:^2.0.0": - version: 2.0.0 - resolution: "string.prototype.includes@npm:2.0.0" - dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.5" - checksum: 10/34c1e71ac5cab469bef52a4f3d983d141ca61c43b9fe8859574c8829822aad0a61fce1dddfaf8a48ad7ac5032a1730c19f1fb2d09715f57025cd138b1ad4b0e4 - languageName: node - linkType: hard - -"string.prototype.matchall@npm:^4.0.11": - version: 4.0.11 - resolution: "string.prototype.matchall@npm:4.0.11" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - gopd: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - internal-slot: "npm:^1.0.7" - regexp.prototype.flags: "npm:^1.5.2" - set-function-name: "npm:^2.0.2" - side-channel: "npm:^1.0.6" - checksum: 10/a902ff4500f909f2a08e55cc5ab1ffbbc905f603b36837674370ee3921058edd0392147e15891910db62a2f31ace2adaf065eaa3bc6e9810bdbc8ca48e05a7b5 - languageName: node - linkType: hard - -"string.prototype.repeat@npm:^1.0.0": - version: 1.0.0 - resolution: "string.prototype.repeat@npm:1.0.0" - dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.5" - checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e - languageName: node - linkType: hard - "string.prototype.trim@npm:^1.2.9": version: 1.2.9 resolution: "string.prototype.trim@npm:1.2.9" @@ -8068,15 +6984,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b - languageName: node - linkType: hard - "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -8102,17 +7009,7 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.9.1": - version: 0.9.1 - resolution: "synckit@npm:0.9.1" - dependencies: - "@pkgr/core": "npm:^0.1.0" - tslib: "npm:^2.6.2" - checksum: 10/bff3903976baf8b699b5483228116d70223781a93b17c70e685c277ee960cdfd1a09cb5a741e6a9ec35e2428f14f4664baec41ccc99a598f267608b2a54f529b - languageName: node - linkType: hard - -"synckit@npm:^0.9.2": +"synckit@npm:^0.9.1, synckit@npm:^0.9.2": version: 0.9.2 resolution: "synckit@npm:0.9.2" dependencies: @@ -8147,17 +7044,17 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.0.1" + mkdirp: "npm:^3.0.1" + yallist: "npm:^5.0.0" + checksum: 10/12a2a4fc6dee23e07cc47f1aeb3a14a1afd3f16397e1350036a8f4cdfee8dcac7ef5978337a4e7b2ac2c27a9a6d46388fc2088ea7c80cb6878c814b1425f8ecf languageName: node linkType: hard @@ -8196,13 +7093,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -8213,11 +7103,11 @@ __metadata: linkType: hard "ts-api-utils@npm:^1.3.0": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" peerDependencies: typescript: ">=4.2.0" - checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed + checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39 languageName: node linkType: hard @@ -8234,9 +7124,9 @@ __metadata: linkType: hard "tslib@npm:^2.3.1, tslib@npm:^2.6.2": - version: 2.7.0 - resolution: "tslib@npm:2.7.0" - checksum: 10/9a5b47ddac65874fa011c20ff76db69f97cf90c78cff5934799ab8894a5342db2d17b4e7613a087046bc1d133d21547ddff87ac558abeec31ffa929c88b7fce6 + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 languageName: node linkType: hard @@ -8288,10 +7178,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.27.0": - version: 4.27.0 - resolution: "type-fest@npm:4.27.0" - checksum: 10/13be3937f39ef94012ca622aa69c7edb87850b9b61ad7742e9d410b7a98fe28ee54b508ebb50fac5be2f8563fbc7b417a3d1ef129b9b092d6f3f67b7e1fca96f +"type-fest@npm:^4.28.0, type-fest@npm:^4.30.0": + version: 4.30.0 + resolution: "type-fest@npm:4.30.0" + checksum: 10/46c733df4feb87dfd281fba4fa3913dc38b45136be35adffbcef95e13414105a4669476c1f8686680b9c98e59ed5dc85efe42caf67adbaa04f48dfc41f8330fa languageName: node linkType: hard @@ -8320,8 +7210,8 @@ __metadata: linkType: hard "typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" + version: 1.0.3 + resolution: "typed-array-byte-offset@npm:1.0.3" dependencies: available-typed-arrays: "npm:^1.0.7" call-bind: "npm:^1.0.7" @@ -8329,61 +7219,42 @@ __metadata: gopd: "npm:^1.0.1" has-proto: "npm:^1.0.3" is-typed-array: "npm:^1.1.13" - checksum: 10/ac26d720ebb2aacbc45e231347c359e6649f52e0cfe0e76e62005912f8030d68e4cb7b725b1754e8fdd48e433cb68df5a8620a3e420ad1457d666e8b29bf9150 + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10/6c3bfba026616e656278a062dd5232d80fbb156b792045e698ecb0260a4c6e77e82412d6c8049f4e58bb66f509c90aacad09f02d4b5b8a4e67cf9c423a563be9 languageName: node linkType: hard "typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" dependencies: call-bind: "npm:^1.0.7" for-each: "npm:^0.3.3" gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" is-typed-array: "npm:^1.1.13" possible-typed-array-names: "npm:^1.0.0" - checksum: 10/05e96cf4ff836743ebfc593d86133b8c30e83172cb5d16c56814d7bacfed57ce97e87ada9c4b2156d9aaa59f75cdef01c25bd9081c7826e0b869afbefc3e8c39 - languageName: node - linkType: hard - -"typescript@npm:5.6.2": - version: 5.6.2 - resolution: "typescript@npm:5.6.2" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10/f95365d4898f357823e93d334ecda9fcade54f009b397c7d05b7621cd9e865981033cf89ccde0f3e3a7b73b1fdbae18e92bc77db237b43e912f053fef0f9a53b - languageName: node - linkType: hard - -"typescript@npm:^5.7.0-beta": - version: 5.7.0-dev.20241105 - resolution: "typescript@npm:5.7.0-dev.20241105" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10/aa57235a790624e08f82948e8c60d9e2bcfd908062cfbb5be164b32fb3000b134e346e35ea89255144bb3621c2b0040762c7638e03776a24668e75c3fec822d2 + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.6.2#optional!builtin": - version: 5.6.2 - resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=8c6c40" +"typescript@npm:^5, typescript@npm:^5.7.2": + version: 5.7.2 + resolution: "typescript@npm:5.7.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/8bfc7ca0d9feca4c3fcbd6c70741abfcd714197d6448e68225ae71e462447d904d3bfba49759a8fbe4956d87f054e2d346833c8349c222daa594a2626d4e1be8 + checksum: 10/4caa3904df69db9d4a8bedc31bafc1e19ffb7b24fbde2997a1633ae1398d0de5bdbf8daf602ccf3b23faddf1aeeb9b795223a2ed9c9a4fdcaf07bfde114a401a languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.7.0-beta#optional!builtin": - version: 5.7.0-dev.20241105 - resolution: "typescript@patch:typescript@npm%3A5.7.0-dev.20241105#optional!builtin::version=5.7.0-dev.20241105&hash=cef18b" +"typescript@patch:typescript@npm%3A^5#optional!builtin, typescript@patch:typescript@npm%3A^5.7.2#optional!builtin": + version: 5.7.2 + resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/c5658b7663558218daee3371b829db4b0857b4ac09db997720ad3db26278d746561c4b338845df3d1cbaa7d578e78fb04854769d784df1f1ee4e365e874e1ad6 + checksum: 10/d75ca10141afc64fd3474b41a8b082b640555bed388d237558aed64e5827ddadb48f90932c7f4205883f18f5bcab8b6a739a2cfac95855604b0dfeb34bc2f3eb languageName: node linkType: hard @@ -8399,10 +7270,17 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2, undici-types@npm:~6.19.8": - version: 6.19.8 - resolution: "undici-types@npm:6.19.8" - checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70 +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd + languageName: node + linkType: hard + +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: 10/583ac7bbf4ff69931d3985f4762cde2690bb607844c16a5e2fbb92ed312fe4fa1b365e953032d469fa28ba8b224e88a595f0b10a449332f83fa77c695e567dbe languageName: node linkType: hard @@ -8437,35 +7315,21 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: "npm:^4.0.0" - checksum: 10/8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": +"unique-filename@npm:^4.0.0": version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" + resolution: "unique-filename@npm:4.0.0" dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10/40912a8963fc02fb8b600cf50197df4a275c602c60de4cac4f75879d3c48558cfac48de08a25cc10df8112161f7180b3bbb4d662aadb711568602f9eddee54f0 + unique-slug: "npm:^5.0.0" + checksum: 10/6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c + imurmurhash: "npm:^0.1.4" + checksum: 10/beafdf3d6f44990e0a5ce560f8f881b4ee811be70b6ba0db25298c31c8cf525ed963572b48cd03be1c1349084f9e339be4241666d7cf1ebdad20598d3c652b27 languageName: node linkType: hard @@ -8527,9 +7391,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:2.1.5": - version: 2.1.5 - resolution: "vite-node@npm:2.1.5" +"vite-node@npm:2.1.8": + version: 2.1.8 + resolution: "vite-node@npm:2.1.8" dependencies: cac: "npm:^6.7.14" debug: "npm:^4.3.7" @@ -8538,7 +7402,7 @@ __metadata: vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10/53d90523bf114dce26d5f66aa01aa05c33d33c7b87e8129b8a7f1c0d5014a9922f61feb9df01b54c1f851214604f7e8d2ff58ca257d3bf28539eafa8e8d72b81 + checksum: 10/0ff0ed7a6fb234d3ddc4946e4c1150229980cac9f34fb4bd7f443aab0aae2da5b73ac20ff68af1df476545807dc23189247194e8cea0dcdfa394311c73f04429 languageName: node linkType: hard @@ -8585,17 +7449,17 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^2.1.5": - version: 2.1.5 - resolution: "vitest@npm:2.1.5" - dependencies: - "@vitest/expect": "npm:2.1.5" - "@vitest/mocker": "npm:2.1.5" - "@vitest/pretty-format": "npm:^2.1.5" - "@vitest/runner": "npm:2.1.5" - "@vitest/snapshot": "npm:2.1.5" - "@vitest/spy": "npm:2.1.5" - "@vitest/utils": "npm:2.1.5" +"vitest@npm:^2.1.8": + version: 2.1.8 + resolution: "vitest@npm:2.1.8" + dependencies: + "@vitest/expect": "npm:2.1.8" + "@vitest/mocker": "npm:2.1.8" + "@vitest/pretty-format": "npm:^2.1.8" + "@vitest/runner": "npm:2.1.8" + "@vitest/snapshot": "npm:2.1.8" + "@vitest/spy": "npm:2.1.8" + "@vitest/utils": "npm:2.1.8" chai: "npm:^5.1.2" debug: "npm:^4.3.7" expect-type: "npm:^1.1.0" @@ -8607,13 +7471,13 @@ __metadata: tinypool: "npm:^1.0.1" tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:2.1.5" + vite-node: "npm:2.1.8" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.1.5 - "@vitest/ui": 2.1.5 + "@vitest/browser": 2.1.8 + "@vitest/ui": 2.1.8 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -8631,7 +7495,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10/83e8f446bd882ccf2911c387ca89055f4565d7fb201dca9c88fae1bca2c2ea2337d7abd1e505f69b86049e396f44eaac121a88270e36bca59f9e66646fff6990 + checksum: 10/c2552c068f6faac82eb4e6debb9ed505c0e8016fd6e0a0f0e0dbb5b5417922fbcde80c54af0d3b5a5503a5d6ad6862b6e95b9b59b8b7e98bb553217b9c6fc227 languageName: node linkType: hard @@ -8649,45 +7513,29 @@ __metadata: languageName: node linkType: hard -"vue-eslint-parser@npm:9.4.3": - version: 9.4.3 - resolution: "vue-eslint-parser@npm:9.4.3" - dependencies: - debug: "npm:^4.3.4" - eslint-scope: "npm:^7.1.1" - eslint-visitor-keys: "npm:^3.3.0" - espree: "npm:^9.3.1" - esquery: "npm:^1.4.0" - lodash: "npm:^4.17.21" - semver: "npm:^7.3.6" - peerDependencies: - eslint: ">=6.0.0" - checksum: 10/228e43f0067e5f1fa87a4192f355ebbb4a224f0c7e170b1fbd4205fdf42fe7b3c6820a7e467496a8174e51ba351bc9caed00389d05519206cfa1615cac44516c - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" + version: 1.1.0 + resolution: "which-boxed-primitive@npm:1.1.0" dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.0" + is-number-object: "npm:^1.1.0" + is-string: "npm:^1.1.0" + is-symbol: "npm:^1.1.0" + checksum: 10/7439e3a5ba3cbc23632b1e8f576acf6672ab5ba69cbe0c17386107eaba5a3a5d822c8f00ab76fa230b5ea842d57b7d4ad95e3fe7c16ebba16cf51d496a98526a languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.4 - resolution: "which-builtin-type@npm:1.1.4" +"which-builtin-type@npm:^1.2.0": + version: 1.2.0 + resolution: "which-builtin-type@npm:1.2.0" dependencies: + call-bind: "npm:^1.0.7" function.prototype.name: "npm:^1.1.6" has-tostringtag: "npm:^1.0.2" is-async-function: "npm:^2.0.0" is-date-object: "npm:^1.0.5" - is-finalizationregistry: "npm:^1.0.2" + is-finalizationregistry: "npm:^1.1.0" is-generator-function: "npm:^1.0.10" is-regex: "npm:^1.1.4" is-weakref: "npm:^1.0.2" @@ -8695,11 +7543,11 @@ __metadata: which-boxed-primitive: "npm:^1.0.2" which-collection: "npm:^1.0.2" which-typed-array: "npm:^1.1.15" - checksum: 10/c0cdb9b004e7a326f4ce54c75b19658a3bec73601a71dd7e2d9538accb3e781b546b589c3f306caf5e7429ac1c8019028d5e662e2860f03603354105b8247c83 + checksum: 10/5824186d55c84d2310327147f5e6ea9bbe757ffdf422ae984e501d088d9162b479d37ebb85571399314628f97162c24c9578a4b3e1f4c4b684b1867a9a56819c languageName: node linkType: hard -"which-collection@npm:^1.0.1, which-collection@npm:^1.0.2": +"which-collection@npm:^1.0.2": version: 1.0.2 resolution: "which-collection@npm:1.0.2" dependencies: @@ -8711,16 +7559,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.16 + resolution: "which-typed-array@npm:1.1.16" dependencies: available-typed-arrays: "npm:^1.0.7" call-bind: "npm:^1.0.7" for-each: "npm:^0.3.3" gopd: "npm:^1.0.1" has-tostringtag: "npm:^1.0.2" - checksum: 10/c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 + checksum: 10/7106e94729632cdcedc94080442872392806b3364225156952981777f46b75d2e3b13813b5d935bdb2ac8523f8758fcf3513f7e1ed44a8e10d6c4f1029c3fa7d languageName: node linkType: hard @@ -8735,14 +7583,14 @@ __metadata: languageName: node linkType: hard -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" dependencies: isexe: "npm:^3.1.1" bin: node-which: bin/which.js - checksum: 10/f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + checksum: 10/6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 languageName: node linkType: hard @@ -8830,12 +7678,19 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.6.0": - version: 2.6.0 - resolution: "yaml@npm:2.6.0" +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a + languageName: node + linkType: hard + +"yaml@npm:^2.6.1": + version: 2.6.1 + resolution: "yaml@npm:2.6.1" bin: yaml: bin.mjs - checksum: 10/f4369f667c7626c216ea81b5840fe9b530cdae4cff2d84d166ec1239e54bf332dbfac4a71bf60d121f8e85e175364a4e280a520292269b6cf9d074368309adf9 + checksum: 10/cf412f03a33886db0a3aac70bb4165588f4c5b3c6f8fc91520b71491e5537800b6c2c73ed52015617f6e191eb4644c73c92973960a1999779c62a200ee4c231d languageName: node linkType: hard