diff --git a/apps/api/src/controllers/merchant/billing.controller.ts b/apps/api/src/controllers/merchant/billing.controller.ts index f2d2b74..419a9f9 100644 --- a/apps/api/src/controllers/merchant/billing.controller.ts +++ b/apps/api/src/controllers/merchant/billing.controller.ts @@ -182,6 +182,11 @@ export const MerchantBillingController = { }; format = (d) => d.toLocaleTimeString([], { hour: "2-digit", hour12: false }) + ":00"; + } else if (period === "90d") { + startTime = new Date(now.getTime() - 90 * 24 * 60 * 60 * 1000); + groupBy = { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } }; + format = (d) => + d.toLocaleDateString([], { month: "short", day: "numeric" }); } else if (period === "30d") { startTime = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000); groupBy = { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } }; @@ -214,7 +219,8 @@ export const MerchantBillingController = { // Fill in zeros for missing periods to ensure smooth chart const chartData: { name: string; volume: number }[] = []; - const steps = period === "24h" ? 24 : period === "30d" ? 30 : 7; + const steps = + period === "24h" ? 24 : period === "90d" ? 90 : period === "30d" ? 30 : 7; const stepMs = period === "24h" ? 3600000 : 86400000; for (let i = 0; i < steps; i++) { diff --git a/apps/api/src/routes/merchants.ts b/apps/api/src/routes/merchants.ts index 0b239ff..f4d0ff9 100644 --- a/apps/api/src/routes/merchants.ts +++ b/apps/api/src/routes/merchants.ts @@ -329,7 +329,7 @@ export async function merchantRoutes(app: FastifyInstance) { preHandler: requireAuth, schema: { querystring: z.object({ - period: z.enum(["24h", "7d", "30d"]).default("7d"), + period: z.enum(["24h", "7d", "30d", "90d"]).default("7d"), }), }, }, diff --git a/apps/checkout/src/app/checkout/[invoiceId]/CheckoutPageClient.tsx b/apps/checkout/src/app/checkout/[invoiceId]/CheckoutPageClient.tsx index ed7e181..9ef079e 100644 --- a/apps/checkout/src/app/checkout/[invoiceId]/CheckoutPageClient.tsx +++ b/apps/checkout/src/app/checkout/[invoiceId]/CheckoutPageClient.tsx @@ -79,7 +79,7 @@ export default function CheckoutPageClient({ (data: { status: string; confirmations: number; - txHash: string; + txHash: string | null; cryptoAmountReceived?: number; }) => { setInvoice((prev) => { diff --git a/apps/checkout/src/app/checkout/[invoiceId]/page.tsx b/apps/checkout/src/app/checkout/[invoiceId]/page.tsx index be82cb0..228e8c9 100644 --- a/apps/checkout/src/app/checkout/[invoiceId]/page.tsx +++ b/apps/checkout/src/app/checkout/[invoiceId]/page.tsx @@ -43,7 +43,7 @@ export async function generateMetadata({ description: `Amount: ${amount}. Pay securely with crypto via KnotEngine.`, images: invoice.merchant?.logo_url ? [invoice.merchant.logo_url] - : ["/og-image-checkout.png"], + : undefined, }, twitter: { card: "summary", @@ -51,7 +51,7 @@ export async function generateMetadata({ description: `Securely send ${amount} in crypto.`, images: invoice.merchant?.logo_url ? [invoice.merchant.logo_url] - : ["/og-image-checkout.png"], + : undefined, }, }; } diff --git a/apps/checkout/src/app/layout.tsx b/apps/checkout/src/app/layout.tsx index 293e877..1cfb700 100644 --- a/apps/checkout/src/app/layout.tsx +++ b/apps/checkout/src/app/layout.tsx @@ -34,20 +34,11 @@ export const metadata: Metadata = { siteName: "KnotEngine Checkout", title: "KnotEngine | Secure Crypto Checkout", description: "Accept crypto payments directly into your own wallet.", - images: [ - { - url: "/og-image-checkout.png", - width: 1200, - height: 630, - alt: "KnotEngine Secure Checkout", - }, - ], }, twitter: { card: "summary_large_image", title: "KnotEngine | Secure Crypto Checkout", description: "Accept crypto payments directly into your own wallet.", - images: ["/og-image-checkout.png"], creator: "@knotengine", }, }; diff --git a/apps/checkout/src/components/CheckoutCard.tsx b/apps/checkout/src/components/CheckoutCard.tsx index 2e22718..ca15cb7 100644 --- a/apps/checkout/src/components/CheckoutCard.tsx +++ b/apps/checkout/src/components/CheckoutCard.tsx @@ -5,36 +5,10 @@ import { QRCodeSVG } from "qrcode.react"; import { Copy, Check, Clock, AlertCircle, Wallet } from "lucide-react"; import { cn } from "@/lib/utils"; import { CRYPTO_LOGOS, Currency } from "@qodinger/knot-types"; +import { Invoice } from "@/types/invoice"; interface CheckoutCardProps { - invoice: { - invoice_id: string; - amount_usd: number; - crypto_amount: number; - crypto_amount_received?: number; - crypto_currency: string; - pay_address: string; - status: string; - expires_at: string; - fee_usd: number; - metadata?: { - isTestnet?: boolean; - feeResponsibility?: "client" | "merchant"; - }; - merchant?: { - name: string; - logo_url?: string | null; - return_url?: string | null; - theme?: "light" | "dark" | "system"; - brand_color?: string; - branding_enabled?: boolean; - branding_alignment?: "left" | "center"; - remove_branding?: boolean; - bip21_enabled?: boolean; - plan?: "starter" | "professional" | "enterprise"; - }; - description?: string; - }; + invoice: Invoice; } export function CheckoutCard({ invoice }: CheckoutCardProps) { @@ -278,10 +252,10 @@ export function CheckoutCard({ invoice }: CheckoutCardProps) { USD

{invoice.metadata?.feeResponsibility === "client" && - invoice.fee_usd > 0 && + (invoice.fee_usd ?? 0) > 0 && invoice.status !== "partially_paid" && (

- Includes ${invoice.fee_usd.toFixed(2)} Platform Fee + Includes ${(invoice.fee_usd ?? 0).toFixed(2)} Platform Fee

)} diff --git a/apps/checkout/src/types/invoice.ts b/apps/checkout/src/types/invoice.ts index b7da3c3..f899fc6 100644 --- a/apps/checkout/src/types/invoice.ts +++ b/apps/checkout/src/types/invoice.ts @@ -7,12 +7,18 @@ export interface Invoice { pay_address: string; status: string; expires_at: string; - fee_usd: number; - tx_hash?: string; + fee_usd?: number; + fee_crypto?: number; + tx_hash?: string | null; confirmations?: number; + required_confirmations?: number; + paid_at?: string | null; + created_at?: string; metadata?: { isTestnet?: boolean; feeResponsibility?: "client" | "merchant"; + network?: string; + baseAmountUsd?: number; }; merchant?: { name: string; @@ -23,7 +29,9 @@ export interface Invoice { branding_enabled?: boolean; remove_branding?: boolean; bip21_enabled?: boolean; + branding_alignment?: "left" | "center"; plan?: "starter" | "professional" | "enterprise"; }; - description?: string; + description?: string | null; + checkout_url?: string; } diff --git a/package.json b/package.json index 43d97c4..1c32454 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ }, "devDependencies": { "@commitlint/cli": "^20.4.1", - "@commitlint/config-conventional": "^20.4.1", + "@commitlint/config-conventional": "^21.0.1", "@types/node": "^25.2.3", "@typescript-eslint/eslint-plugin": "^8.56.0", "@typescript-eslint/parser": "^8.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ad430a..6c0c3cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^20.4.1 version: 20.4.1(@types/node@25.2.3)(typescript@5.9.3) '@commitlint/config-conventional': - specifier: ^20.4.1 - version: 20.4.1 + specifier: ^21.0.1 + version: 21.0.1 '@types/node': specifier: ^25.2.3 version: 25.2.3 @@ -349,7 +349,7 @@ importers: version: 9.39.2(jiti@2.6.1) eslint-config-next: specifier: 16.1.6 - version: 16.1.6(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 16.1.6(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) shadcn: specifier: ^3.8.5 version: 3.8.5(@types/node@20.19.33)(typescript@5.9.3) @@ -607,9 +607,9 @@ packages: engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@20.4.1': - resolution: {integrity: sha512-0YUvIeBtpi86XriqrR+TCULVFiyYTIOEPjK7tTRMxjcBm1qlzb+kz7IF2WxL6Fq5DaundG8VO37BNgMkMTBwqA==} - engines: {node: '>=v18'} + '@commitlint/config-conventional@21.0.1': + resolution: {integrity: sha512-gRorrkfWOh/+V5X8GYWWbQvrzPczopGMS4CCNrQdHkK4xWElv82BDvIsDhJZWTlI7TazOlYea6VATufCsFs+sw==} + engines: {node: '>=22.12.0'} '@commitlint/config-validator@20.4.0': resolution: {integrity: sha512-zShmKTF+sqyNOfAE0vKcqnpvVpG0YX8F9G/ZIQHI2CoKyK+PSdladXMSns400aZ5/QZs+0fN75B//3Q5CHw++w==} @@ -671,6 +671,10 @@ packages: resolution: {integrity: sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==} engines: {node: '>=v18'} + '@commitlint/types@21.0.1': + resolution: {integrity: sha512-4u7w8jcoCUFWhjWnASYzZHAP34OqOtuFBN87nQmFvqda03YU0T6z+yB4w0gSAMpekiRqqGk5rt+qSlW+a2vSEg==} + engines: {node: '>=22.12.0'} + '@dotenvx/dotenvx@1.52.0': resolution: {integrity: sha512-CaQcc8JvtzQhUSm9877b6V4Tb7HCotkcyud9X2YwdqtQKwgljkMRwU96fVYKnzN3V0Hj74oP7Es+vZ0mS+Aa1w==} hasBin: true @@ -2348,6 +2352,10 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@simple-libs/stream-utils@1.2.0': + resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==} + engines: {node: '>=18'} + '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} @@ -2622,6 +2630,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} @@ -3168,8 +3177,8 @@ packages: resolution: {integrity: sha512-GGf2Nipn1RUCAktxuVauVr1e3r8QrLP/B0lEUsFktmGqc3ddbQkhoJZHJctVU829U1c6mTSWftrVOCHaL85Q3w==} engines: {node: '>=18'} - conventional-changelog-conventionalcommits@9.1.0: - resolution: {integrity: sha512-MnbEysR8wWa8dAEvbj5xcBgJKQlX/m0lhS8DsyAAWDHdfs2faDJxTgzRYlRYpXSe7UiKrIIlB4TrBKU9q9DgkA==} + conventional-changelog-conventionalcommits@9.3.1: + resolution: {integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==} engines: {node: '>=18'} conventional-commits-parser@6.2.1: @@ -3177,6 +3186,11 @@ packages: engines: {node: '>=18'} hasBin: true + conventional-commits-parser@6.4.0: + resolution: {integrity: sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==} + engines: {node: '>=18'} + hasBin: true + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -4003,6 +4017,7 @@ packages: git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true glob-parent@5.1.2: @@ -6256,6 +6271,7 @@ packages: uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@11.1.0: @@ -6724,10 +6740,10 @@ snapshots: - '@types/node' - typescript - '@commitlint/config-conventional@20.4.1': + '@commitlint/config-conventional@21.0.1': dependencies: - '@commitlint/types': 20.4.0 - conventional-changelog-conventionalcommits: 9.1.0 + '@commitlint/types': 21.0.1 + conventional-changelog-conventionalcommits: 9.3.1 '@commitlint/config-validator@20.4.0': dependencies: @@ -6820,6 +6836,11 @@ snapshots: conventional-commits-parser: 6.2.1 picocolors: 1.1.1 + '@commitlint/types@21.0.1': + dependencies: + conventional-commits-parser: 6.4.0 + picocolors: 1.1.1 + '@dotenvx/dotenvx@1.52.0': dependencies: commander: 11.1.0 @@ -8349,6 +8370,8 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} + '@simple-libs/stream-utils@1.2.0': {} + '@sinclair/typebox@0.27.10': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -9247,7 +9270,7 @@ snapshots: dependencies: compare-func: 2.0.0 - conventional-changelog-conventionalcommits@9.1.0: + conventional-changelog-conventionalcommits@9.3.1: dependencies: compare-func: 2.0.0 @@ -9255,6 +9278,11 @@ snapshots: dependencies: meow: 13.2.0 + conventional-commits-parser@6.4.0: + dependencies: + '@simple-libs/stream-utils': 1.2.0 + meow: 13.2.0 + convert-source-map@2.0.0: {} cookie-signature@1.2.2: {} @@ -9683,33 +9711,13 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@next/eslint-plugin-next': 16.1.6 - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) - globals: 16.4.0 - typescript-eslint: 8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 16.1.6 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) @@ -9735,21 +9743,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - get-tsconfig: 4.13.6 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 @@ -9761,62 +9754,22 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.56.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.56.0(eslint@8.57.1)(typescript@5.9.3) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9827,7 +9780,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3