[AI] Fix type errors for API consumers by shipping .d.ts declarations (#7468)

* [AI] Fix type errors for API consumers by shipping .d.ts declarations from loot-core

Downstream consumers of @actual-app/api with strict: true get type errors
because @actual-app/core exports raw .ts source files. Consumers' tsc
follows the import chain into core's source (compiled with strict: false),
and skipLibCheck doesn't help since it only skips .d.ts files.

Add "types" conditions to all imports/exports entries in loot-core's
package.json, pointing to the pre-built declarations in lib-dist/decl/.
Add .npmignore to include lib-dist/decl/ in the published package.

Fixes #7410

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Use prepack/postpack scripts instead of inflating package.json

Replace the inline "types" conditions in imports/exports with a prepack
script that adds them at pack/publish time. This keeps the checked-in
package.json clean while still shipping .d.ts declarations to npm
consumers.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Convert prepack/postpack scripts to TypeScript

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Add release notes for #7468

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Fix recursive ExportValue type and remove redundant comment

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Rename scripts to .mts and inline types conditions

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Make backup/restore scripts safer

- Check if backup exists before creating it in prepack
- Make restore idempotent by checking if backup exists in postpack
- Prevents overwriting existing backups from interrupted runs
- Addresses CodeRabbit review feedback

Co-authored-by: Matiss Janis Aboltins <[email protected]>

* [AI] Type api-handlers.ts fields to drop implicit any

The `fields` / export-args slots in the ApiHandlers contract were
untyped, surfacing as TS7008 errors in strict consumers. Replace them
with the `Partial<APIXxxEntity>` shapes the `@actual-app/api` wrappers
already pass, and annotate the matching call sites in `api.ts` with
`@ts-expect-error` where the legacy helpers still declare full-entity
parameters despite accepting partial updates at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Replace vite-plugin-dts with tsgo for api types

Drops vite-plugin-dts in favor of running tsgo --emitDeclarationOnly
after the vite bundle, eliminating a heavy dev dependency tree
(api-extractor, volar, vue language-core) from the api package build.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Add build script to loot-core to emit declarations via lage

`yarn build:cli` failed in CI with TS6305 because api's
`tsgo --emitDeclarationOnly` depends on loot-core's pre-built
`lib-dist/decl/*.d.ts`, but loot-core had no `build` script, so lage's
`^build` cascade silently skipped it. Add `"build": "tsgo -b"` so loot-core
slots into the dependency chain; its tsconfig already has
`emitDeclarationOnly: true`, so the output is declarations only.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* Simplify API build

* [AI] Document TypeScript moduleResolution requirement for @actual-app/api

The published declarations rely on package.json exports conditions, which
classic node / node10 resolvers don't honor. Document the supported modes
(bundler / nodenext / node16) in the package README and in the Getting
Started section of the API docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Type-guard default value in add-types-conditions prepack

`value.default` is typed `ExportValue | undefined`, which allows nested
conditional objects. The previous truthy check fell through to
`shouldSkip(defaultValue)` and would crash on `.endsWith()` if that shape
ever appeared. Replace with a `typeof === 'string'` narrowing and drop a
now-redundant "Insert types as the first key" comment.

No runtime change on current package.json — no nested `default` values
exist today — but the script is not covered by loot-core's tsconfig
include, so the latent type issue was silent.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Allow "nodenext" in docs spellcheck expect list

Referenced in the new TypeScript moduleResolution note in the API docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Move loot-core declarations to @types and whitelist publish with files

Relocate loot-core's composite TypeScript output from lib-dist/decl to the
top-level @types directory, matching the api package's convention. Replace
the old .npmignore blacklist with an explicit package.json files whitelist.

- tsconfig.json: outDir @types, exclude test/mock dirs from decl emission
- scripts/add-types-conditions.mts: rewrite paths to ./@types/src/...
- package.json: files whitelist shipping only src, @types, migrations,
  typings, default-db.sqlite; drop legacy typesVersions (docs now require
  moduleResolution bundler/nodenext/node16, so the classic-resolution
  fallback is unused)
- .gitignore: ignore the new @types build artifact
- lage.config.js: factor outputGlob into a shared BUILD_OUTPUT_GLOBS
  constant and add @types/** so lage caches loot-core's decl output
- root tsconfig.json: tighten exclude from packages/api/@types to
  packages/*/@types to cover both api and loot-core
- delete .npmignore entirely

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* [AI] Build loot-core declarations inside prepack

yarn workspace @actual-app/core pack is the first non-setup step in the
publish workflow, running before any build. Without a build chained into
prepack the @types/ tree is empty at pack time, so the tarball shipped a
transformed package.json pointing at ./@types/src/... paths that didn't
exist. npm publish doesn't re-run hooks on a pre-packed tarball, so the
frozen snapshot must be self-contained; prepack now runs yarn build first
to populate @types/ before add-types-conditions rewrites the exports.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Co-authored-by: Cursor Agent <[email protected]>
Co-authored-by: Matiss Janis Aboltins <[email protected]>
This commit is contained in:
Matiss Janis Aboltins
2026-04-14 07:40:17 +00:00
committed by GitHub
co-authored by Claude Opus 4.6 Cursor Agent Matiss Janis Aboltins
parent 69cd4fc13a
commit c4f3fb0b93
19 changed files with 206 additions and 447 deletions
+1
View File
@@ -126,6 +126,7 @@ Moldovan
murmurhash
NETWORKDAYS
nginx
nodenext
OIDC
Okabe
overbudgeted
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
with:
download-translations: 'false'
- name: Build API
run: cd packages/api && yarn build
run: yarn build:api
- name: Create package tgz
run: cd packages/api && yarn pack && mv package.tgz actual-api.tgz
- name: Prepare bundle stats artifact
+4 -2
View File
@@ -1,3 +1,5 @@
const BUILD_OUTPUT_GLOBS = ['lib-dist/**', 'dist/**', 'build/**', '@types/**'];
/** @type {import('lage').ConfigOptions} */
module.exports = {
pipeline: {
@@ -20,14 +22,14 @@ module.exports = {
dependsOn: ['^build'],
cache: true,
options: {
outputGlob: ['lib-dist/**', 'dist/**', 'build/**'],
outputGlob: BUILD_OUTPUT_GLOBS,
},
},
},
cacheOptions: {
cacheStorageConfig: {
provider: 'local',
outputGlob: ['lib-dist/**', 'dist/**', 'build/**'],
outputGlob: BUILD_OUTPUT_GLOBS,
},
},
npmClient: 'yarn',
+1 -1
View File
@@ -40,7 +40,7 @@
"build:browser": "./bin/package-browser",
"build:desktop": "./bin/package-electron",
"build:plugins-service": "yarn workspace plugins-service build",
"build:api": "yarn workspace @actual-app/api build",
"build:api": "yarn build --scope=@actual-app/api",
"build:cli": "yarn build --scope=@actual-app/cli",
"build:docs": "yarn workspace docs build",
"build:storybook": "yarn workspace @actual-app/components build:storybook",
+4
View File
@@ -3,3 +3,7 @@ npm install @actual-app/api
```
View docs here: https://actualbudget.org/docs/api/
## TypeScript
`@actual-app/api` publishes TypeScript declarations. Consumers using TypeScript must set `moduleResolution` to `"bundler"`, `"nodenext"`, or `"node16"` in their `tsconfig.json`. Legacy `"node"` / `"node10"` / `"classic"` resolution is not supported in strict mode — the published declarations rely on package.json `exports` conditions that older resolvers don't honor.
+1 -1
View File
@@ -1,5 +1,5 @@
class Query {
/** @type {import('loot-core/shared/query').QueryState} */
/** @type {import('@actual-app/core/shared/query').QueryState} */
state;
constructor(state) {
+1 -2
View File
@@ -25,7 +25,7 @@
}
},
"scripts": {
"build": "vite build",
"build": "vite build && tsgo --emitDeclarationOnly",
"test": "vitest --run",
"typecheck": "tsgo -b && tsc-strict"
},
@@ -41,7 +41,6 @@
"rollup-plugin-visualizer": "^6.0.11",
"typescript-strict-plugin": "^2.4.4",
"vite": "^8.0.5",
"vite-plugin-dts": "^4.5.4",
"vite-plugin-peggy-loader": "^2.0.1",
"vitest": "^4.1.0"
},
-6
View File
@@ -3,7 +3,6 @@ import path from 'path';
import { visualizer } from 'rollup-plugin-visualizer';
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
import peggyLoader from 'vite-plugin-peggy-loader';
const lootCoreRoot = path.resolve(__dirname, '../loot-core');
@@ -75,11 +74,6 @@ export default defineConfig({
plugins: [
cleanOutputDirs(),
peggyLoader(),
dts({
tsconfigPath: path.resolve(__dirname, 'tsconfig.json'),
outDir: path.resolve(__dirname, '@types'),
rollupTypes: true,
}),
copyMigrationsAndDefaultDb(),
visualizer({ template: 'raw-data', filename: 'app/stats.json' }),
],
+14
View File
@@ -28,6 +28,20 @@ npm install --save @actual-app/api
yarn add @actual-app/api
```
### TypeScript
`@actual-app/api` ships TypeScript declarations. To consume them, your `tsconfig.json` must use a modern `moduleResolution`:
```json
{
"compilerOptions": {
"moduleResolution": "bundler" // or "nodenext" / "node16"
}
}
```
Legacy `"node"` / `"node10"` / `"classic"` resolution is not supported in strict TypeScript mode. The published declarations rely on package.json `exports` conditions, which older resolvers don't honor.
### Connecting to a Remote Server
Next, you'll need connect to your running server version of Actual to access your budget files.
+2 -1
View File
@@ -1,2 +1,3 @@
lib-node
lib-dist
lib-dist
@types
+15 -8
View File
@@ -3,13 +3,17 @@
"version": "26.4.0",
"description": "",
"license": "ISC",
"typesVersions": {
"*": {
"types/*": [
"./src/types/*"
]
}
},
"files": [
"src",
"@types",
"migrations",
"typings",
"default-db.sqlite",
"!src/**/*.test.ts",
"!src/**/__tests__/**",
"!src/**/__snapshots__/**",
"!src/**/__mocks__/**"
],
"imports": {
"#platform/server/asyncStorage": {
"electron": "./src/platform/server/asyncStorage/index.electron.ts",
@@ -154,7 +158,10 @@
"test": "npm-run-all -cp 'test:*'",
"test:node": "ENV=node vitest --run",
"test:web": "ENV=web vitest --run -c vitest.web.config.ts",
"typecheck": "tsgo -b && tsc-strict"
"typecheck": "tsgo -b && tsc-strict",
"build": "tsgo -b",
"prepack": "yarn build && ts-node scripts/add-types-conditions.mts",
"postpack": "ts-node scripts/restore-package-json.mts"
},
"dependencies": {
"@jlongster/sql.js": "^1.6.7",
@@ -0,0 +1,93 @@
/**
* Pre-pack script: adds "types" conditions to imports/exports in package.json
* so that npm consumers resolve .d.ts declarations instead of raw .ts source.
*
* This runs via the "prepack" lifecycle hook. The original package.json is
* backed up and restored by restore-package-json.ts (postpack).
*/
import {
constants,
copyFileSync,
existsSync,
readFileSync,
writeFileSync,
} from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const pkgPath = resolve(__dirname, '..', 'package.json');
const backupPath = resolve(__dirname, '..', 'package.json.bak');
type ExportValue = string | Record<string, ExportValue>;
type ExportMap = Record<string, ExportValue>;
function toTypesPath(srcPath: string): string | null {
if (srcPath.startsWith('./src/')) {
return srcPath
.replace(/^\.\/src\//, './@types/src/')
.replace(/\.tsx?$/, '.d.ts');
}
if (srcPath.startsWith('./typings/')) {
return srcPath
.replace(/^\.\/typings\//, './@types/typings/')
.replace(/\.tsx?$/, '.d.ts');
}
return null;
}
function shouldSkip(value: string): boolean {
// Already a .d.ts file or a .js runtime-only entry
return value.endsWith('.d.ts') || value.endsWith('.js');
}
function transformEntry(value: ExportValue): ExportValue {
if (typeof value === 'string') {
if (shouldSkip(value)) return value;
const typesPath = toTypesPath(value);
if (!typesPath) return value;
return { types: typesPath, default: value };
}
// Derive the types path from the "default" condition. Nested conditional
// exports (where `default` is itself an object) are not supported here —
// if that shape ever shows up, leave the entry untouched rather than
// crash on `.endsWith()`.
const defaultValue = value.default;
if (typeof defaultValue !== 'string' || shouldSkip(defaultValue)) {
return value;
}
const typesPath = toTypesPath(defaultValue);
if (!typesPath) return value;
return { types: typesPath, ...value };
}
function transformMap(map: ExportMap): ExportMap {
const result: ExportMap = {};
for (const [key, value] of Object.entries(map)) {
result[key] = transformEntry(value);
}
return result;
}
// Backup and transform
if (existsSync(backupPath)) {
throw new Error(
'prepack: package.json.bak already exists; run postpack cleanup first.',
);
}
copyFileSync(pkgPath, backupPath, constants.COPYFILE_EXCL);
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
if (pkg.imports) {
pkg.imports = transformMap(pkg.imports);
}
if (pkg.exports) {
pkg.exports = transformMap(pkg.exports);
}
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
console.log('prepack: added types conditions to package.json');
@@ -0,0 +1,19 @@
/**
* Post-pack script: restores package.json from the backup created by
* add-types-conditions.ts (prepack).
*/
import { copyFileSync, existsSync, unlinkSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const pkgPath = resolve(__dirname, '..', 'package.json');
const backupPath = resolve(__dirname, '..', 'package.json.bak');
if (existsSync(backupPath)) {
copyFileSync(backupPath, pkgPath);
unlinkSync(backupPath);
console.log('postpack: restored package.json');
} else {
console.log('postpack: no backup found, skipping restore');
}
+5
View File
@@ -550,6 +550,7 @@ handlers['api/transaction-update'] = withMutation(async function ({
return [];
}
// @ts-expect-error - fix me
const { diff } = updateTransaction(transactions, { id, ...fields });
return handlers['transactions-batch-update'](diff)['updated'];
});
@@ -592,6 +593,7 @@ handlers['api/account-create'] = withMutation(async function ({
handlers['api/account-update'] = withMutation(async function ({ id, fields }) {
checkFileOpen();
// @ts-expect-error - fix me
return db.updateAccount({ id, ...accountModel.fromExternal(fields) });
});
@@ -659,6 +661,7 @@ handlers['api/category-group-update'] = withMutation(async function ({
checkFileOpen();
return handlers['category-group-update']({
id,
// @ts-expect-error - fix me
...categoryGroupModel.fromExternal(fields),
});
});
@@ -688,6 +691,7 @@ handlers['api/category-update'] = withMutation(async function ({ id, fields }) {
checkFileOpen();
return handlers['category-update']({
id,
// @ts-expect-error - fix me
...categoryModel.fromExternal(fields),
});
});
@@ -723,6 +727,7 @@ handlers['api/payee-create'] = withMutation(async function ({ payee }) {
handlers['api/payee-update'] = withMutation(async function ({ id, fields }) {
checkFileOpen();
return handlers['payees-batch-change']({
// @ts-expect-error - fix me
updated: [{ id, ...payeeModel.fromExternal(fields) }],
});
});
+12 -19
View File
@@ -14,9 +14,12 @@ import type { batchUpdateTransactions } from '#server/transactions';
import type { QueryState } from '#shared/query';
import type {
AccountEntity,
CategoryGroupEntity,
ImportTransactionEntity,
NearbyPayeeEntity,
NewRuleEntity,
PayeeEntity,
PayeeLocationEntity,
RuleEntity,
ScheduleEntity,
@@ -90,10 +93,10 @@ export type ApiHandlers = {
'api/budget-reset-hold': (arg: { month: string }) => Promise<void>;
'api/transactions-export': (arg: {
transactions;
categoryGroups;
payees;
accounts;
transactions: TransactionEntity[];
categoryGroups: CategoryGroupEntity[];
payees: PayeeEntity[];
accounts: AccountEntity[];
}) => Promise<unknown>;
'api/transactions-import': (arg: {
@@ -118,9 +121,7 @@ export type ApiHandlers = {
'api/transaction-update': (arg: {
id: TransactionEntity['id'];
fields;
// TODO: fix me
// fields: Partial<TransactionEntity>;
fields: Partial<TransactionEntity>;
}) => Promise<Awaited<ReturnType<typeof batchUpdateTransactions>>['updated']>;
'api/transaction-delete': (arg: {
@@ -142,9 +143,7 @@ export type ApiHandlers = {
'api/account-update': (arg: {
id: APIAccountEntity['id'];
fields;
// TODO: fix me
// fields: Partial<APIAccountEntity>;
fields: Partial<APIAccountEntity>;
}) => Promise<void>;
'api/account-close': (arg: {
@@ -174,9 +173,7 @@ export type ApiHandlers = {
'api/category-group-update': (arg: {
id: APICategoryGroupEntity['id'];
fields;
// TODO: fix me
// fields: Partial<APICategoryGroupEntity>;
fields: Partial<APICategoryGroupEntity>;
}) => Promise<void>;
'api/category-group-delete': (arg: {
@@ -190,9 +187,7 @@ export type ApiHandlers = {
'api/category-update': (arg: {
id: APICategoryEntity['id'];
fields;
// TODO: fix me
// fields: Partial<APICategoryEntity>;
fields: Partial<APICategoryEntity>;
}) => Promise<void>;
'api/category-delete': (arg: {
@@ -210,9 +205,7 @@ export type ApiHandlers = {
'api/payee-update': (arg: {
id: APIPayeeEntity['id'];
fields;
// TODO: fix me
// fields: Partial<APIPayeeEntity>;
fields: Partial<APIPayeeEntity>;
}) => Promise<void>;
'api/payee-delete': (arg: { id: APIPayeeEntity['id'] }) => Promise<void>;
+5 -3
View File
@@ -7,9 +7,9 @@
"strict": false, // TODO: fix issues and remove this
"declarationMap": true,
"emitDeclarationOnly": true,
"outDir": "lib-dist/decl",
"outDir": "@types",
"rootDir": ".",
"tsBuildInfoFile": "lib-dist/decl/.tsbuildinfo",
"tsBuildInfoFile": "@types/.tsbuildinfo",
"types": ["vite/client", "vitest/globals", "node"],
"paths": {
// Allow importing from hyperformula's internal typings for custom function plugins
@@ -29,7 +29,9 @@
"node_modules",
"build",
"lib-dist",
"@types",
"**/*.test.ts",
"**/*.spec.ts"
"**/__tests__/**",
"**/__mocks__/**"
]
}
+1 -1
View File
@@ -45,7 +45,7 @@
"**/client-build/*",
"**/dist/*",
"**/lib-dist/*",
"packages/api/@types",
"packages/*/@types",
"**/test-results/*",
"**/playwright-report/*",
"**/service-worker/*",
+6
View File
@@ -0,0 +1,6 @@
---
category: Bugfix
authors: [MatissJanis]
---
Ship .d.ts declaration files from @actual-app/core so that downstream API consumers with strict TypeScript settings no longer get type errors.
+21 -402
View File
@@ -32,7 +32,6 @@ __metadata:
typescript-strict-plugin: "npm:^2.4.4"
uuid: "npm:^13.0.0"
vite: "npm:^8.0.5"
vite-plugin-dts: "npm:^4.5.4"
vite-plugin-peggy-loader: "npm:^2.0.1"
vitest: "npm:^4.1.0"
languageName: unknown
@@ -5343,60 +5342,6 @@ __metadata:
languageName: node
linkType: hard
"@microsoft/api-extractor-model@npm:7.33.1":
version: 7.33.1
resolution: "@microsoft/api-extractor-model@npm:7.33.1"
dependencies:
"@microsoft/tsdoc": "npm:~0.16.0"
"@microsoft/tsdoc-config": "npm:~0.18.0"
"@rushstack/node-core-library": "npm:5.20.1"
checksum: 10/cb267ca0020a68b84570bc99e974d050acf8b17a47f1999998a9dbc2ef81453f8188a93970a6b2274890a5dd5015502b6cebe94da06d3583e65ca490dabf4c1e
languageName: node
linkType: hard
"@microsoft/api-extractor@npm:^7.50.1":
version: 7.57.2
resolution: "@microsoft/api-extractor@npm:7.57.2"
dependencies:
"@microsoft/api-extractor-model": "npm:7.33.1"
"@microsoft/tsdoc": "npm:~0.16.0"
"@microsoft/tsdoc-config": "npm:~0.18.0"
"@rushstack/node-core-library": "npm:5.20.1"
"@rushstack/rig-package": "npm:0.7.1"
"@rushstack/terminal": "npm:0.22.1"
"@rushstack/ts-command-line": "npm:5.3.1"
diff: "npm:~8.0.2"
lodash: "npm:~4.17.23"
minimatch: "npm:10.2.1"
resolve: "npm:~1.22.1"
semver: "npm:~7.5.4"
source-map: "npm:~0.6.1"
typescript: "npm:5.8.2"
bin:
api-extractor: bin/api-extractor
checksum: 10/7e6ff99a7ee07e34ae4e3d4e271ea794f20ba3b892932e94f3757f230b8f3d6a3f4c18c723c71d3bffdc7a5dd51c732201fc911089cdebae7a4a194d3e4de2e7
languageName: node
linkType: hard
"@microsoft/tsdoc-config@npm:~0.18.0":
version: 0.18.0
resolution: "@microsoft/tsdoc-config@npm:0.18.0"
dependencies:
"@microsoft/tsdoc": "npm:0.16.0"
ajv: "npm:~8.12.0"
jju: "npm:~1.4.0"
resolve: "npm:~1.22.2"
checksum: 10/0470df5326181d876faba51617d011a632b2e3b420953e521bb865715d0db2fb0b8bfb3ccbcaef267356a1a7150d2ffba40022db5930db6b15fcb348bf846a4b
languageName: node
linkType: hard
"@microsoft/tsdoc@npm:0.16.0, @microsoft/tsdoc@npm:~0.16.0":
version: 0.16.0
resolution: "@microsoft/tsdoc@npm:0.16.0"
checksum: 10/1eaad3605234dc7e44898c15d1ba3c97fb968af1117025400cba572ce268da05afc36634d1fb9e779457af3ff7f13330aee07a962510a4d9c6612c13f71ee41e
languageName: node
linkType: hard
"@napi-rs/wasm-runtime@npm:^0.2.3":
version: 0.2.12
resolution: "@napi-rs/wasm-runtime@npm:0.2.12"
@@ -8938,7 +8883,7 @@ __metadata:
languageName: node
linkType: hard
"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.4":
"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2":
version: 5.3.0
resolution: "@rollup/pluginutils@npm:5.3.0"
dependencies:
@@ -9110,77 +9055,6 @@ __metadata:
languageName: node
linkType: hard
"@rushstack/node-core-library@npm:5.20.1":
version: 5.20.1
resolution: "@rushstack/node-core-library@npm:5.20.1"
dependencies:
ajv: "npm:~8.13.0"
ajv-draft-04: "npm:~1.0.0"
ajv-formats: "npm:~3.0.1"
fs-extra: "npm:~11.3.0"
import-lazy: "npm:~4.0.0"
jju: "npm:~1.4.0"
resolve: "npm:~1.22.1"
semver: "npm:~7.5.4"
peerDependencies:
"@types/node": "*"
peerDependenciesMeta:
"@types/node":
optional: true
checksum: 10/bd05a400fd96818a6382df7bc6a284adc78bbc8ae81c40760f2fee56a4124f0e56a38e007745bcf39c7449913e97f182860c1a344b56a31b8ba8445c21c6c012
languageName: node
linkType: hard
"@rushstack/problem-matcher@npm:0.2.1":
version: 0.2.1
resolution: "@rushstack/problem-matcher@npm:0.2.1"
peerDependencies:
"@types/node": "*"
peerDependenciesMeta:
"@types/node":
optional: true
checksum: 10/62fda91629577a2f57de19be357cd0990da145ff4933f4d2cd48f423cc03b92fca06dd8916dcbaf1d307a201c104847c77066d45d79fd3c323c4949f0c99bf44
languageName: node
linkType: hard
"@rushstack/rig-package@npm:0.7.1":
version: 0.7.1
resolution: "@rushstack/rig-package@npm:0.7.1"
dependencies:
resolve: "npm:~1.22.1"
strip-json-comments: "npm:~3.1.1"
checksum: 10/080a80e5c36b6861ee4a9a6e5ad9692cc3861cfb9edd0b02e9438aaaaa5a6e1b6f65275469d9f997696487841c7bb7daa69bba69c5e7301426056437bf544138
languageName: node
linkType: hard
"@rushstack/terminal@npm:0.22.1":
version: 0.22.1
resolution: "@rushstack/terminal@npm:0.22.1"
dependencies:
"@rushstack/node-core-library": "npm:5.20.1"
"@rushstack/problem-matcher": "npm:0.2.1"
supports-color: "npm:~8.1.1"
peerDependencies:
"@types/node": "*"
peerDependenciesMeta:
"@types/node":
optional: true
checksum: 10/fe4da212e11c60b8a6a2de9cb7658b03c510831d365c560eedf26a20fa85c62a45f1865cff99c2b252dcd773329fcd2347dd89e5e2efd5694d7746f0a8aec172
languageName: node
linkType: hard
"@rushstack/ts-command-line@npm:5.3.1":
version: 5.3.1
resolution: "@rushstack/ts-command-line@npm:5.3.1"
dependencies:
"@rushstack/terminal": "npm:0.22.1"
"@types/argparse": "npm:1.0.38"
argparse: "npm:~1.0.9"
string-argv: "npm:~0.3.1"
checksum: 10/51ca262eefbf07875f3e57fb402cba80e7ff36c14c0fc98c59af7be65407cafb4cbfe9b6738b549d91e687e40bb5720afb214efa1352a7a13c186241f92795f0
languageName: node
linkType: hard
"@sideway/address@npm:^4.1.5":
version: 4.1.5
resolution: "@sideway/address@npm:4.1.5"
@@ -9900,13 +9774,6 @@ __metadata:
languageName: node
linkType: hard
"@types/argparse@npm:1.0.38":
version: 1.0.38
resolution: "@types/argparse@npm:1.0.38"
checksum: 10/26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb
languageName: node
linkType: hard
"@types/aria-query@npm:^5.0.1":
version: 5.0.4
resolution: "@types/aria-query@npm:5.0.4"
@@ -11606,94 +11473,6 @@ __metadata:
languageName: node
linkType: hard
"@volar/language-core@npm:2.4.28, @volar/language-core@npm:~2.4.11":
version: 2.4.28
resolution: "@volar/language-core@npm:2.4.28"
dependencies:
"@volar/source-map": "npm:2.4.28"
checksum: 10/6c735027df0dfee142654e0aa9265111a82c21134366c08f4764743f74875ba8314fdc98865d37bf83ac7409dfea90b8538181a966681f3d01f68bbd999fef3a
languageName: node
linkType: hard
"@volar/source-map@npm:2.4.28":
version: 2.4.28
resolution: "@volar/source-map@npm:2.4.28"
checksum: 10/494b086be7ef6a46993941144a6961dcf9ecc4c830e2279031004496a7480727d6b0dc3f16776bf83aafe005084655c5664198f362a2c975d8267855de7b0a27
languageName: node
linkType: hard
"@volar/typescript@npm:^2.4.11":
version: 2.4.28
resolution: "@volar/typescript@npm:2.4.28"
dependencies:
"@volar/language-core": "npm:2.4.28"
path-browserify: "npm:^1.0.1"
vscode-uri: "npm:^3.0.8"
checksum: 10/6176e1fccc3c060a6393ab33b9befb828542a813a72201f0a83a8e6607055ac98a838db32ce9f54fe305df51cd1fa0eefc30d5e16dd2391af0563c76746f6679
languageName: node
linkType: hard
"@vue/compiler-core@npm:3.5.28":
version: 3.5.28
resolution: "@vue/compiler-core@npm:3.5.28"
dependencies:
"@babel/parser": "npm:^7.29.0"
"@vue/shared": "npm:3.5.28"
entities: "npm:^7.0.1"
estree-walker: "npm:^2.0.2"
source-map-js: "npm:^1.2.1"
checksum: 10/12af441c9ca51df2c0fb31f88b20966fc710c272818f65827dab44168f6d479b994d6f801d94511e78a7ddeced933c5b15e88f86b5528b155138a1938675a46f
languageName: node
linkType: hard
"@vue/compiler-dom@npm:^3.5.0":
version: 3.5.28
resolution: "@vue/compiler-dom@npm:3.5.28"
dependencies:
"@vue/compiler-core": "npm:3.5.28"
"@vue/shared": "npm:3.5.28"
checksum: 10/172ae6cf07dfdd94601981c27574a1329b25dded32a423627f7ecedd79492f5ad548305538f50e21900481f53881dff862a1c472ce5cc18ce38fad7c59bdc53a
languageName: node
linkType: hard
"@vue/compiler-vue2@npm:^2.7.16":
version: 2.7.16
resolution: "@vue/compiler-vue2@npm:2.7.16"
dependencies:
de-indent: "npm:^1.0.2"
he: "npm:^1.2.0"
checksum: 10/739ad06be19206b2715707c226a070509bcf28c31b539a6fc932d220eb7b0c09109d71fded573ed0c4073429793a3513ca4a4e69ad4f7afc0c5bc3c28639e871
languageName: node
linkType: hard
"@vue/language-core@npm:2.2.0":
version: 2.2.0
resolution: "@vue/language-core@npm:2.2.0"
dependencies:
"@volar/language-core": "npm:~2.4.11"
"@vue/compiler-dom": "npm:^3.5.0"
"@vue/compiler-vue2": "npm:^2.7.16"
"@vue/shared": "npm:^3.5.0"
alien-signals: "npm:^0.4.9"
minimatch: "npm:^9.0.3"
muggle-string: "npm:^0.4.1"
path-browserify: "npm:^1.0.1"
peerDependencies:
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
checksum: 10/dc22d038509a58e5a5569fe19f67e7373067cde3531b1e405270dcbe026a8cdbb1de8a7a93d6aaa76a3c5b71393f5c6ec5d9125f0b050898cb96a5c62b4a8d88
languageName: node
linkType: hard
"@vue/shared@npm:3.5.28, @vue/shared@npm:^3.5.0":
version: 3.5.28
resolution: "@vue/shared@npm:3.5.28"
checksum: 10/7d4132479462da5443b174d74052a00b796b57881e8e15298fad88acf4a9552db84ad8bb4104628d78bf7a57e43bfa985e65336abea6776b56277a1b95677a91
languageName: node
linkType: hard
"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1":
version: 1.14.1
resolution: "@webassemblyjs/ast@npm:1.14.1"
@@ -12015,18 +11794,6 @@ __metadata:
languageName: node
linkType: hard
"ajv-draft-04@npm:~1.0.0":
version: 1.0.0
resolution: "ajv-draft-04@npm:1.0.0"
peerDependencies:
ajv: ^8.5.0
peerDependenciesMeta:
ajv:
optional: true
checksum: 10/3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137
languageName: node
linkType: hard
"ajv-formats@npm:^2.1.1":
version: 2.1.1
resolution: "ajv-formats@npm:2.1.1"
@@ -12041,20 +11808,6 @@ __metadata:
languageName: node
linkType: hard
"ajv-formats@npm:~3.0.1":
version: 3.0.1
resolution: "ajv-formats@npm:3.0.1"
dependencies:
ajv: "npm:^8.0.0"
peerDependencies:
ajv: ^8.0.0
peerDependenciesMeta:
ajv:
optional: true
checksum: 10/5679b9f9ced9d0213a202a37f3aa91efcffe59a6de1a6e3da5c873344d3c161820a1f11cc29899661fee36271fd2895dd3851b6461c902a752ad661d1c1e8722
languageName: node
linkType: hard
"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2":
version: 3.5.2
resolution: "ajv-keywords@npm:3.5.2"
@@ -12099,30 +11852,6 @@ __metadata:
languageName: node
linkType: hard
"ajv@npm:~8.12.0":
version: 8.12.0
resolution: "ajv@npm:8.12.0"
dependencies:
fast-deep-equal: "npm:^3.1.1"
json-schema-traverse: "npm:^1.0.0"
require-from-string: "npm:^2.0.2"
uri-js: "npm:^4.2.2"
checksum: 10/b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85
languageName: node
linkType: hard
"ajv@npm:~8.13.0":
version: 8.13.0
resolution: "ajv@npm:8.13.0"
dependencies:
fast-deep-equal: "npm:^3.1.3"
json-schema-traverse: "npm:^1.0.0"
require-from-string: "npm:^2.0.2"
uri-js: "npm:^4.4.1"
checksum: 10/4ada268c9a6e44be87fd295df0f0a91267a7bae8dbc8a67a2d5799c3cb459232839c99d18b035597bb6e3ffe88af6979f7daece854f590a81ebbbc2dfa80002c
languageName: node
linkType: hard
"algoliasearch-helper@npm:^3.26.0":
version: 3.26.0
resolution: "algoliasearch-helper@npm:3.26.0"
@@ -12156,13 +11885,6 @@ __metadata:
languageName: node
linkType: hard
"alien-signals@npm:^0.4.9":
version: 0.4.14
resolution: "alien-signals@npm:0.4.14"
checksum: 10/306a7f4a88a982d1619ff313ed078bdfe52bb9d1381590ef4c1c245812ce7274b9b645a6233214e764a1adbef21863bdf74d10aa4fb30917456b7dd7779df5fc
languageName: node
linkType: hard
"ansi-align@npm:^3.0.1":
version: 3.0.1
resolution: "ansi-align@npm:3.0.1"
@@ -12323,7 +12045,7 @@ __metadata:
languageName: node
linkType: hard
"argparse@npm:^1.0.7, argparse@npm:~1.0.9":
"argparse@npm:^1.0.7":
version: 1.0.10
resolution: "argparse@npm:1.0.10"
dependencies:
@@ -15385,13 +15107,6 @@ __metadata:
languageName: node
linkType: hard
"de-indent@npm:^1.0.2":
version: 1.0.2
resolution: "de-indent@npm:1.0.2"
checksum: 10/30bf43744dca005f9252dbb34ed95dcb3c30dfe52bfed84973b89c29eccff04e27769f222a34c61a93354acf47457785e9032e6184be390ed1d324fb9ab3f427
languageName: node
linkType: hard
"debounce@npm:^1.2.1":
version: 1.2.1
resolution: "debounce@npm:1.2.1"
@@ -15703,13 +15418,6 @@ __metadata:
languageName: node
linkType: hard
"diff@npm:~8.0.2":
version: 8.0.3
resolution: "diff@npm:8.0.3"
checksum: 10/52f957e1fa53db4616ff5f4811b92b22b97a160c12a2f86f22debd4181227b0f6751aa8fd711d6a8fcf4618acb13b86bc702e6d9d6d6ed82acfd00c9cb26ace2
languageName: node
linkType: hard
"diffie-hellman@npm:^5.0.3":
version: 5.0.3
resolution: "diffie-hellman@npm:5.0.3"
@@ -16247,13 +15955,6 @@ __metadata:
languageName: node
linkType: hard
"entities@npm:^7.0.1":
version: 7.0.1
resolution: "entities@npm:7.0.1"
checksum: 10/3c0c58d869c45148463e96d21dee2d1b801bd3fe4cf47aa470cd26dfe81d59e9e0a9be92ae083fa02fa441283c883a471486e94538dcfb8544428aa80a55271b
languageName: node
linkType: hard
"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1":
version: 2.2.1
resolution: "env-paths@npm:2.2.1"
@@ -17675,7 +17376,7 @@ __metadata:
languageName: node
linkType: hard
"fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0, fs-extra@npm:~11.3.0":
"fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0":
version: 11.3.3
resolution: "fs-extra@npm:11.3.3"
dependencies:
@@ -19183,7 +18884,7 @@ __metadata:
languageName: node
linkType: hard
"import-lazy@npm:^4.0.0, import-lazy@npm:~4.0.0":
"import-lazy@npm:^4.0.0":
version: 4.0.0
resolution: "import-lazy@npm:4.0.0"
checksum: 10/943309cc8eb01ada12700448c288b0384f77a1bc33c7e00fa4cb223c665f467a13ce9aaceb8d2e4cf586b07c1d2828040263dcc069873ce63cfc2ac6fd087971
@@ -20049,13 +19750,6 @@ __metadata:
languageName: node
linkType: hard
"jju@npm:~1.4.0":
version: 1.4.0
resolution: "jju@npm:1.4.0"
checksum: 10/1067ff8ce02221faac5a842116ed0ec79a53312a111d0bf8342a80bd02c0a3fdf0b8449694a65947db0a3e8420e8b326dffb489c7dd5866efc380c0d1708a707
languageName: node
linkType: hard
"joi@npm:^17.9.2":
version: 17.13.3
resolution: "joi@npm:17.13.3"
@@ -20668,7 +20362,7 @@ __metadata:
languageName: node
linkType: hard
"local-pkg@npm:^1.0.0, local-pkg@npm:^1.1.1":
"local-pkg@npm:^1.1.1":
version: 1.1.2
resolution: "local-pkg@npm:1.1.2"
dependencies:
@@ -20809,13 +20503,6 @@ __metadata:
languageName: node
linkType: hard
"lodash@npm:~4.17.23":
version: 4.17.23
resolution: "lodash@npm:4.17.23"
checksum: 10/82504c88250f58da7a5a4289f57a4f759c44946c005dd232821c7688b5fcfbf4a6268f6a6cdde4b792c91edd2f3b5398c1d2a0998274432cff76def48735e233
languageName: node
linkType: hard
"log-symbols@npm:^4.1.0":
version: 4.1.0
resolution: "log-symbols@npm:4.1.0"
@@ -20972,7 +20659,7 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:^0.30.0, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21, magic-string@npm:^0.30.3":
"magic-string@npm:^0.30.0, magic-string@npm:^0.30.21, magic-string@npm:^0.30.3":
version: 0.30.21
resolution: "magic-string@npm:0.30.21"
dependencies:
@@ -22150,15 +21837,6 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:10.2.5, minimatch@npm:^10.0.3, minimatch@npm:^10.1.1, minimatch@npm:^10.2.1":
version: 10.2.5
resolution: "minimatch@npm:10.2.5"
dependencies:
brace-expansion: "npm:^5.0.5"
checksum: 10/19e87a931aff60ee7b9d80f39f817b8bfc54f61f8356ee3549fbf636dbccacacfec8d803eac73293955c4527cd085247dfc064bce4a5e349f8f3b85e2bf5da0f
languageName: node
linkType: hard
"minimatch@npm:3.1.5, minimatch@npm:^3.0.2, minimatch@npm:^3.0.3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.5":
version: 3.1.5
resolution: "minimatch@npm:3.1.5"
@@ -22168,6 +21846,15 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:^10.0.3, minimatch@npm:^10.1.1, minimatch@npm:^10.2.1":
version: 10.2.5
resolution: "minimatch@npm:10.2.5"
dependencies:
brace-expansion: "npm:^5.0.5"
checksum: 10/19e87a931aff60ee7b9d80f39f817b8bfc54f61f8356ee3549fbf636dbccacacfec8d803eac73293955c4527cd085247dfc064bce4a5e349f8f3b85e2bf5da0f
languageName: node
linkType: hard
"minimatch@npm:^10.2.2, minimatch@npm:^10.2.4":
version: 10.2.4
resolution: "minimatch@npm:10.2.4"
@@ -22364,13 +22051,6 @@ __metadata:
languageName: node
linkType: hard
"muggle-string@npm:^0.4.1":
version: 0.4.1
resolution: "muggle-string@npm:0.4.1"
checksum: 10/8fa2ea08f497c04069718bd3fd1909b382114dacbad832d10967ca72690de43f5f8492d8ccfbf827d6be63868ed5fc10395e7b7c082aa95997eea498586c6620
languageName: node
linkType: hard
"multicast-dns@npm:^7.2.5":
version: 7.2.5
resolution: "multicast-dns@npm:7.2.5"
@@ -26252,7 +25932,7 @@ __metadata:
languageName: node
linkType: hard
"resolve@npm:^1.22.8, resolve@npm:~1.22.1, resolve@npm:~1.22.2":
"resolve@npm:^1.22.8":
version: 1.22.11
resolution: "resolve@npm:1.22.11"
dependencies:
@@ -26278,7 +25958,7 @@ __metadata:
languageName: node
linkType: hard
"resolve@patch:resolve@npm%3A^1.22.8#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A~1.22.2#optional!builtin<compat/resolve>":
"resolve@patch:resolve@npm%3A^1.22.8#optional!builtin<compat/resolve>":
version: 1.22.11
resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin<compat/resolve>::version=1.22.11&hash=c3c19d"
dependencies:
@@ -26991,17 +26671,6 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:~7.5.4":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
lru-cache: "npm:^6.0.0"
bin:
semver: bin/semver.js
checksum: 10/985dec0d372370229a262c737063860fabd4a1c730662c1ea3200a2f649117761a42184c96df62a0e885e76fbd5dace41087d6c1ac0351b13c0df5d6bcb1b5ac
languageName: node
linkType: hard
"send@npm:0.19.0":
version: 0.19.0
resolution: "send@npm:0.19.0"
@@ -27835,7 +27504,7 @@ __metadata:
languageName: node
linkType: hard
"string-argv@npm:^0.3.2, string-argv@npm:~0.3.1":
"string-argv@npm:^0.3.2":
version: 0.3.2
resolution: "string-argv@npm:0.3.2"
checksum: 10/f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af
@@ -28064,7 +27733,7 @@ __metadata:
languageName: node
linkType: hard
"strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1":
"strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
@@ -28184,7 +27853,7 @@ __metadata:
languageName: node
linkType: hard
"supports-color@npm:^8.0.0, supports-color@npm:~8.1.1":
"supports-color@npm:^8.0.0":
version: 8.1.1
resolution: "supports-color@npm:8.1.1"
dependencies:
@@ -28946,16 +28615,6 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:5.8.2":
version: 5.8.2
resolution: "typescript@npm:5.8.2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/dbc2168a55d56771f4d581997be52bab5cbc09734fec976cfbaabd787e61fb4c6cf9125fd48c6f98054ce549c77ecedefc7f64252a830dd8e9c3381f61fbeb78
languageName: node
linkType: hard
"typescript@npm:^5.0.4, typescript@npm:^5.9.3":
version: 5.9.3
resolution: "typescript@npm:5.9.3"
@@ -28966,16 +28625,6 @@ __metadata:
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A5.8.2#optional!builtin<compat/typescript>":
version: 5.8.2
resolution: "typescript@patch:typescript@npm%3A5.8.2#optional!builtin<compat/typescript>::version=5.8.2&hash=5786d5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10/97920a082ffc57583b1cb6bc4faa502acc156358e03f54c7fc7fdf0b61c439a717f4c9070c449ee9ee683d4cfc3bb203127c2b9794b2950f66d9d307a4ff262c
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A^5.0.4#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.9.3#optional!builtin<compat/typescript>":
version: 5.9.3
resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin<compat/typescript>::version=5.9.3&hash=5786d5"
@@ -29315,7 +28964,7 @@ __metadata:
languageName: node
linkType: hard
"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1":
"uri-js@npm:^4.2.2":
version: 4.4.1
resolution: "uri-js@npm:4.4.1"
dependencies:
@@ -29645,29 +29294,6 @@ __metadata:
languageName: node
linkType: hard
"vite-plugin-dts@npm:^4.5.4":
version: 4.5.4
resolution: "vite-plugin-dts@npm:4.5.4"
dependencies:
"@microsoft/api-extractor": "npm:^7.50.1"
"@rollup/pluginutils": "npm:^5.1.4"
"@volar/typescript": "npm:^2.4.11"
"@vue/language-core": "npm:2.2.0"
compare-versions: "npm:^6.1.1"
debug: "npm:^4.4.0"
kolorist: "npm:^1.8.0"
local-pkg: "npm:^1.0.0"
magic-string: "npm:^0.30.17"
peerDependencies:
typescript: "*"
vite: "*"
peerDependenciesMeta:
vite:
optional: true
checksum: 10/1504a8da02f8015c3138ef57a690179ad9b9d4369a054ae48b52a1c8cbc7ad05474551eab309cd90cf758800e17b67ccd13317aa5f8e28efde957547c7a339fb
languageName: node
linkType: hard
"vite-plugin-node-polyfills@npm:^0.26.0":
version: 0.26.0
resolution: "vite-plugin-node-polyfills@npm:0.26.0"
@@ -29943,13 +29569,6 @@ __metadata:
languageName: node
linkType: hard
"vscode-uri@npm:^3.0.8":
version: 3.1.0
resolution: "vscode-uri@npm:3.1.0"
checksum: 10/80c2a2421f44b64008ef1f91dfa52a2d68105cbb4dcea197dbf5b00c65ccaccf218b615e93ec587f26fc3ba04796898f3631a9406e3b04cda970c3ca8eadf646
languageName: node
linkType: hard
"vscode-uri@npm:~3.0.8":
version: 3.0.8
resolution: "vscode-uri@npm:3.0.8"