chore(deps): update dependency eslint-plugin-unicorn to v76 (#849)

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
This commit is contained in:
renovate[bot]
2026-09-29 15:28:54 +02:00
committed by GitHub
co-authored by Daniel Dietzler
parent 0bb948e639
commit 652e25934e
21 changed files with 101 additions and 147 deletions
@@ -109,11 +109,13 @@ class PlaygroundManager {
async load() {
const data = localStorage.getItem(LOCAL_STORAGE_KEY);
if (data) {
const { apiKey = '', serverUrl = '' } = JSON.parse(data);
this.apiKey = apiKey;
this.serverUrl = serverUrl;
if (!data) {
return;
}
const { apiKey = '', serverUrl = '' } = JSON.parse(data);
this.apiKey = apiKey;
this.serverUrl = serverUrl;
}
async save() {
@@ -373,10 +373,12 @@ const validationSchema = immichConfigSchema.superRefine((config, ctx) => {
: overlaps
? 'This path overlaps another mount.'
: undefined;
if (message) {
fail(mount.path, message);
fail(other.path, message);
if (!message) {
continue;
}
fail(mount.path, message);
fail(other.path, message);
}
}
});
@@ -68,10 +68,12 @@ export const decodeShare = (params: URLSearchParams): ImmichConfig => {
for (const [path, raw] of params) {
const value = path === PASSWORD_PATH ? (raw === PASSWORD_MARKER ? randomPassword() : undefined) : coerce(raw, path);
if (value !== undefined) {
set(draft, path, value);
applied.push(path);
if (value === undefined) {
continue;
}
set(draft, path, value);
applied.push(path);
}
let parsed = immichConfigSchema.safeParse(draft);
@@ -132,10 +132,12 @@
$effect(() => {
const target = shareUrl;
if (decoded && routerReady && target !== writtenUrl) {
writtenUrl = target;
replaceState(target, {});
if (!(decoded && routerReady) || target === writtenUrl) {
return;
}
writtenUrl = target;
replaceState(target, {});
});
onMount(async () => {
+2
View File
@@ -85,6 +85,8 @@ export default defineConfig([
'unicorn/no-top-level-assignment-in-function': 'off',
'unicorn/no-break-in-nested-loop': 'off',
'unicorn/prefer-simple-condition-first': 'off',
'unicorn/prefer-ternary': 'off',
'unicorn/prefer-combined-guards': 'off',
// prefer the typescript-eslint type-aware version
'unicorn/require-array-sort-compare': 'off',
'unicorn/class-reference-in-static-methods': ['error', { preferThis: false, preferSuper: false }],
+1 -1
View File
@@ -30,7 +30,7 @@
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-better-tailwindcss": "^4.5.0",
"eslint-plugin-svelte": "^3.12.5",
"eslint-plugin-unicorn": "^74.0.0",
"eslint-plugin-unicorn": "^76.0.0",
"globals": "^17.3.0",
"jiti": "^2.6.1",
"prettier": "^3.6.2",
@@ -13,7 +13,7 @@ export const asPostgresConfig = (params: DatabaseConnectionParams) => {
username: params.username,
password: params.password,
database: params.database,
ssl: params.ssl === DatabaseSslMode.Disable ? false : params.ssl,
ssl: params.ssl !== DatabaseSslMode.Disable && params.ssl,
};
}
+1 -1
View File
@@ -89,7 +89,7 @@ export const fromColumnValue = (columnValue?: ColumnValue): string | undefined |
};
export const setIsEqual = (source: Set<unknown>, target: Set<unknown>) =>
source.size === target.size && [...source].every((x) => target.has(x));
source.size === target.size && source.isSubsetOf(target);
export const haveEqualColumns = (sourceColumns?: string[], targetColumns?: string[]) => {
sourceColumns ??= [];
+1 -1
View File
@@ -90,7 +90,7 @@ export const syncOrder = (folder: string): { previous?: string[]; next: string[]
};
export const maybeSyncOrder = (folder: string): boolean =>
existsSync(join(folder, ORDER_FILENAME)) ? syncOrder(folder).changed : false;
existsSync(join(folder, ORDER_FILENAME)) && syncOrder(folder).changed;
export type VerifyOrderOptions = { appendOnlyFrom?: string[] };
+5 -3
View File
@@ -239,10 +239,12 @@ ${downSql}
const distBase = join(this.#migrationsFolder, migrationName);
for (const extension of ['.js', '.js.map', '.d.ts']) {
const filePath = `${distBase}${extension}`;
if (existsSync(filePath)) {
rmSync(filePath, { force: true });
console.log(`Removed ${filePath}`);
if (!existsSync(filePath)) {
continue;
}
rmSync(filePath, { force: true });
console.log(`Removed ${filePath}`);
}
if (maybeSyncOrder(sourceFolder)) {
@@ -64,6 +64,7 @@ export const processForeignKeyConstraints: Processor = (ctx, items) => {
continue;
}
// eslint-disable-next-line unicorn/prefer-continue
if (options.index || options.indexName || ctx.options.createForeignKeyIndexes) {
const indexName =
options.indexName ||
@@ -10,21 +10,23 @@ export const processPrimaryKeyConstraints: Processor = (ctx) => {
}
}
if (columnNames.length > 0) {
const tableMetadata = ctx.getTableMetadata(table);
table.constraints.push({
type: ConstraintType.PRIMARY_KEY,
name:
tableMetadata.options.primaryConstraintName ||
ctx.getNameFor({
type: 'primaryKey',
tableName: table.name,
columnNames,
}),
tableName: table.name,
columnNames,
synchronize: tableMetadata.options.synchronize ?? true,
});
if (columnNames.length === 0) {
continue;
}
const tableMetadata = ctx.getTableMetadata(table);
table.constraints.push({
type: ConstraintType.PRIMARY_KEY,
name:
tableMetadata.options.primaryConstraintName ||
ctx.getNameFor({
type: 'primaryKey',
tableName: table.name,
columnNames,
}),
tableName: table.name,
columnNames,
synchronize: tableMetadata.options.synchronize ?? true,
});
}
};
@@ -46,6 +46,7 @@ export const processUniqueConstraints: Processor = (ctx, items) => {
return ctx.onMissingColumn('@Column', object, propertyName);
}
// eslint-disable-next-line unicorn/prefer-continue
if (type === 'column' && !options.primary && (options.unique || options.uniqueConstraintName)) {
const uniqueConstraintName =
options.uniqueConstraintName ||
@@ -28,11 +28,13 @@ export const readComments: Reader = async (ctx, db) => {
continue;
}
if (comment.column_name) {
const column = table.columns.find(({ name }) => name === comment.column_name);
if (column) {
column.comment = comment.value;
}
if (!comment.column_name) {
continue;
}
const column = table.columns.find(({ name }) => name === comment.column_name);
if (column) {
column.comment = comment.value;
}
}
};
@@ -140,7 +140,7 @@ export const markedSvelte = (): MarkedExtension => ({
let output = `<Markdown.List${createAttributes({ ordered, start: start === 1 ? undefined : start })}>\n`;
for (const item of items) {
const content = this.parser.parse(item.tokens);
output += `<Markdown.ListItem${createAttributes({ task: item.task ? true : undefined, checked: item.checked })}>${content}</Markdown.ListItem>\n`;
output += `<Markdown.ListItem${createAttributes({ task: item.task || undefined, checked: item.checked })}>${content}</Markdown.ListItem>\n`;
}
output += `</Markdown.List>\n`;
@@ -82,7 +82,9 @@
});
let now = $state(DateTime.now());
// eslint-disable-next-line unicorn/prefer-logical-operator-over-ternary
let isStarted = $derived(since ? now >= since : true);
// eslint-disable-next-line unicorn/prefer-logical-operator-over-ternary
let isFinished = $derived(until ? now <= until : true);
let isVisible = $derived(isStarted && isFinished);
let timer: ReturnType<typeof setInterval>;
@@ -60,9 +60,9 @@
<code
class={cleanClass(
styles({
filledTheme: variant === 'filled' ? color : false,
outlineTheme: variant === 'outline' ? color : false,
ghostTheme: variant === 'ghost' ? color : false,
filledTheme: variant === 'filled' && color,
outlineTheme: variant === 'outline' && color,
ghostTheme: variant === 'ghost' && color,
size,
}),
className,
@@ -26,10 +26,12 @@
const indicator = $derived.by(() => {
const [_, yStart, xEnd, yEnd] = viewBox.split(' ', 4);
if (yStart && xEnd && yEnd) {
const radius = Math.min(Number(xEnd), Number(yEnd)) / 8;
return { x: Number(xEnd) - radius, y: Number(yStart) + radius, radius };
if (!yStart || !xEnd || !yEnd) {
return;
}
const radius = Math.min(Number(xEnd), Number(yEnd)) / 8;
return { x: Number(xEnd) - radius, y: Number(yStart) + radius, radius };
});
const indicatorStyles = tv({
@@ -61,7 +61,7 @@
}),
className,
)}
data-disabled={disabled ? true : undefined}
data-disabled={disabled || undefined}
>
<InputIcon icon={leadingIcon} {size} {disabled} />
@@ -144,14 +144,16 @@ class CommandPaletteManager {
}
this.#isEnabled = true;
if (globalThis.window && document.body) {
shortcuts(document.body, [
{ shortcut: { key: 'k', meta: true }, onShortcut: () => this.open() },
{ shortcut: { key: 'k', ctrl: true }, onShortcut: () => this.open() },
{ shortcut: { key: '/' }, preventDefault: true, onShortcut: () => this.open() },
]);
on(document.body, 'keydown', (event) => this.#handleKeydown(event));
if (!globalThis.window || !document.body) {
return;
}
shortcuts(document.body, [
{ shortcut: { key: 'k', meta: true }, onShortcut: () => this.open() },
{ shortcut: { key: 'k', ctrl: true }, onShortcut: () => this.open() },
{ shortcut: { key: '/' }, preventDefault: true, onShortcut: () => this.open() },
]);
on(document.body, 'keydown', (event) => this.#handleKeydown(event));
}
setTranslations(translations: CommandPaletteTranslations = {}) {
@@ -252,13 +254,15 @@ class CommandPaletteManager {
this.#selectedItemIndex--;
if (this.#selectedItemIndex < 0) {
this.#selectedGroupIndex--; // previous group
if (this.#selectedGroupIndex < 0) {
this.#selectedGroupIndex = groups.length - 1; // first group
}
this.#selectedItemIndex = groups[this.#selectedGroupIndex].items.length - 1;
if (this.#selectedItemIndex >= 0) {
return;
}
this.#selectedGroupIndex--; // previous group
if (this.#selectedGroupIndex < 0) {
this.#selectedGroupIndex = groups.length - 1; // first group
}
this.#selectedItemIndex = groups[this.#selectedGroupIndex].items.length - 1;
}
navigateDown() {
@@ -270,12 +274,14 @@ class CommandPaletteManager {
this.#selectedItemIndex++;
if (this.#selectedItemIndex >= group.items.length) {
this.#selectedItemIndex = 0;
this.#selectedGroupIndex++; // next group
if (this.#selectedGroupIndex >= groups.length) {
this.#selectedGroupIndex = 0; // first group
}
if (this.#selectedItemIndex < group.items.length) {
return;
}
this.#selectedItemIndex = 0;
this.#selectedGroupIndex++; // next group
if (this.#selectedGroupIndex >= groups.length) {
this.#selectedGroupIndex = 0; // first group
}
}
+6 -80
View File
@@ -194,8 +194,8 @@ importers:
specifier: ^3.12.5
version: 3.23.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(svelte@5.57.0(@typescript-eslint/types@8.69.0))
eslint-plugin-unicorn:
specifier: ^74.0.0
version: 74.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
specifier: ^76.0.0
version: 76.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
globals:
specifier: ^17.3.0
version: 17.12.0
@@ -3100,10 +3100,6 @@ packages:
confbox@0.2.4:
resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==}
convert-hrtime@5.0.0:
resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==}
engines: {node: '>=12'}
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -3312,8 +3308,8 @@ packages:
svelte:
optional: true
eslint-plugin-unicorn@74.0.0:
resolution: {integrity: sha512-AGnsGi2SxHg1HEAXxn9nSnZfyjvTWkxm8E8hpd/9tD6dLjBUdcD7+D6ZN64HmmCXTSXlrwVyUqe20Uyb2CaurA==}
eslint-plugin-unicorn@76.0.0:
resolution: {integrity: sha512-3ywJrCMHKYhcBP5yFzGaOOX3dY7+iR3hvpuoS/0EnhRFgVWLejly+t4fOdJvWQxJdHZl1C+QBW7hybXPDld4Pw==}
engines: {node: '>=22'}
peerDependencies:
eslint: '>=10.4'
@@ -3479,10 +3475,6 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
function-timeout@1.0.2:
resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==}
engines: {node: '>=18'}
fuse.js@7.5.0:
resolution: {integrity: sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow==}
engines: {node: '>=10'}
@@ -3594,10 +3586,6 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
is-identifier@1.1.0:
resolution: {integrity: sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==}
engines: {node: '>=18'}
is-plain-obj@4.1.0:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
@@ -3878,10 +3866,6 @@ packages:
magic-string@1.2.0:
resolution: {integrity: sha512-ptco+HFxTLgjafSLim2LojBSwfg5feBjd+SqyiwdGkzC38UPdZy3zgrHMI2CoTf5fJL38tbHMYWVzIH8BxGqJw==}
make-asynchronous@1.1.0:
resolution: {integrity: sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==}
engines: {node: '>=18'}
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
@@ -4096,10 +4080,6 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
p-event@6.0.1:
resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
engines: {node: '>=16.17'}
p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -4112,10 +4092,6 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
p-timeout@6.1.4:
resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
engines: {node: '>=14.16'}
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
@@ -4477,10 +4453,6 @@ packages:
style-to-object@1.0.14:
resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==}
super-regex@1.1.0:
resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==}
engines: {node: '>=18'}
supports-color@10.2.2:
resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
engines: {node: '>=18'}
@@ -4594,10 +4566,6 @@ packages:
text-decoder@1.2.7:
resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==}
time-span@5.1.0:
resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==}
engines: {node: '>=12'}
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@@ -4656,10 +4624,6 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
type-fest@4.41.0:
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
typescript-eslint@8.70.0:
resolution: {integrity: sha512-P/W5cz70/cQAuKfY3xwQMWWTV7BvJ0mAQmi+9mBcsVPaBUpd6Ohpa+fECv9rBFrQcig86jAiNBFNWUqnTjr4pw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4898,9 +4862,6 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
web-worker@1.5.0:
resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==}
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
@@ -6829,8 +6790,6 @@ snapshots:
confbox@0.2.4: {}
convert-hrtime@5.0.0: {}
convert-source-map@2.0.0: {}
cookie@0.6.0: {}
@@ -7074,7 +7033,7 @@ snapshots:
transitivePeerDependencies:
- ts-node
eslint-plugin-unicorn@74.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)):
eslint-plugin-unicorn@76.0.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)):
dependencies:
'@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
'@eslint/css-tree': 4.0.5
@@ -7087,9 +7046,9 @@ snapshots:
eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
find-up-simple: 1.0.1
globals: 17.12.0
identifier-regex: 1.1.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
is-identifier: 1.1.0
pluralize: 8.0.0
quote-js-string: 0.1.0
regjsparser: 0.13.2
@@ -7268,8 +7227,6 @@ snapshots:
fsevents@2.3.3:
optional: true
function-timeout@1.0.2: {}
fuse.js@7.5.0: {}
get-caller-file@2.0.5: {}
@@ -7349,11 +7306,6 @@ snapshots:
dependencies:
is-extglob: 2.1.1
is-identifier@1.1.0:
dependencies:
identifier-regex: 1.1.0
super-regex: 1.1.0
is-plain-obj@4.1.0: {}
is-reference@3.0.3:
@@ -7554,12 +7506,6 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
make-asynchronous@1.1.0:
dependencies:
p-event: 6.0.1
type-fest: 4.41.0
web-worker: 1.5.0
markdown-table@3.0.4: {}
marked@18.0.13: {}
@@ -7956,10 +7902,6 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
p-event@6.0.1:
dependencies:
p-timeout: 6.1.4
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
@@ -7972,8 +7914,6 @@ snapshots:
dependencies:
p-limit: 3.1.0
p-timeout@6.1.4: {}
package-json-from-dist@1.0.1: {}
package-manager-detector@1.8.0: {}
@@ -8414,12 +8354,6 @@ snapshots:
dependencies:
inline-style-parser: 0.2.7
super-regex@1.1.0:
dependencies:
function-timeout: 1.0.2
make-asynchronous: 1.1.0
time-span: 5.1.0
supports-color@10.2.2: {}
supports-color@7.2.0:
@@ -8598,10 +8532,6 @@ snapshots:
transitivePeerDependencies:
- react-native-b4a
time-span@5.1.0:
dependencies:
convert-hrtime: 5.0.0
tinybench@2.9.0: {}
tinyexec@1.3.0: {}
@@ -8652,8 +8582,6 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
type-fest@4.41.0: {}
typescript-eslint@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2):
dependencies:
'@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(@typescript/typescript6@6.0.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2))(@typescript/typescript6@6.0.2)(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)
@@ -9001,8 +8929,6 @@ snapshots:
vscode-uri@3.1.0: {}
web-worker@1.5.0: {}
webpack-virtual-modules@0.6.2: {}
which@2.0.2: