eslint.config.mjs:1:25 lint/style/useNodejsImportProtocol FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i A Node.js builtin module should be imported with the node: protocol. > 1 │ import { dirname } from "path"; │ ^^^^^^ 2 │ import { fileURLToPath } from "url"; 3 │ import { FlatCompat } from "@eslint/eslintrc"; i Using the node: protocol is more explicit and signals that the imported module belongs to Node.js. i Unsafe fix: Add the node: protocol. 1 │ - import·{·dirname·}·from·"path"; 1 │ + import·{·dirname·}·from·"node:path"; 2 2 │ import { fileURLToPath } from "url"; 3 3 │ import { FlatCompat } from "@eslint/eslintrc"; eslint.config.mjs:2:31 lint/style/useNodejsImportProtocol FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i A Node.js builtin module should be imported with the node: protocol. 1 │ import { dirname } from "path"; > 2 │ import { fileURLToPath } from "url"; │ ^^^^^ 3 │ import { FlatCompat } from "@eslint/eslintrc"; 4 │ i Using the node: protocol is more explicit and signals that the imported module belongs to Node.js. i Unsafe fix: Add the node: protocol. 1 1 │ import { dirname } from "path"; 2 │ - import·{·fileURLToPath·}·from·"url"; 2 │ + import·{·fileURLToPath·}·from·"node:url"; 3 3 │ import { FlatCompat } from "@eslint/eslintrc"; 4 4 │ find-port.ts:56:13 lint/complexity/noUselessContinue FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unnecessary continue statement 54 │ } catch (error) { 55 │ console.warn(`Gagal memeriksa port ${port}:`, error); > 56 │ continue; // Lanjutkan ke port berikutnya │ ^^^^^^^^^ 57 │ } 58 │ } i Safe fix: Delete the unnecessary continue statement 54 54 │ } catch (error) { 55 55 │ console.warn(`Gagal memeriksa port ${port}:`, error); 56 │ - ············continue;·//·Lanjutkan·ke·port·berikutnya 57 56 │ } 58 57 │ } vitest.config.ts:2:18 lint/style/useNodejsImportProtocol FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i A Node.js builtin module should be imported with the node: protocol. 1 │ import { defineConfig } from 'vitest/config'; > 2 │ import path from 'path'; │ ^^^^^^ 3 │ 4 │ export default defineConfig({ i Using the node: protocol is more explicit and signals that the imported module belongs to Node.js. i Unsafe fix: Add the node: protocol. 1 1 │ import { defineConfig } from 'vitest/config'; 2 │ - import·path·from·'path'; 2 │ + import·path·from·'node:path'; 3 3 │ 4 4 │ export default defineConfig({ zgen/image.ts:2:16 lint/style/useNodejsImportProtocol FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i A Node.js builtin module should be imported with the node: protocol. 1 │ /* eslint-disable @typescript-eslint/no-explicit-any */ > 2 │ import fs from "fs"; │ ^^^^ 3 │ import path from "path"; 4 │ i Using the node: protocol is more explicit and signals that the imported module belongs to Node.js. i Unsafe fix: Add the node: protocol. 1 1 │ /* eslint-disable @typescript-eslint/no-explicit-any */ 2 │ - import·fs·from·"fs"; 2 │ + import·fs·from·"node:fs"; 3 3 │ import path from "path"; 4 4 │ zgen/image.ts:3:18 lint/style/useNodejsImportProtocol FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i A Node.js builtin module should be imported with the node: protocol. 1 │ /* eslint-disable @typescript-eslint/no-explicit-any */ 2 │ import fs from "fs"; > 3 │ import path from "path"; │ ^^^^^^ 4 │ 5 │ // Fungsi untuk membaca direktori secara rekursif i Using the node: protocol is more explicit and signals that the imported module belongs to Node.js. i Unsafe fix: Add the node: protocol. 1 1 │ /* eslint-disable @typescript-eslint/no-explicit-any */ 2 2 │ import fs from "fs"; 3 │ - import·path·from·"path"; 3 │ + import·path·from·"node:path"; 4 4 │ 5 5 │ // Fungsi untuk membaca direktori secara rekursif __tests__/api/fileStorage.test.ts:10:43 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unexpected any. Specify a different type. 8 │ expect(response.status).toBe(200); 9 │ > 10 │ const responseBody = response.data as any; │ ^^^ 11 │ 12 │ expect(responseBody.data).toBeInstanceOf(Array); i any disables many type checking rules. Its use should be avoided. __tests__/api/fileStorage.test.ts:25:43 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unexpected any. Specify a different type. 24 │ expect(response.status).toBe(200); > 25 │ const responseBody = response.data as any; │ ^^^ 26 │ 27 │ expect(responseBody.data.realName).toBe('hello.png'); i any disables many type checking rules. Its use should be avoided. biome.json:10:5 deserialize DEPRECATED ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The property experimentalScannerIgnores is deprecated. 8 │ "files": { 9 │ "ignoreUnknown": false, > 10 │ "experimentalScannerIgnores": [ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 │ "node_modules", 12 │ ".next", i You may want to add the following entries to files.includes instead: - "!!**/node_modules" - "!!**/.next" - "!!**/out" - "!!**/public" i See the files.includes documentation for more information. prisma/_seeder_list/desa/berita/seed_berita.ts:85:21 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unexpected any. Specify a different type. 84 │ console.log(`✅ Berita seeded: ${b.judul}`); > 85 │ } catch (error: any) { │ ^^^ 86 │ console.error( 87 │ `❌ Failed to seed berita "${b.judul}": ${error.message}`, i any disables many type checking rules. Its use should be avoided. src/styles/dark-mode-table.css:12:49 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. 10 │ /* Table hover */ 11 │ .mantine-Table-tr:hover { > 12 │ background-color: rgba(255, 255, 255, 0.08) !important; │ ^^^^^^^^^^ 13 │ } 14 │ i This style reverses the cascade logic, and precedence is reversed. This could lead to having styles with higher specificity being overridden by styles with lower specificity. i Unsafe fix: Remove the style. 12 │ ····background-color:·rgba(255,·255,·255,·0.08)·!important; │ ----------- src/styles/dark-mode-table.css:17:49 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. 15 │ /* Table striped hover */ 16 │ .mantine-Table-striped .mantine-Table-tr:nth-of-type(odd):hover { > 17 │ background-color: rgba(255, 255, 255, 0.08) !important; │ ^^^^^^^^^^ 18 │ } 19 │ i This style reverses the cascade logic, and precedence is reversed. This could lead to having styles with higher specificity being overridden by styles with lower specificity. i Unsafe fix: Remove the style. 17 │ ····background-color:·rgba(255,·255,·255,·0.08)·!important; │ ----------- src/styles/dark-mode-table.css:22:49 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. 20 │ /* Table with column borders */ 21 │ .mantine-Table-withColumnBorders .mantine-Table-tr:hover { > 22 │ background-color: rgba(255, 255, 255, 0.08) !important; │ ^^^^^^^^^^ 23 │ } 24 │ } i This style reverses the cascade logic, and precedence is reversed. This could lead to having styles with higher specificity being overridden by styles with lower specificity. i Unsafe fix: Remove the style. 22 │ ····background-color:·rgba(255,·255,·255,·0.08)·!important; │ ----------- src/styles/dark-mode-table.css:29:43 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. 27 │ [data-mantine-color-scheme="light"] { 28 │ .mantine-Table-tr:hover { > 29 │ background-color: rgba(0, 0, 0, 0.02) !important; │ ^^^^^^^^^^ 30 │ } 31 │ } i This style reverses the cascade logic, and precedence is reversed. This could lead to having styles with higher specificity being overridden by styles with lower specificity. i Unsafe fix: Remove the style. 29 │ ····background-color:·rgba(0,·0,·0,·0.02)·!important; │ ----------- xcoba.ts:41:13 lint/complexity/useOptionalChain FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Change to an optional chain. 39 │ const resErr = new Response(child.stderr) 40 │ > 41 │ if (resOut && resOut.body) { │ ^^^^^^^^^^^^^^^^^^^^^ 42 │ for await (const chunk of resOut.body as unknown as AsyncIterable) { 43 │ const text = decoder.decode(chunk) i Unsafe fix: Change to an optional chain. 39 39 │ const resErr = new Response(child.stderr) 40 40 │ 41 │ - ········if·(resOut·&&·resOut.body)·{ 41 │ + ········if·(resOut?.body)·{ 42 42 │ for await (const chunk of resOut.body as unknown as AsyncIterable) { 43 43 │ const text = decoder.decode(chunk) xcoba.ts:51:13 lint/complexity/useOptionalChain FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Change to an optional chain. 49 │ } 50 │ > 51 │ if (resErr && resErr.body) { │ ^^^^^^^^^^^^^^^^^^^^^ 52 │ for await (const chunk of resErr.body as unknown as AsyncIterable) { 53 │ const text = decoder.decode(chunk) i Unsafe fix: Change to an optional chain. 49 49 │ } 50 50 │ 51 │ - ········if·(resErr·&&·resErr.body)·{ 51 │ + ········if·(resErr?.body)·{ 52 52 │ for await (const chunk of resErr.body as unknown as AsyncIterable) { 53 53 │ const text = decoder.decode(chunk) zgen/image.ts:29:32 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unexpected any. Specify a different type. 28 │ // Objek untuk menyimpan hasil > 29 │ const images: Record = {}; │ ^^^ 30 │ 31 │ try { i any disables many type checking rules. Its use should be avoided. prisma/_seeder_list/desa/berita/seed_berita.ts:34:16 lint/suspicious/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. 32 │ select: { id: true, name: true }, 33 │ }); > 34 │ kategoriList.forEach((k) => validKategoriIds.add(k.id)); │ ^^^^^^^ 35 │ 36 │ console.log(`📋 Found ${validKategoriIds.size} valid kategori IDs in database`); i Either remove this return or remove the returned value. 32 │ select: { id: true, name: true }, 33 │ }); > 34 │ kategoriList.forEach((k) => validKategoriIds.add(k.id)); │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ 35 │ 36 │ console.log(`📋 Found ${validKategoriIds.size} valid kategori IDs in database`); xcoba.ts:12:24 lint/suspicious/noAsyncPromiseExecutor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Promise executor functions should not be `async`. 10 │ }) { 11 │ const { env = {}, cmd, cwd = "./", timeout = 30000 } = params || {} > 12 │ return new Promise(async (resolve, reject) => { │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > 13 │ const std = { ... > 64 │ resolve(std) > 65 │ }) │ ^ 66 │ } 67 │ xcoba2.ts:14:24 lint/suspicious/noAsyncPromiseExecutor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Promise executor functions should not be `async`. 12 │ }) { 13 │ const { env = {}, cmd, cwd = "./", timeout = 600000 } = params || {}; > 14 │ return new Promise(async (resolve, reject) => { │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > 15 │ if (!cmd || typeof cmd !== "string") { ... > 75 │ } > 76 │ }); │ ^ 77 │ } 78 │ The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. Diagnostics not shown: 8971. Checked 1951 files in 886ms. No fixes applied. Found 4516 errors. Found 3861 warnings. Found 614 infos. lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Some errors were emitted while running checks.