health-issues.json
{
"schema_version": 4,
"version": "2.54.2",
"elapsed_ms": 103,
"findings": [
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"name": "getProductFormDefaults",
"line": 26,
"col": 7,
"cyclomatic": 63,
"cognitive": 18,
"line_count": 28,
"param_count": 3,
"exceeded": "all",
"severity": "critical",
"crap": 4032.0,
"coverage_tier": "none",
"actions": [
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `getProductFormDefaults` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractProductFromQuery",
"line": 1230,
"col": 0,
"cyclomatic": 52,
"cognitive": 39,
"line_count": 239,
"param_count": 2,
"exceeded": "all",
"severity": "critical",
"crap": 2756.0,
"coverage_tier": "none",
"actions": [
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `extractProductFromQuery` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"name": "mapSearchResult",
"line": 235,
"col": 24,
"cyclomatic": 40,
"cognitive": 18,
"line_count": 27,
"param_count": 2,
"exceeded": "all",
"severity": "critical",
"crap": 1640.0,
"coverage_tier": "none",
"actions": [
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `mapSearchResult` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"name": "PurchaseForm",
"line": 32,
"col": 15,
"cyclomatic": 30,
"cognitive": 16,
"line_count": 368,
"param_count": 1,
"exceeded": "all",
"severity": "critical",
"crap": 930.0,
"coverage_tier": "none",
"actions": [
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `PurchaseForm` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "items",
"line": 380,
"col": 26,
"cyclomatic": 30,
"cognitive": 24,
"line_count": 81,
"param_count": 2,
"exceeded": "all",
"severity": "critical",
"crap": 930.0,
"coverage_tier": "none",
"actions": [
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `items` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/order.ts",
"name": "addOrder",
"line": 59,
"col": 12,
"cyclomatic": 26,
"cognitive": 32,
"line_count": 245,
"param_count": 1,
"exceeded": "all",
"severity": "critical",
"crap": 702.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `addOrder` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `addOrder` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/auth.ts",
"name": "<arrow>",
"line": 116,
"col": 34,
"cyclomatic": 25,
"cognitive": 18,
"line_count": 135,
"param_count": 1,
"exceeded": "all",
"severity": "critical",
"crap": 650.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `<arrow>` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "ProductDetailContent",
"line": 78,
"col": 0,
"cyclomatic": 24,
"cognitive": 18,
"line_count": 669,
"param_count": 0,
"exceeded": "all",
"severity": "critical",
"crap": 600.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductDetailContent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `ProductDetailContent` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "inferInvoiceData",
"line": 287,
"col": 0,
"cyclomatic": 24,
"cognitive": 18,
"line_count": 179,
"param_count": 3,
"exceeded": "all",
"severity": "critical",
"crap": 600.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `inferInvoiceData` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `inferInvoiceData` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "RouteComponent",
"line": 96,
"col": 0,
"cyclomatic": 23,
"cognitive": 27,
"line_count": 270,
"param_count": 0,
"exceeded": "all",
"severity": "critical",
"crap": 552.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `RouteComponent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `RouteComponent` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"name": "getInfiniteProducts",
"line": 769,
"col": 27,
"cyclomatic": 22,
"cognitive": 31,
"line_count": 143,
"param_count": 1,
"exceeded": "all",
"severity": "critical",
"crap": 506.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getInfiniteProducts` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `getInfiniteProducts` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"name": "<arrow>",
"line": 177,
"col": 5,
"cyclomatic": 21,
"cognitive": 12,
"line_count": 80,
"param_count": 1,
"exceeded": "cyclomatic_crap",
"severity": "critical",
"crap": 462.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `<arrow>` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"name": "OrderForm",
"line": 30,
"col": 18,
"cyclomatic": 20,
"cognitive": 10,
"line_count": 230,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 420.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `OrderForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `OrderForm` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"name": "DataPagination",
"line": 23,
"col": 7,
"cyclomatic": 18,
"cognitive": 17,
"line_count": 137,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 342.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `DataPagination` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `DataPagination` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"name": "OrderDetailContent",
"line": 60,
"col": 0,
"cyclomatic": 18,
"cognitive": 18,
"line_count": 564,
"param_count": 0,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 342.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `OrderDetailContent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `OrderDetailContent` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.add.tsx",
"name": "AddPurchasePage",
"line": 43,
"col": 0,
"cyclomatic": 18,
"cognitive": 17,
"line_count": 167,
"param_count": 0,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 342.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `AddPurchasePage` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `AddPurchasePage` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "scrapeAmazonProduct",
"line": 603,
"col": 0,
"cyclomatic": 18,
"cognitive": 14,
"line_count": 57,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 342.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `scrapeAmazonProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `scrapeAmazonProduct` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "translateAndStructureProduct",
"line": 751,
"col": 0,
"cyclomatic": 18,
"cognitive": 11,
"line_count": 112,
"param_count": 4,
"exceeded": "crap",
"severity": "critical",
"crap": 342.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `translateAndStructureProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `translateAndStructureProduct` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"name": "buildOgSvg",
"line": 137,
"col": 0,
"cyclomatic": 17,
"cognitive": 18,
"line_count": 109,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 306.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `buildOgSvg` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `buildOgSvg` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"name": "ProductCard",
"line": 180,
"col": 20,
"cyclomatic": 17,
"cognitive": 11,
"line_count": 337,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 306.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductCard` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `ProductCard` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"name": "<arrow>",
"line": 229,
"col": 18,
"cyclomatic": 16,
"cognitive": 18,
"line_count": 52,
"param_count": 2,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 272.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `<arrow>` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"name": "getPaginatedProducts",
"line": 267,
"col": 28,
"cyclomatic": 16,
"cognitive": 16,
"line_count": 92,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 272.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getPaginatedProducts` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `getPaginatedProducts` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractProductImageIds",
"line": 116,
"col": 0,
"cyclomatic": 16,
"cognitive": 24,
"line_count": 67,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 272.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `extractProductImageIds` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `extractProductImageIds` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"name": "RouteComponent",
"line": 50,
"col": 0,
"cyclomatic": 16,
"cognitive": 14,
"line_count": 223,
"param_count": 0,
"exceeded": "crap",
"severity": "critical",
"crap": 272.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `RouteComponent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `RouteComponent` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "ProductsList",
"line": 67,
"col": 21,
"cyclomatic": 16,
"cognitive": 12,
"line_count": 598,
"param_count": 0,
"exceeded": "crap",
"severity": "critical",
"crap": 272.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductsList` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `ProductsList` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/editable-field.tsx",
"name": "EditableField",
"line": 28,
"col": 7,
"cyclomatic": 15,
"cognitive": 22,
"line_count": 129,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 240.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `EditableField` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `EditableField` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "addProduct",
"line": 140,
"col": 12,
"cyclomatic": 15,
"cognitive": 16,
"line_count": 81,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 240.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `addProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `addProduct` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"name": "DraftFields",
"line": 89,
"col": 0,
"cyclomatic": 15,
"cognitive": 7,
"line_count": 110,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 240.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `DraftFields` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `DraftFields` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"name": "FilterBar",
"line": 68,
"col": 45,
"cyclomatic": 15,
"cognitive": 12,
"line_count": 498,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 240.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `FilterBar` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `FilterBar` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "analyzeProductImages",
"line": 662,
"col": 0,
"cyclomatic": 15,
"cognitive": 7,
"line_count": 87,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 240.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `analyzeProductImages` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `analyzeProductImages` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "updateProduct",
"line": 261,
"col": 12,
"cyclomatic": 14,
"cognitive": 17,
"line_count": 85,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `updateProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `updateProduct` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "createProductFromDraft",
"line": 501,
"col": 0,
"cyclomatic": 14,
"cognitive": 11,
"line_count": 57,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createProductFromDraft` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "ProductsFilters",
"line": 367,
"col": 0,
"cyclomatic": 14,
"cognitive": 13,
"line_count": 143,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductsFilters` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "receivePurchase",
"line": 500,
"col": 23,
"cyclomatic": 14,
"cognitive": 14,
"line_count": 98,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `receivePurchase` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"name": "OrdersFilters",
"line": 305,
"col": 0,
"cyclomatic": 14,
"cognitive": 13,
"line_count": 193,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `OrdersFilters` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "selectProductImagesWithGemini",
"line": 348,
"col": 0,
"cyclomatic": 14,
"cognitive": 10,
"line_count": 62,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `selectProductImagesWithGemini` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "refineProductOnlyImagesWithGemini",
"line": 411,
"col": 0,
"cyclomatic": 14,
"cognitive": 10,
"line_count": 63,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `refineProductOnlyImagesWithGemini` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/orders.ts",
"name": "getPaginatedOrders",
"line": 378,
"col": 26,
"cyclomatic": 14,
"cognitive": 15,
"line_count": 154,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 210.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getPaginatedOrders` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/uploads.ts",
"name": "<arrow>",
"line": 220,
"col": 25,
"cyclomatic": 13,
"cognitive": 19,
"line_count": 149,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 182.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `<arrow>` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "payload",
"line": 217,
"col": 2,
"cyclomatic": 13,
"cognitive": 6,
"line_count": 17,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 182.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `payload` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"name": "AIProductPreview",
"line": 352,
"col": 7,
"cyclomatic": 13,
"cognitive": 10,
"line_count": 202,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 182.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `AIProductPreview` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"name": "SearchBar",
"line": 16,
"col": 18,
"cyclomatic": 12,
"cognitive": 18,
"line_count": 194,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `SearchBar` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `SearchBar` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractAmazonPriceUsd",
"line": 234,
"col": 0,
"cyclomatic": 12,
"cognitive": 16,
"line_count": 47,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `extractAmazonPriceUsd` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `extractAmazonPriceUsd` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "uploadImagesToR2",
"line": 865,
"col": 0,
"cyclomatic": 12,
"cognitive": 23,
"line_count": 139,
"param_count": 2,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `uploadImagesToR2` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `uploadImagesToR2` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "retrieveAssistantContext",
"line": 112,
"col": 0,
"cyclomatic": 12,
"cognitive": 16,
"line_count": 63,
"param_count": 1,
"exceeded": "cognitive_crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `retrieveAssistantContext` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "refactor-function",
"auto_fixable": false,
"description": "Refactor `retrieveAssistantContext` to reduce complexity (extract helper functions, simplify branching)",
"note": "Consider splitting into smaller functions with single responsibilities"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"name": "PurchaseLineEditor",
"line": 200,
"col": 7,
"cyclomatic": 12,
"cognitive": 12,
"line_count": 128,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `PurchaseLineEditor` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"name": "SelectProductForm",
"line": 15,
"col": 26,
"cyclomatic": 12,
"cognitive": 5,
"line_count": 261,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `SelectProductForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"name": "getAiProductFormValues",
"line": 55,
"col": 7,
"cyclomatic": 12,
"cognitive": 11,
"line_count": 27,
"param_count": 3,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getAiProductFormValues` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "cacheMiddleware",
"line": 245,
"col": 37,
"cyclomatic": 12,
"cognitive": 9,
"line_count": 47,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `cacheMiddleware` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.$id.tsx",
"name": "PurchaseDetailPage",
"line": 62,
"col": 0,
"cyclomatic": 12,
"cognitive": 11,
"line_count": 424,
"param_count": 0,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `PurchaseDetailPage` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"name": "BenchmarkComparison",
"line": 26,
"col": 15,
"cyclomatic": 12,
"cognitive": 6,
"line_count": 235,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 156.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `BenchmarkComparison` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"name": "upsertProductToSearch",
"line": 312,
"col": 37,
"cyclomatic": 11,
"cognitive": 10,
"line_count": 37,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `upsertProductToSearch` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"name": "QpayPaymentPanel",
"line": 15,
"col": 25,
"cyclomatic": 11,
"cognitive": 6,
"line_count": 163,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `QpayPaymentPanel` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"name": "<arrow>",
"line": 166,
"col": 15,
"cyclomatic": 11,
"cognitive": 5,
"line_count": 14,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"name": "splitTitle",
"line": 47,
"col": 0,
"cyclomatic": 11,
"cognitive": 15,
"line_count": 51,
"param_count": 3,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `splitTitle` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/useSearchParam.ts",
"name": "setParam",
"line": 52,
"col": 18,
"cyclomatic": 11,
"cognitive": 11,
"line_count": 27,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `setParam` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "resolveOrCreateBrandId",
"line": 312,
"col": 0,
"cyclomatic": 11,
"cognitive": 8,
"line_count": 35,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `resolveOrCreateBrandId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "searchAmazonProduct",
"line": 561,
"col": 0,
"cyclomatic": 11,
"cognitive": 11,
"line_count": 40,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `searchAmazonProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"name": "items",
"line": 151,
"col": 19,
"cyclomatic": 11,
"cognitive": 10,
"line_count": 15,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 132.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `items` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"name": "RouteComponent",
"line": 90,
"col": 0,
"cyclomatic": 10,
"cognitive": 9,
"line_count": 387,
"param_count": 0,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `RouteComponent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"name": "upsertPromises",
"line": 75,
"col": 35,
"cyclomatic": 10,
"cognitive": 7,
"line_count": 29,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `upsertPromises` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"name": "ProductSummary",
"line": 90,
"col": 0,
"cyclomatic": 10,
"cognitive": 8,
"line_count": 89,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductSummary` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"name": "validateSessionToken",
"line": 79,
"col": 1,
"cyclomatic": 10,
"cognitive": 5,
"line_count": 75,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `validateSessionToken` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "createPurchase",
"line": 432,
"col": 22,
"cyclomatic": 10,
"cognitive": 8,
"line_count": 31,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createPurchase` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"name": "AIProductInput",
"line": 85,
"col": 7,
"cyclomatic": 10,
"cognitive": 7,
"line_count": 259,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `AIProductInput` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"name": "OrderCard",
"line": 23,
"col": 18,
"cyclomatic": 10,
"cognitive": 8,
"line_count": 219,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `OrderCard` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "<arrow>",
"line": 1123,
"col": 12,
"cyclomatic": 10,
"cognitive": 7,
"line_count": 105,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "getWebAnalytics",
"line": 89,
"col": 22,
"cyclomatic": 10,
"cognitive": 9,
"line_count": 39,
"param_count": 1,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getWebAnalytics` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/auth.ts",
"name": "isValidGoogleIdTokenClaims",
"line": 52,
"col": 0,
"cyclomatic": 10,
"cognitive": 9,
"line_count": 34,
"param_count": 2,
"exceeded": "crap",
"severity": "critical",
"crap": 110.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `isValidGoogleIdTokenClaims` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"name": "searchProducts",
"line": 267,
"col": 30,
"cyclomatic": 9,
"cognitive": 7,
"line_count": 41,
"param_count": 3,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `searchProducts` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"name": "getAccessToken",
"line": 72,
"col": 23,
"cyclomatic": 9,
"cognitive": 10,
"line_count": 45,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getAccessToken` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "derivePurchaseStatus",
"line": 50,
"col": 0,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 24,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `derivePurchaseStatus` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "updatePurchase",
"line": 464,
"col": 22,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 35,
"param_count": 3,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `updatePurchase` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/order.ts",
"name": "addOrder",
"line": 23,
"col": 12,
"cyclomatic": 9,
"cognitive": 9,
"line_count": 102,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `addOrder` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "isLikelyJunkImage",
"line": 193,
"col": 0,
"cyclomatic": 9,
"cognitive": 6,
"line_count": 16,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `isLikelyJunkImage` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/payments.ts",
"name": "<arrow>",
"line": 9,
"col": 17,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 86,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/lib/restock-notifier.ts",
"name": "processWatchedProduct",
"line": 124,
"col": 0,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 35,
"param_count": 3,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `processWatchedProduct` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 307,
"col": 12,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 63,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 459,
"col": 9,
"cyclomatic": 9,
"cognitive": 6,
"line_count": 133,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"name": "createLogEntry",
"line": 48,
"col": 0,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 36,
"param_count": 6,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createLogEntry` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"name": "buildPurchasePayload",
"line": 169,
"col": 7,
"cyclomatic": 9,
"cognitive": 8,
"line_count": 36,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 90.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `buildPurchasePayload` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "scoreProductMatch",
"line": 97,
"col": 0,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 22,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `scoreProductMatch` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "retrieveCandidateProducts",
"line": 145,
"col": 0,
"cyclomatic": 8,
"cognitive": 10,
"line_count": 34,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `retrieveCandidateProducts` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"name": "buildSearchContent",
"line": 205,
"col": 27,
"cyclomatic": 8,
"cognitive": 7,
"line_count": 17,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `buildSearchContent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"name": "invalidateSession",
"line": 155,
"col": 1,
"cyclomatic": 8,
"cognitive": 10,
"line_count": 20,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `invalidateSession` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"name": "checkUnauthorized",
"line": 12,
"col": 26,
"cyclomatic": 8,
"cognitive": 5,
"line_count": 35,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `checkUnauthorized` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"name": "getBrandId",
"line": 83,
"col": 0,
"cyclomatic": 8,
"cognitive": 4,
"line_count": 9,
"param_count": 3,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getBrandId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product-images.ts",
"name": "<arrow>",
"line": 106,
"col": 12,
"cyclomatic": 8,
"cognitive": 9,
"line_count": 50,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"name": "handleSubmit",
"line": 191,
"col": 22,
"cyclomatic": 8,
"cognitive": 6,
"line_count": 45,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `handleSubmit` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/uploads.ts",
"name": "<arrow>",
"line": 31,
"col": 22,
"cyclomatic": 8,
"cognitive": 7,
"line_count": 117,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "ProductsList",
"line": 511,
"col": 0,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 119,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductsList` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "syncPurchaseItems",
"line": 199,
"col": 0,
"cyclomatic": 8,
"cognitive": 14,
"line_count": 77,
"param_count": 3,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `syncPurchaseItems` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"name": "ProductForm",
"line": 48,
"col": 20,
"cyclomatic": 8,
"cognitive": 7,
"line_count": 505,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "syncProductSearchIndex",
"line": 31,
"col": 31,
"cyclomatic": 8,
"cognitive": 4,
"line_count": 27,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `syncProductSearchIndex` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"name": "RouteComponent",
"line": 113,
"col": 0,
"cyclomatic": 8,
"cognitive": 4,
"line_count": 191,
"param_count": 0,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `RouteComponent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"name": "getPrimaryImageUrl",
"line": 103,
"col": 0,
"cyclomatic": 8,
"cognitive": 5,
"line_count": 19,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getPrimaryImageUrl` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/sales.ts",
"name": "getAnalyticsForHome",
"line": 16,
"col": 27,
"cyclomatic": 8,
"cognitive": 4,
"line_count": 30,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getAnalyticsForHome` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "getAssistantProductInfo",
"line": 87,
"col": 0,
"cyclomatic": 8,
"cognitive": 4,
"line_count": 24,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getAssistantProductInfo` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/payment.ts",
"name": "<arrow>",
"line": 234,
"col": 12,
"cyclomatic": 8,
"cognitive": 9,
"line_count": 60,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "<arrow>",
"line": 19,
"col": 25,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 31,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "normalizeLogPayload",
"line": 10,
"col": 28,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 60,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `normalizeLogPayload` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "loggingMiddleware",
"line": 197,
"col": 1,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 46,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `loggingMiddleware` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/logger/src/context.ts",
"name": "createRequestContext",
"line": 32,
"col": 7,
"cyclomatic": 8,
"cognitive": 2,
"line_count": 26,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createRequestContext` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "filterProductImages",
"line": 475,
"col": 0,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 47,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `filterProductImages` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "shouldShowEmptyState",
"line": 280,
"col": 41,
"cyclomatic": 8,
"cognitive": 3,
"line_count": 16,
"param_count": 0,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `shouldShowEmptyState` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "getConversionFunnel",
"line": 160,
"col": 26,
"cyclomatic": 8,
"cognitive": 7,
"line_count": 33,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getConversionFunnel` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"name": "createLineFromAIItem",
"line": 48,
"col": 0,
"cyclomatic": 8,
"cognitive": 7,
"line_count": 16,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createLineFromAIItem` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"name": "<arrow>",
"line": 61,
"col": 8,
"cyclomatic": 8,
"cognitive": 8,
"line_count": 62,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 72.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"name": "BrandForm",
"line": 24,
"col": 18,
"cyclomatic": 7,
"cognitive": 4,
"line_count": 123,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `BrandForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "scoreRetrievedCandidate",
"line": 180,
"col": 0,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 21,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `scoreRetrievedCandidate` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "<arrow>",
"line": 583,
"col": 34,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 30,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"name": "getTotalProfit",
"line": 29,
"col": 22,
"cyclomatic": 7,
"cognitive": 3,
"line_count": 15,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getTotalProfit` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"name": "<arrow>",
"line": 262,
"col": 11,
"cyclomatic": 7,
"cognitive": 3,
"line_count": 6,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"name": "HomeComponent",
"line": 46,
"col": 0,
"cyclomatic": 7,
"cognitive": 7,
"line_count": 312,
"param_count": 0,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `HomeComponent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"name": "fetch",
"line": 68,
"col": 11,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 24,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `fetch` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/pages/api/hello.ts",
"name": "GET",
"line": 3,
"col": 29,
"cyclomatic": 7,
"cognitive": 3,
"line_count": 20,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `GET` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"name": "<arrow>",
"line": 79,
"col": 12,
"cyclomatic": 7,
"cognitive": 9,
"line_count": 68,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "normalizeAssistantResponse",
"line": 239,
"col": 0,
"cyclomatic": 7,
"cognitive": 10,
"line_count": 37,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `normalizeAssistantResponse` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractAndUploadProductImages",
"line": 1005,
"col": 0,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 103,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `extractAndUploadProductImages` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "getPageTitle",
"line": 418,
"col": 22,
"cyclomatic": 7,
"cognitive": 8,
"line_count": 17,
"param_count": 0,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getPageTitle` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "<arrow>",
"line": 294,
"col": 28,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 8,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"name": "ProductQuantitySelector",
"line": 23,
"col": 15,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 193,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ProductQuantitySelector` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"name": "<arrow>",
"line": 99,
"col": 19,
"cyclomatic": 7,
"cognitive": 2,
"line_count": 11,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"name": "buildImportedPurchasePayload",
"line": 127,
"col": 7,
"cyclomatic": 7,
"cognitive": 6,
"line_count": 41,
"param_count": 2,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `buildImportedPurchasePayload` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"name": "onMessagingPostback",
"line": 29,
"col": 23,
"cyclomatic": 7,
"cognitive": 10,
"line_count": 49,
"param_count": 1,
"exceeded": "crap",
"severity": "high",
"crap": 56.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `onMessagingPostback` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/customers/customer-form.tsx",
"name": "CustomerForm",
"line": 42,
"col": 21,
"cyclomatic": 6,
"cognitive": 4,
"line_count": 112,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `CustomerForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "ensureBrandId",
"line": 467,
"col": 0,
"cyclomatic": 6,
"cognitive": 4,
"line_count": 26,
"param_count": 3,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ensureBrandId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"name": "TagsInput",
"line": 133,
"col": 7,
"cyclomatic": 6,
"cognitive": 4,
"line_count": 133,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `TagsInput` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/astro.config.mjs",
"name": "filter",
"line": 53,
"col": 11,
"cyclomatic": 6,
"cognitive": 1,
"line_count": 7,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `filter` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"name": "bulkSyncProductsToUpstash",
"line": 64,
"col": 41,
"cyclomatic": 6,
"cognitive": 13,
"line_count": 62,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `bulkSyncProductsToUpstash` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"name": "<arrow>",
"line": 108,
"col": 14,
"cyclomatic": 6,
"cognitive": 3,
"line_count": 6,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"name": "ExtractedCard",
"line": 692,
"col": 0,
"cyclomatic": 6,
"cognitive": 7,
"line_count": 85,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ExtractedCard` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"name": "fetch",
"line": 102,
"col": 10,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 27,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `fetch` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "<arrow>",
"line": 420,
"col": 32,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 64,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"name": "<arrow>",
"line": 23,
"col": 12,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 48,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"name": "<arrow>",
"line": 76,
"col": 11,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 10,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/dashboard/order-status-badge.tsx",
"name": "getStatusConfig",
"line": 9,
"col": 25,
"cyclomatic": 6,
"cognitive": 1,
"line_count": 40,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getStatusConfig` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "getScrollParent",
"line": 53,
"col": 0,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 16,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getScrollParent` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"name": "<arrow>",
"line": 222,
"col": 9,
"cyclomatic": 6,
"cognitive": 10,
"line_count": 27,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "getPaginatedPurchases",
"line": 335,
"col": 29,
"cyclomatic": 6,
"cognitive": 6,
"line_count": 81,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getPaginatedPurchases` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "normalizeExpirationDate",
"line": 14,
"col": 32,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 16,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `normalizeExpirationDate` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"name": "<arrow>",
"line": 213,
"col": 19,
"cyclomatic": 6,
"cognitive": 2,
"line_count": 24,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/routes/webhooks.ts",
"name": "<arrow>",
"line": 34,
"col": 22,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 20,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "buildConversationPrompt",
"line": 205,
"col": 0,
"cyclomatic": 6,
"cognitive": 8,
"line_count": 33,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `buildConversationPrompt` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "ensureTRPCError",
"line": 154,
"col": 0,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 33,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `ensureTRPCError` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"name": "getOrderStatusStyles",
"line": 48,
"col": 36,
"cyclomatic": 6,
"cognitive": 1,
"line_count": 30,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getOrderStatusStyles` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.index.tsx",
"name": "PurchasesPage",
"line": 74,
"col": 0,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 222,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `PurchasesPage` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "queryFn",
"line": 187,
"col": 12,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 13,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `queryFn` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "hasActiveFilters",
"line": 330,
"col": 26,
"cyclomatic": 6,
"cognitive": 1,
"line_count": 7,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `hasActiveFilters` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/image.ts",
"name": "toCdnImageSource",
"line": 55,
"col": 0,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 15,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `toCdnImageSource` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "getProductBehavior",
"line": 309,
"col": 25,
"cyclomatic": 6,
"cognitive": 5,
"line_count": 54,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 42.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getProductBehavior` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"name": "AIPurchaseInput",
"line": 25,
"col": 7,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 141,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `AIPurchaseInput` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"name": "<arrow>",
"line": 214,
"col": 21,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 37,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "dedupeItems",
"line": 267,
"col": 0,
"cyclomatic": 5,
"cognitive": 5,
"line_count": 19,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `dedupeItems` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"name": "expandLatinAliases",
"line": 156,
"col": 27,
"cyclomatic": 5,
"cognitive": 5,
"line_count": 14,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `expandLatinAliases` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"name": "getFailedPayments",
"line": 146,
"col": 25,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 20,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getFailedPayments` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"name": "<arrow>",
"line": 390,
"col": 11,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 4,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"name": "handlePageChange",
"line": 36,
"col": 26,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 6,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `handlePageChange` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"name": "createQpayInvoice",
"line": 155,
"col": 33,
"cyclomatic": 5,
"cognitive": 6,
"line_count": 39,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createQpayInvoice` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"name": "DecisionToolbar",
"line": 653,
"col": 0,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 38,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `DecisionToolbar` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"name": "formatProductStatusMn",
"line": 47,
"col": 0,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 16,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `formatProductStatusMn` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"name": "getUserIdentifier",
"line": 35,
"col": 1,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 9,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getUserIdentifier` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"name": "<arrow>",
"line": 22,
"col": 20,
"cyclomatic": 5,
"cognitive": 1,
"line_count": 8,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "observer",
"line": 575,
"col": 3,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 6,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `observer` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"name": "PaymentStatus",
"line": 19,
"col": 22,
"cyclomatic": 5,
"cognitive": 1,
"line_count": 98,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `PaymentStatus` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "<arrow>",
"line": 383,
"col": 18,
"cyclomatic": 5,
"cognitive": 6,
"line_count": 17,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "<arrow>",
"line": 437,
"col": 9,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 21,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "<arrow>",
"line": 505,
"col": 12,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 22,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/order.ts",
"name": "orderDetailsPromise",
"line": 166,
"col": 51,
"cyclomatic": 5,
"cognitive": 8,
"line_count": 42,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `orderDetailsPromise` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/users.ts",
"name": "updateUserByGoogleId",
"line": 43,
"col": 28,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 37,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `updateUserByGoogleId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"name": "GET",
"line": 247,
"col": 7,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 47,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `GET` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "<arrow>",
"line": 76,
"col": 7,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 9,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/errors/app-error.tsx",
"name": "<arrow>",
"line": 28,
"col": 41,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 16,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"name": "<arrow>",
"line": 33,
"col": 11,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 49,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"name": "<arrow>",
"line": 99,
"col": 12,
"cyclomatic": 5,
"cognitive": 6,
"line_count": 18,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"name": "<arrow>",
"line": 138,
"col": 12,
"cyclomatic": 5,
"cognitive": 6,
"line_count": 18,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"name": "<arrow>",
"line": 159,
"col": 12,
"cyclomatic": 5,
"cognitive": 6,
"line_count": 19,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/payment.ts",
"name": "<arrow>",
"line": 18,
"col": 9,
"cyclomatic": 5,
"cognitive": 5,
"line_count": 67,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"name": "createCacheKey",
"line": 117,
"col": 23,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 36,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `createCacheKey` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/client.ts",
"name": "sendEmail",
"line": 5,
"col": 7,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 24,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `sendEmail` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/upload-button.tsx",
"name": "uploadImage",
"line": 9,
"col": 20,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 19,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `uploadImage` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "isAmazonUrl",
"line": 94,
"col": 0,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 13,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `isAmazonUrl` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "parsePriceTokenToUsd",
"line": 222,
"col": 0,
"cyclomatic": 5,
"cognitive": 3,
"line_count": 11,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `parsePriceTokenToUsd` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/categories/category-form.tsx",
"name": "CategoryForm",
"line": 19,
"col": 21,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 87,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `CategoryForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "categoryId",
"line": 127,
"col": 31,
"cyclomatic": 5,
"cognitive": 3,
"line_count": 14,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `categoryId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "brandId",
"line": 142,
"col": 28,
"cyclomatic": 5,
"cognitive": 3,
"line_count": 14,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `brandId` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "queryFn",
"line": 160,
"col": 12,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 10,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `queryFn` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "isRefetching",
"line": 222,
"col": 33,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 9,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `isRefetching` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "observer",
"line": 340,
"col": 3,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 11,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `observer` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/server/src/lib/restock-notifier.ts",
"name": "notifySubscriber",
"line": 66,
"col": 0,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 23,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `notifySubscriber` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"name": "handleSubmit",
"line": 58,
"col": 22,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 10,
"param_count": 0,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `handleSubmit` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 68,
"col": 28,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 8,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 224,
"col": 9,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 9,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 279,
"col": 9,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 20,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "getWebAnalyticsPrevious",
"line": 132,
"col": 30,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 24,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `getWebAnalyticsPrevious` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "<arrow>",
"line": 225,
"col": 28,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 6,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "<arrow>",
"line": 387,
"col": 28,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 6,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"name": "output",
"line": 85,
"col": 0,
"cyclomatic": 5,
"cognitive": 1,
"line_count": 16,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `output` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/form/form.tsx",
"name": "<arrow>",
"line": 26,
"col": 4,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 8,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"name": "shapeOrderResult",
"line": 192,
"col": 32,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 25,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `shapeOrderResult` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"name": "<arrow>",
"line": 218,
"col": 21,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 27,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"name": "<arrow>",
"line": 103,
"col": 7,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 69,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "packages/api/src/queries/orders.ts",
"name": "<arrow>",
"line": 77,
"col": 28,
"cyclomatic": 5,
"cognitive": 2,
"line_count": 9,
"param_count": 2,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `<arrow>` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"name": "handleKeyDown",
"line": 78,
"col": 74,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 14,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `handleKeyDown` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"name": "OtpForm",
"line": 17,
"col": 16,
"cyclomatic": 5,
"cognitive": 4,
"line_count": 163,
"param_count": 1,
"exceeded": "crap",
"severity": "moderate",
"crap": 30.0,
"coverage_tier": "none",
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `OtpForm` to lower its CRAP score (coverage reduces risk even without refactoring)",
"note": "CRAP = CC^2 * (1 - cov/100)^3 + CC; higher coverage is the fastest way to bring CRAP under threshold"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress with an inline comment above the function declaration",
"comment": "// fallow-ignore-next-line complexity",
"placement": "above-function-declaration"
}
]
}
],
"summary": {
"files_analyzed": 262,
"functions_analyzed": 2070,
"functions_above_threshold": 205,
"max_cyclomatic_threshold": 20,
"max_cognitive_threshold": 15,
"max_crap_threshold": 30.0,
"files_scored": 182,
"average_maintainability": 92.2,
"coverage_model": "static_estimated",
"severity_critical_count": 69,
"severity_high_count": 56,
"severity_moderate_count": 80
},
"vital_signs": {
"dead_file_pct": 0.0,
"dead_export_pct": 0.0,
"avg_cyclomatic": 2.3,
"p90_cyclomatic": 4,
"duplication_pct": 7.5,
"hotspot_count": 2,
"maintainability_avg": 92.2,
"unused_dep_count": 0,
"circular_dep_count": 0,
"counts": {
"total_files": 262,
"total_exports": 716,
"dead_files": 0,
"dead_exports": 0,
"duplicated_lines": 3096,
"total_lines": 43429,
"files_scored": 182,
"total_deps": 0
},
"unit_size_profile": {
"low_risk": 75.4,
"medium_risk": 11.3,
"high_risk": 6.9,
"very_high_risk": 6.5
},
"unit_interfacing_profile": {
"low_risk": 98.0,
"medium_risk": 1.8,
"high_risk": 0.1,
"very_high_risk": 0.0
},
"p95_fan_in": 11,
"coupling_high_pct": 4.9,
"total_loc": 43429
},
"health_score": {
"score": 91.2,
"grade": "A",
"penalties": {
"dead_files": 0.0,
"dead_exports": 0.0,
"complexity": 4.0,
"p90_complexity": 0.0,
"maintainability": 0.0,
"hotspots": 1.5,
"unused_deps": 0.0,
"circular_deps": 0.0,
"unit_size": 0.8,
"coupling": 0.0,
"duplication": 2.5
}
},
"file_scores": [
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.9,
"maintainability_index": 70.2,
"total_cyclomatic": 83,
"total_cognitive": 33,
"function_count": 3,
"lines": 92,
"crap_max": 4032.0,
"crap_above_threshold": 3
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"fan_in": 1,
"fan_out": 7,
"dead_code_ratio": 0.0,
"complexity_density": 0.24,
"maintainability_index": 84.5,
"total_cyclomatic": 161,
"total_cognitive": 73,
"function_count": 69,
"lines": 667,
"crap_max": 272.0,
"crap_above_threshold": 10
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"fan_in": 1,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.25,
"maintainability_index": 84.7,
"total_cyclomatic": 156,
"total_cognitive": 109,
"function_count": 34,
"lines": 626,
"crap_max": 930.0,
"crap_above_threshold": 10
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"fan_in": 2,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.23,
"maintainability_index": 85.9,
"total_cyclomatic": 91,
"total_cognitive": 39,
"function_count": 32,
"lines": 400,
"crap_max": 930.0,
"crap_above_threshold": 4
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"fan_in": 1,
"fan_out": 9,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 86.6,
"total_cyclomatic": 36,
"total_cognitive": 13,
"function_count": 20,
"lines": 266,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/store/cart.tsx",
"fan_in": 12,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.29,
"maintainability_index": 86.9,
"total_cyclomatic": 45,
"total_cognitive": 15,
"function_count": 30,
"lines": 156,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/order.ts",
"fan_in": 1,
"fan_out": 8,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 87.0,
"total_cyclomatic": 47,
"total_cognitive": 37,
"function_count": 15,
"lines": 329,
"crap_max": 702.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/store/product.ts",
"fan_in": 1,
"fan_out": 8,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 87.0,
"total_cyclomatic": 86,
"total_cognitive": 37,
"function_count": 38,
"lines": 620,
"crap_max": 90.0,
"crap_above_threshold": 5
},
{
"path": "apps/server/src/index.ts",
"fan_in": 0,
"fan_out": 11,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 87.1,
"total_cyclomatic": 11,
"total_cognitive": 2,
"function_count": 9,
"lines": 105,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/lib/restock-notifier.ts",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.19,
"maintainability_index": 87.1,
"total_cyclomatic": 32,
"total_cognitive": 20,
"function_count": 12,
"lines": 168,
"crap_max": 90.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/routers/admin/product.ts",
"fan_in": 1,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 87.1,
"total_cyclomatic": 92,
"total_cognitive": 74,
"function_count": 25,
"lines": 528,
"crap_max": 240.0,
"crap_above_threshold": 6
},
{
"path": "packages/api/src/lib/trpc.ts",
"fan_in": 26,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 87.4,
"total_cyclomatic": 57,
"total_cognitive": 46,
"function_count": 12,
"lines": 311,
"crap_max": 156.0,
"crap_above_threshold": 6
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.2,
"maintainability_index": 87.6,
"total_cyclomatic": 297,
"total_cognitive": 222,
"function_count": 59,
"lines": 1469,
"crap_max": 2756.0,
"crap_above_threshold": 17
},
{
"path": "apps/server/src/routes/auth.ts",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 87.7,
"total_cyclomatic": 42,
"total_cognitive": 31,
"function_count": 5,
"lines": 253,
"crap_max": 650.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"fan_in": 2,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.26,
"maintainability_index": 87.8,
"total_cyclomatic": 53,
"total_cognitive": 38,
"function_count": 11,
"lines": 205,
"crap_max": 132.0,
"crap_above_threshold": 5
},
{
"path": "apps/storev2/src/components/form/form.tsx",
"fan_in": 2,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.22,
"maintainability_index": 87.9,
"total_cyclomatic": 11,
"total_cognitive": 4,
"function_count": 7,
"lines": 51,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/admin/index.ts",
"fan_in": 1,
"fan_out": 15,
"dead_code_ratio": 0.0,
"complexity_density": 0.03,
"maintainability_index": 88.2,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 37,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 88.2,
"total_cyclomatic": 66,
"total_cognitive": 53,
"function_count": 21,
"lines": 357,
"crap_max": 156.0,
"crap_above_threshold": 5
},
{
"path": "packages/logger/src/logger.ts",
"fan_in": 2,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.3,
"maintainability_index": 88.2,
"total_cyclomatic": 77,
"total_cognitive": 13,
"function_count": 61,
"lines": 258,
"crap_max": 90.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"fan_in": 3,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 88.3,
"total_cyclomatic": 39,
"total_cognitive": 17,
"function_count": 13,
"lines": 262,
"crap_max": 420.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 88.3,
"total_cyclomatic": 79,
"total_cognitive": 37,
"function_count": 34,
"lines": 519,
"crap_max": 306.0,
"crap_above_threshold": 3
},
{
"path": "packages/api/src/queries/sales.ts",
"fan_in": 1,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 88.3,
"total_cyclomatic": 13,
"total_cognitive": 6,
"function_count": 4,
"lines": 104,
"crap_max": 72.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"fan_in": 1,
"fan_out": 7,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 88.4,
"total_cyclomatic": 26,
"total_cognitive": 12,
"function_count": 13,
"lines": 244,
"crap_max": 110.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 88.5,
"total_cyclomatic": 42,
"total_cognitive": 31,
"function_count": 19,
"lines": 252,
"crap_max": 30.0,
"crap_above_threshold": 3
},
{
"path": "packages/api/src/routers/store/auth.ts",
"fan_in": 2,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 88.6,
"total_cyclomatic": 24,
"total_cognitive": 20,
"function_count": 6,
"lines": 205,
"crap_max": 56.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"fan_in": 0,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 88.8,
"total_cyclomatic": 104,
"total_cognitive": 69,
"function_count": 39,
"lines": 670,
"crap_max": 552.0,
"crap_above_threshold": 5
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 88.8,
"total_cyclomatic": 34,
"total_cognitive": 10,
"function_count": 22,
"lines": 216,
"crap_max": 56.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/queries/purchases.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 88.8,
"total_cyclomatic": 117,
"total_cognitive": 78,
"function_count": 49,
"lines": 730,
"crap_max": 210.0,
"crap_above_threshold": 7
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 88.9,
"total_cyclomatic": 57,
"total_cognitive": 25,
"function_count": 36,
"lines": 455,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"fan_in": 2,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 88.9,
"total_cyclomatic": 24,
"total_cognitive": 8,
"function_count": 12,
"lines": 213,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/queries/analytics.ts",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 88.9,
"total_cyclomatic": 64,
"total_cognitive": 19,
"function_count": 29,
"lines": 498,
"crap_max": 56.0,
"crap_above_threshold": 4
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"fan_in": 0,
"fan_out": 7,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 89.0,
"total_cyclomatic": 89,
"total_cognitive": 39,
"function_count": 46,
"lines": 1016,
"crap_max": 600.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"fan_in": 2,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 89.1,
"total_cyclomatic": 24,
"total_cognitive": 23,
"function_count": 6,
"lines": 135,
"crap_max": 110.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/lib/utils.ts",
"fan_in": 11,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 89.1,
"total_cyclomatic": 44,
"total_cognitive": 12,
"function_count": 20,
"lines": 246,
"crap_max": 30.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"fan_in": 3,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 89.2,
"total_cyclomatic": 58,
"total_cognitive": 25,
"function_count": 34,
"lines": 555,
"crap_max": 72.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/ai/assistant-product-display.tsx",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 89.2,
"total_cyclomatic": 19,
"total_cognitive": 4,
"function_count": 12,
"lines": 164,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/payment.ts",
"fan_in": 1,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 89.2,
"total_cyclomatic": 29,
"total_cognitive": 25,
"function_count": 7,
"lines": 295,
"crap_max": 72.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"fan_in": 0,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.21,
"maintainability_index": 89.3,
"total_cyclomatic": 61,
"total_cognitive": 50,
"function_count": 16,
"lines": 294,
"crap_max": 306.0,
"crap_above_threshold": 4
},
{
"path": "apps/admin/src/components/upload-button.tsx",
"fan_in": 4,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 89.4,
"total_cyclomatic": 15,
"total_cognitive": 6,
"function_count": 8,
"lines": 88,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"fan_in": 2,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 89.5,
"total_cyclomatic": 16,
"total_cognitive": 6,
"function_count": 8,
"lines": 149,
"crap_max": 56.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"fan_in": 0,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 89.5,
"total_cyclomatic": 54,
"total_cognitive": 27,
"function_count": 27,
"lines": 624,
"crap_max": 342.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/admin/order.ts",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 89.5,
"total_cyclomatic": 54,
"total_cognitive": 37,
"function_count": 25,
"lines": 511,
"crap_max": 90.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.2,
"maintainability_index": 89.6,
"total_cyclomatic": 36,
"total_cognitive": 12,
"function_count": 15,
"lines": 180,
"crap_max": 132.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 89.7,
"total_cyclomatic": 29,
"total_cognitive": 11,
"function_count": 19,
"lines": 181,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/payment/confirm-payment-button.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 89.7,
"total_cyclomatic": 9,
"total_cognitive": 2,
"function_count": 6,
"lines": 70,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 89.7,
"total_cyclomatic": 13,
"total_cognitive": 10,
"function_count": 6,
"lines": 80,
"crap_max": 56.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"fan_in": 7,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.25,
"maintainability_index": 89.7,
"total_cyclomatic": 92,
"total_cognitive": 53,
"function_count": 18,
"lines": 361,
"crap_max": 1640.0,
"crap_above_threshold": 5
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"fan_in": 0,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 89.8,
"total_cyclomatic": 60,
"total_cognitive": 31,
"function_count": 27,
"lines": 575,
"crap_max": 210.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/queries/orders.ts",
"fan_in": 1,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 89.8,
"total_cyclomatic": 61,
"total_cognitive": 24,
"function_count": 35,
"lines": 767,
"crap_max": 210.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/routers/store/index.ts",
"fan_in": 1,
"fan_out": 10,
"dead_code_ratio": 0.0,
"complexity_density": 0.04,
"maintainability_index": 89.8,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 27,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 90.0,
"total_cyclomatic": 34,
"total_cognitive": 11,
"function_count": 16,
"lines": 278,
"crap_max": 156.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/product/product-card.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 90.0,
"total_cyclomatic": 12,
"total_cognitive": 4,
"function_count": 6,
"lines": 100,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/auth/logout-button.tsx",
"fan_in": 2,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.16,
"maintainability_index": 90.1,
"total_cyclomatic": 7,
"total_cognitive": 1,
"function_count": 6,
"lines": 45,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 90.2,
"total_cyclomatic": 39,
"total_cognitive": 23,
"function_count": 18,
"lines": 212,
"crap_max": 156.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/routes/_dash/purchases.add.tsx",
"fan_in": 0,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 90.3,
"total_cyclomatic": 30,
"total_cognitive": 17,
"function_count": 13,
"lines": 210,
"crap_max": 342.0,
"crap_above_threshold": 1
},
{
"path": "apps/server/src/routes/payments.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 90.3,
"total_cyclomatic": 11,
"total_cognitive": 8,
"function_count": 2,
"lines": 97,
"crap_max": 90.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/admin/brands.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 90.3,
"total_cyclomatic": 9,
"total_cognitive": 5,
"function_count": 4,
"lines": 79,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/__root.tsx",
"fan_in": 0,
"fan_out": 6,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 90.4,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 64,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/category.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 90.4,
"total_cyclomatic": 5,
"total_cognitive": 1,
"function_count": 4,
"lines": 40,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/queries/customers.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 90.5,
"total_cyclomatic": 18,
"total_cognitive": 6,
"function_count": 10,
"lines": 109,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"fan_in": 0,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 90.6,
"total_cyclomatic": 26,
"total_cognitive": 16,
"function_count": 9,
"lines": 273,
"crap_max": 272.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/product/product-image-carousel.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 90.6,
"total_cyclomatic": 15,
"total_cognitive": 5,
"function_count": 9,
"lines": 114,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/queries/products.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 90.6,
"total_cyclomatic": 91,
"total_cognitive": 55,
"function_count": 47,
"lines": 914,
"crap_max": 506.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/routers/admin/analytics.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 90.6,
"total_cyclomatic": 43,
"total_cognitive": 22,
"function_count": 20,
"lines": 438,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/customer.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 90.6,
"total_cyclomatic": 18,
"total_cognitive": 13,
"function_count": 7,
"lines": 182,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/logger/src/context.ts",
"fan_in": 2,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.22,
"maintainability_index": 90.6,
"total_cyclomatic": 19,
"total_cognitive": 8,
"function_count": 5,
"lines": 86,
"crap_max": 72.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"fan_in": 0,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 90.7,
"total_cyclomatic": 32,
"total_cognitive": 18,
"function_count": 12,
"lines": 477,
"crap_max": 110.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/categories/category-form.tsx",
"fan_in": 2,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 90.9,
"total_cyclomatic": 13,
"total_cognitive": 3,
"function_count": 7,
"lines": 108,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"fan_in": 0,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 90.9,
"total_cyclomatic": 22,
"total_cognitive": 10,
"function_count": 13,
"lines": 233,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 90.9,
"total_cyclomatic": 16,
"total_cognitive": 9,
"function_count": 8,
"lines": 178,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/search/mobile-search-button.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 90.9,
"total_cyclomatic": 11,
"total_cognitive": 2,
"function_count": 9,
"lines": 125,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/payment.ts",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 90.9,
"total_cyclomatic": 6,
"total_cognitive": 3,
"function_count": 3,
"lines": 66,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 91.1,
"total_cyclomatic": 48,
"total_cognitive": 21,
"function_count": 21,
"lines": 328,
"crap_max": 240.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 91.1,
"total_cyclomatic": 88,
"total_cognitive": 41,
"function_count": 45,
"lines": 568,
"crap_max": 240.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/lib/session/index.ts",
"fan_in": 4,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 91.1,
"total_cyclomatic": 36,
"total_cognitive": 24,
"function_count": 11,
"lines": 240,
"crap_max": 110.0,
"crap_above_threshold": 3
},
{
"path": "apps/admin/src/routes/_dash/purchases.$id.tsx",
"fan_in": 0,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 91.2,
"total_cyclomatic": 53,
"total_cognitive": 18,
"function_count": 35,
"lines": 495,
"crap_max": 156.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/routes/_dash/route.tsx",
"fan_in": 0,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 91.2,
"total_cyclomatic": 5,
"total_cognitive": 3,
"function_count": 2,
"lines": 65,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/auth/phone-form.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 91.2,
"total_cyclomatic": 11,
"total_cognitive": 2,
"function_count": 9,
"lines": 100,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"fan_in": 2,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.2,
"maintainability_index": 91.2,
"total_cyclomatic": 27,
"total_cognitive": 13,
"function_count": 10,
"lines": 136,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/search/search-overlay.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 91.2,
"total_cyclomatic": 10,
"total_cognitive": 2,
"function_count": 8,
"lines": 133,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"fan_in": 1,
"fan_out": 5,
"dead_code_ratio": 0.0,
"complexity_density": 0.05,
"maintainability_index": 91.3,
"total_cyclomatic": 8,
"total_cognitive": 2,
"function_count": 6,
"lines": 158,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/_dash/categories.tsx",
"fan_in": 0,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 91.5,
"total_cyclomatic": 7,
"total_cognitive": 1,
"function_count": 6,
"lines": 99,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/routes/webhooks.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 91.5,
"total_cyclomatic": 11,
"total_cognitive": 6,
"function_count": 5,
"lines": 115,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "packages/logger/src/middleware.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 91.5,
"total_cyclomatic": 18,
"total_cognitive": 11,
"function_count": 8,
"lines": 175,
"crap_max": 72.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 91.7,
"total_cyclomatic": 15,
"total_cognitive": 4,
"function_count": 7,
"lines": 119,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/queries/users.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 91.7,
"total_cyclomatic": 11,
"total_cognitive": 8,
"function_count": 3,
"lines": 82,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/brands/brand-card.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 91.8,
"total_cyclomatic": 5,
"total_cognitive": 1,
"function_count": 4,
"lines": 81,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/categories/category-card.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 91.8,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 67,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 91.8,
"total_cyclomatic": 25,
"total_cognitive": 12,
"function_count": 13,
"lines": 268,
"crap_max": 30.0,
"crap_above_threshold": 2
},
{
"path": "apps/admin/src/routes/_dash/purchases.index.tsx",
"fan_in": 0,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 91.8,
"total_cyclomatic": 28,
"total_cognitive": 14,
"function_count": 14,
"lines": 296,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/cart/cart-drawer.tsx",
"fan_in": 1,
"fan_out": 4,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 91.8,
"total_cyclomatic": 6,
"total_cognitive": 0,
"function_count": 6,
"lines": 108,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/integrations/messenger/messages.ts",
"fan_in": 5,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 91.8,
"total_cyclomatic": 14,
"total_cognitive": 9,
"function_count": 7,
"lines": 156,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/auth.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 91.8,
"total_cyclomatic": 7,
"total_cognitive": 3,
"function_count": 4,
"lines": 79,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/category.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 91.8,
"total_cyclomatic": 11,
"total_cognitive": 6,
"function_count": 5,
"lines": 117,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/useSearchParam.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.27,
"maintainability_index": 91.9,
"total_cyclomatic": 22,
"total_cognitive": 13,
"function_count": 7,
"lines": 82,
"crap_max": 132.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 92.0,
"total_cyclomatic": 65,
"total_cognitive": 44,
"function_count": 21,
"lines": 554,
"crap_max": 272.0,
"crap_above_threshold": 3
},
{
"path": "packages/api/src/routers/admin/sales.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 92.1,
"total_cyclomatic": 14,
"total_cognitive": 7,
"function_count": 7,
"lines": 179,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "packages/shared/src/utils.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.26,
"maintainability_index": 92.2,
"total_cyclomatic": 32,
"total_cognitive": 10,
"function_count": 11,
"lines": 122,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/queries/categories.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 92.3,
"total_cyclomatic": 9,
"total_cognitive": 1,
"function_count": 8,
"lines": 79,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/product-images.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 92.3,
"total_cyclomatic": 26,
"total_cognitive": 16,
"function_count": 12,
"lines": 236,
"crap_max": 72.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/routes/_dash/brands.tsx",
"fan_in": 0,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 92.4,
"total_cyclomatic": 7,
"total_cognitive": 1,
"function_count": 6,
"lines": 96,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/routes/admin.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 92.4,
"total_cyclomatic": 6,
"total_cognitive": 4,
"function_count": 3,
"lines": 83,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/form/form-text-field.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.19,
"maintainability_index": 92.4,
"total_cyclomatic": 8,
"total_cognitive": 3,
"function_count": 5,
"lines": 42,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/customers/customer-form.tsx",
"fan_in": 2,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 92.6,
"total_cyclomatic": 16,
"total_cognitive": 7,
"function_count": 8,
"lines": 156,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/routers/store/brand.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 92.6,
"total_cyclomatic": 3,
"total_cognitive": 1,
"function_count": 2,
"lines": 38,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/customers/customer-card.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 92.7,
"total_cyclomatic": 5,
"total_cognitive": 1,
"function_count": 4,
"lines": 86,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 92.7,
"total_cyclomatic": 39,
"total_cognitive": 15,
"function_count": 23,
"lines": 266,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/server/src/lib/context.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 92.7,
"total_cyclomatic": 3,
"total_cognitive": 2,
"function_count": 1,
"lines": 42,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/ai/assistant-product-card.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 92.7,
"total_cyclomatic": 7,
"total_cognitive": 2,
"function_count": 5,
"lines": 124,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 92.7,
"total_cyclomatic": 39,
"total_cognitive": 19,
"function_count": 7,
"lines": 261,
"crap_max": 462.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/src/components/product/search-product-card.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 92.7,
"total_cyclomatic": 6,
"total_cognitive": 3,
"function_count": 3,
"lines": 105,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/queries/payments.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 92.7,
"total_cyclomatic": 12,
"total_cognitive": 1,
"function_count": 11,
"lines": 196,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/auth/login-form.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 92.9,
"total_cyclomatic": 9,
"total_cognitive": 11,
"function_count": 3,
"lines": 100,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/add-to-cart-button.tsx",
"fan_in": 10,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 92.9,
"total_cyclomatic": 5,
"total_cognitive": 2,
"function_count": 3,
"lines": 55,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/admin/image.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 92.9,
"total_cyclomatic": 6,
"total_cognitive": 3,
"function_count": 3,
"lines": 70,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/editable-field.tsx",
"fan_in": 2,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 93.0,
"total_cyclomatic": 23,
"total_cognitive": 25,
"function_count": 6,
"lines": 159,
"crap_max": 240.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/form/form-text-area-field.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 93.0,
"total_cyclomatic": 7,
"total_cognitive": 2,
"function_count": 5,
"lines": 41,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"fan_in": 32,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.23,
"maintainability_index": 93.1,
"total_cyclomatic": 31,
"total_cognitive": 19,
"function_count": 7,
"lines": 132,
"crap_max": 72.0,
"crap_above_threshold": 4
},
{
"path": "apps/admin/src/routes/_dash/orders.add.tsx",
"fan_in": 0,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 93.2,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 40,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/routes/uploads.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 93.2,
"total_cyclomatic": 30,
"total_cognitive": 32,
"function_count": 5,
"lines": 371,
"crap_max": 182.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/db/client.ts",
"fan_in": 14,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 93.2,
"total_cyclomatic": 4,
"total_cognitive": 3,
"function_count": 1,
"lines": 27,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/customer.ts",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 93.2,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 17,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 93.5,
"total_cyclomatic": 7,
"total_cognitive": 4,
"function_count": 3,
"lines": 94,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/queries/product-images.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 93.5,
"total_cyclomatic": 8,
"total_cognitive": 0,
"function_count": 8,
"lines": 111,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/header/index.tsx",
"fan_in": 1,
"fan_out": 3,
"dead_code_ratio": 0.0,
"complexity_density": 0.03,
"maintainability_index": 93.6,
"total_cyclomatic": 3,
"total_cognitive": 0,
"function_count": 3,
"lines": 106,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"fan_in": 2,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.21,
"maintainability_index": 93.7,
"total_cyclomatic": 33,
"total_cognitive": 22,
"function_count": 9,
"lines": 160,
"crap_max": 342.0,
"crap_above_threshold": 2
},
{
"path": "packages/api/src/queries/brands.ts",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 93.8,
"total_cyclomatic": 6,
"total_cognitive": 0,
"function_count": 6,
"lines": 97,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"fan_in": 4,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.2,
"maintainability_index": 94.0,
"total_cyclomatic": 17,
"total_cognitive": 10,
"function_count": 7,
"lines": 85,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"fan_in": 0,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.05,
"maintainability_index": 94.1,
"total_cyclomatic": 17,
"total_cognitive": 10,
"function_count": 6,
"lines": 358,
"crap_max": 56.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/cart/cart-drawer-item.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.05,
"maintainability_index": 94.1,
"total_cyclomatic": 5,
"total_cognitive": 2,
"function_count": 4,
"lines": 110,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/lib/utils.ts",
"fan_in": 16,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 94.2,
"total_cyclomatic": 5,
"total_cognitive": 1,
"function_count": 2,
"lines": 50,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/db/index.ts",
"fan_in": 6,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 94.2,
"total_cyclomatic": 5,
"total_cognitive": 2,
"function_count": 3,
"lines": 46,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/db/schema.ts",
"fan_in": 24,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 94.2,
"total_cyclomatic": 59,
"total_cognitive": 0,
"function_count": 59,
"lines": 567,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/cart-button.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 94.3,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 21,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/header/mobile-nav-bar.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.04,
"maintainability_index": 94.4,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 50,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"fan_in": 0,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 94.5,
"total_cyclomatic": 81,
"total_cognitive": 36,
"function_count": 48,
"lines": 930,
"crap_max": 42.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/src/components/cart/mobile-cart-button.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 94.7,
"total_cyclomatic": 4,
"total_cognitive": 1,
"function_count": 3,
"lines": 42,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/row-actions.tsx",
"fan_in": 7,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 94.8,
"total_cyclomatic": 12,
"total_cognitive": 1,
"function_count": 11,
"lines": 147,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/cart-actions.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 94.8,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 53,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/search/search-suggestions.tsx",
"fan_in": 2,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 94.8,
"total_cyclomatic": 9,
"total_cognitive": 0,
"function_count": 9,
"lines": 116,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/payment/payment-options.tsx",
"fan_in": 1,
"fan_out": 2,
"dead_code_ratio": 0.0,
"complexity_density": 0.02,
"maintainability_index": 95.0,
"total_cyclomatic": 3,
"total_cognitive": 0,
"function_count": 3,
"lines": 160,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/header/breadcrumb.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 95.1,
"total_cyclomatic": 5,
"total_cognitive": 2,
"function_count": 3,
"lines": 69,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/login.tsx",
"fan_in": 0,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 95.4,
"total_cyclomatic": 4,
"total_cognitive": 2,
"function_count": 2,
"lines": 71,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/cart-count.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 95.4,
"total_cyclomatic": 3,
"total_cognitive": 1,
"function_count": 2,
"lines": 20,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/routes/_dash/sandbox.tsx",
"fan_in": 0,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 95.5,
"total_cyclomatic": 3,
"total_cognitive": 0,
"function_count": 3,
"lines": 29,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 95.5,
"total_cyclomatic": 62,
"total_cognitive": 47,
"function_count": 16,
"lines": 410,
"crap_max": 110.0,
"crap_above_threshold": 7
},
{
"path": "apps/storev2/src/pages/api/hello.ts",
"fan_in": 0,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.3,
"maintainability_index": 95.9,
"total_cyclomatic": 7,
"total_cognitive": 3,
"function_count": 1,
"lines": 23,
"crap_max": 56.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/components/payment/clear-cart.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.15,
"maintainability_index": 96.1,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 13,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/hooks/use-breadcrumb.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.29,
"maintainability_index": 96.3,
"total_cyclomatic": 6,
"total_cognitive": 2,
"function_count": 3,
"lines": 21,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/top-progress.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.24,
"maintainability_index": 96.4,
"total_cyclomatic": 6,
"total_cognitive": 2,
"function_count": 4,
"lines": 25,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"fan_in": 7,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.12,
"maintainability_index": 96.4,
"total_cyclomatic": 23,
"total_cognitive": 4,
"function_count": 19,
"lines": 188,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/main.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.03,
"maintainability_index": 96.6,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 37,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/utils.ts",
"fan_in": 14,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 96.6,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 9,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/dashboard/order-status-badge.tsx",
"fan_in": 2,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 96.7,
"total_cyclomatic": 7,
"total_cognitive": 1,
"function_count": 2,
"lines": 62,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/utils/trpc.ts",
"fan_in": 31,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 96.7,
"total_cyclomatic": 8,
"total_cognitive": 0,
"function_count": 6,
"lines": 72,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/query-devtools.tsx",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 96.7,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 12,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/routers/store/cart.ts",
"fan_in": 1,
"fan_out": 1,
"dead_code_ratio": 0.0,
"complexity_density": 0.03,
"maintainability_index": 96.7,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 30,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/hooks/use-editable-field.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 97.0,
"total_cyclomatic": 5,
"total_cognitive": 1,
"function_count": 4,
"lines": 46,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/lib/rate-limit.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 97.0,
"total_cyclomatic": 6,
"total_cognitive": 3,
"function_count": 3,
"lines": 58,
"crap_max": 12.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/integrations/resend/client.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 97.0,
"total_cyclomatic": 5,
"total_cognitive": 4,
"function_count": 1,
"lines": 29,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"fan_in": 2,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.1,
"maintainability_index": 97.0,
"total_cyclomatic": 22,
"total_cognitive": 20,
"function_count": 6,
"lines": 214,
"crap_max": 90.0,
"crap_above_threshold": 2
},
{
"path": "apps/storev2/astro.config.mjs",
"fan_in": 0,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 97.3,
"total_cyclomatic": 6,
"total_cognitive": 1,
"function_count": 1,
"lines": 66,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/storev2/src/lib/image.ts",
"fan_in": 8,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 97.3,
"total_cyclomatic": 8,
"total_cognitive": 5,
"function_count": 3,
"lines": 90,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/errors/app-error.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 97.6,
"total_cyclomatic": 11,
"total_cognitive": 7,
"function_count": 4,
"lines": 132,
"crap_max": 30.0,
"crap_above_threshold": 1
},
{
"path": "apps/admin/src/components/header/user-data.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.11,
"maintainability_index": 97.6,
"total_cyclomatic": 4,
"total_cognitive": 1,
"function_count": 3,
"lines": 37,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/icons.tsx",
"fan_in": 3,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 97.6,
"total_cyclomatic": 5,
"total_cognitive": 2,
"function_count": 3,
"lines": 61,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/hooks/use-mobile.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.18,
"maintainability_index": 97.6,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 22,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.08,
"maintainability_index": 97.6,
"total_cyclomatic": 31,
"total_cognitive": 7,
"function_count": 25,
"lines": 378,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/analytics/product-performance.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.07,
"maintainability_index": 97.9,
"total_cyclomatic": 11,
"total_cognitive": 6,
"function_count": 3,
"lines": 160,
"crap_max": 20.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.05,
"maintainability_index": 98.5,
"total_cyclomatic": 20,
"total_cognitive": 11,
"function_count": 6,
"lines": 364,
"crap_max": 42.0,
"crap_above_threshold": 1
},
{
"path": "env.ts",
"fan_in": 3,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.05,
"maintainability_index": 98.5,
"total_cyclomatic": 5,
"total_cognitive": 0,
"function_count": 5,
"lines": 107,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/submit-button.tsx",
"fan_in": 8,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 98.7,
"total_cyclomatic": 2,
"total_cognitive": 1,
"function_count": 1,
"lines": 35,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/server/src/routes/health.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.14,
"maintainability_index": 98.8,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 14,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/lib/query.ts",
"fan_in": 12,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.09,
"maintainability_index": 98.8,
"total_cyclomatic": 2,
"total_cognitive": 1,
"function_count": 1,
"lines": 23,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/redis.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.13,
"maintainability_index": 98.8,
"total_cyclomatic": 2,
"total_cognitive": 1,
"function_count": 1,
"lines": 15,
"crap_max": 6.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/cart/empty-cart.tsx",
"fan_in": 3,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.04,
"maintainability_index": 99.3,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 28,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/product/product-detail-skeleton.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.02,
"maintainability_index": 99.4,
"total_cyclomatic": 4,
"total_cognitive": 0,
"function_count": 4,
"lines": 162,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/product/products-page-skeleton.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.02,
"maintainability_index": 99.4,
"total_cyclomatic": 2,
"total_cognitive": 0,
"function_count": 2,
"lines": 96,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/storev2/src/components/loading.tsx",
"fan_in": 2,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.06,
"maintainability_index": 99.4,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 16,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/api/src/lib/kv.ts",
"fan_in": 4,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.17,
"maintainability_index": 99.4,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 6,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "apps/admin/src/components/errors/not-found.tsx",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.02,
"maintainability_index": 99.5,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 43,
"crap_max": 2.0,
"crap_above_threshold": 0
},
{
"path": "packages/shared/src/types/payment.ts",
"fan_in": 1,
"fan_out": 0,
"dead_code_ratio": 0.0,
"complexity_density": 0.01,
"maintainability_index": 99.7,
"total_cyclomatic": 1,
"total_cognitive": 0,
"function_count": 1,
"lines": 112,
"crap_max": 2.0,
"crap_above_threshold": 0
}
],
"coverage_gaps": {
"summary": {
"runtime_files": 254,
"covered_files": 0,
"file_coverage_pct": 0.0,
"untested_files": 254,
"untested_exports": 446
},
"files": [
{
"path": "apps/admin/alchemy.run.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/alchemy.run.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/index.html",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/index.html`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/index.html`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/pwa-assets.config.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/pwa-assets.config.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/pwa-assets.config.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/analytics/product-performance.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/analytics/product-performance.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/analytics/product-performance.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/analytics/web-analytics.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/analytics/web-analytics.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/app-sidebar.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/app-sidebar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/brands/brand-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/brands/brand-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/brands/brand-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/brands/brand-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/categories/category-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/categories/category-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/categories/category-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/categories/category-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/categories/category-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/categories/category-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/customers/customer-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/customers/customer-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/customers/customer-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/customers/customer-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/customers/customer-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/customers/customer-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/dashboard/order-status-badge.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/dashboard/order-status-badge.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/dashboard/order-status-badge.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/data-pagination.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/data-pagination.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/editable-field.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/editable-field.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/editable-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/errors/app-error.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/errors/app-error.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/errors/app-error.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/errors/not-found.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/errors/not-found.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/errors/not-found.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/breadcrumb.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/header/breadcrumb.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/breadcrumb.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/index.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/header/index.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/mobile-nav-bar.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/header/mobile-nav-bar.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/mobile-nav-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/header/search-bar.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/search-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/user-data.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/header/user-data.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/user-data.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/icons.tsx",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/icons.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/icons.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/order-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/order-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/order-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/order-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/select-product-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/select-product-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/ai-product-input.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/ai-product-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/array-input.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/array-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-detail-skeleton.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-detail-skeleton.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-detail-skeleton.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-form.helpers.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/products-page-skeleton.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/products-page-skeleton.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/products-page-skeleton.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"value_export_count": 6,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/purchase/purchase-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/purchase/purchase-line-editor.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-line-editor.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/row-actions.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/row-actions.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/row-actions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/submit-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/submit-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/submit-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/top-progress.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/top-progress.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/top-progress.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/upload-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/upload-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/upload-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-breadcrumb.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/hooks/use-breadcrumb.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-breadcrumb.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-editable-field.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/hooks/use-editable-field.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-editable-field.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-mobile.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/hooks/use-mobile.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-mobile.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/constants.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/lib/constants.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/types.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/lib/types.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/types.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"value_export_count": 8,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/lib/utils.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/main.tsx",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/main.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/main.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/__root.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/__root.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/__root.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/analytics.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/analytics.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/brands.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/brands.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/brands.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/categories.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/categories.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/categories.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/customers.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/customers.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/index.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/orders.$id.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.add.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/orders.add.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/orders.index.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/products.$id.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/products.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/products.index.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/products.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.$id.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/purchases.$id.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.add.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/purchases.add.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.index.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/purchases.index.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/review-products.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/review-products.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/route.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/route.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/route.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/sandbox.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/sandbox.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/sandbox.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/login.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/login.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/login.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/products.add.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/products.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/utils/trpc.ts",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/utils/trpc.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/utils/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/alchemy.run.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/alchemy.run.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/index.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/context.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/lib/context.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/oauth.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/lib/oauth.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/oauth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/rate-limit.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/lib/rate-limit.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/rate-limit.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/restock-notifier.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/lib/restock-notifier.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/restock-notifier.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/admin.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/admin.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/auth.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/auth.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/health.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/health.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/health.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/payments.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/payments.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/payments.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/uploads.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/uploads.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/uploads.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/webhooks.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/webhooks.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/webhooks.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/alchemy.run.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/alchemy.run.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/SEO.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/SEO.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/SEO.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/SidebarContent.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/SidebarContent.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/SidebarContent.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/assistant-product-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/ai/assistant-product-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/assistant-product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/assistant-product-display.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/ai/assistant-product-display.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/assistant-product-display.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/ai/store-assistant.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/store-assistant.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/SidebarUserSection.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/SidebarUserSection.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/SidebarUserSection.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/UserProfile.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/UserProfile.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/UserProfile.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/login-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/login-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/login-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/logout-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/logout-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/logout-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/otp-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/otp-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/phone-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/phone-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/phone-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/benchmark-comparison.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/benchmark-comparison.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/add-to-cart-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/add-to-cart-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/add-to-cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-actions.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-actions.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-actions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-count.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-count.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-count.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer-item.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-drawer-item.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-drawer-item.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-drawer.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-drawer.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-list.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-list.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/empty-cart.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/empty-cart.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/empty-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/mobile-cart-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/mobile-cart-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/mobile-cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/checkout/checkout-form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/checkout/checkout-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-context.tsx",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/form/form-context.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-context.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-text-area-field.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/form/form-text-area-field.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-text-area-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-text-field.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/form/form-text-field.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-text-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/form/form.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/loading.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/loading.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/loading.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/clear-cart.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/clear-cart.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/clear-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/confirm-payment-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/confirm-payment-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/confirm-payment-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-options.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/payment-options.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/payment-options.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/payment-status.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/payment-status.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/qpay-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/qpay-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/posthog.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/posthog.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/posthog.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/breadcrumb.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/breadcrumb.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/breadcrumb.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-add-to-cart.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-add-to-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-details.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-details.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-details.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-image-carousel.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-image-carousel.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-image-carousel.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-info.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-info.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-info.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/products-list.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/products-list.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/recommended-products.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/recommended-products.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/search-product-card.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/search-product-card.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/search-product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/query-devtools.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/query-devtools.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/query-devtools.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/filter-bar.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/filter-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/mobile-search-button.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/mobile-search-button.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/mobile-search-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-input.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-overlay.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-overlay.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-overlay.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-results.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-results.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-suggestions.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-suggestions.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-suggestions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/layouts/Footer.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/layouts/Footer.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/layouts/Footer.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/layouts/Header.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/layouts/Header.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/layouts/Header.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/layouts/Layout.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/layouts/Layout.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/layouts/Layout.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/layouts/MobileNavbar.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/layouts/MobileNavbar.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/layouts/MobileNavbar.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"value_export_count": 15,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/analytics.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/constant.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/constant.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/constant.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/image.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/image.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/image.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/query.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/query.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/query.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/search-history.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/search-history.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/trpc.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/types.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/types.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/types.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/useSearchParam.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/useSearchParam.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/useSearchParam.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/utils.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/utils.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/1.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/1.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/1.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/2.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/2.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/2.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/3.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/3.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/3.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/4.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/4.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/4.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/404.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/404.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/404.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/5.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/5.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/5.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/500.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/500.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/500.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/api/hello.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/api/hello.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/api/hello.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/benchmark.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/benchmark.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/benchmark.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/cart.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/cart.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/cart.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/checkout.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/checkout.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/checkout.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/index.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/index.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/index.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/login.astro",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/login.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/login.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/og/products/[slug].png.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/og/products/[slug].png.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/order/confirm/[orderNumber].astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/order/confirm/[orderNumber].astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/order/confirm/[orderNumber].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/payment/[id].astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/payment/[id].astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/payment/[id].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/payment/success/[paymentNumber].astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/payment/success/[paymentNumber].astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/payment/success/[paymentNumber].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/products/[slug].astro",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/products/[slug].astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/products/[slug].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/products/index.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/products/index.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/products/index.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/profile.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/profile.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/profile.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/search.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/search.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/search.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/test.astro",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/pages/test.astro`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/test.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/store/cart.tsx",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/store/cart.tsx`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/store/cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "env.ts",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `env.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `env.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/drizzle.config.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/drizzle.config.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/drizzle.config.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/drizzle.local.config.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/drizzle.local.config.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/drizzle.local.config.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/client.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/client.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/index.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"value_export_count": 27,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/schema.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/valibot.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/valibot.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/valibot.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"value_export_count": 21,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/cache/catalog.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/cache/catalog.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/cache/catalog.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/constants.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/constants.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/context.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/context.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"value_export_count": 10,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/client.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/client.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/index.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/messages.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/messages.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/messages.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/webhook.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/webhook.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/posthog/client.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/index.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/posthog/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/client.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/resend/client.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/index.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/resend/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/sms/client.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/index.ts",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/sms/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/kv.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/kv.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/kv.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/logger.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/logger.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/payments/qpay.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/payments/qpay.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/redis.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/redis.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/redis.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"value_export_count": 5,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/session/admin.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/session/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"value_export_count": 5,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/session/store.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"value_export_count": 7,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/trpc.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/types.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/types.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/types.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"value_export_count": 4,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/upstash-search.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-search.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/upstash-sync.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-sync.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"value_export_count": 17,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/utils.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/analytics.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/brands.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/brands.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/brands.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/categories.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/categories.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/categories.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/customers.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/customers.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/customers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"value_export_count": 11,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/orders.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/orders.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/orders.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/payments.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/payments.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/payments.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/product-images.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/product-images.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/product-images.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/products.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/products.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/purchases.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/purchases.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/sales.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/sales.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/sales.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/users.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/users.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/users.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/ai-product.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/ai-product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/ai-purchase.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/ai-purchase.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/analytics.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/analytics.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/auth.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/auth.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/brands.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/brands.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/brands.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/category.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/category.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/category.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/customer.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/customer.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/customer.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/image.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/image.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/image.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/index.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/order.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/order.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/order.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/payment.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/payment.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/product-images.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/product-images.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/product-images.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/product.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/purchase.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/purchase.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/sales.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/sales.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/sales.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/index.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/ai-assistant.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/ai-assistant.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"value_export_count": 2,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/auth.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/brand.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/brand.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/brand.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/cart.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/cart.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/cart.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/category.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/category.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/category.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/customer.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/customer.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/customer.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/index.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/order.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/order.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/order.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/payment.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/payment.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/product.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"value_export_count": 5,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/logger/src/context.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"value_export_count": 14,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/logger/src/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"value_export_count": 3,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/logger/src/logger.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"value_export_count": 6,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/logger/src/middleware.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/types.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/logger/src/types.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/types.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"value_export_count": 14,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/constants.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/index.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/index.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"value_export_count": 18,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/schema.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/ai.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/ai.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/ai.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/integration.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/integration.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/integration.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/messenger.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/messenger.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/messenger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/order.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/order.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/order.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/payment.ts",
"value_export_count": 1,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/payment.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/product.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types/product.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types.ts",
"value_export_count": 0,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/types.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"value_export_count": 8,
"actions": [
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/utils.ts`",
"note": "No test dependency path reaches this runtime file"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
}
],
"exports": [
{
"path": "apps/admin/alchemy.run.ts",
"export_name": "admin",
"line": 16,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `admin` from `apps/admin/alchemy.run.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/pwa-assets.config.ts",
"export_name": "default",
"line": 6,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/pwa-assets.config.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/pwa-assets.config.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/analytics/product-performance.tsx",
"export_name": "ProductPerformance",
"line": 25,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ProductPerformance` from `apps/admin/src/components/analytics/product-performance.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/analytics/product-performance.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"export_name": "WebAnalytics",
"line": 77,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `WebAnalytics` from `apps/admin/src/components/analytics/web-analytics.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/analytics/web-analytics.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"export_name": "default",
"line": 93,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/app-sidebar.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/app-sidebar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-card.tsx",
"export_name": "default",
"line": 80,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/brands/brand-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/brands/brand-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"export_name": "default",
"line": 148,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/brands/brand-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/brands/brand-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/categories/category-card.tsx",
"export_name": "default",
"line": 66,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/categories/category-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/categories/category-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/categories/category-form.tsx",
"export_name": "default",
"line": 107,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/categories/category-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/categories/category-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/customers/customer-card.tsx",
"export_name": "default",
"line": 85,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/customers/customer-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/customers/customer-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/customers/customer-form.tsx",
"export_name": "default",
"line": 155,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/customers/customer-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/customers/customer-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/dashboard/order-status-badge.tsx",
"export_name": "OrderStatusBadge",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `OrderStatusBadge` from `apps/admin/src/components/dashboard/order-status-badge.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/dashboard/order-status-badge.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"export_name": "DataPagination",
"line": 23,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `DataPagination` from `apps/admin/src/components/data-pagination.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/data-pagination.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/editable-field.tsx",
"export_name": "EditableField",
"line": 28,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `EditableField` from `apps/admin/src/components/editable-field.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/editable-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/errors/app-error.tsx",
"export_name": "default",
"line": 26,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/errors/app-error.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/errors/app-error.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/errors/not-found.tsx",
"export_name": "default",
"line": 6,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/errors/not-found.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/errors/not-found.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/breadcrumb.tsx",
"export_name": "default",
"line": 68,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/header/breadcrumb.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/breadcrumb.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/index.tsx",
"export_name": "default",
"line": 105,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/header/index.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/mobile-nav-bar.tsx",
"export_name": "default",
"line": 49,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/header/mobile-nav-bar.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/mobile-nav-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"export_name": "default",
"line": 211,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/header/search-bar.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/search-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/header/user-data.tsx",
"export_name": "default",
"line": 36,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/header/user-data.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/header/user-data.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/icons.tsx",
"export_name": "GoogleIcon",
"line": 1,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `GoogleIcon` from `apps/admin/src/components/icons.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/icons.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/icons.tsx",
"export_name": "ImagePlaceholderIcon",
"line": 43,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ImagePlaceholderIcon` from `apps/admin/src/components/icons.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/icons.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/icons.tsx",
"export_name": "UploadIcon",
"line": 24,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `UploadIcon` from `apps/admin/src/components/icons.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/icons.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"export_name": "default",
"line": 243,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/order/order-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/order-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"export_name": "default",
"line": 261,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/order/order-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/order-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"export_name": "default",
"line": 277,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/order/select-product-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/order/select-product-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"export_name": "AIProductInput",
"line": 85,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `AIProductInput` from `apps/admin/src/components/product/ai-product-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/ai-product-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"export_name": "AIProductPreview",
"line": 352,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `AIProductPreview` from `apps/admin/src/components/product/ai-product-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/ai-product-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"export_name": "ArrayInput",
"line": 24,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ArrayInput` from `apps/admin/src/components/product/array-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/array-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"export_name": "TagsInput",
"line": 133,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `TagsInput` from `apps/admin/src/components/product/array-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/array-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"export_name": "default",
"line": 518,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/product/product-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-detail-skeleton.tsx",
"export_name": "default",
"line": 161,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/product/product-detail-skeleton.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-detail-skeleton.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"export_name": "getAiProductFormValues",
"line": 55,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getAiProductFormValues` from `apps/admin/src/components/product/product-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"export_name": "getProductFormDefaults",
"line": 26,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getProductFormDefaults` from `apps/admin/src/components/product/product-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"export_name": "default",
"line": 554,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/product/product-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/product-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/product/products-page-skeleton.tsx",
"export_name": "default",
"line": 95,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/product/products-page-skeleton.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/product/products-page-skeleton.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"export_name": "AIPurchaseInput",
"line": 25,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `AIPurchaseInput` from `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"export_name": "AIPurchasePreview",
"line": 174,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `AIPurchasePreview` from `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/ai-purchase-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "EMPTY_LINE",
"line": 29,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `EMPTY_LINE` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "buildImportedPurchasePayload",
"line": 127,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `buildImportedPurchasePayload` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "buildPurchasePayload",
"line": 169,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `buildPurchasePayload` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "getInitialPurchaseItems",
"line": 83,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getInitialPurchaseItems` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "hasUnresolvedAiItems",
"line": 98,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `hasUnresolvedAiItems` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.helpers.ts",
"export_name": "toDateInputValue",
"line": 41,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `toDateInputValue` from `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.helpers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"export_name": "default",
"line": 32,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/purchase/purchase-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"export_name": "PurchaseLineEditor",
"line": 200,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PurchaseLineEditor` from `apps/admin/src/components/purchase/purchase-line-editor.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/purchase/purchase-line-editor.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/row-actions.tsx",
"export_name": "default",
"line": 146,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/row-actions.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/row-actions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/submit-button.tsx",
"export_name": "default",
"line": 34,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/admin/src/components/submit-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/submit-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/top-progress.tsx",
"export_name": "TopProgress",
"line": 3,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `TopProgress` from `apps/admin/src/components/top-progress.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/top-progress.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/components/upload-button.tsx",
"export_name": "UploadButton",
"line": 29,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `UploadButton` from `apps/admin/src/components/upload-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/components/upload-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-breadcrumb.ts",
"export_name": "useBreadcrumb",
"line": 3,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useBreadcrumb` from `apps/admin/src/hooks/use-breadcrumb.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-breadcrumb.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-editable-field.ts",
"export_name": "useEditableField",
"line": 8,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useEditableField` from `apps/admin/src/hooks/use-editable-field.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-editable-field.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/hooks/use-mobile.ts",
"export_name": "useIsMobile",
"line": 5,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useIsMobile` from `apps/admin/src/hooks/use-mobile.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/hooks/use-mobile.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/constants.ts",
"export_name": "sideNavItems",
"line": 13,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sideNavItems` from `apps/admin/src/lib/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "cn",
"line": 13,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cn` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "formatCurrency",
"line": 5,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formatCurrency` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "formatDateToText",
"line": 6,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formatDateToText` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "getPaymentProviderIcon",
"line": 7,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getPaymentProviderIcon` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "getPaymentStatusColor",
"line": 8,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getPaymentStatusColor` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "getRevenueData",
"line": 17,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getRevenueData` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "getStatusColor",
"line": 9,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStatusColor` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"export_name": "getStockColor",
"line": 10,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStockColor` from `apps/admin/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/__root.tsx",
"export_name": "Route",
"line": 23,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/__root.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/__root.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"export_name": "Route",
"line": 24,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/analytics.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/analytics.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/brands.tsx",
"export_name": "Route",
"line": 19,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/brands.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/brands.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/categories.tsx",
"export_name": "Route",
"line": 20,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/categories.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/categories.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"export_name": "Route",
"line": 26,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/customers.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/customers.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"export_name": "Route",
"line": 23,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/index.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"export_name": "Route",
"line": 43,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/orders.$id.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.add.tsx",
"export_name": "Route",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/orders.add.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"export_name": "Route",
"line": 68,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/orders.index.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/orders.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"export_name": "Route",
"line": 47,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/products.$id.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/products.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"export_name": "Route",
"line": 70,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/products.index.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/products.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.$id.tsx",
"export_name": "Route",
"line": 39,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/purchases.$id.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.$id.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.add.tsx",
"export_name": "Route",
"line": 13,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/purchases.add.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/purchases.index.tsx",
"export_name": "Route",
"line": 28,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/purchases.index.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/purchases.index.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"export_name": "Route",
"line": 290,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/review-products.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/review-products.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/route.tsx",
"export_name": "Route",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/route.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/route.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/_dash/sandbox.tsx",
"export_name": "Route",
"line": 6,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/_dash/sandbox.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/_dash/sandbox.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/login.tsx",
"export_name": "Route",
"line": 7,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/login.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/login.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"export_name": "Route",
"line": 14,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `Route` from `apps/admin/src/routes/products.add.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/routes/products.add.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/utils/trpc.ts",
"export_name": "queryClient",
"line": 14,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `queryClient` from `apps/admin/src/utils/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/utils/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/utils/trpc.ts",
"export_name": "trpc",
"line": 68,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trpc` from `apps/admin/src/utils/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/utils/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/admin/src/utils/trpc.ts",
"export_name": "trpcClient",
"line": 29,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trpcClient` from `apps/admin/src/utils/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/admin/src/utils/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/alchemy.run.ts",
"export_name": "server",
"line": 60,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `server` from `apps/server/alchemy.run.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/index.ts",
"export_name": "default",
"line": 99,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/context.ts",
"export_name": "createContext",
"line": 12,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createContext` from `apps/server/src/lib/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/oauth.ts",
"export_name": "google",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `google` from `apps/server/src/lib/oauth.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/oauth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/rate-limit.ts",
"export_name": "rateLimit",
"line": 12,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `rateLimit` from `apps/server/src/lib/rate-limit.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/rate-limit.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/lib/restock-notifier.ts",
"export_name": "runRestockNotifier",
"line": 160,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `runRestockNotifier` from `apps/server/src/lib/restock-notifier.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/lib/restock-notifier.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/admin.ts",
"export_name": "default",
"line": 82,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/auth.ts",
"export_name": "default",
"line": 252,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/auth.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/health.ts",
"export_name": "default",
"line": 13,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/health.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/health.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/payments.ts",
"export_name": "default",
"line": 96,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/payments.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/payments.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/uploads.ts",
"export_name": "default",
"line": 370,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/uploads.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/uploads.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/server/src/routes/webhooks.ts",
"export_name": "default",
"line": 114,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/server/src/routes/webhooks.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/server/src/routes/webhooks.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/alchemy.run.ts",
"export_name": "storev2",
"line": 25,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `storev2` from `apps/storev2/alchemy.run.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/alchemy.run.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/assistant-product-card.tsx",
"export_name": "default",
"line": 123,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/ai/assistant-product-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/assistant-product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/assistant-product-display.tsx",
"export_name": "default",
"line": 163,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/ai/assistant-product-display.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/assistant-product-display.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"export_name": "default",
"line": 454,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/ai/store-assistant.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/ai/store-assistant.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/login-form.tsx",
"export_name": "default",
"line": 99,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/auth/login-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/login-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/logout-button.tsx",
"export_name": "default",
"line": 44,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/auth/logout-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/logout-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"export_name": "default",
"line": 180,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/auth/otp-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/otp-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/auth/phone-form.tsx",
"export_name": "default",
"line": 99,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/auth/phone-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/auth/phone-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"export_name": "default",
"line": 26,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/benchmark-comparison.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/benchmark-comparison.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/add-to-cart-button.tsx",
"export_name": "default",
"line": 54,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/add-to-cart-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/add-to-cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-actions.tsx",
"export_name": "default",
"line": 52,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-actions.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-actions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-button.tsx",
"export_name": "default",
"line": 20,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-count.tsx",
"export_name": "default",
"line": 19,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-count.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-count.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer-item.tsx",
"export_name": "default",
"line": 109,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-drawer-item.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-drawer-item.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer.tsx",
"export_name": "default",
"line": 107,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-drawer.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-drawer.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"export_name": "default",
"line": 157,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/cart-list.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/cart-list.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/empty-cart.tsx",
"export_name": "default",
"line": 27,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/empty-cart.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/empty-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/cart/mobile-cart-button.tsx",
"export_name": "default",
"line": 41,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/cart/mobile-cart-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/cart/mobile-cart-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"export_name": "default",
"line": 265,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/checkout/checkout-form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/checkout/checkout-form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-context.tsx",
"export_name": "fieldContext",
"line": 3,
"col": 15,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `fieldContext` from `apps/storev2/src/components/form/form-context.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-context.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-context.tsx",
"export_name": "formContext",
"line": 3,
"col": 46,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formContext` from `apps/storev2/src/components/form/form-context.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-context.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-context.tsx",
"export_name": "useFieldContext",
"line": 3,
"col": 29,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useFieldContext` from `apps/storev2/src/components/form/form-context.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-context.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-context.tsx",
"export_name": "useFormContext",
"line": 3,
"col": 59,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useFormContext` from `apps/storev2/src/components/form/form-context.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-context.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-text-area-field.tsx",
"export_name": "FormTextArea",
"line": 18,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `FormTextArea` from `apps/storev2/src/components/form/form-text-area-field.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-text-area-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form-text-field.tsx",
"export_name": "FormTextField",
"line": 18,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `FormTextField` from `apps/storev2/src/components/form/form-text-field.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form-text-field.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/form/form.tsx",
"export_name": "useAppForm",
"line": 50,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useAppForm` from `apps/storev2/src/components/form/form.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/form/form.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/loading.tsx",
"export_name": "default",
"line": 15,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/loading.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/loading.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/clear-cart.tsx",
"export_name": "default",
"line": 12,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/payment/clear-cart.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/clear-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/confirm-payment-button.tsx",
"export_name": "default",
"line": 69,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/payment/confirm-payment-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/confirm-payment-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-options.tsx",
"export_name": "default",
"line": 159,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/payment/payment-options.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/payment-options.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"export_name": "default",
"line": 118,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/payment/payment-status.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/payment-status.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"export_name": "default",
"line": 179,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/payment/qpay-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/payment/qpay-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"export_name": "default",
"line": 23,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/product-add-to-cart.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-add-to-cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-card.tsx",
"export_name": "default",
"line": 99,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/product-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/product-image-carousel.tsx",
"export_name": "default",
"line": 18,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/product-image-carousel.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/product-image-carousel.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"export_name": "default",
"line": 666,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/products-list.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/products-list.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"export_name": "default",
"line": 62,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/recommended-products.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/recommended-products.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/product/search-product-card.tsx",
"export_name": "default",
"line": 104,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/product/search-product-card.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/product/search-product-card.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/query-devtools.tsx",
"export_name": "default",
"line": 5,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/query-devtools.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/query-devtools.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"export_name": "default",
"line": 567,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/filter-bar.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/filter-bar.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/mobile-search-button.tsx",
"export_name": "default",
"line": 124,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/mobile-search-button.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/mobile-search-button.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"export_name": "default",
"line": 135,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/search-input.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-input.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-overlay.tsx",
"export_name": "default",
"line": 132,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/search-overlay.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-overlay.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"export_name": "default",
"line": 212,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/search-results.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-results.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/components/search/search-suggestions.tsx",
"export_name": "default",
"line": 115,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `apps/storev2/src/components/search/search-suggestions.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/components/search/search-suggestions.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "identifyUser",
"line": 107,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `identifyUser` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAddToCart",
"line": 34,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAddToCart` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantAddToCart",
"line": 172,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantAddToCart` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantCheckoutClicked",
"line": 182,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantCheckoutClicked` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantMessageSent",
"line": 149,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantMessageSent` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantOpened",
"line": 145,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantOpened` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantProductsShown",
"line": 161,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantProductsShown` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackAssistantStarterPromptClicked",
"line": 155,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackAssistantStarterPromptClicked` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackCartOpened",
"line": 55,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackCartOpened` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackCheckoutStarted",
"line": 65,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackCheckoutStarted` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackOrderPlaced",
"line": 80,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackOrderPlaced` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackPaymentConfirmed",
"line": 90,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackPaymentConfirmed` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackRemoveFromCart",
"line": 46,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackRemoveFromCart` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackSearchPerformed",
"line": 121,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackSearchPerformed` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"export_name": "trackSearchResultClicked",
"line": 131,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `trackSearchResultClicked` from `apps/storev2/src/lib/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/constant.ts",
"export_name": "productColors",
"line": 2,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productColors` from `apps/storev2/src/lib/constant.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/constant.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/image.ts",
"export_name": "getProductImageProps",
"line": 78,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getProductImageProps` from `apps/storev2/src/lib/image.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/image.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/image.ts",
"export_name": "toProductImageUrl",
"line": 71,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `toProductImageUrl` from `apps/storev2/src/lib/image.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/image.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/query.ts",
"export_name": "queryClient",
"line": 4,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `queryClient` from `apps/storev2/src/lib/query.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/query.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"export_name": "addSearch",
"line": 32,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addSearch` from `apps/storev2/src/lib/search-history.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/search-history.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"export_name": "clearHistory",
"line": 76,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `clearHistory` from `apps/storev2/src/lib/search-history.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/search-history.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"export_name": "getRecentSearches",
"line": 12,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getRecentSearches` from `apps/storev2/src/lib/search-history.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/search-history.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/search-history.ts",
"export_name": "removeSearch",
"line": 59,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `removeSearch` from `apps/storev2/src/lib/search-history.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/search-history.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"export_name": "api",
"line": 97,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `api` from `apps/storev2/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"export_name": "createServerClient",
"line": 56,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createServerClient` from `apps/storev2/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/useSearchParam.ts",
"export_name": "useSearchParam",
"line": 31,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `useSearchParam` from `apps/storev2/src/lib/useSearchParam.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/useSearchParam.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/utils.ts",
"export_name": "cn",
"line": 6,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cn` from `apps/storev2/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/lib/utils.ts",
"export_name": "formatCurrency",
"line": 4,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formatCurrency` from `apps/storev2/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/1.astro",
"export_name": "prerender",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/1.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/1.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/2.astro",
"export_name": "prerender",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/2.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/2.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/3.astro",
"export_name": "prerender",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/3.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/3.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/4.astro",
"export_name": "prerender",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/4.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/4.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/404.astro",
"export_name": "prerender",
"line": 22,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/404.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/404.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/5.astro",
"export_name": "prerender",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/5.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/5.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/500.astro",
"export_name": "prerender",
"line": 23,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/500.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/500.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/api/hello.ts",
"export_name": "GET",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `GET` from `apps/storev2/src/pages/api/hello.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/api/hello.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/benchmark.astro",
"export_name": "prerender",
"line": 24,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/benchmark.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/benchmark.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/cart.astro",
"export_name": "prerender",
"line": 20,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/cart.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/cart.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/index.astro",
"export_name": "prerender",
"line": 17,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/index.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/index.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/login.astro",
"export_name": "prerender",
"line": 20,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/login.astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/login.astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"export_name": "GET",
"line": 247,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `GET` from `apps/storev2/src/pages/og/products/[slug].png.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/og/products/[slug].png.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"export_name": "getStaticPaths",
"line": 13,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStaticPaths` from `apps/storev2/src/pages/og/products/[slug].png.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/og/products/[slug].png.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"export_name": "prerender",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/og/products/[slug].png.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/og/products/[slug].png.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/products/[slug].astro",
"export_name": "getStaticPaths",
"line": 22,
"col": 18,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStaticPaths` from `apps/storev2/src/pages/products/[slug].astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/products/[slug].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/pages/products/[slug].astro",
"export_name": "prerender",
"line": 16,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `prerender` from `apps/storev2/src/pages/products/[slug].astro`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/pages/products/[slug].astro`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "apps/storev2/src/store/cart.tsx",
"export_name": "cart",
"line": 68,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cart` from `apps/storev2/src/store/cart.tsx`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `apps/storev2/src/store/cart.tsx`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "env.ts",
"export_name": "createAdminAlchemyEnv",
"line": 86,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createAdminAlchemyEnv` from `env.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `env.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "env.ts",
"export_name": "createServerAlchemyEnv",
"line": 9,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createServerAlchemyEnv` from `env.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `env.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "env.ts",
"export_name": "createStoreAlchemyEnv",
"line": 97,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createStoreAlchemyEnv` from `env.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `env.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/drizzle.config.ts",
"export_name": "default",
"line": 8,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `default` from `packages/api/drizzle.config.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/drizzle.config.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/client.ts",
"export_name": "db",
"line": 7,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `db` from `packages/api/src/db/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/index.ts",
"export_name": "createDb",
"line": 19,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createDb` from `packages/api/src/db/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "BrandsTable",
"line": 62,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `BrandsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "CartItemsTable",
"line": 263,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CartItemsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "CartsTable",
"line": 245,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CartsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "CategoriesTable",
"line": 79,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CategoriesTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "CustomersTable",
"line": 43,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CustomersTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "OrderDetailsTable",
"line": 194,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `OrderDetailsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "OrdersTable",
"line": 163,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `OrdersTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "PaymentsTable",
"line": 216,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PaymentsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "ProductImagesTable",
"line": 144,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ProductImagesTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "ProductsTable",
"line": 95,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ProductsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "PurchaseItemsTable",
"line": 346,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PurchaseItemsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "PurchaseReceiptItemsTable",
"line": 389,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PurchaseReceiptItemsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "PurchaseReceiptsTable",
"line": 369,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PurchaseReceiptsTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "PurchasesTable",
"line": 311,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PurchasesTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "SalesTable",
"line": 285,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `SalesTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "UsersTable",
"line": 24,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `UsersTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "createTable",
"line": 22,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createTable` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "orderDetailsRelations",
"line": 424,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderDetailsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "ordersRelations",
"line": 411,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `ordersRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "paymentsRelations",
"line": 417,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "productImagesRelations",
"line": 450,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productImagesRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "productsRelations",
"line": 438,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "purchaseItemsRelations",
"line": 464,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseItemsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "purchaseReceiptItemsRelations",
"line": 490,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseReceiptItemsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "purchaseReceiptsRelations",
"line": 479,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseReceiptsRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "purchaseRelations",
"line": 459,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"export_name": "salesRelations",
"line": 504,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `salesRelations` from `packages/api/src/db/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/db/valibot.ts",
"export_name": "updateCustomerSchema",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `updateCustomerSchema` from `packages/api/src/db/valibot.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/db/valibot.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "adminAuth",
"line": 39,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminAuth` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "adminCachedProcedure",
"line": 53,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminCachedProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "adminProcedure",
"line": 54,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "auth",
"line": 46,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `auth` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "cachedProcedure",
"line": 55,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cachedProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "createAdminSession",
"line": 40,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createAdminSession` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "createDb",
"line": 4,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createDb` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "createSession",
"line": 47,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSession` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "createSessionManager",
"line": 37,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSessionManager` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "customerCachedProcedure",
"line": 56,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerCachedProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "customerProcedure",
"line": 57,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "db",
"line": 33,
"col": 0,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `db` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "deleteAdminSessionTokenCookie",
"line": 41,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deleteAdminSessionTokenCookie` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "deleteSessionTokenCookie",
"line": 48,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deleteSessionTokenCookie` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "generateSessionToken",
"line": 37,
"col": 31,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generateSessionToken` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "invalidateAdminSession",
"line": 42,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `invalidateAdminSession` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "invalidateSession",
"line": 49,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `invalidateSession` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "publicProcedure",
"line": 58,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `publicProcedure` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "router",
"line": 59,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `router` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "setAdminSessionTokenCookie",
"line": 43,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setAdminSessionTokenCookie` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/index.ts",
"export_name": "setSessionTokenCookie",
"line": 50,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setSessionTokenCookie` from `packages/api/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/cache/catalog.ts",
"export_name": "CATALOG_CACHE_KEYS",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CATALOG_CACHE_KEYS` from `packages/api/src/lib/cache/catalog.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/cache/catalog.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/cache/catalog.ts",
"export_name": "CATALOG_CACHE_TTL_SECONDS",
"line": 1,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `CATALOG_CACHE_TTL_SECONDS` from `packages/api/src/lib/cache/catalog.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/cache/catalog.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "PostHogClient",
"line": 7,
"col": 30,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PostHogClient` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "SmsWebHookEventType",
"line": 27,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `SmsWebHookEventType` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "createPostHogClient",
"line": 7,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createPostHogClient` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "createSmsClient",
"line": 24,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSmsClient` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "messenger",
"line": 3,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messenger` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "messengerWebhookHandler",
"line": 4,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messengerWebhookHandler` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "resendClient",
"line": 8,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `resendClient` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "sendEmail",
"line": 8,
"col": 23,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sendEmail` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "smsClient",
"line": 25,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsClient` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/index.ts",
"export_name": "smsGateway",
"line": 26,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsGateway` from `packages/api/src/lib/integrations/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/client.ts",
"export_name": "messenger",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messenger` from `packages/api/src/lib/integrations/messenger/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/index.ts",
"export_name": "messenger",
"line": 2,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messenger` from `packages/api/src/lib/integrations/messenger/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/index.ts",
"export_name": "messengerWebhookHandler",
"line": 3,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messengerWebhookHandler` from `packages/api/src/lib/integrations/messenger/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/messages.ts",
"export_name": "sendDetailedOrderNotification",
"line": 118,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sendDetailedOrderNotification` from `packages/api/src/lib/integrations/messenger/messages.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/messages.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/messages.ts",
"export_name": "sendTransferNotification",
"line": 92,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sendTransferNotification` from `packages/api/src/lib/integrations/messenger/messages.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/messages.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"export_name": "messengerWebhookHandler",
"line": 9,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `messengerWebhookHandler` from `packages/api/src/lib/integrations/messenger/webhook.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/messenger/webhook.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"export_name": "PostHogClient",
"line": 34,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PostHogClient` from `packages/api/src/lib/integrations/posthog/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"export_name": "createPostHogClient",
"line": 399,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createPostHogClient` from `packages/api/src/lib/integrations/posthog/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/index.ts",
"export_name": "PostHogClient",
"line": 2,
"col": 30,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PostHogClient` from `packages/api/src/lib/integrations/posthog/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/posthog/index.ts",
"export_name": "createPostHogClient",
"line": 2,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createPostHogClient` from `packages/api/src/lib/integrations/posthog/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/posthog/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/client.ts",
"export_name": "resendClient",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `resendClient` from `packages/api/src/lib/integrations/resend/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/client.ts",
"export_name": "sendEmail",
"line": 5,
"col": 22,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sendEmail` from `packages/api/src/lib/integrations/resend/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/index.ts",
"export_name": "resendClient",
"line": 1,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `resendClient` from `packages/api/src/lib/integrations/resend/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/resend/index.ts",
"export_name": "sendEmail",
"line": 1,
"col": 23,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sendEmail` from `packages/api/src/lib/integrations/resend/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/resend/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"export_name": "WebHookEventType",
"line": 28,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `WebHookEventType` from `packages/api/src/lib/integrations/sms/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"export_name": "createSmsClient",
"line": 162,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSmsClient` from `packages/api/src/lib/integrations/sms/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"export_name": "smsClient",
"line": 178,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsClient` from `packages/api/src/lib/integrations/sms/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/client.ts",
"export_name": "smsGateway",
"line": 193,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsGateway` from `packages/api/src/lib/integrations/sms/client.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/client.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/index.ts",
"export_name": "WebHookEventType",
"line": 19,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `WebHookEventType` from `packages/api/src/lib/integrations/sms/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/index.ts",
"export_name": "createSmsClient",
"line": 16,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSmsClient` from `packages/api/src/lib/integrations/sms/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/index.ts",
"export_name": "smsClient",
"line": 17,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsClient` from `packages/api/src/lib/integrations/sms/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/integrations/sms/index.ts",
"export_name": "smsGateway",
"line": 18,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `smsGateway` from `packages/api/src/lib/integrations/sms/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/integrations/sms/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/kv.ts",
"export_name": "kv",
"line": 3,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `kv` from `packages/api/src/lib/kv.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/kv.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/logger.ts",
"export_name": "logger",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `logger` from `packages/api/src/lib/logger.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"export_name": "checkQpayInvoice",
"line": 194,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `checkQpayInvoice` from `packages/api/src/lib/payments/qpay.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/payments/qpay.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/payments/qpay.ts",
"export_name": "createQpayInvoice",
"line": 155,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createQpayInvoice` from `packages/api/src/lib/payments/qpay.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/payments/qpay.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/redis.ts",
"export_name": "redis",
"line": 6,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `redis` from `packages/api/src/lib/redis.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/redis.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"export_name": "adminAuth",
"line": 21,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminAuth` from `packages/api/src/lib/session/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"export_name": "createAdminSession",
"line": 22,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createAdminSession` from `packages/api/src/lib/session/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"export_name": "deleteAdminSessionTokenCookie",
"line": 23,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deleteAdminSessionTokenCookie` from `packages/api/src/lib/session/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"export_name": "invalidateAdminSession",
"line": 24,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `invalidateAdminSession` from `packages/api/src/lib/session/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/admin.ts",
"export_name": "setAdminSessionTokenCookie",
"line": 25,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setAdminSessionTokenCookie` from `packages/api/src/lib/session/admin.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/admin.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"export_name": "createCustomerSessionManager",
"line": 235,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createCustomerSessionManager` from `packages/api/src/lib/session/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"export_name": "createSessionManager",
"line": 24,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSessionManager` from `packages/api/src/lib/session/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"export_name": "createUserSessionManager",
"line": 238,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createUserSessionManager` from `packages/api/src/lib/session/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"export_name": "generateSessionToken",
"line": 18,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generateSessionToken` from `packages/api/src/lib/session/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"export_name": "auth",
"line": 21,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `auth` from `packages/api/src/lib/session/store.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"export_name": "createSession",
"line": 22,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createSession` from `packages/api/src/lib/session/store.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"export_name": "deleteSessionTokenCookie",
"line": 23,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deleteSessionTokenCookie` from `packages/api/src/lib/session/store.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"export_name": "invalidateSession",
"line": 24,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `invalidateSession` from `packages/api/src/lib/session/store.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/session/store.ts",
"export_name": "setSessionTokenCookie",
"line": 25,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setSessionTokenCookie` from `packages/api/src/lib/session/store.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/session/store.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "adminCachedProcedure",
"line": 310,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminCachedProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "adminProcedure",
"line": 300,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "cachedProcedure",
"line": 305,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cachedProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "customerCachedProcedure",
"line": 309,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerCachedProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "customerProcedure",
"line": 296,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "publicProcedure",
"line": 293,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `publicProcedure` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"export_name": "router",
"line": 85,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `router` from `packages/api/src/lib/trpc.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/trpc.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"export_name": "deleteProductFromSearch",
"line": 353,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deleteProductFromSearch` from `packages/api/src/lib/upstash-search.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-search.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"export_name": "getSearchClient",
"line": 7,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getSearchClient` from `packages/api/src/lib/upstash-search.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-search.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"export_name": "searchProducts",
"line": 267,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `searchProducts` from `packages/api/src/lib/upstash-search.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-search.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"export_name": "upsertProductToSearch",
"line": 312,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `upsertProductToSearch` from `packages/api/src/lib/upstash-search.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-search.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"export_name": "bulkSyncProductsToUpstash",
"line": 64,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `bulkSyncProductsToUpstash` from `packages/api/src/lib/upstash-sync.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-sync.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"export_name": "clearUpstashProductsIndex",
"line": 130,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `clearUpstashProductsIndex` from `packages/api/src/lib/upstash-sync.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-sync.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"export_name": "syncProductToUpstash",
"line": 15,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `syncProductToUpstash` from `packages/api/src/lib/upstash-sync.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/upstash-sync.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "calculateExpiration",
"line": 97,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `calculateExpiration` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "deliveryProvider",
"line": 16,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deliveryProvider` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "generateOrderNumber",
"line": 62,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generateOrderNumber` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "generatePaymentNumber",
"line": 68,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generatePaymentNumber` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "getDaysAgo",
"line": 80,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getDaysAgo` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "getDaysFromTimeRange",
"line": 123,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getDaysFromTimeRange` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "getStartAndEndofDayAgo",
"line": 86,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStartAndEndofDayAgo` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "getStartOfDay",
"line": 74,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStartOfDay` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "getTtlForTimeRange",
"line": 110,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getTtlForTimeRange` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "measureMs",
"line": 54,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `measureMs` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "orderStatus",
"line": 16,
"col": 27,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderStatus` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "paymentProvider",
"line": 16,
"col": 40,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentProvider` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "paymentStatus",
"line": 16,
"col": 57,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentStatus` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "percentile",
"line": 18,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `percentile` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "shapeOrderResult",
"line": 192,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `shapeOrderResult` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "shapeOrderResults",
"line": 217,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `shapeOrderResults` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"export_name": "summarizeTimings",
"line": 29,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `summarizeTimings` from `packages/api/src/lib/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/lib/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"export_name": "analyticsQueries",
"line": 16,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `analyticsQueries` from `packages/api/src/queries/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/brands.ts",
"export_name": "brandQueries",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `brandQueries` from `packages/api/src/queries/brands.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/brands.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/categories.ts",
"export_name": "categoryQueries",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `categoryQueries` from `packages/api/src/queries/categories.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/categories.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/customers.ts",
"export_name": "customerQueries",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerQueries` from `packages/api/src/queries/customers.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/customers.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "analyticsQueries",
"line": 1,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `analyticsQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "brandQueries",
"line": 2,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `brandQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "categoryQueries",
"line": 3,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `categoryQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "customerQueries",
"line": 4,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customerQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "orderQueries",
"line": 5,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "paymentQueries",
"line": 6,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "productImageQueries",
"line": 7,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productImageQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "productQueries",
"line": 8,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "purchaseQueries",
"line": 9,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "salesQueries",
"line": 10,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `salesQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/index.ts",
"export_name": "userQueries",
"line": 11,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `userQueries` from `packages/api/src/queries/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/orders.ts",
"export_name": "orderQueries",
"line": 40,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderQueries` from `packages/api/src/queries/orders.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/orders.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/payments.ts",
"export_name": "paymentQueries",
"line": 13,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentQueries` from `packages/api/src/queries/payments.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/payments.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/product-images.ts",
"export_name": "productImageQueries",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productImageQueries` from `packages/api/src/queries/product-images.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/product-images.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"export_name": "productQueries",
"line": 22,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productQueries` from `packages/api/src/queries/products.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/products.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"export_name": "purchaseQueries",
"line": 313,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseQueries` from `packages/api/src/queries/purchases.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/purchases.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/sales.ts",
"export_name": "salesQueries",
"line": 9,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `salesQueries` from `packages/api/src/queries/sales.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/sales.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/queries/users.ts",
"export_name": "userQueries",
"line": 6,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `userQueries` from `packages/api/src/queries/users.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/queries/users.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"export_name": "aiProduct",
"line": 1110,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `aiProduct` from `packages/api/src/routers/admin/ai-product.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/ai-product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"export_name": "aiPurchase",
"line": 559,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `aiPurchase` from `packages/api/src/routers/admin/ai-purchase.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/ai-purchase.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/analytics.ts",
"export_name": "analytics",
"line": 20,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `analytics` from `packages/api/src/routers/admin/analytics.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/analytics.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/auth.ts",
"export_name": "adminAuthRouter",
"line": 7,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminAuthRouter` from `packages/api/src/routers/admin/auth.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/brands.ts",
"export_name": "brands",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `brands` from `packages/api/src/routers/admin/brands.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/brands.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/category.ts",
"export_name": "category",
"line": 7,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `category` from `packages/api/src/routers/admin/category.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/category.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/customer.ts",
"export_name": "customer",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customer` from `packages/api/src/routers/admin/customer.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/customer.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/image.ts",
"export_name": "image",
"line": 6,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `image` from `packages/api/src/routers/admin/image.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/image.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/index.ts",
"export_name": "adminRouter",
"line": 17,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminRouter` from `packages/api/src/routers/admin/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/order.ts",
"export_name": "order",
"line": 20,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `order` from `packages/api/src/routers/admin/order.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/order.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/payment.ts",
"export_name": "payment",
"line": 8,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `payment` from `packages/api/src/routers/admin/payment.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/product-images.ts",
"export_name": "productImages",
"line": 6,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productImages` from `packages/api/src/routers/admin/product-images.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/product-images.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"export_name": "product",
"line": 59,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `product` from `packages/api/src/routers/admin/product.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"export_name": "purchase",
"line": 12,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchase` from `packages/api/src/routers/admin/purchase.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/purchase.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/admin/sales.ts",
"export_name": "sales",
"line": 7,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `sales` from `packages/api/src/routers/admin/sales.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/admin/sales.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/index.ts",
"export_name": "adminRouter",
"line": 1,
"col": 27,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `adminRouter` from `packages/api/src/routers/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/index.ts",
"export_name": "storeRouter",
"line": 2,
"col": 27,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `storeRouter` from `packages/api/src/routers/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"export_name": "aiAssistant",
"line": 301,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `aiAssistant` from `packages/api/src/routers/store/ai-assistant.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/ai-assistant.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"export_name": "addCustomerToDB",
"line": 182,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addCustomerToDB` from `packages/api/src/routers/store/auth.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"export_name": "storeAuthRouter",
"line": 16,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `storeAuthRouter` from `packages/api/src/routers/store/auth.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/auth.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/brand.ts",
"export_name": "brand",
"line": 9,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `brand` from `packages/api/src/routers/store/brand.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/brand.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/cart.ts",
"export_name": "cart",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `cart` from `packages/api/src/routers/store/cart.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/cart.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/category.ts",
"export_name": "category",
"line": 30,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `category` from `packages/api/src/routers/store/category.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/category.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/customer.ts",
"export_name": "customer",
"line": 5,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `customer` from `packages/api/src/routers/store/customer.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/customer.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/index.ts",
"export_name": "storeRouter",
"line": 12,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `storeRouter` from `packages/api/src/routers/store/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/order.ts",
"export_name": "order",
"line": 16,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `order` from `packages/api/src/routers/store/order.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/order.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/payment.ts",
"export_name": "payment",
"line": 15,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `payment` from `packages/api/src/routers/store/payment.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"export_name": "product",
"line": 78,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `product` from `packages/api/src/routers/store/product.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/api/src/routers/store/product.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"export_name": "createRequestContext",
"line": 32,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createRequestContext` from `packages/logger/src/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"export_name": "enrichWithAdminSession",
"line": 73,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `enrichWithAdminSession` from `packages/logger/src/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"export_name": "enrichWithCustomerSession",
"line": 59,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `enrichWithCustomerSession` from `packages/logger/src/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"export_name": "extractCfContext",
"line": 20,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `extractCfContext` from `packages/logger/src/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/context.ts",
"export_name": "extractClientIp",
"line": 3,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `extractClientIp` from `packages/logger/src/context.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/context.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "createLogger",
"line": 8,
"col": 9,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createLogger` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "createMinimalLogger",
"line": 8,
"col": 23,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createMinimalLogger` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "createRequestContext",
"line": 2,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createRequestContext` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "createTrpcLoggingMiddleware",
"line": 11,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createTrpcLoggingMiddleware` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "enrichWithAdminSession",
"line": 3,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `enrichWithAdminSession` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "enrichWithCustomerSession",
"line": 4,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `enrichWithCustomerSession` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "extractCfContext",
"line": 5,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `extractCfContext` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "extractClientIp",
"line": 6,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `extractClientIp` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "generateRequestId",
"line": 8,
"col": 44,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generateRequestId` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "getLogContext",
"line": 12,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getLogContext` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "getLogger",
"line": 13,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getLogger` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "loggerMiddleware",
"line": 14,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `loggerMiddleware` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "setLogger",
"line": 15,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setLogger` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/index.ts",
"export_name": "updateLoggerContext",
"line": 16,
"col": 1,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `updateLoggerContext` from `packages/logger/src/index.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/index.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"export_name": "createLogger",
"line": 197,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createLogger` from `packages/logger/src/logger.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"export_name": "createMinimalLogger",
"line": 248,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createMinimalLogger` from `packages/logger/src/logger.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/logger.ts",
"export_name": "generateRequestId",
"line": 255,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `generateRequestId` from `packages/logger/src/logger.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/logger.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "createTrpcLoggingMiddleware",
"line": 125,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `createTrpcLoggingMiddleware` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "getLogContext",
"line": 20,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getLogContext` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "getLogger",
"line": 9,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getLogger` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "loggerMiddleware",
"line": 52,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `loggerMiddleware` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "setLogger",
"line": 24,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `setLogger` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/logger/src/middleware.ts",
"export_name": "updateLoggerContext",
"line": 29,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `updateLoggerContext` from `packages/logger/src/middleware.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/logger/src/middleware.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "PRODUCT_PER_PAGE",
"line": 39,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `PRODUCT_PER_PAGE` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "badgeClasses",
"line": 87,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `badgeClasses` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "badgeIconNames",
"line": 93,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `badgeIconNames` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "deliveryFee",
"line": 99,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deliveryFee` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "deliveryProvider",
"line": 13,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `deliveryProvider` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "orderStatus",
"line": 3,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderStatus` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "paymentProvider",
"line": 11,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentProvider` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "paymentStatus",
"line": 20,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `paymentStatus` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "productColors",
"line": 60,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productColors` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "productFields",
"line": 41,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productFields` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "productTagSuggestions",
"line": 101,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `productTagSuggestions` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "purchaseProvider",
"line": 22,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseProvider` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "purchaseStatus",
"line": 29,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `purchaseStatus` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/constants.ts",
"export_name": "status",
"line": 1,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `status` from `packages/shared/src/constants.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/constants.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "addBrandSchema",
"line": 234,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addBrandSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "addCategorySchema",
"line": 240,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addCategorySchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "addOrderSchema",
"line": 131,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addOrderSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "addProductSchema",
"line": 96,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addProductSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "addPurchaseSchema",
"line": 160,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `addPurchaseSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "aiExtractedPurchaseSchema",
"line": 199,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `aiExtractedPurchaseSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "editPurchaseSchema",
"line": 175,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `editPurchaseSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "extractPurchaseFromImagesSchema",
"line": 194,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `extractPurchaseFromImagesSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "imageSchema",
"line": 21,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `imageSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "listPurchasesSchema",
"line": 184,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `listPurchasesSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "newOrderSchema",
"line": 253,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `newOrderSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "orderSchema",
"line": 4,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `orderSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "phoneSchema",
"line": 246,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `phoneSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "receivePurchaseSchema",
"line": 177,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `receivePurchaseSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "saveExtractedPurchaseSchema",
"line": 222,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `saveExtractedPurchaseSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "timeRangeSchema",
"line": 245,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `timeRangeSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "updateOrderSchema",
"line": 155,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `updateOrderSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/schema.ts",
"export_name": "updateProductSchema",
"line": 126,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `updateProductSchema` from `packages/shared/src/schema.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/schema.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/types/payment.ts",
"export_name": "BonumApiError",
"line": 94,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `BonumApiError` from `packages/shared/src/types/payment.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/types/payment.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "findBrandId",
"line": 79,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `findBrandId` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "formatCurrency",
"line": 44,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formatCurrency` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "formatDateToText",
"line": 94,
"col": 16,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `formatDateToText` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "getOrderStatusStyles",
"line": 48,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getOrderStatusStyles` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "getPaymentProviderIcon",
"line": 32,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getPaymentProviderIcon` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "getPaymentStatusColor",
"line": 19,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getPaymentStatusColor` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "getStatusColor",
"line": 1,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStatusColor` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"export_name": "getStockColor",
"line": 14,
"col": 13,
"actions": [
{
"type": "add-test-import",
"auto_fixable": false,
"description": "Import and test `getStockColor` from `packages/shared/src/utils.ts`",
"note": "This export is runtime-reachable but no test-reachable module references it"
},
{
"type": "suppress-file",
"auto_fixable": false,
"description": "Suppress coverage gap reporting for `packages/shared/src/utils.ts`",
"comment": "// fallow-ignore-file coverage-gaps"
}
]
}
]
},
"hotspots": [
{
"path": "apps/storev2/src/store/cart.tsx",
"score": 72.0,
"commits": 12,
"weighted_commits": 4.62,
"lines_added": 264,
"lines_deleted": 109,
"complexity_density": 0.29,
"fan_in": 12,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/store/cart.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/store/cart.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"score": 51.6,
"commits": 8,
"weighted_commits": 4.0,
"lines_added": 1080,
"lines_deleted": 414,
"complexity_density": 0.24,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/products-list.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/products-list.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/product.ts",
"score": 48.3,
"commits": 15,
"weighted_commits": 6.42,
"lines_added": 947,
"lines_deleted": 549,
"complexity_density": 0.14,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/product.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/product.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/product.ts",
"score": 46.7,
"commits": 10,
"weighted_commits": 5.11,
"lines_added": 415,
"lines_deleted": 455,
"complexity_density": 0.17,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/product.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/product.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/upstash-search.ts",
"score": 44.7,
"commits": 6,
"weighted_commits": 3.33,
"lines_added": 395,
"lines_deleted": 35,
"complexity_density": 0.25,
"fan_in": 7,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/upstash-search.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/upstash-search.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"score": 43.7,
"commits": 10,
"weighted_commits": 5.09,
"lines_added": 761,
"lines_deleted": 400,
"complexity_density": 0.16,
"fan_in": 0,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/products.index.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/products.index.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/trpc.ts",
"score": 39.1,
"commits": 9,
"weighted_commits": 4.04,
"lines_added": 348,
"lines_deleted": 150,
"complexity_density": 0.18,
"fan_in": 26,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/trpc.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/trpc.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"score": 38.3,
"commits": 12,
"weighted_commits": 4.46,
"lines_added": 296,
"lines_deleted": 81,
"complexity_density": 0.16,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/product-add-to-cart.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-add-to-cart.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"score": 37.8,
"commits": 7,
"weighted_commits": 3.91,
"lines_added": 189,
"lines_deleted": 55,
"complexity_density": 0.18,
"fan_in": 2,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/upstash-sync.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/upstash-sync.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/purchase.ts",
"score": 35.2,
"commits": 9,
"weighted_commits": 3.85,
"lines_added": 240,
"lines_deleted": 368,
"complexity_density": 0.17,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/purchase.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/purchase.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"score": 34.5,
"commits": 5,
"weighted_commits": 3.21,
"lines_added": 1697,
"lines_deleted": 229,
"complexity_density": 0.2,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/ai-product.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/ai-product.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"score": 32.3,
"commits": 10,
"weighted_commits": 4.29,
"lines_added": 475,
"lines_deleted": 210,
"complexity_density": 0.14,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/checkout/checkout-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/checkout/checkout-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/server/src/index.ts",
"score": 29.6,
"commits": 13,
"weighted_commits": 5.51,
"lines_added": 586,
"lines_deleted": 747,
"complexity_density": 0.1,
"fan_in": 0,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/server/src/index.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/index.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"score": 27.3,
"commits": 7,
"weighted_commits": 3.18,
"lines_added": 207,
"lines_deleted": 27,
"complexity_density": 0.16,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/auth/otp-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/otp-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/order.ts",
"score": 26.7,
"commits": 9,
"weighted_commits": 3.55,
"lines_added": 495,
"lines_deleted": 167,
"complexity_density": 0.14,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/order.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/order.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/payment/confirm-payment-button.tsx",
"score": 26.3,
"commits": 8,
"weighted_commits": 3.76,
"lines_added": 95,
"lines_deleted": 26,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/payment/confirm-payment-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/confirm-payment-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"score": 26.3,
"commits": 11,
"weighted_commits": 5.44,
"lines_added": 256,
"lines_deleted": 79,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/recommended-products.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/recommended-products.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/utils.ts",
"score": 25.8,
"commits": 5,
"weighted_commits": 2.67,
"lines_added": 71,
"lines_deleted": 17,
"complexity_density": 0.18,
"fan_in": 11,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/utils.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/utils.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"score": 25.7,
"commits": 7,
"weighted_commits": 2.99,
"lines_added": 115,
"lines_deleted": 36,
"complexity_density": 0.16,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/integrations/messenger/webhook.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/webhook.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/shared/src/utils.ts",
"score": 24.3,
"commits": 3,
"weighted_commits": 1.74,
"lines_added": 12,
"lines_deleted": 11,
"complexity_density": 0.26,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/shared/src/utils.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/shared/src/utils.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/product-image-carousel.tsx",
"score": 23.9,
"commits": 8,
"weighted_commits": 3.43,
"lines_added": 185,
"lines_deleted": 72,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/product-image-carousel.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-image-carousel.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"score": 23.7,
"commits": 5,
"weighted_commits": 2.94,
"lines_added": 354,
"lines_deleted": 151,
"complexity_density": 0.15,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/product/product-card.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-card.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/db/schema.ts",
"score": 22.0,
"commits": 9,
"weighted_commits": 4.09,
"lines_added": 949,
"lines_deleted": 840,
"complexity_density": 0.1,
"fan_in": 24,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/db/schema.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/schema.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/auth.ts",
"score": 21.5,
"commits": 9,
"weighted_commits": 3.34,
"lines_added": 143,
"lines_deleted": 103,
"complexity_density": 0.12,
"fan_in": 2,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/auth.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/auth.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"score": 20.1,
"commits": 6,
"weighted_commits": 2.88,
"lines_added": 212,
"lines_deleted": 94,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/payment/payment-status.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/payment-status.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/brands.ts",
"score": 19.6,
"commits": 8,
"weighted_commits": 3.31,
"lines_added": 68,
"lines_deleted": 82,
"complexity_density": 0.11,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/brands.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/brands.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/lib/trpc.ts",
"score": 19.6,
"commits": 5,
"weighted_commits": 1.59,
"lines_added": 202,
"lines_deleted": 134,
"complexity_density": 0.23,
"fan_in": 32,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/lib/trpc.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/trpc.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/db/index.ts",
"score": 19.3,
"commits": 7,
"weighted_commits": 3.27,
"lines_added": 59,
"lines_deleted": 19,
"complexity_density": 0.11,
"fan_in": 6,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/db/index.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/db/index.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/upload-button.tsx",
"score": 18.6,
"commits": 3,
"weighted_commits": 2.04,
"lines_added": 7,
"lines_deleted": 15,
"complexity_density": 0.17,
"fan_in": 4,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/upload-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/upload-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"score": 18.4,
"commits": 4,
"weighted_commits": 2.29,
"lines_added": 38,
"lines_deleted": 38,
"complexity_density": 0.15,
"fan_in": 3,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/order/order-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/order-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"score": 18.4,
"commits": 3,
"weighted_commits": 1.71,
"lines_added": 202,
"lines_deleted": 23,
"complexity_density": 0.2,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/payment/qpay-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/payment/qpay-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/product-card.tsx",
"score": 18.2,
"commits": 5,
"weighted_commits": 2.83,
"lines_added": 122,
"lines_deleted": 23,
"complexity_density": 0.12,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/product-card.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/product-card.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"score": 17.9,
"commits": 6,
"weighted_commits": 3.33,
"lines_added": 1730,
"lines_deleted": 817,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/products.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/products.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"score": 17.8,
"commits": 4,
"weighted_commits": 1.66,
"lines_added": 165,
"lines_deleted": 30,
"complexity_density": 0.2,
"fan_in": 2,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/search-input.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-input.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"score": 17.7,
"commits": 6,
"weighted_commits": 3.3,
"lines_added": 281,
"lines_deleted": 87,
"complexity_density": 0.1,
"fan_in": 0,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/orders.index.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/orders.index.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"score": 17.7,
"commits": 6,
"weighted_commits": 2.2,
"lines_added": 307,
"lines_deleted": 47,
"complexity_density": 0.15,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/benchmark-comparison.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/benchmark-comparison.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/auth/phone-form.tsx",
"score": 17.2,
"commits": 6,
"weighted_commits": 2.91,
"lines_added": 123,
"lines_deleted": 24,
"complexity_density": 0.11,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/auth/phone-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/phone-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/astro.config.mjs",
"score": 16.8,
"commits": 10,
"weighted_commits": 3.47,
"lines_added": 55,
"lines_deleted": 15,
"complexity_density": 0.09,
"fan_in": 0,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/astro.config.mjs`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/astro.config.mjs` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/session/index.ts",
"score": 15.8,
"commits": 4,
"weighted_commits": 1.96,
"lines_added": 54,
"lines_deleted": 26,
"complexity_density": 0.15,
"fan_in": 4,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/session/index.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/session/index.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"score": 15.7,
"commits": 6,
"weighted_commits": 2.66,
"lines_added": 226,
"lines_deleted": 14,
"complexity_density": 0.11,
"fan_in": 2,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/search-results.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-results.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/server/src/routes/auth.ts",
"score": 15.6,
"commits": 3,
"weighted_commits": 1.71,
"lines_added": 345,
"lines_deleted": 93,
"complexity_density": 0.17,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/server/src/routes/auth.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/auth.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/analytics.ts",
"score": 15.5,
"commits": 7,
"weighted_commits": 2.88,
"lines_added": 349,
"lines_deleted": 580,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/analytics.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/analytics.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/purchases.ts",
"score": 15.3,
"commits": 3,
"weighted_commits": 1.78,
"lines_added": 1174,
"lines_deleted": 445,
"complexity_density": 0.16,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/purchases.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/purchases.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/payment.ts",
"score": 15.3,
"commits": 7,
"weighted_commits": 2.84,
"lines_added": 394,
"lines_deleted": 103,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/payment.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/payment.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/product-images.ts",
"score": 15.2,
"commits": 6,
"weighted_commits": 2.58,
"lines_added": 103,
"lines_deleted": 181,
"complexity_density": 0.11,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/product-images.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/product-images.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/orders.ts",
"score": 14.7,
"commits": 6,
"weighted_commits": 3.41,
"lines_added": 1353,
"lines_deleted": 587,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/orders.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/orders.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/order.ts",
"score": 14.4,
"commits": 6,
"weighted_commits": 2.44,
"lines_added": 547,
"lines_deleted": 834,
"complexity_density": 0.11,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/order.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/order.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/customer.ts",
"score": 14.4,
"commits": 7,
"weighted_commits": 2.69,
"lines_added": 74,
"lines_deleted": 118,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/customer.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/customer.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"score": 14.2,
"commits": 4,
"weighted_commits": 2.65,
"lines_added": 351,
"lines_deleted": 88,
"complexity_density": 0.1,
"fan_in": 3,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/product/product-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/product/product-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"score": 14.2,
"commits": 4,
"weighted_commits": 2.65,
"lines_added": 324,
"lines_deleted": 79,
"complexity_density": 0.1,
"fan_in": 0,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/products.add.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/products.add.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/add-to-cart-button.tsx",
"score": 13.5,
"commits": 8,
"weighted_commits": 2.8,
"lines_added": 60,
"lines_deleted": 25,
"complexity_density": 0.09,
"fan_in": 10,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/add-to-cart-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/add-to-cart-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/top-progress.tsx",
"score": 13.3,
"commits": 3,
"weighted_commits": 1.03,
"lines_added": 31,
"lines_deleted": 7,
"complexity_density": 0.24,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/top-progress.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/top-progress.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"score": 13.2,
"commits": 4,
"weighted_commits": 1.64,
"lines_added": 671,
"lines_deleted": 104,
"complexity_density": 0.15,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/filter-bar.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/filter-bar.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"score": 12.8,
"commits": 5,
"weighted_commits": 2.65,
"lines_added": 918,
"lines_deleted": 493,
"complexity_density": 0.09,
"fan_in": 0,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/products.$id.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/products.$id.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/category.ts",
"score": 12.8,
"commits": 6,
"weighted_commits": 2.64,
"lines_added": 49,
"lines_deleted": 78,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/category.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/category.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/lib/utils.ts",
"score": 12.8,
"commits": 5,
"weighted_commits": 2.38,
"lines_added": 13,
"lines_deleted": 122,
"complexity_density": 0.1,
"fan_in": 16,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/lib/utils.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/lib/utils.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/server/src/routes/uploads.ts",
"score": 12.4,
"commits": 5,
"weighted_commits": 2.88,
"lines_added": 397,
"lines_deleted": 27,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/server/src/routes/uploads.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/uploads.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"score": 12.3,
"commits": 3,
"weighted_commits": 1.91,
"lines_added": 118,
"lines_deleted": 114,
"complexity_density": 0.12,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/order/select-product-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/select-product-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"score": 12.1,
"commits": 3,
"weighted_commits": 2.04,
"lines_added": 1,
"lines_deleted": 4,
"complexity_density": 0.11,
"fan_in": 2,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/brands/brand-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/brands/brand-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/lib/analytics.ts",
"score": 11.9,
"commits": 3,
"weighted_commits": 1.84,
"lines_added": 213,
"lines_deleted": 15,
"complexity_density": 0.12,
"fan_in": 7,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/lib/analytics.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/analytics.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/payment.ts",
"score": 11.8,
"commits": 6,
"weighted_commits": 2.44,
"lines_added": 37,
"lines_deleted": 58,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/payment.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/payment.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/customer.ts",
"score": 10.9,
"commits": 5,
"weighted_commits": 1.69,
"lines_added": 33,
"lines_deleted": 17,
"complexity_density": 0.12,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/customer.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/customer.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"score": 10.6,
"commits": 4,
"weighted_commits": 2.19,
"lines_added": 14,
"lines_deleted": 11,
"complexity_density": 0.09,
"fan_in": 0,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/orders.$id.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/orders.$id.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"score": 10.6,
"commits": 5,
"weighted_commits": 2.19,
"lines_added": 105,
"lines_deleted": 71,
"complexity_density": 0.09,
"fan_in": 0,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/customers.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/customers.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/lib/integrations/messenger/messages.ts",
"score": 10.5,
"commits": 5,
"weighted_commits": 2.17,
"lines_added": 174,
"lines_deleted": 19,
"complexity_density": 0.09,
"fan_in": 5,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/lib/integrations/messenger/messages.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/lib/integrations/messenger/messages.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/category.ts",
"score": 10.4,
"commits": 3,
"weighted_commits": 1.49,
"lines_added": 51,
"lines_deleted": 12,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/category.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/category.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/sales.ts",
"score": 10.3,
"commits": 3,
"weighted_commits": 1.48,
"lines_added": 220,
"lines_deleted": 117,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/sales.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/sales.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/analytics.ts",
"score": 10.3,
"commits": 3,
"weighted_commits": 1.48,
"lines_added": 865,
"lines_deleted": 368,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/analytics.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/analytics.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/users.ts",
"score": 10.1,
"commits": 3,
"weighted_commits": 1.45,
"lines_added": 123,
"lines_deleted": 42,
"complexity_density": 0.13,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/users.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/users.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/auth.ts",
"score": 9.8,
"commits": 5,
"weighted_commits": 2.02,
"lines_added": 37,
"lines_deleted": 50,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/auth.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/auth.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/sales.ts",
"score": 9.8,
"commits": 6,
"weighted_commits": 2.27,
"lines_added": 114,
"lines_deleted": 119,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/sales.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/sales.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/admin/image.ts",
"score": 9.8,
"commits": 5,
"weighted_commits": 2.02,
"lines_added": 28,
"lines_deleted": 41,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/admin/image.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/admin/image.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"score": 9.4,
"commits": 3,
"weighted_commits": 1.59,
"lines_added": 159,
"lines_deleted": 163,
"complexity_density": 0.11,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/order/order-card.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/order/order-card.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/server/src/routes/webhooks.ts",
"score": 9.1,
"commits": 3,
"weighted_commits": 1.7,
"lines_added": 118,
"lines_deleted": 4,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/server/src/routes/webhooks.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/routes/webhooks.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/brand.ts",
"score": 8.8,
"commits": 5,
"weighted_commits": 2.04,
"lines_added": 34,
"lines_deleted": 33,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/brand.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/brand.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/lib/utils.ts",
"score": 8.7,
"commits": 3,
"weighted_commits": 1.48,
"lines_added": 9,
"lines_deleted": 7,
"complexity_density": 0.11,
"fan_in": 14,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/lib/utils.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/utils.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/search-suggestions.tsx",
"score": 8.6,
"commits": 4,
"weighted_commits": 1.99,
"lines_added": 146,
"lines_deleted": 31,
"complexity_density": 0.08,
"fan_in": 2,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/search-suggestions.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-suggestions.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"score": 8.5,
"commits": 5,
"weighted_commits": 2.25,
"lines_added": 536,
"lines_deleted": 105,
"complexity_density": 0.07,
"fan_in": 0,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/analytics.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/analytics.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-count.tsx",
"score": 8.5,
"commits": 4,
"weighted_commits": 1.05,
"lines_added": 32,
"lines_deleted": 25,
"complexity_density": 0.15,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-count.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-count.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/auth/logout-button.tsx",
"score": 8.1,
"commits": 3,
"weighted_commits": 0.94,
"lines_added": 59,
"lines_deleted": 15,
"complexity_density": 0.16,
"fan_in": 2,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/auth/logout-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/logout-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/server/src/lib/context.ts",
"score": 8.1,
"commits": 4,
"weighted_commits": 2.16,
"lines_added": 34,
"lines_deleted": 24,
"complexity_density": 0.07,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/server/src/lib/context.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/server/src/lib/context.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/product/search-product-card.tsx",
"score": 8.0,
"commits": 4,
"weighted_commits": 2.48,
"lines_added": 115,
"lines_deleted": 11,
"complexity_density": 0.06,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/product/search-product-card.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/product/search-product-card.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/brands.ts",
"score": 7.7,
"commits": 4,
"weighted_commits": 2.39,
"lines_added": 154,
"lines_deleted": 58,
"complexity_density": 0.06,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/brands.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/brands.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"score": 7.5,
"commits": 9,
"weighted_commits": 2.78,
"lines_added": 382,
"lines_deleted": 404,
"complexity_density": 0.05,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-list.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-list.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/mobile-search-button.tsx",
"score": 7.2,
"commits": 4,
"weighted_commits": 1.49,
"lines_added": 141,
"lines_deleted": 17,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/mobile-search-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/mobile-search-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer.tsx",
"score": 6.7,
"commits": 5,
"weighted_commits": 2.09,
"lines_added": 127,
"lines_deleted": 20,
"complexity_density": 0.06,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-drawer.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-drawer.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/queries/payments.ts",
"score": 6.6,
"commits": 4,
"weighted_commits": 2.05,
"lines_added": 338,
"lines_deleted": 143,
"complexity_density": 0.06,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/queries/payments.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/queries/payments.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-actions.tsx",
"score": 6.5,
"commits": 5,
"weighted_commits": 1.52,
"lines_added": 22,
"lines_deleted": 64,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-actions.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-actions.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/search/search-overlay.tsx",
"score": 6.4,
"commits": 4,
"weighted_commits": 1.49,
"lines_added": 147,
"lines_deleted": 15,
"complexity_density": 0.08,
"fan_in": 1,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/search/search-overlay.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/search/search-overlay.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/auth/login-form.tsx",
"score": 6.1,
"commits": 3,
"weighted_commits": 1.26,
"lines_added": 108,
"lines_deleted": 9,
"complexity_density": 0.09,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/auth/login-form.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/auth/login-form.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-button.tsx",
"score": 5.9,
"commits": 3,
"weighted_commits": 1.09,
"lines_added": 34,
"lines_deleted": 14,
"complexity_density": 0.1,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-button.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-button.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/lib/query.ts",
"score": 5.4,
"commits": 3,
"weighted_commits": 1.11,
"lines_added": 42,
"lines_deleted": 20,
"complexity_density": 0.09,
"fan_in": 12,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/lib/query.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/lib/query.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/cart-drawer-item.tsx",
"score": 4.5,
"commits": 4,
"weighted_commits": 1.67,
"lines_added": 124,
"lines_deleted": 15,
"complexity_density": 0.05,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/cart-drawer-item.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/cart-drawer-item.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"score": 4.4,
"commits": 4,
"weighted_commits": 1.65,
"lines_added": 374,
"lines_deleted": 90,
"complexity_density": 0.05,
"fan_in": 0,
"trend": "stable",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/routes/_dash/index.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/routes/_dash/index.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "packages/api/src/routers/store/index.ts",
"score": 4.1,
"commits": 4,
"weighted_commits": 1.91,
"lines_added": 9,
"lines_deleted": 1,
"complexity_density": 0.04,
"fan_in": 1,
"trend": "cooling",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `packages/api/src/routers/store/index.ts`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `packages/api/src/routers/store/index.ts` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"score": 3.8,
"commits": 3,
"weighted_commits": 1.42,
"lines_added": 342,
"lines_deleted": 227,
"complexity_density": 0.05,
"fan_in": 1,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/admin/src/components/analytics/web-analytics.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/admin/src/components/analytics/web-analytics.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
},
{
"path": "apps/storev2/src/components/cart/empty-cart.tsx",
"score": 2.2,
"commits": 3,
"weighted_commits": 1.01,
"lines_added": 52,
"lines_deleted": 25,
"complexity_density": 0.04,
"fan_in": 3,
"trend": "accelerating",
"actions": [
{
"type": "refactor-file",
"auto_fixable": false,
"description": "Refactor `apps/storev2/src/components/cart/empty-cart.tsx`, high complexity combined with frequent changes makes this a maintenance risk",
"note": "Prioritize extracting complex functions, adding tests, or splitting the module"
},
{
"type": "add-tests",
"auto_fixable": false,
"description": "Add test coverage for `apps/storev2/src/components/cart/empty-cart.tsx` to reduce change risk",
"note": "Frequently changed complex files benefit most from comprehensive test coverage"
}
]
}
],
"hotspot_summary": {
"since": "6 months",
"min_commits": 3,
"files_analyzed": 97,
"files_excluded": 70,
"shallow_clone": false
},
"large_functions": [
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "ProductDetailContent",
"line": 78,
"line_count": 669
},
{
"path": "apps/storev2/src/components/product/products-list.tsx",
"name": "ProductsList",
"line": 67,
"line_count": 598
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"name": "OrderDetailContent",
"line": 60,
"line_count": 564
},
{
"path": "apps/admin/src/components/product/product-form.tsx",
"name": "ProductForm",
"line": 48,
"line_count": 505
},
{
"path": "apps/storev2/src/components/search/filter-bar.tsx",
"name": "FilterBar",
"line": 68,
"line_count": 498
},
{
"path": "apps/admin/src/routes/_dash/purchases.$id.tsx",
"name": "PurchaseDetailPage",
"line": 62,
"line_count": 424
},
{
"path": "apps/admin/src/routes/_dash/analytics.tsx",
"name": "RouteComponent",
"line": 90,
"line_count": 387
},
{
"path": "apps/admin/src/components/purchase/purchase-form.tsx",
"name": "PurchaseForm",
"line": 32,
"line_count": 368
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"name": "StoreAssistant",
"line": 91,
"line_count": 362
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"name": "ProductCard",
"line": 180,
"line_count": 337
},
{
"path": "apps/admin/src/routes/_dash/index.tsx",
"name": "HomeComponent",
"line": 46,
"line_count": 312
},
{
"path": "apps/admin/src/components/analytics/web-analytics.tsx",
"name": "WebAnalytics",
"line": 77,
"line_count": 287
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "RouteComponent",
"line": 96,
"line_count": 270
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"name": "RouteComponent",
"line": 294,
"line_count": 267
},
{
"path": "packages/api/src/queries/analytics.ts",
"name": "getAnalyticsData",
"line": 229,
"line_count": 267
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"name": "SelectProductForm",
"line": 15,
"line_count": 261
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"name": "AIProductInput",
"line": 85,
"line_count": 259
},
{
"path": "apps/storev2/src/components/checkout/checkout-form.tsx",
"name": "CheckoutForm",
"line": 19,
"line_count": 245
},
{
"path": "packages/api/src/routers/store/order.ts",
"name": "addOrder",
"line": 59,
"line_count": 245
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractProductFromQuery",
"line": 1230,
"line_count": 239
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"name": "BenchmarkComparison",
"line": 26,
"line_count": 235
},
{
"path": "apps/admin/src/components/order/order-form.tsx",
"name": "OrderForm",
"line": 30,
"line_count": 230
},
{
"path": "apps/admin/src/routes/products.add.tsx",
"name": "RouteComponent",
"line": 50,
"line_count": 223
},
{
"path": "apps/admin/src/routes/_dash/purchases.index.tsx",
"name": "PurchasesPage",
"line": 74,
"line_count": 222
},
{
"path": "apps/admin/src/components/order/order-card.tsx",
"name": "OrderCard",
"line": 23,
"line_count": 219
},
{
"path": "packages/api/src/lib/session/index.ts",
"name": "createSessionManager",
"line": 24,
"line_count": 210
},
{
"path": "apps/admin/src/components/product/ai-product-input.tsx",
"name": "AIProductPreview",
"line": 352,
"line_count": 202
},
{
"path": "apps/admin/src/components/header/search-bar.tsx",
"name": "SearchBar",
"line": 16,
"line_count": 194
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"name": "OrdersFilters",
"line": 305,
"line_count": 193
},
{
"path": "apps/storev2/src/components/product/product-add-to-cart.tsx",
"name": "ProductQuantitySelector",
"line": 23,
"line_count": 193
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"name": "RouteComponent",
"line": 113,
"line_count": 191
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"name": "SearchResults",
"line": 23,
"line_count": 188
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "inferInvoiceData",
"line": 287,
"line_count": 179
},
{
"path": "apps/admin/src/routes/_dash/purchases.add.tsx",
"name": "AddPurchasePage",
"line": 43,
"line_count": 167
},
{
"path": "apps/storev2/src/components/auth/otp-form.tsx",
"name": "OtpForm",
"line": 17,
"line_count": 163
},
{
"path": "apps/storev2/src/components/payment/qpay-button.tsx",
"name": "QpayPaymentPanel",
"line": 15,
"line_count": 163
},
{
"path": "apps/admin/src/components/product/product-detail-skeleton.tsx",
"name": "ProductDetailSkeleton",
"line": 3,
"line_count": 157
},
{
"path": "packages/api/src/queries/orders.ts",
"name": "getPaginatedOrders",
"line": 378,
"line_count": 154
},
{
"path": "apps/server/src/routes/uploads.ts",
"name": "<arrow>",
"line": 220,
"line_count": 149
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"name": "CartList",
"line": 9,
"line_count": 147
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "ProductsFilters",
"line": 367,
"line_count": 143
},
{
"path": "apps/storev2/src/components/payment/payment-options.tsx",
"name": "PaymentOptions",
"line": 15,
"line_count": 143
},
{
"path": "packages/api/src/queries/products.ts",
"name": "getInfiniteProducts",
"line": 769,
"line_count": 143
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"name": "AIPurchaseInput",
"line": 25,
"line_count": 141
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "uploadImagesToR2",
"line": 865,
"line_count": 139
},
{
"path": "apps/admin/src/components/data-pagination.tsx",
"name": "DataPagination",
"line": 23,
"line_count": 137
},
{
"path": "apps/admin/src/components/analytics/product-performance.tsx",
"name": "ProductPerformance",
"line": 25,
"line_count": 135
},
{
"path": "apps/server/src/routes/auth.ts",
"name": "<arrow>",
"line": 116,
"line_count": 135
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"name": "TagsInput",
"line": 133,
"line_count": 133
},
{
"path": "apps/storev2/src/components/ai/assistant-product-display.tsx",
"name": "AssistantProductDisplay",
"line": 29,
"line_count": 133
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 459,
"line_count": 133
},
{
"path": "apps/admin/src/components/editable-field.tsx",
"name": "EditableField",
"line": 28,
"line_count": 129
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"name": "PurchaseLineEditor",
"line": 200,
"line_count": 128
},
{
"path": "apps/admin/src/components/brands/brand-form.tsx",
"name": "BrandForm",
"line": 24,
"line_count": 123
},
{
"path": "packages/api/src/routers/admin/order.ts",
"name": "updateOrder",
"line": 128,
"line_count": 120
},
{
"path": "apps/admin/src/routes/_dash/products.index.tsx",
"name": "ProductsList",
"line": 511,
"line_count": 119
},
{
"path": "apps/server/src/routes/uploads.ts",
"name": "<arrow>",
"line": 31,
"line_count": 117
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"name": "RecommendedProducts",
"line": 62,
"line_count": 116
},
{
"path": "apps/storev2/src/components/search/search-overlay.tsx",
"name": "SearchOverlay",
"line": 16,
"line_count": 115
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"name": "RouteComponent",
"line": 40,
"line_count": 114
},
{
"path": "apps/admin/src/components/customers/customer-form.tsx",
"name": "CustomerForm",
"line": 42,
"line_count": 112
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "translateAndStructureProduct",
"line": 751,
"line_count": 112
},
{
"path": "apps/admin/src/components/purchase/purchase-line-editor.tsx",
"name": "DraftFields",
"line": 89,
"line_count": 110
},
{
"path": "apps/admin/src/components/row-actions.tsx",
"name": "RowAction",
"line": 36,
"line_count": 110
},
{
"path": "apps/storev2/src/pages/og/products/[slug].png.ts",
"name": "buildOgSvg",
"line": 137,
"line_count": 109
},
{
"path": "apps/storev2/src/components/search/search-input.tsx",
"name": "SearchInput",
"line": 26,
"line_count": 108
},
{
"path": "apps/admin/src/components/errors/app-error.tsx",
"name": "AppError",
"line": 26,
"line_count": 106
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "<arrow>",
"line": 1123,
"line_count": 105
},
{
"path": "apps/storev2/src/components/search/mobile-search-button.tsx",
"name": "MobileSearchButton",
"line": 19,
"line_count": 104
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractAndUploadProductImages",
"line": 1005,
"line_count": 103
},
{
"path": "packages/api/src/routers/admin/order.ts",
"name": "addOrder",
"line": 23,
"line_count": 102
},
{
"path": "apps/storev2/src/components/payment/payment-status.tsx",
"name": "PaymentStatus",
"line": 19,
"line_count": 98
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "receivePurchase",
"line": 500,
"line_count": 98
},
{
"path": "apps/storev2/src/components/cart/cart-drawer-item.tsx",
"name": "CartDrawerItem",
"line": 11,
"line_count": 97
},
{
"path": "apps/storev2/src/components/search/search-suggestions.tsx",
"name": "SearchSuggestions",
"line": 17,
"line_count": 97
},
{
"path": "apps/admin/src/components/product/array-input.tsx",
"name": "ArrayInput",
"line": 24,
"line_count": 96
},
{
"path": "apps/storev2/src/components/product/product-image-carousel.tsx",
"name": "ProductImageCarousel",
"line": 18,
"line_count": 96
},
{
"path": "apps/admin/src/components/purchase/ai-purchase-input.tsx",
"name": "AIPurchasePreview",
"line": 174,
"line_count": 94
},
{
"path": "packages/api/src/queries/products.ts",
"name": "getPaginatedProducts",
"line": 267,
"line_count": 92
},
{
"path": "apps/admin/src/components/product/products-page-skeleton.tsx",
"name": "ProductsPageSkeleton",
"line": 3,
"line_count": 91
},
{
"path": "apps/storev2/src/components/cart/cart-drawer.tsx",
"name": "CartDrawer",
"line": 15,
"line_count": 91
},
{
"path": "apps/admin/src/components/header/index.tsx",
"name": "Header",
"line": 14,
"line_count": 90
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"name": "ReviewDetail",
"line": 562,
"line_count": 90
},
{
"path": "apps/storev2/src/components/auth/phone-form.tsx",
"name": "PhoneForm",
"line": 9,
"line_count": 90
},
{
"path": "apps/admin/src/components/product/product-card.tsx",
"name": "ProductSummary",
"line": 90,
"line_count": 89
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "ProductAnalyticsSection",
"line": 796,
"line_count": 89
},
{
"path": "apps/storev2/src/store/cart.tsx",
"name": "cart",
"line": 68,
"line_count": 88
},
{
"path": "apps/admin/src/components/categories/category-form.tsx",
"name": "CategoryForm",
"line": 19,
"line_count": 87
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "analyzeProductImages",
"line": 662,
"line_count": 87
},
{
"path": "apps/server/src/routes/payments.ts",
"name": "<arrow>",
"line": 9,
"line_count": 86
},
{
"path": "apps/storev2/src/components/ai/assistant-product-card.tsx",
"name": "AssistantProductCard",
"line": 36,
"line_count": 86
},
{
"path": "apps/storev2/src/components/auth/login-form.tsx",
"name": "LoginForm",
"line": 12,
"line_count": 86
},
{
"path": "apps/storev2/src/components/product/product-card.tsx",
"name": "ProductCard",
"line": 12,
"line_count": 86
},
{
"path": "apps/admin/src/routes/_dash/review-products.tsx",
"name": "ExtractedCard",
"line": 692,
"line_count": 85
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "updateProduct",
"line": 261,
"line_count": 85
},
{
"path": "apps/admin/src/components/order/select-product-form.tsx",
"name": "<arrow>",
"line": 175,
"line_count": 82
},
{
"path": "apps/storev2/src/components/product/search-product-card.tsx",
"name": "SearchProductCard",
"line": 21,
"line_count": 82
},
{
"path": "apps/storev2/src/components/cart/cart-list.tsx",
"name": "<arrow>",
"line": 24,
"line_count": 81
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "getPaginatedPurchases",
"line": 335,
"line_count": 81
},
{
"path": "packages/api/src/routers/admin/ai-purchase.ts",
"name": "items",
"line": 380,
"line_count": 81
},
{
"path": "packages/api/src/routers/admin/product.ts",
"name": "addProduct",
"line": 140,
"line_count": 81
},
{
"path": "apps/storev2/src/components/benchmark-comparison.tsx",
"name": "<arrow>",
"line": 177,
"line_count": 80
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"name": "AppSidebar",
"line": 14,
"line_count": 78
},
{
"path": "apps/admin/src/routes/_dash/customers.tsx",
"name": "CustomersList",
"line": 155,
"line_count": 78
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "syncPurchaseItems",
"line": 199,
"line_count": 77
},
{
"path": "apps/admin/src/routes/_dash/orders.index.tsx",
"name": "OrdersList",
"line": 499,
"line_count": 76
},
{
"path": "env.ts",
"name": "createServerAlchemyEnv",
"line": 9,
"line_count": 76
},
{
"path": "packages/api/src/lib/session/index.ts",
"name": "validateSessionToken",
"line": 79,
"line_count": 75
},
{
"path": "apps/admin/src/routes/_dash/orders.$id.tsx",
"name": "<arrow>",
"line": 415,
"line_count": 74
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "getProductBenchmark",
"line": 370,
"line_count": 74
},
{
"path": "packages/logger/src/middleware.ts",
"name": "loggerMiddleware",
"line": 52,
"line_count": 72
},
{
"path": "packages/api/src/lib/integrations/messenger/webhook.ts",
"name": "messengerWebhookHandler",
"line": 9,
"line_count": 71
},
{
"path": "apps/server/src/routes/admin.ts",
"name": "<arrow>",
"line": 11,
"line_count": 70
},
{
"path": "apps/server/src/routes/uploads.ts",
"name": "<arrow>",
"line": 149,
"line_count": 70
},
{
"path": "apps/storev2/src/components/product/recommended-products.tsx",
"name": "<arrow>",
"line": 103,
"line_count": 69
},
{
"path": "packages/api/src/routers/store/auth.ts",
"name": "<arrow>",
"line": 79,
"line_count": 68
},
{
"path": "apps/admin/src/components/brands/brand-card.tsx",
"name": "BrandCard",
"line": 12,
"line_count": 67
},
{
"path": "packages/api/src/lib/integrations/posthog/client.ts",
"name": "getMostViewedProducts",
"line": 236,
"line_count": 67
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "extractProductImageIds",
"line": 116,
"line_count": 67
},
{
"path": "packages/api/src/routers/store/payment.ts",
"name": "<arrow>",
"line": 18,
"line_count": 67
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "ProductOrdersSection",
"line": 886,
"line_count": 66
},
{
"path": "apps/admin/src/components/app-sidebar.tsx",
"name": "<arrow>",
"line": 21,
"line_count": 64
},
{
"path": "apps/admin/src/routes/_dash/products.$id.tsx",
"name": "<arrow>",
"line": 420,
"line_count": 64
},
{
"path": "apps/storev2/src/components/search/search-results.tsx",
"name": "<arrow>",
"line": 139,
"line_count": 64
},
{
"path": "apps/storev2/src/components/ai/store-assistant.tsx",
"name": "<arrow>",
"line": 326,
"line_count": 63
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "refineProductOnlyImagesWithGemini",
"line": 411,
"line_count": 63
},
{
"path": "packages/api/src/routers/store/ai-assistant.ts",
"name": "retrieveAssistantContext",
"line": 112,
"line_count": 63
},
{
"path": "packages/api/src/routers/store/product.ts",
"name": "<arrow>",
"line": 307,
"line_count": 63
},
{
"path": "apps/admin/src/components/customers/customer-card.tsx",
"name": "CustomerCard",
"line": 22,
"line_count": 62
},
{
"path": "packages/api/src/lib/upstash-sync.ts",
"name": "bulkSyncProductsToUpstash",
"line": 64,
"line_count": 62
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"name": "selectProductImagesWithGemini",
"line": 348,
"line_count": 62
},
{
"path": "packages/logger/src/middleware.ts",
"name": "<arrow>",
"line": 61,
"line_count": 62
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "shapePurchase",
"line": 75,
"line_count": 61
},
{
"path": "packages/api/src/queries/purchases.ts",
"name": "fetchPurchases",
"line": 137,
"line_count": 61
}
],
"targets": [
{
"path": "apps/admin/src/components/product/product-form.helpers.ts",
"priority": 29.6,
"efficiency": 29.6,
"recommendation": "3 complex functions lack test coverage path, add tests before modifying",
"category": "add_test_coverage",
"effort": "low",
"confidence": "high",
"factors": [
{
"metric": "complexity_density",
"value": 0.9,
"threshold": 0.3,
"detail": "density 0.90 exceeds 0.3"
},
{
"metric": "crap_max",
"value": 4032.0,
"threshold": 30.0,
"detail": "3 functions with untested complexity risk"
}
],
"evidence": {
"complex_functions": [
{
"name": "getProductFormDefaults",
"line": 26,
"cognitive": 18
},
{
"name": "getAiProductFormValues",
"line": 55,
"cognitive": 11
},
{
"name": "getBrandId",
"line": 83,
"cognitive": 4
}
]
},
"actions": [
{
"type": "apply-refactoring",
"auto_fixable": false,
"description": "3 complex functions lack test coverage path, add tests before modifying",
"category": "add_test_coverage"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress the underlying complexity finding",
"comment": "// fallow-ignore-next-line complexity"
}
]
},
{
"path": "packages/api/src/routers/store/order.ts",
"priority": 22.2,
"efficiency": 11.1,
"recommendation": "Extract addOrder (cognitive: 32) in 329-LOC file into smaller functions",
"category": "extract_complex_functions",
"effort": "medium",
"confidence": "high",
"factors": [
{
"metric": "fan_out",
"value": 8.0,
"threshold": 6.0,
"detail": "imports 8 modules"
},
{
"metric": "cognitive_complexity",
"value": 32.0,
"threshold": 30.0,
"detail": "addOrder has cognitive complexity 32"
}
],
"evidence": {
"complex_functions": [
{
"name": "addOrder",
"line": 59,
"cognitive": 32
}
]
},
"actions": [
{
"type": "apply-refactoring",
"auto_fixable": false,
"description": "Extract addOrder (cognitive: 32) in 329-LOC file into smaller functions",
"category": "extract_complex_functions"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress the underlying complexity finding",
"comment": "// fallow-ignore-next-line complexity"
}
]
},
{
"path": "packages/api/src/routers/admin/ai-product.ts",
"priority": 21.0,
"efficiency": 7.0,
"recommendation": "Extract extractProductFromQuery (cognitive: 39) in 1469-LOC file into smaller functions",
"category": "extract_complex_functions",
"effort": "high",
"confidence": "high",
"factors": [
{
"metric": "hotspot_score",
"value": 34.5,
"threshold": 30.0,
"detail": "hotspot score 34 (5 commits, cooling trend)"
},
{
"metric": "cognitive_complexity",
"value": 39.0,
"threshold": 30.0,
"detail": "extractProductFromQuery has cognitive complexity 39"
},
{
"metric": "crap_max",
"value": 2756.0,
"threshold": 30.0,
"detail": "17 functions with untested complexity risk"
}
],
"evidence": {
"complex_functions": [
{
"name": "extractProductFromQuery",
"line": 1230,
"cognitive": 39
}
]
},
"actions": [
{
"type": "apply-refactoring",
"auto_fixable": false,
"description": "Extract extractProductFromQuery (cognitive: 39) in 1469-LOC file into smaller functions",
"category": "extract_complex_functions"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress the underlying complexity finding",
"comment": "// fallow-ignore-next-line complexity"
}
]
},
{
"path": "packages/api/src/queries/products.ts",
"priority": 13.8,
"efficiency": 4.6,
"recommendation": "Extract getInfiniteProducts (cognitive: 31) in 914-LOC file into smaller functions",
"category": "extract_complex_functions",
"effort": "high",
"confidence": "high",
"factors": [
{
"metric": "cognitive_complexity",
"value": 31.0,
"threshold": 30.0,
"detail": "getInfiniteProducts has cognitive complexity 31"
},
{
"metric": "crap_max",
"value": 506.0,
"threshold": 30.0,
"detail": "2 functions with untested complexity risk"
}
],
"evidence": {
"complex_functions": [
{
"name": "getInfiniteProducts",
"line": 769,
"cognitive": 31
}
]
},
"actions": [
{
"type": "apply-refactoring",
"auto_fixable": false,
"description": "Extract getInfiniteProducts (cognitive: 31) in 914-LOC file into smaller functions",
"category": "extract_complex_functions"
},
{
"type": "suppress-line",
"auto_fixable": false,
"description": "Suppress the underlying complexity finding",
"comment": "// fallow-ignore-next-line complexity"
}
]
}
],
"target_thresholds": {
"fan_in_p95": 11.0,
"fan_in_p75": 3.0,
"fan_out_p95": 8.0,
"fan_out_p90": 6
}
}