Restore green merge gate: pnpm settings, deps, unbound-method

pnpm 10.32 stopped reading the "pnpm" field from package.json, so the
undici/picomatch overrides and the three GHSA suppressions had silently
stopped applying — only the stale lockfile still held undici at 7.24.8.
Move the surviving picomatch override to pnpm-workspace.yaml.

With the config live again, two high advisories surfaced:
- postcss was stuck at 8.5.15 (GHSA-r28c-9q8g-f849, patched in 8.5.18);
  nothing pinned it, so refresh to 8.5.25 within vite's range.
- undici GHSA-4cwx-7wf7-3272 needed >=7.29.0, but our ~7.24.0 pin existed
  because jsdom 29 crashed on undici 7.28+. jsdom 30 moved to undici ^8.9,
  so bump jsdom and drop both the pin and all three suppressions.

15 vulnerabilities (5 high, 3 suppressed) down to 1 moderate (smol-toml
via knip, below the --audit-level=high gate).

Separately, ports.ts declared its members with method shorthand, which
TypeScript treats as this-dependent, so oxlint's unbound-method fired
wherever a port was passed by reference (use-bestiary.ts:236). The ports
are bags of plain module functions, so declare them as readonly function
properties instead of suppressing the one call site. This makes parameter
types contravariant rather than bivariant; typecheck passes unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lukas
2026-08-05 13:24:13 +02:00
co-authored by Claude Opus 5
parent 78079bf1b2
commit 90eb39b227
5 changed files with 122 additions and 122 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
"@types/react": "^19.0.0", "@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0", "@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^6.0.1", "@vitejs/plugin-react": "^6.0.1",
"jsdom": "^29.1.1", "jsdom": "^30.0.1",
"tailwindcss": "^4.2.2", "tailwindcss": "^4.2.2",
"vite": "^8.0.16" "vite": "^8.0.16"
} }
+26 -23
View File
@@ -9,18 +9,18 @@ import type {
} from "@initiative/domain"; } from "@initiative/domain";
export interface EncounterPersistence { export interface EncounterPersistence {
load(): Encounter | null; readonly load: () => Encounter | null;
save(encounter: Encounter): void; readonly save: (encounter: Encounter) => void;
} }
export interface UndoRedoPersistence { export interface UndoRedoPersistence {
load(): UndoRedoState; readonly load: () => UndoRedoState;
save(state: UndoRedoState): void; readonly save: (state: UndoRedoState) => void;
} }
export interface PlayerCharacterPersistence { export interface PlayerCharacterPersistence {
load(): PlayerCharacter[]; readonly load: () => PlayerCharacter[];
save(characters: PlayerCharacter[]): void; readonly save: (characters: PlayerCharacter[]) => void;
} }
export interface CachedSourceInfo { export interface CachedSourceInfo {
@@ -31,31 +31,34 @@ export interface CachedSourceInfo {
} }
export interface BestiaryCachePort { export interface BestiaryCachePort {
cacheSource( readonly cacheSource: (
system: string, system: string,
sourceCode: string, sourceCode: string,
displayName: string, displayName: string,
creatures: AnyCreature[], creatures: AnyCreature[],
): Promise<void>; ) => Promise<void>;
isSourceCached(system: string, sourceCode: string): Promise<boolean>; readonly isSourceCached: (
getCachedSources(system?: string): Promise<CachedSourceInfo[]>; system: string,
clearSource(system: string, sourceCode: string): Promise<void>; sourceCode: string,
clearAll(): Promise<void>; ) => Promise<boolean>;
loadAllCachedCreatures(): Promise<Map<CreatureId, AnyCreature>>; readonly getCachedSources: (system?: string) => Promise<CachedSourceInfo[]>;
readonly clearSource: (system: string, sourceCode: string) => Promise<void>;
readonly clearAll: () => Promise<void>;
readonly loadAllCachedCreatures: () => Promise<Map<CreatureId, AnyCreature>>;
} }
export interface BestiaryIndexPort { export interface BestiaryIndexPort {
loadIndex(): BestiaryIndex; readonly loadIndex: () => BestiaryIndex;
getAllSourceCodes(): string[]; readonly getAllSourceCodes: () => string[];
getDefaultFetchUrl(sourceCode: string, baseUrl?: string): string; readonly getDefaultFetchUrl: (sourceCode: string, baseUrl?: string) => string;
getSourceDisplayName(sourceCode: string): string; readonly getSourceDisplayName: (sourceCode: string) => string;
} }
export interface Pf2eBestiaryIndexPort { export interface Pf2eBestiaryIndexPort {
loadIndex(): Pf2eBestiaryIndex; readonly loadIndex: () => Pf2eBestiaryIndex;
getAllSourceCodes(): string[]; readonly getAllSourceCodes: () => string[];
getDefaultFetchUrl(sourceCode: string, baseUrl?: string): string; readonly getDefaultFetchUrl: (sourceCode: string, baseUrl?: string) => string;
getSourceDisplayName(sourceCode: string): string; readonly getSourceDisplayName: (sourceCode: string) => string;
getCreaturePathsForSource(sourceCode: string): string[]; readonly getCreaturePathsForSource: (sourceCode: string) => string[];
getCreatureNamesByPaths(paths: string[]): Map<string, string>; readonly getCreatureNamesByPaths: (paths: string[]) => Map<string, string>;
} }
-19
View File
@@ -1,25 +1,6 @@
{ {
"private": true, "private": true,
"packageManager": "pnpm@10.32.1+sha512.a706938f0e89ac1456b6563eab4edf1d1faf3368d1191fc5c59790e96dc918e4456ab2e67d613de1043d2e8c81f87303e6b40d4ffeca9df15ef1ad567348f2be", "packageManager": "pnpm@10.32.1+sha512.a706938f0e89ac1456b6563eab4edf1d1faf3368d1191fc5c59790e96dc918e4456ab2e67d613de1043d2e8c81f87303e6b40d4ffeca9df15ef1ad567348f2be",
"pnpm": {
"overrides": {
"undici": "~7.24.0",
"picomatch": ">=4.0.4"
},
"auditConfig": {
"ignoreGhsas": [
"GHSA-vmh5-mc38-953g",
"GHSA-vxpw-j846-p89q",
"GHSA-hm92-r4w5-c3mj"
],
"_ignoreGhsasNotes": {
"_shared": "All three advisories sit in undici, are reached only via jsdom in test runs, and are fixed in undici>=7.28.0. We can't move there because jsdom@29.1.1 reaches into undici 7's private module layout and crashes on the 7.28+ restructure. None of the vulnerable code paths run in our tests (no SOCKS5 proxy, no WebSocket client). Drop these entries when jsdom updates its undici pin.",
"GHSA-vmh5-mc38-953g": "SOCKS5 ProxyAgent TLS bypass — unreachable, no SOCKS5 proxy in tests.",
"GHSA-vxpw-j846-p89q": "WebSocket client DoS via fragment-count bypass — unreachable, no WS client in tests.",
"GHSA-hm92-r4w5-c3mj": "SOCKS5 proxy pool cross-origin reuse — unreachable, no SOCKS5 proxy in tests."
}
}
},
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.4.8", "@biomejs/biome": "2.4.8",
"@vitest/coverage-v8": "^4.1.0", "@vitest/coverage-v8": "^4.1.0",
+90 -79
View File
@@ -5,7 +5,6 @@ settings:
excludeLinksFromLockfile: false excludeLinksFromLockfile: false
overrides: overrides:
undici: ~7.24.0
picomatch: '>=4.0.4' picomatch: '>=4.0.4'
importers: importers:
@@ -17,7 +16,7 @@ importers:
version: 2.4.8 version: 2.4.8
'@vitest/coverage-v8': '@vitest/coverage-v8':
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0(vitest@4.1.0(@types/node@25.3.3)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3))) version: 4.1.0(vitest@4.1.0(@types/node@25.3.3)(jsdom@30.0.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)))
jscpd: jscpd:
specifier: ^4.0.8 specifier: ^4.0.8
version: 4.0.8 version: 4.0.8
@@ -41,7 +40,7 @@ importers:
version: 5.9.3 version: 5.9.3
vitest: vitest:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0(@types/node@25.3.3)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)) version: 4.1.0(@types/node@25.3.3)(jsdom@30.0.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3))
apps/web: apps/web:
dependencies: dependencies:
@@ -95,8 +94,8 @@ importers:
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.0.1(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)) version: 6.0.1(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3))
jsdom: jsdom:
specifier: ^29.1.1 specifier: ^30.0.1
version: 29.1.1 version: 30.0.1
tailwindcss: tailwindcss:
specifier: ^4.2.2 specifier: ^4.2.2
version: 4.2.2 version: 4.2.2
@@ -117,20 +116,13 @@ packages:
'@adobe/css-tools@4.4.4': '@adobe/css-tools@4.4.4':
resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==}
'@asamuzakjp/css-color@5.1.11': '@asamuzakjp/css-color@6.0.5':
resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} resolution: {integrity: sha512-mbhpPMmnw/kwW19aRNmSUl1QzLbdGo1SCuE49BT98MNwqF6zaHb3o2owssFc/PEO/4t2UjqtCNwocuDtJornzA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} engines: {node: ^22.13.0 || >=24.0.0}
'@asamuzakjp/dom-selector@7.1.1': '@asamuzakjp/dom-selector@8.3.2':
resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} resolution: {integrity: sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} engines: {node: ^22.13.0 || >=24.0.0}
'@asamuzakjp/generational-cache@1.0.1':
resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
'@asamuzakjp/nwsapi@2.3.9':
resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
'@babel/code-frame@7.29.7': '@babel/code-frame@7.29.7':
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
@@ -251,8 +243,8 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'} engines: {node: '>=0.1.90'}
'@csstools/color-helpers@6.0.2': '@csstools/color-helpers@6.1.0':
resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==}
engines: {node: '>=20.19.0'} engines: {node: '>=20.19.0'}
'@csstools/css-calc@3.2.1': '@csstools/css-calc@3.2.1':
@@ -262,8 +254,15 @@ packages:
'@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-parser-algorithms': ^4.0.0
'@csstools/css-tokenizer': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0
'@csstools/css-color-parser@4.1.8': '@csstools/css-calc@3.3.0':
resolution: {integrity: sha512-3chWb7PRLijpJpPIKkDxdu6IBeO5MrFACND57On0j8OPpc0wZibcGc3xAHrSEbOx/KDRyMHoIxGn0w1PhXMYHw==} resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==}
engines: {node: '>=20.19.0'}
peerDependencies:
'@csstools/css-parser-algorithms': ^4.0.0
'@csstools/css-tokenizer': ^4.0.0
'@csstools/css-color-parser@4.1.10':
resolution: {integrity: sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==}
engines: {node: '>=20.19.0'} engines: {node: '>=20.19.0'}
peerDependencies: peerDependencies:
'@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-parser-algorithms': ^4.0.0
@@ -275,8 +274,8 @@ packages:
peerDependencies: peerDependencies:
'@csstools/css-tokenizer': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0
'@csstools/css-syntax-patches-for-csstree@1.1.5': '@csstools/css-syntax-patches-for-csstree@1.1.7':
resolution: {integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==} resolution: {integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==}
peerDependencies: peerDependencies:
css-tree: ^3.2.1 css-tree: ^3.2.1
peerDependenciesMeta: peerDependenciesMeta:
@@ -305,8 +304,8 @@ packages:
'@emnapi/wasi-threads@1.2.1': '@emnapi/wasi-threads@1.2.1':
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
'@exodus/bytes@1.15.0': '@exodus/bytes@1.15.1':
resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies: peerDependencies:
'@noble/hashes': ^1.8.0 || ^2.0.0 '@noble/hashes': ^1.8.0 || ^2.0.0
@@ -1320,11 +1319,11 @@ packages:
resolution: {integrity: sha512-d2VNT/2Hv4dxT2/59He8Lyda4DYOxPRyRG9zBaOpTZAqJCVf2xLrBlZkT8Va6Lo9u3X2qz8Bpq4HrDi4JsrQhA==} resolution: {integrity: sha512-d2VNT/2Hv4dxT2/59He8Lyda4DYOxPRyRG9zBaOpTZAqJCVf2xLrBlZkT8Va6Lo9u3X2qz8Bpq4HrDi4JsrQhA==}
hasBin: true hasBin: true
jsdom@29.1.1: jsdom@30.0.1:
resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} resolution: {integrity: sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
peerDependencies: peerDependencies:
canvas: ^3.0.0 canvas: ^3.2.3
peerDependenciesMeta: peerDependenciesMeta:
canvas: canvas:
optional: true optional: true
@@ -1475,8 +1474,8 @@ packages:
resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
engines: {node: '>= 12.0.0'} engines: {node: '>= 12.0.0'}
lru-cache@11.5.1: lru-cache@11.5.2:
resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==}
engines: {node: 20 || >=22} engines: {node: 20 || >=22}
lucide-react@0.577.0: lucide-react@0.577.0:
@@ -1530,8 +1529,8 @@ packages:
minimist@1.2.8: minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
nanoid@3.3.13: nanoid@3.3.17:
resolution: {integrity: sha512-sPdqC6ByMVVGvF1ynvvMo0/o+oD1VX7DaHhijt1bFgjvBkHBib4t49GoNDhf2NDta4oeUNlaGbSt5K7qjZ955Q==} resolution: {integrity: sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
@@ -1594,8 +1593,8 @@ packages:
resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'} engines: {node: '>=12'}
postcss@8.5.15: postcss@8.5.25:
resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
pretty-format@27.5.1: pretty-format@27.5.1:
@@ -1824,8 +1823,8 @@ packages:
token-stream@1.0.0: token-stream@1.0.0:
resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==}
tough-cookie@6.0.1: tough-cookie@6.0.2:
resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==}
engines: {node: '>=16'} engines: {node: '>=16'}
tr46@6.0.0: tr46@6.0.0:
@@ -1847,9 +1846,9 @@ packages:
undici-types@7.18.2: undici-types@7.18.2:
resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
undici@7.24.8: undici@8.10.0:
resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==}
engines: {node: '>=20.18.1'} engines: {node: '>=22.19.0'}
universalify@2.0.1: universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
@@ -1957,6 +1956,10 @@ packages:
resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
whatwg-url@17.1.0:
resolution: {integrity: sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==}
engines: {node: ^22.14.0 || >=24.0.0}
which@2.0.2: which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
@@ -1993,25 +1996,20 @@ snapshots:
'@adobe/css-tools@4.4.4': {} '@adobe/css-tools@4.4.4': {}
'@asamuzakjp/css-color@5.1.11': '@asamuzakjp/css-color@6.0.5':
dependencies: dependencies:
'@asamuzakjp/generational-cache': 1.0.1
'@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-color-parser': 4.1.8(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-color-parser': 4.1.10(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0 '@csstools/css-tokenizer': 4.0.0
lru-cache: 11.5.2
'@asamuzakjp/dom-selector@7.1.1': '@asamuzakjp/dom-selector@8.3.2':
dependencies: dependencies:
'@asamuzakjp/generational-cache': 1.0.1
'@asamuzakjp/nwsapi': 2.3.9
bidi-js: 1.0.3 bidi-js: 1.0.3
css-tree: 3.2.1 css-tree: 3.2.1
is-potential-custom-element-name: 1.0.1 is-potential-custom-element-name: 1.0.1
lru-cache: 11.5.2
'@asamuzakjp/generational-cache@1.0.1': {}
'@asamuzakjp/nwsapi@2.3.9': {}
'@babel/code-frame@7.29.7': '@babel/code-frame@7.29.7':
dependencies: dependencies:
@@ -2095,17 +2093,22 @@ snapshots:
'@colors/colors@1.5.0': '@colors/colors@1.5.0':
optional: true optional: true
'@csstools/color-helpers@6.0.2': {} '@csstools/color-helpers@6.1.0': {}
'@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies: dependencies:
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0 '@csstools/css-tokenizer': 4.0.0
'@csstools/css-color-parser@4.1.8(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': '@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies: dependencies:
'@csstools/color-helpers': 6.0.2 '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0
'@csstools/css-color-parser@4.1.10(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies:
'@csstools/color-helpers': 6.1.0
'@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0 '@csstools/css-tokenizer': 4.0.0
@@ -2113,7 +2116,7 @@ snapshots:
dependencies: dependencies:
'@csstools/css-tokenizer': 4.0.0 '@csstools/css-tokenizer': 4.0.0
'@csstools/css-syntax-patches-for-csstree@1.1.5(css-tree@3.2.1)': '@csstools/css-syntax-patches-for-csstree@1.1.7(css-tree@3.2.1)':
optionalDependencies: optionalDependencies:
css-tree: 3.2.1 css-tree: 3.2.1
@@ -2151,7 +2154,7 @@ snapshots:
tslib: 2.8.1 tslib: 2.8.1
optional: true optional: true
'@exodus/bytes@1.15.0': {} '@exodus/bytes@1.15.1': {}
'@jridgewell/gen-mapping@0.3.13': '@jridgewell/gen-mapping@0.3.13':
dependencies: dependencies:
@@ -2569,7 +2572,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.7 '@rolldown/pluginutils': 1.0.0-rc.7
vite: 8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3) vite: 8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)
'@vitest/coverage-v8@4.1.0(vitest@4.1.0(@types/node@25.3.3)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)))': '@vitest/coverage-v8@4.1.0(vitest@4.1.0(@types/node@25.3.3)(jsdom@30.0.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)))':
dependencies: dependencies:
'@bcoe/v8-coverage': 1.0.2 '@bcoe/v8-coverage': 1.0.2
'@vitest/utils': 4.1.0 '@vitest/utils': 4.1.0
@@ -2581,7 +2584,7 @@ snapshots:
obug: 2.1.1 obug: 2.1.1
std-env: 4.0.0 std-env: 4.0.0
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vitest: 4.1.0(@types/node@25.3.3)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)) vitest: 4.1.0(@types/node@25.3.3)(jsdom@30.0.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/expect@4.1.0': '@vitest/expect@4.1.0':
dependencies: dependencies:
@@ -2900,7 +2903,7 @@ snapshots:
html-encoding-sniffer@6.0.0: html-encoding-sniffer@6.0.0:
dependencies: dependencies:
'@exodus/bytes': 1.15.0 '@exodus/bytes': 1.15.1
transitivePeerDependencies: transitivePeerDependencies:
- '@noble/hashes' - '@noble/hashes'
@@ -2986,28 +2989,28 @@ snapshots:
gitignore-to-glob: 0.3.0 gitignore-to-glob: 0.3.0
jscpd-sarif-reporter: 4.0.6 jscpd-sarif-reporter: 4.0.6
jsdom@29.1.1: jsdom@30.0.1:
dependencies: dependencies:
'@asamuzakjp/css-color': 5.1.11 '@asamuzakjp/css-color': 6.0.5
'@asamuzakjp/dom-selector': 7.1.1 '@asamuzakjp/dom-selector': 8.3.2
'@bramus/specificity': 2.4.2 '@bramus/specificity': 2.4.2
'@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) '@csstools/css-syntax-patches-for-csstree': 1.1.7(css-tree@3.2.1)
'@exodus/bytes': 1.15.0 '@exodus/bytes': 1.15.1
css-tree: 3.2.1 css-tree: 3.2.1
data-urls: 7.0.0 data-urls: 7.0.0
decimal.js: 10.6.0 decimal.js: 10.6.0
html-encoding-sniffer: 6.0.0 html-encoding-sniffer: 6.0.0
is-potential-custom-element-name: 1.0.1 is-potential-custom-element-name: 1.0.1
lru-cache: 11.5.1 lru-cache: 11.5.2
parse5: 8.0.1 parse5: 8.0.1
saxes: 6.0.0 saxes: 6.0.0
symbol-tree: 3.2.4 symbol-tree: 3.2.4
tough-cookie: 6.0.1 tough-cookie: 6.0.2
undici: 7.24.8 undici: 8.10.0
w3c-xmlserializer: 5.0.0 w3c-xmlserializer: 5.0.0
webidl-conversions: 8.0.1 webidl-conversions: 8.0.1
whatwg-mimetype: 5.0.0 whatwg-mimetype: 5.0.0
whatwg-url: 16.0.1 whatwg-url: 17.1.0
xml-name-validator: 5.0.0 xml-name-validator: 5.0.0
transitivePeerDependencies: transitivePeerDependencies:
- '@noble/hashes' - '@noble/hashes'
@@ -3143,7 +3146,7 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-arm64-msvc: 1.32.0
lightningcss-win32-x64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0
lru-cache@11.5.1: {} lru-cache@11.5.2: {}
lucide-react@0.577.0(react@19.2.4): lucide-react@0.577.0(react@19.2.4):
dependencies: dependencies:
@@ -3188,7 +3191,7 @@ snapshots:
minimist@1.2.8: {} minimist@1.2.8: {}
nanoid@3.3.13: {} nanoid@3.3.17: {}
node-sarif-builder@3.4.0: node-sarif-builder@3.4.0:
dependencies: dependencies:
@@ -3280,9 +3283,9 @@ snapshots:
picomatch@4.0.4: {} picomatch@4.0.4: {}
postcss@8.5.15: postcss@8.5.25:
dependencies: dependencies:
nanoid: 3.3.13 nanoid: 3.3.17
picocolors: 1.1.1 picocolors: 1.1.1
source-map-js: 1.2.1 source-map-js: 1.2.1
@@ -3521,7 +3524,7 @@ snapshots:
token-stream@1.0.0: {} token-stream@1.0.0: {}
tough-cookie@6.0.1: tough-cookie@6.0.2:
dependencies: dependencies:
tldts: 7.0.25 tldts: 7.0.25
@@ -3538,7 +3541,7 @@ snapshots:
undici-types@7.18.2: {} undici-types@7.18.2: {}
undici@7.24.8: {} undici@8.10.0: {}
universalify@2.0.1: {} universalify@2.0.1: {}
@@ -3546,7 +3549,7 @@ snapshots:
dependencies: dependencies:
lightningcss: 1.32.0 lightningcss: 1.32.0
picomatch: 4.0.4 picomatch: 4.0.4
postcss: 8.5.15 postcss: 8.5.25
rolldown: 1.0.3 rolldown: 1.0.3
tinyglobby: 0.2.17 tinyglobby: 0.2.17
optionalDependencies: optionalDependencies:
@@ -3555,7 +3558,7 @@ snapshots:
jiti: 2.6.1 jiti: 2.6.1
yaml: 2.8.3 yaml: 2.8.3
vitest@4.1.0(@types/node@25.3.3)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)): vitest@4.1.0(@types/node@25.3.3)(jsdom@30.0.1)(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)):
dependencies: dependencies:
'@vitest/expect': 4.1.0 '@vitest/expect': 4.1.0
'@vitest/mocker': 4.1.0(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3)) '@vitest/mocker': 4.1.0(vite@8.0.16(@types/node@25.3.3)(jiti@2.6.1)(yaml@2.8.3))
@@ -3579,7 +3582,7 @@ snapshots:
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/node': 25.3.3 '@types/node': 25.3.3
jsdom: 29.1.1 jsdom: 30.0.1
transitivePeerDependencies: transitivePeerDependencies:
- msw - msw
@@ -3597,7 +3600,15 @@ snapshots:
whatwg-url@16.0.1: whatwg-url@16.0.1:
dependencies: dependencies:
'@exodus/bytes': 1.15.0 '@exodus/bytes': 1.15.1
tr46: 6.0.0
webidl-conversions: 8.0.1
transitivePeerDependencies:
- '@noble/hashes'
whatwg-url@17.1.0:
dependencies:
'@exodus/bytes': 1.15.1
tr46: 6.0.0 tr46: 6.0.0
webidl-conversions: 8.0.1 webidl-conversions: 8.0.1
transitivePeerDependencies: transitivePeerDependencies:
+5
View File
@@ -4,3 +4,8 @@ packages:
onlyBuiltDependencies: onlyBuiltDependencies:
- lefthook - lefthook
# pnpm >= 10.32 reads overrides/auditConfig from here; the "pnpm" field in
# package.json is no longer honoured.
overrides:
picomatch: ">=4.0.4"