From a6896cd5f8d952e3663041289527f39ca27ea469 Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 30 May 2025 14:42:01 +0200 Subject: [PATCH 1/4] feat: implement UCD file fetching and tree view functionality --- src/extension.ts | 10 ++++++++- src/views/ucd-explorer.ts | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/views/ucd-explorer.ts diff --git a/src/extension.ts b/src/extension.ts index 039af5b..b57d807 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,12 +1,20 @@ -import { defineExtension, useCommands, useLogger } from "reactive-vscode"; +import { defineExtension, ref, useCommands, useLogger, useTreeView } from "reactive-vscode"; +import { config } from "./config"; import * as Meta from "./generated/meta"; +import { getFilesByVersion, getTreeViewNodes } from "./views/ucd-explorer"; const { activate, deactivate } = defineExtension(async () => { + const _treeView = useTreeView("ucd.all-files", ref(await getTreeViewNodes(config)), { + showCollapseAll: true, + }); + const logger = useLogger("ucd-logger"); useCommands({ [Meta.commands.browseUcdFiles]: async () => { logger.info("Browsing UCD files..."); + const view = await getFilesByVersion(config, "16.0.0"); + logger.info(`Fetched files for version 16.0.0: ${JSON.stringify(view, null, 2)}`); }, [Meta.commands.visualizeFile]: () => { logger.info("Visualizing UCD file..."); diff --git a/src/views/ucd-explorer.ts b/src/views/ucd-explorer.ts new file mode 100644 index 0000000..bdf9ba3 --- /dev/null +++ b/src/views/ucd-explorer.ts @@ -0,0 +1,46 @@ +import type { TreeViewNode } from "reactive-vscode"; +import type { Config } from "../config"; +import { UNICODE_VERSIONS_WITH_UCD } from "@luxass/unicode-utils"; + +export async function getTreeViewNodes(config: Config): Promise { + const entries = await Promise.all(UNICODE_VERSIONS_WITH_UCD.map(async ({ version }) => getFilesByVersion(config, version))); + + return entries.flat(); +} + +export async function getFilesByVersion(config: Config, version: string): Promise { + const res = await fetch(new URL(`/api/v1/unicode-files/${version}`, config["data-files-api"])); + + if (!res.ok) { + throw new Error(`Failed to fetch files for version ${version}: ${res.statusText}`); + } + + interface Entry { + name: string; + children?: Entry[]; + } + + const data = (await res.json()) as Entry[]; + + return { + treeItem: { + label: version, + collapsibleState: 1, + contextValue: "ucd:version-folder", + }, + children: data.map((entry) => { + return { + treeItem: { + label: entry.name, + collapsibleState: entry.children?.length ? 2 : 0, + contextValue: entry.children?.length ? "ucd:version-folder" : "ucd:version-file", + }, + children: entry.children?.map((child) => ({ + treeItem: { + label: child.name, + }, + })) ?? [], + }; + }), + }; +} From ac73f61c887977800a228336527647cd59283ce7 Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 30 May 2025 19:33:19 +0200 Subject: [PATCH 2/4] chore: update package dependencies and configurations - Bump pnpm version from 10.10.0 to 10.11.0 - Update local UCD data files path configuration key - Change default API URL for fetching UCD data files - Add new command to refresh UCD Explorer - Update devDependencies: - @luxass/unicode-utils from a specific URL to version 0.12.0-beta.4 - @vscode/vsce from 3.4.0 to 3.4.2 - tsdown from 0.11.9 to 0.12.5 - Update babel packages to latest versions - Update ansis package from 4.0.0 to 4.1.0 - Update diff package from 8.0.1 to 8.0.2 - Update get-tsconfig package from 4.10.0 to 4.10.1 - Update rolldown-plugin-dts from 0.12.3 to 0.13.6 - Update rolldown to version 1.0.0-beta.10-commit.87188ed - Update various rolldown binding versions to 1.0.0-beta.10-commit.87188ed --- package.json | 35 ++++--- pnpm-lock.yaml | 258 ++++++++++++++++++++++++++++--------------------- 2 files changed, 172 insertions(+), 121 deletions(-) diff --git a/package.json b/package.json index 06d86e8..a8aee4f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "email": "lucasnrgaard@gmail.com" }, "publisher": "luxass", - "packageManager": "pnpm@10.10.0", + "packageManager": "pnpm@10.11.0", "license": "MIT", "repository": { "type": "git", @@ -36,23 +36,29 @@ "command": "ucd.visualize-file", "title": "Visualize UCD File", "category": "UCD" + }, + { + "command": "ucd.refresh-explorer", + "title": "Refresh UCD Explorer", + "category": "UCD", + "icon": "$(refresh)" } ], "configuration": { "title": "UCD", "properties": { - "ucd.local-data-files-path": { + "ucd.local-data-files-store": { "type": "string", - "description": "Path to local UCD data files", + "description": "Path to local UCD data file store", "default": "" }, "ucd.data-files-api": { "type": "string", "description": "API URL to fetch UCD data files from", - "default": "https://unicode-tools.luxass.dev", + "default": "https://unicode-api.luxass.dev", "enum": [ - "https://unicode-tools.luxass.dev", - "https://preview.unicode-tools.luxass.dev" + "https://unicode-api.luxass.dev", + "https://preview.unicode-api.luxass.dev" ] } } @@ -69,13 +75,20 @@ "views": { "ucd-explorer": [ { - "id": "ucd.all-files", + "id": "ucd:explorer", "name": "All Files", "icon": "$(git-pull-request)" } ] }, "menus": { + "view/title": [ + { + "command": "ucd.refresh-explorer", + "when": "view == ucd:explorer", + "group": "navigation" + } + ], "view/item/context": [ { "command": "ucd.visualize-file", @@ -87,7 +100,7 @@ "viewsWelcome": [ { "view": "ucd-explorer", - "contents": "No node dependencies found [learn more](https://www.npmjs.com/).\n[Add Dependency](command:nodeDependencies.addEntry)" + "contents": "Hallo Mama!" } ] }, @@ -105,15 +118,15 @@ }, "devDependencies": { "@luxass/eslint-config": "^4.18.1", - "@luxass/unicode-utils": "https://pkg.pr.new/@luxass/unicode-utils@68", + "@luxass/unicode-utils": "^0.12.0-beta.4", "@reactive-vscode/vueuse": "^0.2.17", "@types/node": "^22.15.18", "@types/vscode": "^1.100.0", - "@vscode/vsce": "^3.4.0", + "@vscode/vsce": "^3.4.2", "eslint": "^9.27.0", "eslint-plugin-format": "^1.0.1", "reactive-vscode": "^0.2.17", - "tsdown": "^0.11.9", + "tsdown": "^0.12.5", "typescript": "^5.8.3", "vscode-ext-gen": "^1.0.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f90da50..30f374b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^4.18.1 version: 4.18.1(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@luxass/unicode-utils': - specifier: https://pkg.pr.new/@luxass/unicode-utils@68 - version: https://pkg.pr.new/@luxass/unicode-utils@68 + specifier: ^0.12.0-beta.4 + version: 0.12.0-beta.4 '@reactive-vscode/vueuse': specifier: ^0.2.17 version: 0.2.17 @@ -24,8 +24,8 @@ importers: specifier: ^1.100.0 version: 1.100.0 '@vscode/vsce': - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.2 + version: 3.4.2 eslint: specifier: ^9.27.0 version: 9.27.0(jiti@2.4.2) @@ -36,8 +36,8 @@ importers: specifier: ^0.2.17 version: 0.2.17(@types/vscode@1.100.0) tsdown: - specifier: ^0.11.9 - version: 0.11.9(typescript@5.8.3) + specifier: ^0.12.5 + version: 0.12.5(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -104,8 +104,8 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.1': - resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} + '@babel/generator@7.27.3': + resolution: {integrity: sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': @@ -121,10 +121,19 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.4': + resolution: {integrity: sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/types@7.27.1': resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.3': + resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + engines: {node: '>=6.9.0'} + '@clack/core@0.4.2': resolution: {integrity: sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==} @@ -298,9 +307,8 @@ packages: prettier-plugin-astro: optional: true - '@luxass/unicode-utils@https://pkg.pr.new/@luxass/unicode-utils@68': - resolution: {tarball: https://pkg.pr.new/@luxass/unicode-utils@68} - version: 0.11.0 + '@luxass/unicode-utils@0.12.0-beta.4': + resolution: {integrity: sha512-4Jj1rrxm2RjRTJU0N0Qec97ksqI9Fer4LS3cjJ+3nf+RAOW/Kjo9HaUxvY4DeL0J0jZ2VhWhoCzaNifGto5wlw==} '@luxass/utils@2.2.1': resolution: {integrity: sha512-riQdjsEXmHxaPDcWappVi1YYF/rsveZTvSIsev1m7qYQrRq6aRNYWTVVPhye3Pdf0NCWUNIKIdtrtpHhx+SgYA==} @@ -321,8 +329,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/types@0.69.0': - resolution: {integrity: sha512-bu3gzdAlLgncoaqyqWVpMAKx4axo+j3ewvvdAt5iCLtvHB/n3Qeif67NU+2TM/ami1nV5/KVO9lxCH8paPATBA==} + '@oxc-project/runtime@0.72.1': + resolution: {integrity: sha512-8nU/WPeJWF6QJrT8HtEEIojz26bXn677deDX8BDVpjcz97CVKORVAvFhE2/lfjnBYE0+aqmjFeD17YnJQpCyqg==} + engines: {node: '>=6.9.0'} + + '@oxc-project/types@0.72.1': + resolution: {integrity: sha512-qlvcDuCjISt4W7Izw0i5+GS3zCKJLXkoNDEc+E4ploage35SlZqxahpdKbHDX8uD70KDVNYWtupsHoNETy5kPQ==} '@pkgr/core@0.1.2': resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} @@ -342,68 +354,68 @@ packages: '@reactive-vscode/vueuse@0.2.17': resolution: {integrity: sha512-liuR4bhIFBl8NXnoZygMN7s+AKzDmj+eaobNnelgERWL0tKtMTxVc1Mtr7Fl6rh+ivCCoipVIV3t+sp8Lvel9A==} - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-Qnj12Et8isg99mLZoWYKCdepAUVVeBNdpBKAG/L+jEz6sQ2L2FhHB4owmF3wXyzHVzLUmhT1Io1q49vBEldbjQ==} + '@rolldown/binding-darwin-arm64@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-0tuZTzzjQ1TV5gcoRrIHfRRMyBqzOHL9Yl7BZX5iR+J2hIUBJiq1P+mGAvTb/PDgkYWfEgtBde3AUMJtSj8+Hg==} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-xgkCsHfe353jWscfOay8eyHdj/jg9Qp7fEsB9k1+YGnfinBtRbyAVhJ6LmZOVNfchN316bB59l4HFIL01S/kMQ==} + '@rolldown/binding-darwin-x64@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-OmtnJvjXlLsPzdDhUdukImWQBztZWhlnDFSrIaBnMXF9WrqwgIG4FfRwQXXhS/iDyCdHqUVr8473OANzVv7Ang==} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-H6ZAQq4B0D03sGxVn5KDCHnopXV+QHoYk2yemRqSx4tjXDnynt8fRXxdjDbBcsmlxSp/l4t/zKeSzVjXRIT3RA==} + '@rolldown/binding-freebsd-x64@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-rgtwGtvBGNc5aJROgxvD/ITwC0sY1KdGTADiG3vD1YXmkBCsZIBq1yhCUxz+qUhhIkmohmwqDcgUBCNpa7Wdjw==} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-GwxeaGEC/qfgnd63SsklcQft04ygrnJDzdIbH5FvMPZ2L7eQ6FqhYYfF2aoQqnjgim5UO5BrFm97EmSjDWhBsA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-yeR/cWwnKdv8S/mJGL7ZE+Wt+unSWhhA5FraZtWPavOX6tfelUZIQlAeKrcti2exQbjIMFS4WJ1MyuclyIvFCQ==} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-ItBOhvZtYHIGJ1AtX7xf7v0RvZbXgdsv5gHk8vDykGMAbl+t4Wa9OJIIa6C8V2nBFJXWH+14GudrEfQfQUFbtQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-kg7yeU3XIGmaoKF1+u8OGJ/NE2XMpwgtQpCWzJh7Z8DhJDjMlszhV3DrnKjywI3NmVNCEXYwGO6mYff31xuHug==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-UiHjNo1ffN9Nt53mmawmnuVn2l9vdYGd91XxFrOTrEKRxO5bJL6wBhd82t+uBeHWycR/6qlSCJkTsHJQPf2UbA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-gvXDfeL4C6dql3Catf8HgnBnDy/zr8ZFX3f/edQ+QY0iJVHY/JG+bitRsNPWWOFmsv/Xm+qSyR44e5VW8Pi1oQ==} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-p3sIHw1vmqqK70474mEvyl0aj1PvvUEWiKxG+zvpNRTzWxcTxrsRCtlqxTJ1A8R0z76tdn00PsMQrFOSMnLotQ==} + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-rpzxr4TyvM3+tXGNjM3AEtgnUM9tpYe6EsIuLiU3fs+KaMKj5vOTr5k/eCACxnjDi4s78ARmqT+Z3ZS2E06U5w==} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-STOhk06GmHu/mvrZnp32JkQAN07g1ZjuaChf8r0/7NnnOIg6xiTcBxhMxL5hTR7os075ziRRUoHlfEssIJxSBw==} + '@rolldown/binding-linux-x64-musl@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-cq+Gd1jEie1xxBNllnna21FPaWilWzQK+sI8kF1qMWRI6U909JjS/SzYR0UNLbvNa+neZh8dj37XnxCTQQ40Lw==} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-18l5SdnDs49KuWsJ1ZjxQ72f4OBv++wQDkYeTkIDFON+lWIY6pCc4Zb7ehD8aflq6gisokt0GsZWO8Dyi7iqrA==} + '@rolldown/binding-wasm32-wasi@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-xN4bJ0DQeWJiyerA46d5Lyv5Cor/FoNlbaO9jEOHZDdWz78E2xt/LE3bOND3c59gZa+/YUBEifs4lwixU/wWPg==} engines: {node: '>=14.21.3'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-LqyxWnfBr0IkLVrFwBxARbEUYcpzXgDaBCqBn1rrKiLt6KUxoTA95WWkHQhYFjqmQHJOoBAFHXykoRpqdJPH9w==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-xUHManwWX+Lox4zoTY5FiEDGJOjCO9X6hTospFX4f6ELmhJQNnAO4dahZDc/Ph+3wbc3724ZMCGWQvHfTR3wWg==} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-v4DdzJg8hmZL2koD/CphCUK79oCfdVnGLkCXmNhlmNId9f/6e0xKYgMnxcKL6B/ToM+Jl0iiVfGpKPE3ss+a1g==} + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-RmO3wCz9iD+grSgLyqMido8NJh6GxkPYRmK6Raoxcs5YC9GuKftxGoanBk0gtyjCKJ6jwizWKWNYJNkZSbWnOw==} cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-4WHgT6kseymPm32LrUISpKnX/rX1YAPsfys7uWUm4sdEHJA16kX7ZLCDrAkgNMfbYD3ZuMzEnV6pbD2bDHQn0A==} + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-bWuJ5MoBd1qRCpC9uVxmFKrYjrWkn1ERElKnj0O9N2lWOi30iSTrpDeLMEvwueyiapcJh2PYUxyFE3W9pw29HQ==} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.8-commit.d95f99e': - resolution: {integrity: sha512-m0VRAx0VjzbiV55GPB3kRbxonm9pkiTzn5HVu/xWfCqGfnFY2G9bjJCnwwZ+pNE0Lg/dppOYHfnPIZcOLgF4tg==} + '@rolldown/pluginutils@1.0.0-beta.10-commit.87188ed': + resolution: {integrity: sha512-IjVRLSxjO7EzlW4S6O8AoWbCkEi1lOpE30G8Xw5ZK/zl39K/KjzsDPc1AwhftepueQnQHJMgZZG9ITEmxcF5/A==} '@secretlint/config-creator@9.3.2': resolution: {integrity: sha512-IDUNnM/WVYcvj9PeoZIAvew31HHOtL/paJVkYT2D7G8HyehhTOPMvZSYVr43KXZ/bwUdlJg39C14xPx0NVsJyw==} @@ -707,8 +719,8 @@ packages: '@vscode/vsce-sign@2.0.5': resolution: {integrity: sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==} - '@vscode/vsce@3.4.0': - resolution: {integrity: sha512-vKyQxFSipqO4e1vUM3iDzOzMSXIKVhrJlWuGgYv/GF1ihAM/zzs2MVSGFC4CfdhF1ep+5AoLn1aRFn96CGhEWA==} + '@vscode/vsce@3.4.2': + resolution: {integrity: sha512-U2gC7GiQc22nxRpWH4cdW16rRr5u9w+Bjsjm8g8mEjY4aeOG1U6/3XNGq+ElwdeoT8jAyhBmBAuYG7INcSe/6A==} engines: {node: '>= 20'} hasBin: true @@ -775,8 +787,8 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - ansis@4.0.0: - resolution: {integrity: sha512-P8nrHI1EyW9OfBt1X7hMSwGN2vwRuqHSKJAT1gbLWZRzDa24oHjYwGHvEgHeBepupzk878yS/HBZ0NMPYtbolw==} + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} engines: {node: '>=14'} are-docs-informative@0.0.2: @@ -813,6 +825,9 @@ packages: resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} engines: {node: '>=0.8'} + birpc@2.3.0: + resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -1031,8 +1046,8 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff@8.0.1: - resolution: {integrity: sha512-rEaM3KmVm78zE3dFZaop3aCQa2MTm+T4kcigUFLVU/KbOYdiY6JnL2g2puOYnct3QFw9pjZadaCbCZ1O8ArMlQ==} + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} engines: {node: '>=0.3.1'} dom-serializer@2.0.0: @@ -1430,6 +1445,9 @@ packages: get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -2228,11 +2246,11 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown-plugin-dts@0.12.3: - resolution: {integrity: sha512-u3Z3VHWvWKlk5lqyFDJ5x1IW+SsUfE3nIeu4O0ktzTsYANJqM1R46HF3SbY4ExzrLRdRCMsNhCKC3c1UhsX9ww==} + rolldown-plugin-dts@0.13.6: + resolution: {integrity: sha512-eeiRAhGWK/v3hFFSWQ1FeE+tvRIIKxGH7uA/THMC1FD3HuTtltxx79+8TqAuD4msfgApJyB9k4Gu3YSWPwkTIQ==} engines: {node: '>=20.18.0'} peerDependencies: - rolldown: ^1.0.0-beta.8-commit.2a5c6a6 + rolldown: ^1.0.0-beta.9 typescript: ^5.0.0 vue-tsc: ~2.2.0 peerDependenciesMeta: @@ -2241,14 +2259,9 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-beta.8-commit.d95f99e: - resolution: {integrity: sha512-A/10eaVhZhiRyHPz5jMQN4MU2i4JQGSci0vcqqhuozk/sertEUmZHkwHntNBKujdRdgG99apR2LSWYUsU7iKbA==} + rolldown@1.0.0-beta.10-commit.87188ed: + resolution: {integrity: sha512-D+iim+DHIwK9kbZvubENmtnYFqHfFV0OKwzT8yU/W+xyUK1A71+iRFmJYBGqNUo3fJ2Ob4oIQfan63mhzh614A==} hasBin: true - peerDependencies: - '@oxc-project/runtime': 0.69.0 - peerDependenciesMeta: - '@oxc-project/runtime': - optional: true run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} @@ -2445,6 +2458,10 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} @@ -2463,8 +2480,8 @@ packages: peerDependencies: typescript: '>=4.8.4' - tsdown@0.11.9: - resolution: {integrity: sha512-Lp1lflza4U+Ennezzj7NyC3+OtoeAn7TuOe0fm7uKl0lt71I4gCGSj1HAdInRMD3uQhKUH3uU7nj+MpRSXL7Lg==} + tsdown@0.12.5: + resolution: {integrity: sha512-5tzqVakJOdIVJLBB6K1e7L4pPTkyLxArkidwsY1jd4P1/4GplYxeHGRmGz8evsXaPJW6IumdbDvIVnmWMnIy2A==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: @@ -2761,10 +2778,10 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/generator@7.27.1': + '@babel/generator@7.27.3': dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.27.4 + '@babel/types': 7.27.3 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 @@ -2777,11 +2794,20 @@ snapshots: dependencies: '@babel/types': 7.27.1 + '@babel/parser@7.27.4': + dependencies: + '@babel/types': 7.27.3 + '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.27.3': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@clack/core@0.4.2': dependencies: picocolors: 1.1.1 @@ -2986,7 +3012,7 @@ snapshots: - typescript - vitest - '@luxass/unicode-utils@https://pkg.pr.new/@luxass/unicode-utils@68': + '@luxass/unicode-utils@0.12.0-beta.4': dependencies: '@luxass/utils': 2.2.1 defu: 6.1.4 @@ -3012,7 +3038,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@oxc-project/types@0.69.0': {} + '@oxc-project/runtime@0.72.1': {} + + '@oxc-project/types@0.72.1': {} '@pkgr/core@0.1.2': {} @@ -3028,45 +3056,43 @@ snapshots: dependencies: '@reactive-vscode/reactivity': 0.2.17 - '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-darwin-arm64@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-darwin-x64@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-freebsd-x64@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.8-commit.d95f99e': - dependencies: - '@napi-rs/wasm-runtime': 0.2.10 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.8-commit.d95f99e': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.10-commit.87188ed': optional: true - '@rolldown/pluginutils@1.0.0-beta.8-commit.d95f99e': {} + '@rolldown/pluginutils@1.0.0-beta.10-commit.87188ed': {} '@secretlint/config-creator@9.3.2': dependencies: @@ -3407,7 +3433,7 @@ snapshots: '@vscode/vsce-sign-win32-arm64': 2.0.2 '@vscode/vsce-sign-win32-x64': 2.0.2 - '@vscode/vsce@3.4.0': + '@vscode/vsce@3.4.2': dependencies: '@azure/identity': 4.10.0 '@secretlint/node': 9.3.2 @@ -3520,7 +3546,7 @@ snapshots: ansi-styles@6.2.1: {} - ansis@4.0.0: {} + ansis@4.1.0: {} are-docs-informative@0.0.2: {} @@ -3532,7 +3558,7 @@ snapshots: ast-kit@2.0.0: dependencies: - '@babel/parser': 7.27.2 + '@babel/parser': 7.27.4 pathe: 2.0.3 astral-regex@2.0.0: {} @@ -3551,6 +3577,8 @@ snapshots: binaryextensions@4.19.0: {} + birpc@2.3.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -3761,7 +3789,7 @@ snapshots: dependencies: dequal: 2.0.3 - diff@8.0.1: {} + diff@8.0.2: {} dom-serializer@2.0.0: dependencies: @@ -4257,6 +4285,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + github-from-package@0.0.0: optional: true @@ -5227,40 +5259,42 @@ snapshots: reusify@1.1.0: {} - rolldown-plugin-dts@0.12.3(rolldown@1.0.0-beta.8-commit.d95f99e)(typescript@5.8.3): + rolldown-plugin-dts@0.13.6(rolldown@1.0.0-beta.10-commit.87188ed)(typescript@5.8.3): dependencies: - '@babel/generator': 7.27.1 - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/generator': 7.27.3 + '@babel/parser': 7.27.4 + '@babel/types': 7.27.3 ast-kit: 2.0.0 + birpc: 2.3.0 debug: 4.4.1 dts-resolver: 2.0.1 - get-tsconfig: 4.10.0 - rolldown: 1.0.0-beta.8-commit.d95f99e + get-tsconfig: 4.10.1 + rolldown: 1.0.0-beta.10-commit.87188ed optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - oxc-resolver - supports-color - rolldown@1.0.0-beta.8-commit.d95f99e: + rolldown@1.0.0-beta.10-commit.87188ed: dependencies: - '@oxc-project/types': 0.69.0 - '@rolldown/pluginutils': 1.0.0-beta.8-commit.d95f99e - ansis: 4.0.0 + '@oxc-project/runtime': 0.72.1 + '@oxc-project/types': 0.72.1 + '@rolldown/pluginutils': 1.0.0-beta.10-commit.87188ed + ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-darwin-arm64': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-darwin-x64': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-freebsd-x64': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.8-commit.d95f99e - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.8-commit.d95f99e + '@rolldown/binding-darwin-arm64': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-darwin-x64': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-freebsd-x64': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.10-commit.87188ed + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.10-commit.87188ed run-applescript@7.0.0: {} @@ -5483,6 +5517,11 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + tmp@0.2.3: {} to-regex-range@5.0.1: @@ -5497,25 +5536,24 @@ snapshots: dependencies: typescript: 5.8.3 - tsdown@0.11.9(typescript@5.8.3): + tsdown@0.12.5(typescript@5.8.3): dependencies: - ansis: 4.0.0 + ansis: 4.1.0 cac: 6.7.14 chokidar: 4.0.3 debug: 4.4.1 - diff: 8.0.1 + diff: 8.0.2 empathic: 1.1.0 hookable: 5.5.3 - rolldown: 1.0.0-beta.8-commit.d95f99e - rolldown-plugin-dts: 0.12.3(rolldown@1.0.0-beta.8-commit.d95f99e)(typescript@5.8.3) + rolldown: 1.0.0-beta.10-commit.87188ed + rolldown-plugin-dts: 0.13.6(rolldown@1.0.0-beta.10-commit.87188ed)(typescript@5.8.3) semver: 7.7.2 tinyexec: 1.0.1 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 unconfig: 7.3.2 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - - '@oxc-project/runtime' - oxc-resolver - supports-color - vue-tsc From 8da2652da5c88e12b0e984486a45ce92250e750f Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 30 May 2025 19:33:24 +0200 Subject: [PATCH 3/4] fix: update tree view identifier and enhance error handling in file fetching --- src/extension.ts | 6 +++- src/views/ucd-explorer.ts | 75 +++++++++++++++++++++++---------------- 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index b57d807..2838614 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -4,7 +4,7 @@ import * as Meta from "./generated/meta"; import { getFilesByVersion, getTreeViewNodes } from "./views/ucd-explorer"; const { activate, deactivate } = defineExtension(async () => { - const _treeView = useTreeView("ucd.all-files", ref(await getTreeViewNodes(config)), { + const _treeView = useTreeView("ucd:explorer", ref(await getTreeViewNodes(config)), { showCollapseAll: true, }); @@ -19,6 +19,10 @@ const { activate, deactivate } = defineExtension(async () => { [Meta.commands.visualizeFile]: () => { logger.info("Visualizing UCD file..."); }, + [Meta.commands.refreshExplorer]: async () => { + logger.info("Refreshing UCD Explorer..."); + logger.info("UCD Explorer refreshed."); + }, }); }); diff --git a/src/views/ucd-explorer.ts b/src/views/ucd-explorer.ts index bdf9ba3..d052ba7 100644 --- a/src/views/ucd-explorer.ts +++ b/src/views/ucd-explorer.ts @@ -1,46 +1,61 @@ import type { TreeViewNode } from "reactive-vscode"; import type { Config } from "../config"; -import { UNICODE_VERSIONS_WITH_UCD } from "@luxass/unicode-utils"; +import { UNICODE_VERSION_METADATA } from "@luxass/unicode-utils"; +import { useLogger } from "reactive-vscode"; export async function getTreeViewNodes(config: Config): Promise { - const entries = await Promise.all(UNICODE_VERSIONS_WITH_UCD.map(async ({ version }) => getFilesByVersion(config, version))); + const entries = await Promise.all(UNICODE_VERSION_METADATA.map(async ({ version }) => getFilesByVersion(config, version))); return entries.flat(); } export async function getFilesByVersion(config: Config, version: string): Promise { - const res = await fetch(new URL(`/api/v1/unicode-files/${version}`, config["data-files-api"])); + const logger = useLogger("ucd-logger"); + try { + const res = await fetch(new URL(`/api/v1/unicode-files/${version}`, config["data-files-api"])); - if (!res.ok) { - throw new Error(`Failed to fetch files for version ${version}: ${res.statusText}`); - } + if (!res.ok) { + throw new Error(`Failed to fetch files for version ${version}: ${res.statusText}`); + } - interface Entry { - name: string; - children?: Entry[]; - } + interface Entry { + name: string; + children?: Entry[]; + } - const data = (await res.json()) as Entry[]; + const data = (await res.json()) as Entry[]; - return { - treeItem: { - label: version, - collapsibleState: 1, - contextValue: "ucd:version-folder", - }, - children: data.map((entry) => { - return { - treeItem: { - label: entry.name, - collapsibleState: entry.children?.length ? 2 : 0, - contextValue: entry.children?.length ? "ucd:version-folder" : "ucd:version-file", - }, - children: entry.children?.map((child) => ({ + return { + treeItem: { + label: version, + collapsibleState: 1, + contextValue: "ucd:version-folder", + }, + children: data.map((entry) => { + return { treeItem: { - label: child.name, + iconPath: entry.children?.length ? "$(folder)" : "$(file)", + label: entry.name, + collapsibleState: entry.children?.length ? 2 : 0, + contextValue: entry.children?.length ? "ucd:version-folder" : "ucd:version-file", }, - })) ?? [], - }; - }), - }; + children: entry.children?.map((child) => ({ + treeItem: { + label: child.name, + }, + })) ?? [], + }; + }), + }; + } catch (err) { + logger.error(`Error fetching files for version ${version}:`, err); + return { + treeItem: { + label: `Error loading files for version ${version}`, + collapsibleState: 0, + contextValue: "ucd:error", + }, + children: [], + }; + } } From dcb470b48c9f9e7841fb34574e94f6d67827525e Mon Sep 17 00:00:00 2001 From: Lucas Date: Sat, 31 May 2025 08:39:18 +0200 Subject: [PATCH 4/4] feat: improve explorer --- package.json | 14 +- pnpm-lock.yaml | 1032 ++++++++++++++++++------------------- src/extension.ts | 61 ++- src/lib/files.ts | 40 ++ src/logger.ts | 3 + src/views/ucd-explorer.ts | 129 +++-- 6 files changed, 667 insertions(+), 612 deletions(-) create mode 100644 src/lib/files.ts create mode 100644 src/logger.ts diff --git a/package.json b/package.json index a8aee4f..a0928e9 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,11 @@ "title": "Refresh UCD Explorer", "category": "UCD", "icon": "$(refresh)" + }, + { + "command": "ucd.open-explorer-entry", + "title": "Open UCD Explorer Entry", + "category": "UCD" } ], "configuration": { @@ -92,7 +97,12 @@ "view/item/context": [ { "command": "ucd.visualize-file", - "when": "viewItem == ucd:version-file", + "when": "viewItem == ucd:explorer-file", + "group": "navigation" + }, + { + "command": "ucd.open-explorer-entry", + "when": "viewItem == ucd:explorer-file || viewItem == ucd:explorer-folder || viewItem == ucd:version-folder", "group": "navigation" } ] @@ -100,7 +110,7 @@ "viewsWelcome": [ { "view": "ucd-explorer", - "contents": "Hallo Mama!" + "contents": "# Welcome to UCD Explorer\n\nThis extension allows you to browse and visualize Unicode Character Database (UCD) files. Use the commands in the command palette or the context menu to interact with the files." } ] }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30f374b..6a3ec84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@luxass/eslint-config': specifier: ^4.18.1 - version: 4.18.1(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + version: 4.18.1(@typescript-eslint/utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-plugin-format@1.0.1(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) '@luxass/unicode-utils': specifier: ^0.12.0-beta.4 version: 0.12.0-beta.4 @@ -19,7 +19,7 @@ importers: version: 0.2.17 '@types/node': specifier: ^22.15.18 - version: 22.15.18 + version: 22.15.29 '@types/vscode': specifier: ^1.100.0 version: 1.100.0 @@ -28,10 +28,10 @@ importers: version: 3.4.2 eslint: specifier: ^9.27.0 - version: 9.27.0(jiti@2.4.2) + version: 9.28.0(jiti@2.4.2) eslint-plugin-format: specifier: ^1.0.1 - version: 1.0.1(eslint@9.27.0(jiti@2.4.2)) + version: 1.0.1(eslint@9.28.0(jiti@2.4.2)) reactive-vscode: specifier: ^0.2.17 version: 0.2.17(@types/vscode@1.100.0) @@ -88,16 +88,16 @@ packages: resolution: {integrity: sha512-0hKEzLhpw+ZTAfNJyRrn6s+V0nDWzXk9OjBr2TiGIu0OfMr5s2V4FpKLTAK3Ca5r5OKLbf4hkOGDPyiRjie/jA==} engines: {node: '>=18.0.0'} - '@azure/msal-browser@4.12.0': - resolution: {integrity: sha512-WD1lmVWchg7wn1mI7Tr4v7QPyTwK+8Nuyje3jRpOFENLRLEBsdK8VVdTw3C+TypZmYn4cOAdj3zREnuFXgvfIA==} + '@azure/msal-browser@4.13.0': + resolution: {integrity: sha512-n2ySryLd+wHmm/0Y1mwFI4J9UXVCu2DeWKtoWNWLVcpvK2k0Ez1qIigKleUm2ZfTbfAXdue+V8htmFft0qgyGQ==} engines: {node: '>=0.8.0'} - '@azure/msal-common@15.6.0': - resolution: {integrity: sha512-EotmBz42apYGjqiIV9rDUdptaMptpTn4TdGf3JfjLvFvinSe9BJ6ywU92K9ky+t/b0ghbeTSe9RfqlgLh8f2jA==} + '@azure/msal-common@15.7.0': + resolution: {integrity: sha512-m9M5hoFoxhe/HlXNVa4qBHekrX60CVPkWzsjhKQGuzw/OPOmurosKRPDIMn8fug/E1hHI5v33DvT1LVJfItjcg==} engines: {node: '>=0.8.0'} - '@azure/msal-node@3.5.3': - resolution: {integrity: sha512-c5mifzHX5mwm5JqMIlURUyp6LEEdKF1a8lmcNRLBo0lD7zpSYPHupa4jHyhJyg9ccLwszLguZJdk2h3ngnXwNw==} + '@azure/msal-node@3.6.0': + resolution: {integrity: sha512-MRZ38Ou6l9LiRkz/968mG0czfIvD1PxMZ/3Jyz5k00ZMnhNOwv+DIliEcy//laoWDobAAq+/cz97xefCcHPgjg==} engines: {node: '>=16'} '@babel/code-frame@7.27.1': @@ -116,20 +116,11 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.2': - resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.27.4': resolution: {integrity: sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.27.1': - resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} - engines: {node: '>=6.9.0'} - '@babel/types@7.27.3': resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} engines: {node: '>=6.9.0'} @@ -158,8 +149,8 @@ packages: '@emnapi/wasi-threads@1.0.2': resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - '@es-joy/jsdoccomment@0.50.1': - resolution: {integrity: sha512-fas3qe1hw38JJgU/0m5sDpcrbZGysBeZcMwW5Ws9brYxY64MJyWLXRZCj18keTycT1LFTrFXdSNMS+GRVaU6Hw==} + '@es-joy/jsdoccomment@0.50.2': + resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} engines: {node: '>=18'} '@eslint-community/eslint-plugin-eslint-comments@4.5.0': @@ -211,8 +202,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + '@eslint/js@9.28.0': + resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/markdown@6.4.0': @@ -417,75 +408,75 @@ packages: '@rolldown/pluginutils@1.0.0-beta.10-commit.87188ed': resolution: {integrity: sha512-IjVRLSxjO7EzlW4S6O8AoWbCkEi1lOpE30G8Xw5ZK/zl39K/KjzsDPc1AwhftepueQnQHJMgZZG9ITEmxcF5/A==} - '@secretlint/config-creator@9.3.2': - resolution: {integrity: sha512-IDUNnM/WVYcvj9PeoZIAvew31HHOtL/paJVkYT2D7G8HyehhTOPMvZSYVr43KXZ/bwUdlJg39C14xPx0NVsJyw==} + '@secretlint/config-creator@9.3.3': + resolution: {integrity: sha512-USIKXtBIDPBt+uxssxFVqYBzSommdwXNDGwRZPGErnKWeIH58XuyqIjRTi99fYB0yAQZZ+Cv4sD2JVXCxevEew==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/config-loader@9.3.2': - resolution: {integrity: sha512-5pBUiAFI7lwHzsxPozwhIXVVxj65MbPOth5nSPz2rdpLg/dlti3udlstoq624kqQAlpb196Bhto3JCZGpKduQw==} + '@secretlint/config-loader@9.3.3': + resolution: {integrity: sha512-t0NGpVq7fFROr/UqfxSI09UI30U7rKSGXjfKNwR0O6fMlwx2AV9RWOvLS4hDLwxxKs+ywss6DZx/wcTdtBEWxA==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/core@9.3.2': - resolution: {integrity: sha512-oBsrFDTwXvFNLjIdcwrbCS/WUhKrGUeTDTSrmQBuaJvLHgCUX8/jEuBhBONkUDgWO3QEHRhi9LDlgnBqTIODEw==} + '@secretlint/core@9.3.3': + resolution: {integrity: sha512-XPpchOJz591E6bqMWkY6VxtaIbSI0gY0bUeVz1gkfT6FUI0fOfJrAMWe9RhxXWraMuxokTQA8R/LFJefiK+bXg==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/formatter@9.3.2': - resolution: {integrity: sha512-JiFhZtg2a4WdkPxCXlq0iGUz18UxzjWnyUMvb/89BvF5m9DKDvmlfHIMLZ3O5205mSJqlpcZxRu7eADJB9fS7Q==} + '@secretlint/formatter@9.3.3': + resolution: {integrity: sha512-kqfnbhtxcH1Ew7pboM+jCZl8CuBzVuEKuHHSkT92iasxaaq1NK37h5IIfUDbFdXizmNFe3MwAnnVU8lqK2Dvyg==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/node@9.3.2': - resolution: {integrity: sha512-WH3PjYtZ8RumUJFZvM4vYEvpelT2m6WFzCRS3j+nzmH5eSv70+BWSISMB/ouZ5koq1+1zPlnWf/ADEvOwgbebw==} + '@secretlint/node@9.3.3': + resolution: {integrity: sha512-ZD1yXlzEJmFS/lq+BmgzUBB+2mQgj6kK6A//IhBop5xqAp+lXoq1vNgu7VSJ3DR+XrKrIK7YHFZXRh9aJvIjmA==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/profiler@9.3.2': - resolution: {integrity: sha512-cXXWQzA6lIcT0TY53JvbXtH6BltBfqmH5V39byhnbDfZl5FKCB6FHxVVzkctjwss6KMtDXcNLvfz3nKBZaWRDA==} + '@secretlint/profiler@9.3.3': + resolution: {integrity: sha512-wcVTByh+m9O1w2WAV08Po6trGsVjhRTV1UWuzVcQTTap9EjeKQLja6Xof/SIDGORD0KWooUIMAe7VPLQFPi1cQ==} - '@secretlint/resolver@9.3.2': - resolution: {integrity: sha512-yOi6md3kzpaFw6w2FJTDLoKlUxr1RltBJrb5lheIBDDXy/7C/5gP0K4uMiqamnVg8c9Ac+qlNS5KUar8FDFpdg==} + '@secretlint/resolver@9.3.3': + resolution: {integrity: sha512-8N0lqD7OiI/aLK/PhKyiGh5xTlO/6TjHiOt72jnrvB9BK2QF45Mp5fivCARTKBypDiTZrOrS7blvqZ7qTnOTrA==} - '@secretlint/secretlint-formatter-sarif@9.3.2': - resolution: {integrity: sha512-RtL9BISmhtsHTOcPI6+4AL1sRnUcnMhuQTvFbNPb9malxolIjthUsUKC5WqgT+8JN1tUG7w/diW+/kr5F1T0zw==} + '@secretlint/secretlint-formatter-sarif@9.3.3': + resolution: {integrity: sha512-qH8726RFQLdD2iKXamSbBcRTSxbECDbvg0hS3aTGL0+XOmzWI7JL4tdNywMqeHzKCRLrcEJOLYWv/P/w2VdwkA==} - '@secretlint/secretlint-rule-no-dotenv@9.3.2': - resolution: {integrity: sha512-i1npoCy8eha8gU602SFf4S7vPOYMu9/WHCIr41EQvy4C9J+u95bt8COOYmk46e+aPyEDmQGxn2Lp4F2A2BoVLw==} + '@secretlint/secretlint-rule-no-dotenv@9.3.3': + resolution: {integrity: sha512-Fm1uSlchskbIGuVEIYr1MnhTvUSd4GHqiRXVomH0Sli9Q0JMKElBlfS8cB165OaNGrCZ+TmmdrF/Q8sjwZYWyQ==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/secretlint-rule-preset-recommend@9.3.2': - resolution: {integrity: sha512-rMvHTcHWLydOhKWDrK62x54ICMyfPwl0H5hAPfurLQR0sjjxGeSKuqr75emu6a2/5yYgvScZC97xVrlc2fTPSA==} + '@secretlint/secretlint-rule-preset-recommend@9.3.3': + resolution: {integrity: sha512-zT8zxh1z28Vzc9S5FVMbfWOITNikTYmajLTuX4D8lhGM3bx7xDopUJnsEtj1lAGc5WcCZ3baMJ3xCFZeDv/SAg==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/source-creator@9.3.2': - resolution: {integrity: sha512-eEP8sHnTB7rtv976Awh5+VMTD8udiHBaeSWAEKGy21Gas/slEb02Q812SWo2UMX9NcVBl+DYaOkmPQbcPHrY5A==} + '@secretlint/source-creator@9.3.3': + resolution: {integrity: sha512-2h6t9UfWQn7Sp6PUO+hvWK3i55tqE4H4YlmUBlL5VOjubADcO21OAtp7S05LgXE+VJfLDgUcb1hflkw0cPE1rw==} engines: {node: ^14.13.1 || >=16.0.0} - '@secretlint/types@9.3.2': - resolution: {integrity: sha512-Mxs8jzyPm843B0P/YNiOxnFSNyYtrmMoLPjrmqebrI5LBERRGctXj2Q9Oy/ayZ+FMK+1cP9jLhceicRvlZPR1Q==} + '@secretlint/types@9.3.3': + resolution: {integrity: sha512-ehVGggPM23sHEkqQP/5HlGDK+8Xx2oRX8vF9C/fKh+TcTRWOfjCeC7QeoPxcEMXNDXfUsHK5P8DKqQEcpbiUZQ==} engines: {node: ^14.13.1 || >=16.0.0} '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@stylistic/eslint-plugin@4.2.0': - resolution: {integrity: sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==} + '@stylistic/eslint-plugin@4.4.0': + resolution: {integrity: sha512-bIh/d9X+OQLCAMdhHtps+frvyjvAM4B1YlSJzcEEhl7wXLIqPar3ngn9DrHhkBOrTA/z9J0bUMtctAspe0dxdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' - '@textlint/ast-node-types@14.7.1': - resolution: {integrity: sha512-7C/xYNZtaG+erIMjNZbRz7av9/S5eC+GAMh0rJ6A9Hik6nS4WyWKblutw2p+O2YWWT2tmOjzu/81fWzzDzmtRg==} + '@textlint/ast-node-types@14.7.2': + resolution: {integrity: sha512-3rZc9vD8y/DlcFe3Y/cyKRRVgBH4ElEUzVFYdRVDwoMSwV/cIyZgYzVG6ZuOItQt+cHSREuijuucZ4VqZynbtg==} - '@textlint/linter-formatter@14.7.1': - resolution: {integrity: sha512-saAE+e4RZFInRmCF9pu7ukZAHxWaYw9WIA1PptYHItCnlyGS7WB7cYHilkj4coWGr3xGaQ2qAjqX/QIbVE7QGA==} + '@textlint/linter-formatter@14.7.2': + resolution: {integrity: sha512-QZOqft5uK+o/UN8UcEF3cHgfbG1r3+OWqlJojyjGNkEBbBNPSyDfYlVxDjHqnOAwm7jBaeqVGlwvw/7PUFmsmw==} - '@textlint/module-interop@14.7.1': - resolution: {integrity: sha512-9mfLErTFx8N+tZNTL+46YCY/jnCDOJKpceng5WVwDeZeMJbewhjY3PVcxMoPnvPT10QnE/hDk3b6riUYckgHgw==} + '@textlint/module-interop@14.7.2': + resolution: {integrity: sha512-rDQhFERa2+xMqhyrPFvAL9d5Tb4RpQGKQExwrezvtCTREh6Zsp/nKxtK0r6o0P9xn1+zq2sZHW9NZjpe7av3xw==} - '@textlint/resolver@14.7.1': - resolution: {integrity: sha512-lQ5ATfpsOgiYnwe2aoS0t9uJ4SrvyiCJpfJdqUQZCVL161O/yMKZBc6nwsyBlruEcFoNxK06F3s3IIV4EsI12A==} + '@textlint/resolver@14.7.2': + resolution: {integrity: sha512-FCZa9XJx5KihK/4gxXLhS/KfOnBD6vD5UxAMtgrvbifn+JFrW9Kh17uZLCcuJDDJJCnZOHq8jdT7AU+rpmJZ+w==} - '@textlint/types@14.7.1': - resolution: {integrity: sha512-j10OEEHRAaqGMC6dK3+H1Eg3bksASGTmGDozsSepYs7qInY+lYBCe5m3JTrKkDnAX4nNy8ninnKzrYKcVkWahw==} + '@textlint/types@14.7.2': + resolution: {integrity: sha512-VpsmtJf9+7cnIxmKtAVVGVzI6f2k09kBZnzjdTAO8JZ+HTmV46jeoVrotpSfQbWDpuQk2UFPfrsZL/LNf/99ew==} '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -493,9 +484,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} @@ -508,8 +496,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@22.15.18': - resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==} + '@types/node@22.15.29': + resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -523,144 +511,154 @@ packages: '@types/vscode@1.100.0': resolution: {integrity: sha512-4uNyvzHoraXEeCamR3+fzcBlh7Afs4Ifjs4epINyUX/jvdk0uzLnwiDY35UKDKnkCHP5Nu3dljl2H8lR6s+rQw==} - '@typescript-eslint/eslint-plugin@8.32.1': - resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} + '@typescript-eslint/eslint-plugin@8.33.0': + resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.33.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.32.1': - resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} + '@typescript-eslint/parser@8.33.0': + resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.32.1': - resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} + '@typescript-eslint/project-service@8.33.0': + resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.32.1': - resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} + '@typescript-eslint/scope-manager@8.33.0': + resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.0': + resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.33.0': + resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.32.1': - resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} + '@typescript-eslint/types@8.33.0': + resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.32.1': - resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} + '@typescript-eslint/typescript-estree@8.33.0': + resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.1': - resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} + '@typescript-eslint/utils@8.33.0': + resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.32.1': - resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} + '@typescript-eslint/visitor-keys@8.33.0': + resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.2.2': resolution: {integrity: sha512-Gz/Sm64+Sq/vklJu1tt9t+4R2lvnud8NbTD/ZfpZtMiUX7YeVpCA8j6NSW8ptwcoLL+NmYANwqP8DV0q/bwl2w==} engines: {node: '>=18.0.0'} - '@unrs/resolver-binding-darwin-arm64@1.7.2': - resolution: {integrity: sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==} + '@unrs/resolver-binding-darwin-arm64@1.7.8': + resolution: {integrity: sha512-rsRK8T7yxraNRDmpFLZCWqpea6OlXPNRRCjWMx24O1V86KFol7u2gj9zJCv6zB1oJjtnzWceuqdnCgOipFcJPA==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.2': - resolution: {integrity: sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==} + '@unrs/resolver-binding-darwin-x64@1.7.8': + resolution: {integrity: sha512-16yEMWa+Olqkk8Kl6Bu0ltT5OgEedkSAsxcz1B3yEctrDYp3EMBu/5PPAGhWVGnwhtf3hNe3y15gfYBAjOv5tQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.2': - resolution: {integrity: sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==} + '@unrs/resolver-binding-freebsd-x64@1.7.8': + resolution: {integrity: sha512-ST4uqF6FmdZQgv+Q73FU1uHzppeT4mhX3IIEmHlLObrv5Ep50olWRz0iQ4PWovadjHMTAmpuJAGaAuCZYb7UAQ==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': - resolution: {integrity: sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.8': + resolution: {integrity: sha512-Z/A/4Rm2VWku2g25C3tVb986fY6unx5jaaCFpx1pbAj0OKkyuJ5wcQLHvNbIcJ9qhiYwXfrkB7JNlxrAbg7YFg==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': - resolution: {integrity: sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.8': + resolution: {integrity: sha512-HN0p7o38qKmDo3bZUiQa6gP7Qhf0sKgJZtRfSHi6JL2Gi4NaUVF0EO1sQ1RHbeQ4VvfjUGMh3QE5dxEh06BgQQ==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': - resolution: {integrity: sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==} + '@unrs/resolver-binding-linux-arm64-gnu@1.7.8': + resolution: {integrity: sha512-HsoVqDBt9G69AN0KWeDNJW+7i8KFlwxrbbnJffgTGpiZd6Jw+Q95sqkXp8y458KhKduKLmXfVZGnKBTNxAgPjw==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.2': - resolution: {integrity: sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==} + '@unrs/resolver-binding-linux-arm64-musl@1.7.8': + resolution: {integrity: sha512-VfR2yTDUbUvn+e/Aw22CC9fQg9zdShHAfwWctNBdOk7w9CHWl2OtYlcMvjzMAns8QxoHQoqn3/CEnZ4Ts7hfrA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': - resolution: {integrity: sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.8': + resolution: {integrity: sha512-xUauVQNz4uDgs4UJJiUAwMe3N0PA0wvtImh7V0IFu++UKZJhssXbKHBRR4ecUJpUHCX2bc4Wc8sGsB6P+7BANg==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': - resolution: {integrity: sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.8': + resolution: {integrity: sha512-GqyIB+CuSHGhhc8ph5RrurtNetYJjb6SctSHafqmdGcRuGi6uyTMR8l18hMEhZFsXdFMc/MpInPLvmNV22xn+A==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': - resolution: {integrity: sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==} + '@unrs/resolver-binding-linux-riscv64-musl@1.7.8': + resolution: {integrity: sha512-eEU3rWIFRv60xaAbtsgwHNWRZGD7cqkpCvNtio/f1TjEE3HfKLzPNB24fA9X/8ZXQrGldE65b7UKK3PmO4eWIQ==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': - resolution: {integrity: sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==} + '@unrs/resolver-binding-linux-s390x-gnu@1.7.8': + resolution: {integrity: sha512-GVLI0f4I4TlLqEUoOFvTWedLsJEdvsD0+sxhdvQ5s+N+m2DSynTs8h9jxR0qQbKlpHWpc2Ortz3z48NHRT4l+w==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.2': - resolution: {integrity: sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==} + '@unrs/resolver-binding-linux-x64-gnu@1.7.8': + resolution: {integrity: sha512-GX1pZ/4ncUreB0Rlp1l7bhKAZ8ZmvDIgXdeb5V2iK0eRRF332+6gRfR/r5LK88xfbtOpsmRHU6mQ4N8ZnwvGEA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.2': - resolution: {integrity: sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==} + '@unrs/resolver-binding-linux-x64-musl@1.7.8': + resolution: {integrity: sha512-n1N84MnsvDupzVuYqJGj+2pb9s8BI1A5RgXHvtVFHedGZVBCFjDpQVRlmsFMt6xZiKwDPaqsM16O/1isCUGt7w==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.2': - resolution: {integrity: sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==} + '@unrs/resolver-binding-wasm32-wasi@1.7.8': + resolution: {integrity: sha512-x94WnaU5g+pCPDVedfnXzoG6lCOF2xFGebNwhtbJCWfceE94Zj8aysSxdxotlrZrxnz5D3ijtyFUYtpz04n39Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': - resolution: {integrity: sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==} + '@unrs/resolver-binding-win32-arm64-msvc@1.7.8': + resolution: {integrity: sha512-vst2u8EJZ5L6jhJ6iLis3w9rg16aYqRxQuBAMYQRVrPMI43693hLP7DuqyOBRKgsQXy9/jgh204k0ViHkqQgdg==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': - resolution: {integrity: sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==} + '@unrs/resolver-binding-win32-ia32-msvc@1.7.8': + resolution: {integrity: sha512-yb3LZOLMFqnA+/ShlE1E5bpYPGDsA590VHHJPB+efnyowT776GJXBoh82em6O9WmYBUq57YblGTcMYAFBm72HA==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.2': - resolution: {integrity: sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==} + '@unrs/resolver-binding-win32-x64-msvc@1.7.8': + resolution: {integrity: sha512-hHKFx+opG5BA3/owMXon8ypwSotBGTdblG6oda/iOu9+OEYnk0cxD2uIcGyGT8jCK578kV+xMrNxqbn8Zjlpgw==} cpu: [x64] os: [win32] - '@vitest/eslint-plugin@1.2.0': - resolution: {integrity: sha512-6vn3QDy+ysqHGkbH9fU9uyWptqNc638dgPy0uAlh/XpniTBp+0WeVlXGW74zqggex/CwYOhK8t5GVo/FH3NMPw==} + '@vitest/eslint-plugin@1.2.1': + resolution: {integrity: sha512-JQr1jdVcrsoS7Sdzn83h9sq4DvREf9Q/onTZbJCqTVlv/76qb+TZrLv/9VhjnjSMHweQH5FdpMDeCR6aDe2fgw==} peerDependencies: eslint: '>= 8.57.0' typescript: '>= 5.0.0' @@ -724,20 +722,20 @@ packages: engines: {node: '>= 20'} hasBin: true - '@vue/compiler-core@3.5.14': - resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} + '@vue/compiler-core@3.5.16': + resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} - '@vue/compiler-dom@3.5.14': - resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} + '@vue/compiler-dom@3.5.16': + resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} - '@vue/compiler-sfc@3.5.14': - resolution: {integrity: sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==} + '@vue/compiler-sfc@3.5.16': + resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} - '@vue/compiler-ssr@3.5.14': - resolution: {integrity: sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==} + '@vue/compiler-ssr@3.5.16': + resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} - '@vue/shared@3.5.14': - resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} + '@vue/shared@3.5.16': + resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -801,8 +799,8 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - ast-kit@2.0.0: - resolution: {integrity: sha512-P63jzlYNz96MF9mCcprU+a7I5/ZQ5QAn3y+mZcPWEcGV3CHF/GWnkFPj3oCrWLUjL47+PD9PNiCUdXxw0cWdsg==} + ast-kit@2.1.0: + resolution: {integrity: sha512-ROM2LlXbZBZVk97crfw8PGDOBzzsJvN2uJCmwswvPUNyfH14eg90mSN3xNqsri1JS1G9cz0VzeDUhxJkTrr4Ew==} engines: {node: '>=20.18.0'} astral-regex@2.0.0: @@ -847,8 +845,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.5: - resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -885,8 +883,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001718: - resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + caniuse-lite@1.0.30001720: + resolution: {integrity: sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -985,14 +983,6 @@ packages: engines: {node: '>=4'} hasBin: true - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -1082,8 +1072,8 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - electron-to-chromium@1.5.155: - resolution: {integrity: sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==} + electron-to-chromium@1.5.161: + resolution: {integrity: sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1165,16 +1155,22 @@ packages: peerDependencies: eslint: ^9.5.0 - eslint-flat-config-utils@2.0.1: - resolution: {integrity: sha512-brf0eAgQ6JlKj3bKfOTuuI7VcCZvi8ZCD1MMTVoEvS/d38j8cByZViLFALH/36+eqB17ukmfmKq3bWzGvizejA==} + eslint-flat-config-utils@2.1.0: + resolution: {integrity: sha512-6fjOJ9tS0k28ketkUcQ+kKptB4dBZY2VijMZ9rGn8Cwnn1SH0cZBoPXT8AHBFHxmHcLFQK9zbELDinZ2Mr1rng==} eslint-formatting-reporter@0.0.0: resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} peerDependencies: eslint: '>=8.40.0' - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-context@0.1.6: + resolution: {integrity: sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true eslint-json-compat-utils@0.2.1: resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} @@ -1211,11 +1207,18 @@ packages: peerDependencies: eslint: ^8.40.0 || ^9.0.0 - eslint-plugin-import-x@4.11.1: - resolution: {integrity: sha512-CiqREASJRnhwCB0NujkTdo4jU+cJAnhQrd4aCnWC1o+rYWIWakVbyuzVbnCriUUSLAnn5CoJ2ob36TEgNzejBQ==} + eslint-plugin-import-x@4.15.0: + resolution: {integrity: sha512-oqCESQlM8r0iRioPHmDqrblH69u11NuglErCnMIY2FcY0UfCCs7qlEuiuqkYKT0puJSQq+fXpDD0MvMTQsAhoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + '@typescript-eslint/utils': ^8.0.0 eslint: ^8.57.0 || ^9.0.0 + eslint-import-resolver-node: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: + optional: true eslint-plugin-jsdoc@50.6.17: resolution: {integrity: sha512-hq+VQylhd12l8qjexyriDsejZhqiP33WgMTy2AmaGZ9+MrMWVqPECsM87GPxgHfQn0zw+YTuhqjUfk1f+q67aQ==} @@ -1223,8 +1226,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-jsonc@2.20.0: - resolution: {integrity: sha512-FRgCn9Hzk5eKboCbVMrr9QrhM0eO4G+WKH8IFXoaeqhM/2kuWzbStJn4kkr0VWL8J5H8RYZF+Aoam1vlBaZVkw==} + eslint-plugin-jsonc@2.20.1: + resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' @@ -1304,8 +1307,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + eslint@9.28.0: + resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1381,8 +1384,8 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + fdir@6.4.5: + resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -1442,9 +1445,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} @@ -1472,8 +1472,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.1.0: - resolution: {integrity: sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} globby@14.1.0: @@ -1543,8 +1543,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.4: - resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} import-fresh@3.3.1: @@ -1580,10 +1580,6 @@ packages: resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} engines: {node: '>=18.20'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1621,8 +1617,8 @@ packages: resolution: {integrity: sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==} engines: {node: '>=10'} - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} jiti@2.4.2: @@ -2083,9 +2079,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} @@ -2131,8 +2124,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} engines: {node: ^10 || ^12 || >=14} prebuild-install@7.1.3: @@ -2237,11 +2230,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2283,8 +2271,8 @@ packages: resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} engines: {node: ^14.0.0 || >=16.0.0} - secretlint@9.3.2: - resolution: {integrity: sha512-IuFrtWMGeVFSWpuhn1T6JC0mgfwD9rbFNZG1aWtpkBKOUCbcKZ+RoJcJjdJ0DXv8oa9vRg/+DZUl6Q6omZdPQQ==} + secretlint@9.3.3: + resolution: {integrity: sha512-JTIsI8BEon8Oo6P7YvGq3I3qCZuYgCvekU8qr4OYyvo6N/wHGg4JMruT5MVkxh3q0diX11xsqaptmeTP5/wNxQ==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true @@ -2413,28 +2401,24 @@ packages: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.10.3: - resolution: {integrity: sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==} + synckit@0.11.8: + resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + synckit@0.9.3: + resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} engines: {node: ^14.18.0 || >=16.0.0} table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -2454,10 +2438,6 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - tinyglobby@0.2.13: - resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} @@ -2576,8 +2556,8 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unrs-resolver@1.7.2: - resolution: {integrity: sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==} + unrs-resolver@1.7.8: + resolution: {integrity: sha512-2zsXwyOXmCX9nGz4vhtZRYhe30V78heAv+KDc21A/KMdovGHbZcixeD5JHEF0DrFXzdytwuzYclcPbvp8A3Jlw==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -2746,8 +2726,8 @@ snapshots: '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.12.0 '@azure/logger': 1.2.0 - '@azure/msal-browser': 4.12.0 - '@azure/msal-node': 3.5.3 + '@azure/msal-browser': 4.13.0 + '@azure/msal-node': 3.6.0 open: 10.1.2 tslib: 2.8.1 transitivePeerDependencies: @@ -2760,15 +2740,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/msal-browser@4.12.0': + '@azure/msal-browser@4.13.0': dependencies: - '@azure/msal-common': 15.6.0 + '@azure/msal-common': 15.7.0 - '@azure/msal-common@15.6.0': {} + '@azure/msal-common@15.7.0': {} - '@azure/msal-node@3.5.3': + '@azure/msal-node@3.6.0': dependencies: - '@azure/msal-common': 15.6.0 + '@azure/msal-common': 15.7.0 jsonwebtoken: 9.0.2 uuid: 8.3.2 @@ -2790,19 +2770,10 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@babel/parser@7.27.2': - dependencies: - '@babel/types': 7.27.1 - '@babel/parser@7.27.4': dependencies: '@babel/types': 7.27.3 - '@babel/types@7.27.1': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.27.3': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -2841,31 +2812,30 @@ snapshots: tslib: 2.8.1 optional: true - '@es-joy/jsdoccomment@0.50.1': + '@es-joy/jsdoccomment@0.50.2': dependencies: - '@types/eslint': 9.6.1 '@types/estree': 1.0.7 - '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/types': 8.33.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.27.0(jiti@2.4.2))': + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.28.0(jiti@2.4.2))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) ignore: 5.3.2 - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.2.9(eslint@9.27.0(jiti@2.4.2))': + '@eslint/compat@1.2.9(eslint@9.28.0(jiti@2.4.2))': optionalDependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) '@eslint/config-array@0.20.0': dependencies: @@ -2903,7 +2873,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.27.0': {} + '@eslint/js@9.28.0': {} '@eslint/markdown@6.4.0': dependencies: @@ -2968,46 +2938,48 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@luxass/eslint-config@4.18.1(@vue/compiler-sfc@3.5.14)(eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@luxass/eslint-config@4.18.1(@typescript-eslint/utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(@vue/compiler-sfc@3.5.16)(eslint-plugin-format@1.0.1(eslint@9.28.0(jiti@2.4.2)))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.10.1 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.28.0(jiti@2.4.2)) '@eslint/markdown': 6.4.0 - '@stylistic/eslint-plugin': 4.2.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@vitest/eslint-plugin': 1.2.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - eslint-config-flat-gitignore: 2.1.0(eslint@9.27.0(jiti@2.4.2)) - eslint-flat-config-utils: 2.0.1 - eslint-merge-processors: 2.0.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-antfu: 3.1.1(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-import-x: 4.11.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-jsdoc: 50.6.17(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-jsonc: 2.20.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-n: 17.18.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-pnpm: 0.3.1(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-regexp: 2.7.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-toml: 0.12.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-unicorn: 58.0.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-vue: 10.1.0(eslint@9.27.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.27.0(jiti@2.4.2))) - eslint-plugin-yml: 1.18.0(eslint@9.27.0(jiti@2.4.2)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0(jiti@2.4.2)) - globals: 16.1.0 + '@stylistic/eslint-plugin': 4.4.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@vitest/eslint-plugin': 1.2.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + eslint-config-flat-gitignore: 2.1.0(eslint@9.28.0(jiti@2.4.2)) + eslint-flat-config-utils: 2.1.0 + eslint-merge-processors: 2.0.0(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-antfu: 3.1.1(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-import-x: 4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-jsdoc: 50.6.17(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-jsonc: 2.20.1(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-n: 17.18.0(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.13.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-pnpm: 0.3.1(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-regexp: 2.7.0(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-toml: 0.12.0(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-unicorn: 58.0.0(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-vue: 10.1.0(eslint@9.28.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2))) + eslint-plugin-yml: 1.18.0(eslint@9.28.0(jiti@2.4.2)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2)) + globals: 16.2.0 jsonc-eslint-parser: 2.4.0 local-pkg: 1.1.1 parse-gitignore: 2.0.0 toml-eslint-parser: 0.10.0 - vue-eslint-parser: 10.1.3(eslint@9.27.0(jiti@2.4.2)) + vue-eslint-parser: 10.1.3(eslint@9.28.0(jiti@2.4.2)) yaml-eslint-parser: 1.3.0 optionalDependencies: - eslint-plugin-format: 1.0.1(eslint@9.27.0(jiti@2.4.2)) + eslint-plugin-format: 1.0.1(eslint@9.28.0(jiti@2.4.2)) transitivePeerDependencies: - '@eslint/json' + - '@typescript-eslint/utils' - '@vue/compiler-sfc' + - eslint-import-resolver-node - supports-color - typescript - vitest @@ -3094,37 +3066,37 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.10-commit.87188ed': {} - '@secretlint/config-creator@9.3.2': + '@secretlint/config-creator@9.3.3': dependencies: - '@secretlint/types': 9.3.2 + '@secretlint/types': 9.3.3 - '@secretlint/config-loader@9.3.2': + '@secretlint/config-loader@9.3.3': dependencies: - '@secretlint/profiler': 9.3.2 - '@secretlint/resolver': 9.3.2 - '@secretlint/types': 9.3.2 + '@secretlint/profiler': 9.3.3 + '@secretlint/resolver': 9.3.3 + '@secretlint/types': 9.3.3 ajv: 8.17.1 debug: 4.4.1 rc-config-loader: 4.1.3 transitivePeerDependencies: - supports-color - '@secretlint/core@9.3.2': + '@secretlint/core@9.3.3': dependencies: - '@secretlint/profiler': 9.3.2 - '@secretlint/types': 9.3.2 + '@secretlint/profiler': 9.3.3 + '@secretlint/types': 9.3.3 debug: 4.4.1 structured-source: 4.0.0 transitivePeerDependencies: - supports-color - '@secretlint/formatter@9.3.2': + '@secretlint/formatter@9.3.3': dependencies: - '@secretlint/resolver': 9.3.2 - '@secretlint/types': 9.3.2 - '@textlint/linter-formatter': 14.7.1 - '@textlint/module-interop': 14.7.1 - '@textlint/types': 14.7.1 + '@secretlint/resolver': 9.3.3 + '@secretlint/types': 9.3.3 + '@textlint/linter-formatter': 14.7.2 + '@textlint/module-interop': 14.7.2 + '@textlint/types': 14.7.2 chalk: 4.1.2 debug: 4.4.1 pluralize: 8.0.0 @@ -3134,46 +3106,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@secretlint/node@9.3.2': + '@secretlint/node@9.3.3': dependencies: - '@secretlint/config-loader': 9.3.2 - '@secretlint/core': 9.3.2 - '@secretlint/formatter': 9.3.2 - '@secretlint/profiler': 9.3.2 - '@secretlint/source-creator': 9.3.2 - '@secretlint/types': 9.3.2 + '@secretlint/config-loader': 9.3.3 + '@secretlint/core': 9.3.3 + '@secretlint/formatter': 9.3.3 + '@secretlint/profiler': 9.3.3 + '@secretlint/source-creator': 9.3.3 + '@secretlint/types': 9.3.3 debug: 4.4.1 p-map: 4.0.0 transitivePeerDependencies: - supports-color - '@secretlint/profiler@9.3.2': {} + '@secretlint/profiler@9.3.3': {} - '@secretlint/resolver@9.3.2': {} + '@secretlint/resolver@9.3.3': {} - '@secretlint/secretlint-formatter-sarif@9.3.2': + '@secretlint/secretlint-formatter-sarif@9.3.3': dependencies: node-sarif-builder: 2.0.3 - '@secretlint/secretlint-rule-no-dotenv@9.3.2': + '@secretlint/secretlint-rule-no-dotenv@9.3.3': dependencies: - '@secretlint/types': 9.3.2 + '@secretlint/types': 9.3.3 - '@secretlint/secretlint-rule-preset-recommend@9.3.2': {} + '@secretlint/secretlint-rule-preset-recommend@9.3.3': {} - '@secretlint/source-creator@9.3.2': + '@secretlint/source-creator@9.3.3': dependencies: - '@secretlint/types': 9.3.2 + '@secretlint/types': 9.3.3 istextorbinary: 6.0.0 - '@secretlint/types@9.3.2': {} + '@secretlint/types@9.3.3': {} '@sindresorhus/merge-streams@2.3.0': {} - '@stylistic/eslint-plugin@4.2.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@stylistic/eslint-plugin@4.4.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -3182,15 +3154,15 @@ snapshots: - supports-color - typescript - '@textlint/ast-node-types@14.7.1': {} + '@textlint/ast-node-types@14.7.2': {} - '@textlint/linter-formatter@14.7.1': + '@textlint/linter-formatter@14.7.2': dependencies: '@azu/format-text': 1.0.2 '@azu/style-format': 1.0.1 - '@textlint/module-interop': 14.7.1 - '@textlint/resolver': 14.7.1 - '@textlint/types': 14.7.1 + '@textlint/module-interop': 14.7.2 + '@textlint/resolver': 14.7.2 + '@textlint/types': 14.7.2 chalk: 4.1.2 debug: 4.4.1 js-yaml: 3.14.1 @@ -3203,13 +3175,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@textlint/module-interop@14.7.1': {} + '@textlint/module-interop@14.7.2': {} - '@textlint/resolver@14.7.1': {} + '@textlint/resolver@14.7.2': {} - '@textlint/types@14.7.1': + '@textlint/types@14.7.2': dependencies: - '@textlint/ast-node-types': 14.7.1 + '@textlint/ast-node-types': 14.7.2 '@tybys/wasm-util@0.9.0': dependencies: @@ -3220,11 +3192,6 @@ snapshots: dependencies: '@types/ms': 2.1.0 - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.7': {} '@types/json-schema@7.0.15': {} @@ -3235,7 +3202,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@22.15.18': + '@types/node@22.15.29': dependencies: undici-types: 6.21.0 @@ -3247,57 +3214,72 @@ snapshots: '@types/vscode@1.100.0': {} - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/type-utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 + eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 7.0.4 + ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.32.1': + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + - typescript - '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.33.0': dependencies: - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 + + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.32.1': {} + '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -3308,20 +3290,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.1': + '@typescript-eslint/visitor-keys@8.33.0': dependencies: - '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/types': 8.33.0 eslint-visitor-keys: 4.2.0 '@typespec/ts-http-runtime@0.2.2': @@ -3332,63 +3314,63 @@ snapshots: transitivePeerDependencies: - supports-color - '@unrs/resolver-binding-darwin-arm64@1.7.2': + '@unrs/resolver-binding-darwin-arm64@1.7.8': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.2': + '@unrs/resolver-binding-darwin-x64@1.7.8': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.2': + '@unrs/resolver-binding-freebsd-x64@1.7.8': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.8': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.8': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': + '@unrs/resolver-binding-linux-arm64-gnu@1.7.8': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.2': + '@unrs/resolver-binding-linux-arm64-musl@1.7.8': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.8': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.8': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': + '@unrs/resolver-binding-linux-riscv64-musl@1.7.8': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': + '@unrs/resolver-binding-linux-s390x-gnu@1.7.8': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.2': + '@unrs/resolver-binding-linux-x64-gnu@1.7.8': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.2': + '@unrs/resolver-binding-linux-x64-musl@1.7.8': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.2': + '@unrs/resolver-binding-wasm32-wasi@1.7.8': dependencies: '@napi-rs/wasm-runtime': 0.2.10 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': + '@unrs/resolver-binding-win32-arm64-msvc@1.7.8': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': + '@unrs/resolver-binding-win32-ia32-msvc@1.7.8': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.2': + '@unrs/resolver-binding-win32-x64-msvc@1.7.8': optional: true - '@vitest/eslint-plugin@1.2.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@vitest/eslint-plugin@1.2.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -3436,10 +3418,10 @@ snapshots: '@vscode/vsce@3.4.2': dependencies: '@azure/identity': 4.10.0 - '@secretlint/node': 9.3.2 - '@secretlint/secretlint-formatter-sarif': 9.3.2 - '@secretlint/secretlint-rule-no-dotenv': 9.3.2 - '@secretlint/secretlint-rule-preset-recommend': 9.3.2 + '@secretlint/node': 9.3.3 + '@secretlint/secretlint-formatter-sarif': 9.3.3 + '@secretlint/secretlint-rule-no-dotenv': 9.3.3 + '@secretlint/secretlint-rule-preset-recommend': 9.3.3 '@vscode/vsce-sign': 2.0.5 azure-devops-node-api: 12.5.0 chalk: 2.4.2 @@ -3456,7 +3438,7 @@ snapshots: minimatch: 3.1.2 parse-semver: 1.1.1 read: 1.0.7 - secretlint: 9.3.2 + secretlint: 9.3.3 semver: 7.7.2 tmp: 0.2.3 typed-rest-client: 1.8.11 @@ -3469,37 +3451,37 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.14': + '@vue/compiler-core@3.5.16': dependencies: - '@babel/parser': 7.27.2 - '@vue/shared': 3.5.14 + '@babel/parser': 7.27.4 + '@vue/shared': 3.5.16 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.14': + '@vue/compiler-dom@3.5.16': dependencies: - '@vue/compiler-core': 3.5.14 - '@vue/shared': 3.5.14 + '@vue/compiler-core': 3.5.16 + '@vue/shared': 3.5.16 - '@vue/compiler-sfc@3.5.14': + '@vue/compiler-sfc@3.5.16': dependencies: - '@babel/parser': 7.27.2 - '@vue/compiler-core': 3.5.14 - '@vue/compiler-dom': 3.5.14 - '@vue/compiler-ssr': 3.5.14 - '@vue/shared': 3.5.14 + '@babel/parser': 7.27.4 + '@vue/compiler-core': 3.5.16 + '@vue/compiler-dom': 3.5.16 + '@vue/compiler-ssr': 3.5.16 + '@vue/shared': 3.5.16 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.3 + postcss: 8.5.4 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.14': + '@vue/compiler-ssr@3.5.16': dependencies: - '@vue/compiler-dom': 3.5.14 - '@vue/shared': 3.5.14 + '@vue/compiler-dom': 3.5.16 + '@vue/shared': 3.5.16 - '@vue/shared@3.5.14': {} + '@vue/shared@3.5.16': {} acorn-jsx@5.3.2(acorn@8.14.1): dependencies: @@ -3556,7 +3538,7 @@ snapshots: argparse@2.0.1: {} - ast-kit@2.0.0: + ast-kit@2.1.0: dependencies: '@babel/parser': 7.27.4 pathe: 2.0.3 @@ -3603,12 +3585,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.5: + browserslist@4.25.0: dependencies: - caniuse-lite: 1.0.30001718 - electron-to-chromium: 1.5.155 + caniuse-lite: 1.0.30001720 + electron-to-chromium: 1.5.161 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.5) + update-browserslist-db: 1.1.3(browserslist@4.25.0) buffer-crc32@0.2.13: {} @@ -3640,7 +3622,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001718: {} + caniuse-lite@1.0.30001720: {} ccount@2.0.1: {} @@ -3725,7 +3707,7 @@ snapshots: core-js-compat@3.42.0: dependencies: - browserslist: 4.24.5 + browserslist: 4.25.0 cross-spawn@7.0.6: dependencies: @@ -3745,10 +3727,6 @@ snapshots: cssesc@3.0.0: {} - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.4.1: dependencies: ms: 2.1.3 @@ -3823,7 +3801,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - electron-to-chromium@1.5.155: {} + electron-to-chromium@1.5.161: {} emoji-regex@8.0.0: {} @@ -3844,7 +3822,7 @@ snapshots: enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 entities@4.5.0: {} @@ -3877,98 +3855,96 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.27.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) semver: 7.7.2 - eslint-compat-utils@0.6.5(eslint@9.27.0(jiti@2.4.2)): + eslint-compat-utils@0.6.5(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) semver: 7.7.2 - eslint-config-flat-gitignore@2.1.0(eslint@9.27.0(jiti@2.4.2)): + eslint-config-flat-gitignore@2.1.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint/compat': 1.2.9(eslint@9.27.0(jiti@2.4.2)) - eslint: 9.27.0(jiti@2.4.2) + '@eslint/compat': 1.2.9(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) - eslint-flat-config-utils@2.0.1: + eslint-flat-config-utils@2.1.0: dependencies: pathe: 2.0.3 - eslint-formatting-reporter@0.0.0(eslint@9.27.0(jiti@2.4.2)): + eslint-formatting-reporter@0.0.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) prettier-linter-helpers: 1.0.0 - eslint-import-resolver-node@0.3.9: + eslint-import-context@0.1.6(unrs-resolver@1.7.8): dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color + get-tsconfig: 4.10.1 + stable-hash: 0.0.5 + optionalDependencies: + unrs-resolver: 1.7.8 - eslint-json-compat-utils@0.2.1(eslint@9.27.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.28.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-merge-processors@2.0.0(eslint@9.27.0(jiti@2.4.2)): + eslint-merge-processors@2.0.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-parser-plain@0.1.1: {} - eslint-plugin-antfu@3.1.1(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-antfu@3.1.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-es-x@7.8.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.28.0(jiti@2.4.2)) - eslint-plugin-format@1.0.1(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-format@1.0.1(eslint@9.28.0(jiti@2.4.2)): dependencies: '@dprint/formatter': 0.3.0 '@dprint/markdown': 0.17.8 '@dprint/toml': 0.6.4 - eslint: 9.27.0(jiti@2.4.2) - eslint-formatting-reporter: 0.0.0(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-formatting-reporter: 0.0.0(eslint@9.28.0(jiti@2.4.2)) eslint-parser-plain: 0.1.1 prettier: 3.5.3 - synckit: 0.9.2 + synckit: 0.9.3 - eslint-plugin-import-x@4.11.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 comment-parser: 1.4.1 debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.10.0 + eslint: 9.28.0(jiti@2.4.2) + eslint-import-context: 0.1.6(unrs-resolver@1.7.8) is-glob: 4.0.3 minimatch: 10.0.1 semver: 7.7.2 stable-hash: 0.0.5 - tslib: 2.8.1 - unrs-resolver: 1.7.2 + unrs-resolver: 1.7.8 + optionalDependencies: + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - supports-color - - typescript - eslint-plugin-jsdoc@50.6.17(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-jsdoc@50.6.17(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@es-joy/jsdoccomment': 0.50.1 + '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) espree: 10.3.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 @@ -3977,84 +3953,84 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.20.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-jsonc@2.20.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - eslint: 9.27.0(jiti@2.4.2) - eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) - eslint-json-compat-utils: 0.2.1(eslint@9.27.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2)) + eslint-json-compat-utils: 0.2.1(eslint@9.28.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) espree: 10.3.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 - synckit: 0.10.3 + synckit: 0.11.8 transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.18.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-n@17.18.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.27.0(jiti@2.4.2)) - get-tsconfig: 4.10.0 + eslint: 9.28.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.28.0(jiti@2.4.2)) + get-tsconfig: 4.10.1 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.2 - eslint-plugin-perfectionist@4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-perfectionist@4.13.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/utils': 8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@0.3.1(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-pnpm@0.3.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) find-up-simple: 1.0.1 jsonc-eslint-parser: 2.4.0 pathe: 2.0.3 pnpm-workspace-yaml: 0.3.1 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 yaml-eslint-parser: 1.3.0 - eslint-plugin-regexp@2.7.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-regexp@2.7.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-toml@0.12.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-toml@0.12.0(eslint@9.28.0(jiti@2.4.2)): dependencies: debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2)) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@58.0.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-unicorn@58.0.0(eslint@9.28.0(jiti@2.4.2)): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint/plugin-kit': 0.2.8 ci-info: 4.2.0 clean-regexp: 1.0.0 core-js-compat: 3.42.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) esquery: 1.6.0 - globals: 16.1.0 + globals: 16.2.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -4065,38 +4041,38 @@ snapshots: semver: 7.7.2 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-vue@10.1.0(eslint@9.27.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.27.0(jiti@2.4.2))): + eslint-plugin-vue@10.1.0(eslint@9.28.0(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2))): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.2 - vue-eslint-parser: 10.1.3(eslint@9.27.0(jiti@2.4.2)) + vue-eslint-parser: 10.1.3(eslint@9.28.0(jiti@2.4.2)) xml-name-validator: 4.0.0 - eslint-plugin-yml@1.18.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-yml@1.18.0(eslint@9.28.0(jiti@2.4.2)): dependencies: debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint: 9.27.0(jiti@2.4.2) - eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-compat-utils: 0.6.5(eslint@9.28.0(jiti@2.4.2)) natural-compare: 1.4.0 yaml-eslint-parser: 1.3.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0(jiti@2.4.2)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@vue/compiler-sfc': 3.5.14 - eslint: 9.27.0(jiti@2.4.2) + '@vue/compiler-sfc': 3.5.16 + eslint: 9.28.0(jiti@2.4.2) eslint-scope@8.3.0: dependencies: @@ -4107,15 +4083,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.27.0(jiti@2.4.2): + eslint@9.28.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.2 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.27.0 + '@eslint/js': 9.28.0 '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -4212,7 +4188,7 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.4(picomatch@4.0.2): + fdir@6.4.5(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -4281,10 +4257,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-tsconfig@4.10.0: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -4303,7 +4275,7 @@ snapshots: glob@11.0.2: dependencies: foreground-child: 3.3.1 - jackspeak: 4.1.0 + jackspeak: 4.1.1 minimatch: 10.0.1 minipass: 7.1.2 package-json-from-dist: 1.0.1 @@ -4313,13 +4285,13 @@ snapshots: globals@15.15.0: {} - globals@16.1.0: {} + globals@16.2.0: {} globby@14.1.0: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.3 - ignore: 7.0.4 + ignore: 7.0.5 path-type: 6.0.0 slash: 5.1.0 unicorn-magic: 0.3.0 @@ -4384,7 +4356,7 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.4: {} + ignore@7.0.5: {} import-fresh@3.3.1: dependencies: @@ -4411,10 +4383,6 @@ snapshots: dependencies: builtin-modules: 5.0.0 - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -4442,7 +4410,7 @@ snapshots: binaryextensions: 4.19.0 textextensions: 5.16.0 - jackspeak@4.1.0: + jackspeak@4.1.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -5082,8 +5050,6 @@ snapshots: path-key@3.1.1: {} - path-parse@1.0.7: {} - path-scurry@2.0.0: dependencies: lru-cache: 11.1.0 @@ -5126,7 +5092,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.3: + postcss@8.5.4: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -5144,7 +5110,7 @@ snapshots: pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.2 + tar-fs: 2.1.3 tunnel-agent: 0.6.0 optional: true @@ -5251,12 +5217,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - reusify@1.1.0: {} rolldown-plugin-dts@0.13.6(rolldown@1.0.0-beta.10-commit.87188ed)(typescript@5.8.3): @@ -5264,7 +5224,7 @@ snapshots: '@babel/generator': 7.27.3 '@babel/parser': 7.27.4 '@babel/types': 7.27.3 - ast-kit: 2.0.0 + ast-kit: 2.1.0 birpc: 2.3.0 debug: 4.4.1 dts-resolver: 2.0.1 @@ -5314,12 +5274,12 @@ snapshots: refa: 0.12.1 regexp-ast-analysis: 0.7.1 - secretlint@9.3.2: + secretlint@9.3.3: dependencies: - '@secretlint/config-creator': 9.3.2 - '@secretlint/formatter': 9.3.2 - '@secretlint/node': 9.3.2 - '@secretlint/profiler': 9.3.2 + '@secretlint/config-creator': 9.3.3 + '@secretlint/formatter': 9.3.3 + '@secretlint/node': 9.3.3 + '@secretlint/profiler': 9.3.3 debug: 4.4.1 globby: 14.1.0 read-pkg: 8.1.0 @@ -5462,14 +5422,11 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 - supports-preserve-symlinks-flag@1.0.0: {} - - synckit@0.10.3: + synckit@0.11.8: dependencies: '@pkgr/core': 0.2.4 - tslib: 2.8.1 - synckit@0.9.2: + synckit@0.9.3: dependencies: '@pkgr/core': 0.1.2 tslib: 2.8.1 @@ -5482,9 +5439,9 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tapable@2.2.1: {} + tapable@2.2.2: {} - tar-fs@2.1.2: + tar-fs@2.1.3: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -5512,14 +5469,9 @@ snapshots: tinyexec@1.0.1: {} - tinyglobby@0.2.13: - dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.14: dependencies: - fdir: 6.4.4(picomatch@4.0.2) + fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 tmp@0.2.3: {} @@ -5627,31 +5579,31 @@ snapshots: universalify@2.0.1: {} - unrs-resolver@1.7.2: + unrs-resolver@1.7.8: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.2 - '@unrs/resolver-binding-darwin-x64': 1.7.2 - '@unrs/resolver-binding-freebsd-x64': 1.7.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.2 - '@unrs/resolver-binding-linux-x64-musl': 1.7.2 - '@unrs/resolver-binding-wasm32-wasi': 1.7.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.2 - - update-browserslist-db@1.1.3(browserslist@4.24.5): - dependencies: - browserslist: 4.24.5 + '@unrs/resolver-binding-darwin-arm64': 1.7.8 + '@unrs/resolver-binding-darwin-x64': 1.7.8 + '@unrs/resolver-binding-freebsd-x64': 1.7.8 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.8 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.8 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.8 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.8 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.8 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.8 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.8 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.8 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.8 + '@unrs/resolver-binding-linux-x64-musl': 1.7.8 + '@unrs/resolver-binding-wasm32-wasi': 1.7.8 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.8 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.8 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.8 + + update-browserslist-db@1.1.3(browserslist@4.25.0): + dependencies: + browserslist: 4.25.0 escalade: 3.2.0 picocolors: 1.1.1 @@ -5674,10 +5626,10 @@ snapshots: dependencies: cac: 6.7.14 - vue-eslint-parser@10.1.3(eslint@9.27.0(jiti@2.4.2)): + vue-eslint-parser@10.1.3(eslint@9.28.0(jiti@2.4.2)): dependencies: debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 diff --git a/src/extension.ts b/src/extension.ts index 2838614..40cb896 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,29 +1,50 @@ -import { defineExtension, ref, useCommands, useLogger, useTreeView } from "reactive-vscode"; -import { config } from "./config"; +import type { TreeViewNode } from "reactive-vscode"; +import type { UCDTreeItem } from "./views/ucd-explorer"; +import { defineExtension, executeCommand, useCommand } from "reactive-vscode"; +import { Uri } from "vscode"; import * as Meta from "./generated/meta"; -import { getFilesByVersion, getTreeViewNodes } from "./views/ucd-explorer"; +import { getFilesByVersion } from "./lib/files"; +import { logger } from "./logger"; +import { useUCDExplorer } from "./views/ucd-explorer"; const { activate, deactivate } = defineExtension(async () => { - const _treeView = useTreeView("ucd:explorer", ref(await getTreeViewNodes(config)), { - showCollapseAll: true, + useCommand(Meta.commands.browseUcdFiles, async () => { + logger.info("Browsing UCD files..."); + const view = await getFilesByVersion("16.0.0"); + logger.info(`Fetched files for version 16.0.0: ${JSON.stringify(view, null, 2)}`); }); - const logger = useLogger("ucd-logger"); - - useCommands({ - [Meta.commands.browseUcdFiles]: async () => { - logger.info("Browsing UCD files..."); - const view = await getFilesByVersion(config, "16.0.0"); - logger.info(`Fetched files for version 16.0.0: ${JSON.stringify(view, null, 2)}`); - }, - [Meta.commands.visualizeFile]: () => { - logger.info("Visualizing UCD file..."); - }, - [Meta.commands.refreshExplorer]: async () => { - logger.info("Refreshing UCD Explorer..."); - logger.info("UCD Explorer refreshed."); - }, + useCommand(Meta.commands.visualizeFile, () => { + logger.info("Visualizing UCD file..."); }); + + useCommand(Meta.commands.refreshExplorer, async () => { + logger.info("Refreshing UCD Explorer..."); + logger.info("UCD Explorer refreshed."); + }); + + useCommand(Meta.commands.openExplorerEntry, async (entry: TreeViewNode) => { + logger.info(`Opening UCD Explorer entry: ${JSON.stringify(entry, null, 2)}`); + if (!entry.treeItem || !(entry.treeItem as UCDTreeItem).__ucd) { + logger.error("invalid entry provided to openExplorerEntry command."); + return; + } + + const ucdItem = (entry.treeItem as UCDTreeItem).__ucd; + if (!ucdItem) { + logger.error("UCD item is undefined or null."); + return; + } + + if (!ucdItem?.ucdUrl) { + logger.error("UCD item does not have a valid URL."); + return; + } + + executeCommand("vscode.open", Uri.parse(ucdItem.ucdUrl)); + }); + + useUCDExplorer(); }); export { activate, deactivate }; diff --git a/src/lib/files.ts b/src/lib/files.ts new file mode 100644 index 0000000..a62cb79 --- /dev/null +++ b/src/lib/files.ts @@ -0,0 +1,40 @@ +import type { TreeViewNode } from "reactive-vscode"; +import { ThemeIcon, TreeItemCollapsibleState } from "vscode"; +import { config } from "../config"; +import { logger } from "../logger"; + +export async function getFilesByVersion(version: string): Promise { + try { + const res = await fetch(new URL(`/api/v1/unicode-files/${version}`, config["data-files-api"])); + + if (!res.ok) { + throw new Error(`Failed to fetch files for version ${version}: ${res.statusText}`); + } + + interface Entry { + name: string; + children?: Entry[]; + } + + const data = (await res.json()) as Entry[]; + + return data.map((entry) => { + return { + treeItem: { + iconPath: entry.children?.length ? new ThemeIcon("folder") : new ThemeIcon("file"), + label: entry.name, + collapsibleState: entry.children?.length ? TreeItemCollapsibleState.Collapsed : TreeItemCollapsibleState.None, + contextValue: entry.children?.length ? "ucd:explorer-folder" : "ucd:explorer-file", + }, + children: entry.children?.map((child) => ({ + treeItem: { + label: child.name, + }, + })) ?? [], + }; + }); + } catch (err) { + logger.error(`Error fetching files for version ${version}:`, err); + return []; + } +} diff --git a/src/logger.ts b/src/logger.ts new file mode 100644 index 0000000..5bd9a24 --- /dev/null +++ b/src/logger.ts @@ -0,0 +1,3 @@ +import { useLogger } from "reactive-vscode"; + +export const logger = useLogger("UCD"); diff --git a/src/views/ucd-explorer.ts b/src/views/ucd-explorer.ts index d052ba7..46021ef 100644 --- a/src/views/ucd-explorer.ts +++ b/src/views/ucd-explorer.ts @@ -1,61 +1,90 @@ import type { TreeViewNode } from "reactive-vscode"; -import type { Config } from "../config"; +import type { TreeItem } from "vscode"; import { UNICODE_VERSION_METADATA } from "@luxass/unicode-utils"; -import { useLogger } from "reactive-vscode"; +import { computed, createSingletonComposable, ref, useTreeView } from "reactive-vscode"; +import { ThemeIcon, TreeItemCollapsibleState } from "vscode"; +import { getFilesByVersion } from "../lib/files"; +import { logger } from "../logger"; -export async function getTreeViewNodes(config: Config): Promise { - const entries = await Promise.all(UNICODE_VERSION_METADATA.map(async ({ version }) => getFilesByVersion(config, version))); - - return entries.flat(); +export interface UCDTreeItem extends TreeItem { + __ucd?: typeof UNICODE_VERSION_METADATA[number]; } -export async function getFilesByVersion(config: Config, version: string): Promise { - const logger = useLogger("ucd-logger"); - try { - const res = await fetch(new URL(`/api/v1/unicode-files/${version}`, config["data-files-api"])); +export const useUCDExplorer = createSingletonComposable(() => { + const childrenCache = ref>(new Map()); + const loadingPromises = ref>>(new Map()); - if (!res.ok) { - throw new Error(`Failed to fetch files for version ${version}: ${res.statusText}`); + async function loadChildrenForVersion(version: string): Promise { + const cached = childrenCache.value.get(version); + if (cached) { + return cached; } - interface Entry { - name: string; - children?: Entry[]; + // return existing promise if already loading (prevents duplicate requests) + const existingPromise = loadingPromises.value.get(version); + if (existingPromise) { + return existingPromise; } - const data = (await res.json()) as Entry[]; - - return { - treeItem: { - label: version, - collapsibleState: 1, - contextValue: "ucd:version-folder", - }, - children: data.map((entry) => { - return { - treeItem: { - iconPath: entry.children?.length ? "$(folder)" : "$(file)", - label: entry.name, - collapsibleState: entry.children?.length ? 2 : 0, - contextValue: entry.children?.length ? "ucd:version-folder" : "ucd:version-file", - }, - children: entry.children?.map((child) => ({ - treeItem: { - label: child.name, - }, - })) ?? [], - }; - }), - }; - } catch (err) { - logger.error(`Error fetching files for version ${version}:`, err); - return { - treeItem: { - label: `Error loading files for version ${version}`, - collapsibleState: 0, - contextValue: "ucd:error", - }, - children: [], - }; + // create new loading promise + const loadingPromise = (async () => { + try { + const files = await getFilesByVersion(version); + childrenCache.value.set(version, files); + return files; + } catch (error) { + logger.error(`Failed to load files for version ${version}:`, error); + return []; + } finally { + // clean up loading promise regardless of success/failure + loadingPromises.value.delete(version); + } + })(); + + // store the promise to prevent duplicate requests + loadingPromises.value.set(version, loadingPromise); + return loadingPromise; } -} + + const nodes = computed(() => + UNICODE_VERSION_METADATA.map((metadata) => { + const version = metadata.version; + return { + treeItem: { + iconPath: new ThemeIcon("folder"), + label: metadata.version + (metadata.status === "draft" ? " (Draft)" : ""), + description: metadata.date ? `Released in ${metadata.date}` : "", + tooltip: `Documentation: ${metadata.documentationUrl}\nUCD URL: ${metadata.ucdUrl}`, + collapsibleState: TreeItemCollapsibleState.Collapsed, + contextValue: "ucd:version-folder", + __ucd: metadata, + } as UCDTreeItem, + children: childrenCache.value.get(version) || [], + }; + }), + ); + + const view = useTreeView("ucd:explorer", nodes, { + showCollapseAll: true, + }); + + view.onDidExpandElement(async (event) => { + try { + const { element } = event; + const treeItem = typeof element.treeItem === "object" && "then" in element.treeItem + ? await element.treeItem + : element.treeItem; + + if (treeItem.contextValue === "ucd:version-folder") { + const version = (treeItem as UCDTreeItem).__ucd?.version; + if (version) { + await loadChildrenForVersion(version); + } + } + } catch (err) { + logger.error("An error occurred while expanding entry in UCD Explorer", err); + } + }); + + return view; +});