Compare commits
No commits in common. "016f22149df93a61fa72993f7ee12d95430015fb" and "a8a08488d9f5c6f0fd96c69adcdb14cb2a33cf99" have entirely different histories.
016f22149d
...
a8a08488d9
@ -119,27 +119,6 @@
|
|||||||
background: #003da6;
|
background: #003da6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Micro horizontal scrollbar for mobile filter rows */
|
|
||||||
.micro-hscroll {
|
|
||||||
scrollbar-width: thin;
|
|
||||||
scrollbar-color: rgba(30, 64, 83, 0.25) transparent;
|
|
||||||
}
|
|
||||||
.micro-hscroll::-webkit-scrollbar {
|
|
||||||
height: 3.5px;
|
|
||||||
}
|
|
||||||
.micro-hscroll::-webkit-scrollbar-track {
|
|
||||||
background: rgba(229, 236, 233, 0.4);
|
|
||||||
border-radius: 9999px;
|
|
||||||
margin: 0 16px;
|
|
||||||
}
|
|
||||||
.micro-hscroll::-webkit-scrollbar-thumb {
|
|
||||||
background: rgba(30, 64, 83, 0.3);
|
|
||||||
border-radius: 9999px;
|
|
||||||
}
|
|
||||||
.micro-hscroll::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: var(--color-canina-blue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes marquee {
|
@keyframes marquee {
|
||||||
0% {
|
0% {
|
||||||
transform: translateX(0%);
|
transform: translateX(0%);
|
||||||
|
|||||||
@ -576,11 +576,11 @@ export default function ArchivePage({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-medical-gray-50 pb-20 px-4 pt-4 md:pt-10 font-vazir" dir="rtl">
|
<div className="min-h-screen bg-medical-gray-50 pb-20 px-4 pt-10 font-vazir" dir="rtl">
|
||||||
<div className="max-w-7xl mx-auto">
|
<div className="max-w-7xl mx-auto">
|
||||||
|
|
||||||
{/* Standard Breadcrumb Navigation, Mobile Filter & Integrated Back Button */}
|
{/* Standard Breadcrumb Navigation, Mobile Filter & Integrated Back Button */}
|
||||||
<div className="flex items-center justify-between mb-4 md:mb-8 pb-4 border-b border-medical-gray-200/60 font-vazir gap-2" dir="rtl">
|
<div className="flex items-center justify-between mb-8 pb-4 border-b border-medical-gray-200/60 font-vazir gap-2" dir="rtl">
|
||||||
{/* Breadcrumb - right side in RTL */}
|
{/* Breadcrumb - right side in RTL */}
|
||||||
<div className="flex items-center gap-1.5 text-xs font-bold text-medical-gray-400 overflow-hidden min-w-0">
|
<div className="flex items-center gap-1.5 text-xs font-bold text-medical-gray-400 overflow-hidden min-w-0">
|
||||||
<span className="cursor-pointer hover:text-canina-blue transition-colors shrink-0" onClick={() => router.push('/')}>خانه</span>
|
<span className="cursor-pointer hover:text-canina-blue transition-colors shrink-0" onClick={() => router.push('/')}>خانه</span>
|
||||||
@ -768,7 +768,7 @@ export default function ArchivePage({
|
|||||||
|
|
||||||
{/* Mobile Title (Only if set in admin) */}
|
{/* Mobile Title (Only if set in admin) */}
|
||||||
{getText('shop_catalog_title', '').trim() ? (
|
{getText('shop_catalog_title', '').trim() ? (
|
||||||
<div className="lg:hidden mb-2">
|
<div className="lg:hidden mb-4">
|
||||||
<h2
|
<h2
|
||||||
className="text-2xl font-black text-medical-gray-900"
|
className="text-2xl font-black text-medical-gray-900"
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
@ -779,7 +779,7 @@ export default function ArchivePage({
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{/* Mobile Controls: Horizontal Sliding Filters & View Toggle Row */}
|
{/* Mobile Controls: Horizontal Sliding Filters & View Toggle Row */}
|
||||||
<div className="lg:hidden flex flex-col gap-2 mb-2">
|
<div className="lg:hidden flex flex-col gap-3 mb-5">
|
||||||
{/* Search Bar on Mobile */}
|
{/* Search Bar on Mobile */}
|
||||||
<div className="relative w-full">
|
<div className="relative w-full">
|
||||||
<Search className="absolute right-4 top-1/2 -translate-y-1/2 w-4 h-4 text-medical-gray-400" />
|
<Search className="absolute right-4 top-1/2 -translate-y-1/2 w-4 h-4 text-medical-gray-400" />
|
||||||
@ -793,31 +793,9 @@ export default function ArchivePage({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{/* Horizontal Scrollable Row for Sort, Pet Type, Solutions & Symptoms Filter */}
|
{/* Horizontal Scrollable Row for Sort, Pet Type, Solutions & Symptoms Filter */}
|
||||||
<div className="flex items-center gap-2 overflow-x-auto pb-2.5 pt-0.5 micro-hscroll -mx-4 px-4 select-none touch-pan-x mt-2 mb-4">
|
<div className="flex items-center gap-2 overflow-x-auto pb-1.5 pt-0.5 scrollbar-none no-scrollbar -mx-4 px-4 select-none touch-pan-x">
|
||||||
|
{/* 1. Compact Sort Button */}
|
||||||
{/* 1. View Mode Switch: 2 Buttons (List / Card) */}
|
|
||||||
<div className="flex-shrink-0 inline-flex items-center bg-white border border-medical-gray-200 rounded-xl p-0.5 shadow-2xs mr-auto">
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onClick={() => setViewMode("list")}
|
|
||||||
className={`p-1.5 rounded-lg transition-all ${viewMode === "list" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-400 hover:text-medical-gray-700"}`}
|
|
||||||
title="نمایش لیستی"
|
|
||||||
>
|
|
||||||
<List className="w-3.5 h-3.5" />
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onClick={() => setViewMode("grid")}
|
|
||||||
className={`p-1.5 rounded-lg transition-all ${viewMode === "grid" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-400 hover:text-medical-gray-700"}`}
|
|
||||||
title="نمایش کارتی"
|
|
||||||
>
|
|
||||||
<LayoutGrid className="w-3.5 h-3.5" />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* 2. Compact Sort Button */}
|
|
||||||
<div className="relative flex-shrink-0">
|
<div className="relative flex-shrink-0">
|
||||||
<div className="flex items-center bg-white border border-medical-gray-200 rounded-xl px-2.5 py-1.5 shadow-2xs text-xs font-bold text-medical-gray-700">
|
<div className="flex items-center bg-white border border-medical-gray-200 rounded-xl px-2.5 py-1.5 shadow-2xs text-xs font-bold text-medical-gray-700">
|
||||||
<SlidersHorizontal className="w-3.5 h-3.5 text-canina-blue ml-1.5 shrink-0" />
|
<SlidersHorizontal className="w-3.5 h-3.5 text-canina-blue ml-1.5 shrink-0" />
|
||||||
@ -839,13 +817,13 @@ export default function ArchivePage({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 3. Three Segmented Pet Type Buttons (Dog right, Both middle, Cat left) */}
|
{/* 2. Three Segmented Pet Type Buttons (Dog right, Both middle, Cat left) */}
|
||||||
<div className="flex-shrink-0 inline-flex items-center bg-white border border-medical-gray-200 rounded-xl px-1.5 py-0.5 shadow-2xs">
|
<div className="flex-shrink-0 inline-flex items-center bg-white border border-medical-gray-200 rounded-xl p-0.5 shadow-2xs">
|
||||||
{/* Right: Dog */}
|
{/* Right: Dog */}
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setSelectedPet("سگ")}
|
onClick={() => setSelectedPet("سگ")}
|
||||||
className={`flex items-center gap-1 px-1 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "سگ" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "سگ" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
||||||
>
|
>
|
||||||
<Dog className="w-3.5 h-3.5" />
|
<Dog className="w-3.5 h-3.5" />
|
||||||
<span>سگ</span>
|
<span>سگ</span>
|
||||||
@ -855,7 +833,7 @@ export default function ArchivePage({
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setSelectedPet("all")}
|
onClick={() => setSelectedPet("all")}
|
||||||
className={`flex items-center gap-1 px-1 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "all" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "all" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
||||||
>
|
>
|
||||||
<Activity className="w-3.5 h-3.5" />
|
<Activity className="w-3.5 h-3.5" />
|
||||||
<span>هردو</span>
|
<span>هردو</span>
|
||||||
@ -865,15 +843,15 @@ export default function ArchivePage({
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setSelectedPet("گربه")}
|
onClick={() => setSelectedPet("گربه")}
|
||||||
className={`flex items-center gap-1 px-1 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "گربه" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[11px] font-black transition-all ${selectedPet === "گربه" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-500 hover:text-medical-gray-800"}`}
|
||||||
>
|
>
|
||||||
<Cat className="w-3.5 h-3.5" />
|
<Cat className="w-3.5 h-3.5" />
|
||||||
<span>گربه</span>
|
<span>گربه</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 4. Solutions Dropdown / Action Sheet Button */}
|
{/* 3. Solutions Dropdown Button */}
|
||||||
<div className="flex-shrink-0">
|
<div className="relative flex-shrink-0">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@ -887,23 +865,9 @@ export default function ArchivePage({
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
{isMobileSolutionsOpen && (
|
{isMobileSolutionsOpen && (
|
||||||
<div className="fixed inset-0 z-50 flex items-end justify-center bg-black/40 backdrop-blur-xs font-vazir" onClick={() => setIsMobileSolutionsOpen(false)}>
|
<>
|
||||||
<div
|
<div className="fixed inset-0 z-40" onClick={() => setIsMobileSolutionsOpen(false)} />
|
||||||
className="w-full max-w-lg bg-white rounded-t-3xl p-5 border-t border-medical-gray-200 shadow-2xl max-h-[75vh] flex flex-col animate-in slide-in-from-bottom duration-200"
|
<div className="absolute right-0 top-full mt-2 w-64 max-h-72 overflow-y-auto bg-white rounded-2xl p-2 border border-medical-gray-200 shadow-xl z-50 space-y-1 font-vazir">
|
||||||
onClick={(e) => e.stopPropagation()}
|
|
||||||
>
|
|
||||||
<div className="w-10 h-1 bg-medical-gray-200 rounded-full mx-auto mb-3 shrink-0" />
|
|
||||||
<div className="flex items-center justify-between pb-3 border-b border-medical-gray-100 mb-3 shrink-0">
|
|
||||||
<h4 className="font-black text-sm text-medical-gray-900">انتخاب راهکار درمانی</h4>
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onClick={() => setIsMobileSolutionsOpen(false)}
|
|
||||||
className="text-xs text-medical-gray-400 hover:text-medical-gray-700 font-bold p-1"
|
|
||||||
>
|
|
||||||
بستن ✕
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div className="overflow-y-auto space-y-1.5 py-1">
|
|
||||||
{categories.map(cat => (
|
{categories.map(cat => (
|
||||||
<button
|
<button
|
||||||
key={cat.id}
|
key={cat.id}
|
||||||
@ -912,20 +876,19 @@ export default function ArchivePage({
|
|||||||
setSelectedCategory(cat.id);
|
setSelectedCategory(cat.id);
|
||||||
setIsMobileSolutionsOpen(false);
|
setIsMobileSolutionsOpen(false);
|
||||||
}}
|
}}
|
||||||
className={`w-full flex items-center gap-3 px-4 py-3 rounded-2xl text-xs font-bold text-right transition-colors border ${selectedCategory === cat.id ? "bg-canina-blue border-canina-blue text-white" : "bg-white border-medical-gray-100 hover:bg-medical-gray-50 text-medical-gray-700"}`}
|
className={`w-full flex items-center gap-2.5 px-3 py-2 rounded-xl text-xs font-bold text-right transition-colors ${selectedCategory === cat.id ? "bg-canina-blue text-white" : "hover:bg-medical-gray-50 text-medical-gray-700"}`}
|
||||||
>
|
>
|
||||||
<span className="shrink-0">{cat.icon}</span>
|
<span className="shrink-0">{cat.icon}</span>
|
||||||
<span className="truncate">{cat.label}</span>
|
<span className="truncate">{cat.label}</span>
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</>
|
||||||
</div>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 5. Symptoms Dropdown / Action Sheet Button with search inside */}
|
{/* 4. Symptoms Dropdown Button with search inside */}
|
||||||
<div className="flex-shrink-0">
|
<div className="relative flex-shrink-0">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@ -939,52 +902,31 @@ export default function ArchivePage({
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
{isMobileSymptomsOpen && (
|
{isMobileSymptomsOpen && (
|
||||||
<div className="fixed inset-0 z-50 flex items-end justify-center bg-black/40 backdrop-blur-xs font-vazir" onClick={() => setIsMobileSymptomsOpen(false)}>
|
<>
|
||||||
<div
|
<div className="fixed inset-0 z-40" onClick={() => setIsMobileSymptomsOpen(false)} />
|
||||||
className="w-full max-w-lg bg-white rounded-t-3xl p-5 border-t border-medical-gray-200 shadow-2xl max-h-[80vh] flex flex-col animate-in slide-in-from-bottom duration-200"
|
<div className="absolute right-0 top-full mt-2 w-72 max-h-80 overflow-y-auto bg-white rounded-2xl p-3 border border-medical-gray-200 shadow-xl z-50 font-vazir">
|
||||||
onClick={(e) => e.stopPropagation()}
|
<div className="flex items-center justify-between mb-2 pb-1 border-b border-medical-gray-100">
|
||||||
>
|
<span className="text-[10px] font-black text-medical-gray-400">جستجو بر اساس علائم</span>
|
||||||
<div className="w-10 h-1 bg-medical-gray-200 rounded-full mx-auto mb-3 shrink-0" />
|
|
||||||
<div className="flex items-center justify-between pb-3 border-b border-medical-gray-100 mb-3 shrink-0">
|
|
||||||
<div>
|
|
||||||
<h4 className="font-black text-sm text-medical-gray-900">فیلتر بر اساس علائم پت</h4>
|
|
||||||
<span className="text-[11px] text-medical-gray-400">یک یا چند مورد از علائم را انتخاب کنید</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex items-center gap-2">
|
|
||||||
{activeSymptoms.length > 0 && (
|
{activeSymptoms.length > 0 && (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setActiveSymptoms([])}
|
onClick={() => setActiveSymptoms([])}
|
||||||
className="text-xs font-bold text-red-500 hover:underline px-1"
|
className="text-[10px] font-bold text-red-500 hover:underline"
|
||||||
>
|
>
|
||||||
پاک کردن همه
|
پاک کردن همه
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
onClick={() => setIsMobileSymptomsOpen(false)}
|
|
||||||
className="text-xs text-medical-gray-400 hover:text-medical-gray-700 font-bold p-1"
|
|
||||||
>
|
|
||||||
بستن ✕
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="relative mb-3 shrink-0">
|
|
||||||
<Search className="absolute right-3.5 top-1/2 -translate-y-1/2 w-4 h-4 text-medical-gray-400" />
|
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="جستجوی علائم بیماری یا نیاز دارویی..."
|
placeholder="جستجوی علائم..."
|
||||||
value={symptomSearch}
|
value={symptomSearch}
|
||||||
onChange={(e) => setSymptomSearch(e.target.value)}
|
onChange={(e) => setSymptomSearch(e.target.value)}
|
||||||
className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl py-2 pr-10 pl-3 text-xs outline-none focus:border-canina-blue font-vazir"
|
className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl py-1.5 px-2.5 text-xs outline-none focus:border-canina-blue mb-2.5 font-vazir"
|
||||||
/>
|
/>
|
||||||
</div>
|
<div className="flex flex-wrap gap-1.5 max-h-48 overflow-y-auto scrollbar-thin pr-0.5">
|
||||||
|
|
||||||
<div className="overflow-y-auto flex-1 min-h-0 py-1">
|
|
||||||
<div className="flex flex-wrap gap-2">
|
|
||||||
{symptoms.length === 0 ? (
|
{symptoms.length === 0 ? (
|
||||||
<span className="text-xs text-medical-gray-400 py-4 text-center w-full">در حال بارگذاری علائم...</span>
|
<span className="text-[10px] text-medical-gray-400">در حال بارگذاری...</span>
|
||||||
) : symptoms
|
) : symptoms
|
||||||
.filter(s => s.toLowerCase().includes(symptomSearch.toLowerCase()))
|
.filter(s => s.toLowerCase().includes(symptomSearch.toLowerCase()))
|
||||||
.map(s => (
|
.map(s => (
|
||||||
@ -992,7 +934,7 @@ export default function ArchivePage({
|
|||||||
key={s}
|
key={s}
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => toggleSymptom(s)}
|
onClick={() => toggleSymptom(s)}
|
||||||
className={`px-3 py-1.5 rounded-xl text-xs font-bold transition-all border whitespace-nowrap ${activeSymptoms.includes(s)
|
className={`px-2.5 py-1 rounded-lg text-[10px] font-bold transition-all border whitespace-nowrap ${activeSymptoms.includes(s)
|
||||||
? "bg-canina-blue border-canina-blue text-white shadow-2xs"
|
? "bg-canina-blue border-canina-blue text-white shadow-2xs"
|
||||||
: "bg-medical-gray-50 border-medical-gray-200 text-medical-gray-600 hover:border-canina-blue/40 hover:text-canina-blue"
|
: "bg-medical-gray-50 border-medical-gray-200 text-medical-gray-600 hover:border-canina-blue/40 hover:text-canina-blue"
|
||||||
}`}
|
}`}
|
||||||
@ -1002,19 +944,28 @@ export default function ArchivePage({
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="pt-3 border-t border-medical-gray-100 mt-2 shrink-0">
|
{/* 5. View Mode Switch: 2 Buttons (List / Card) */}
|
||||||
|
<div className="flex-shrink-0 inline-flex items-center bg-white border border-medical-gray-200 rounded-xl p-0.5 shadow-2xs mr-auto">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setIsMobileSymptomsOpen(false)}
|
onClick={() => setViewMode("list")}
|
||||||
className="w-full bg-canina-blue text-white py-2.5 rounded-xl font-bold text-xs shadow-lg shadow-canina-blue/20"
|
className={`p-1.5 rounded-lg transition-all ${viewMode === "list" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-400 hover:text-medical-gray-700"}`}
|
||||||
|
title="نمایش لیستی"
|
||||||
>
|
>
|
||||||
مشاهده نتایج {activeSymptoms.length > 0 ? `(${toPersian(activeSymptoms.length)} علامت)` : ""}
|
<List className="w-3.5 h-3.5" />
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onClick={() => setViewMode("grid")}
|
||||||
|
className={`p-1.5 rounded-lg transition-all ${viewMode === "grid" ? "bg-canina-blue text-white shadow-xs" : "text-medical-gray-400 hover:text-medical-gray-700"}`}
|
||||||
|
title="نمایش کارتی"
|
||||||
|
>
|
||||||
|
<LayoutGrid className="w-3.5 h-3.5" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -65,7 +65,7 @@
|
|||||||
"63": "dependencies",
|
"63": "dependencies",
|
||||||
"64": "compilerOptions",
|
"64": "compilerOptions",
|
||||||
"65": "admin.service.ts",
|
"65": "admin.service.ts",
|
||||||
"66": "AdminQueryDto",
|
"66": "AdminController",
|
||||||
"67": "ConfirmModal.tsx",
|
"67": "ConfirmModal.tsx",
|
||||||
"68": "lib/services/api.ts",
|
"68": "lib/services/api.ts",
|
||||||
"69": "Required Review Group Closures",
|
"69": "Required Review Group Closures",
|
||||||
@ -122,7 +122,7 @@
|
|||||||
"120": "compilerOptions",
|
"120": "compilerOptions",
|
||||||
"121": "backend/README.md",
|
"121": "backend/README.md",
|
||||||
"122": "AdminService",
|
"122": "AdminService",
|
||||||
"123": "Body",
|
"123": "ApiOperation",
|
||||||
"124": "Repository Map",
|
"124": "Repository Map",
|
||||||
"125": "validate_integrity.js",
|
"125": "validate_integrity.js",
|
||||||
"126": "admin-panel/package.json",
|
"126": "admin-panel/package.json",
|
||||||
@ -197,7 +197,7 @@
|
|||||||
"195": "React + TypeScript + Vite",
|
"195": "React + TypeScript + Vite",
|
||||||
"196": "Select.tsx",
|
"196": "Select.tsx",
|
||||||
"197": "userStore.ts",
|
"197": "userStore.ts",
|
||||||
"198": "eslint-plugin-prettier",
|
"198": "typescript",
|
||||||
"199": "prisma",
|
"199": "prisma",
|
||||||
"200": "application/README.md",
|
"200": "application/README.md",
|
||||||
"201": "deploy.sh",
|
"201": "deploy.sh",
|
||||||
@ -219,11 +219,9 @@
|
|||||||
"217": "sync_honest_manifest.js",
|
"217": "sync_honest_manifest.js",
|
||||||
"218": "sync_manifest.js",
|
"218": "sync_manifest.js",
|
||||||
"219": "FormField.tsx",
|
"219": "FormField.tsx",
|
||||||
"220": "globals",
|
|
||||||
"221": "Textarea.tsx",
|
"221": "Textarea.tsx",
|
||||||
"222": "admin-panel/tsconfig.json",
|
"222": "admin-panel/tsconfig.json",
|
||||||
"223": "tailwindcss",
|
"223": "tailwindcss",
|
||||||
"224": "typescript-eslint",
|
|
||||||
"225": "next.config.ts",
|
"225": "next.config.ts",
|
||||||
"226": "Shabnam Font README",
|
"226": "Shabnam Font README",
|
||||||
"227": "AGENTS.md",
|
"227": "AGENTS.md",
|
||||||
@ -296,6 +294,8 @@
|
|||||||
"300": "typescript",
|
"300": "typescript",
|
||||||
"302": "typescript-eslint",
|
"302": "typescript-eslint",
|
||||||
"303": "@nestjs/schematics",
|
"303": "@nestjs/schematics",
|
||||||
|
"305": "eslint-config-prettier",
|
||||||
|
"308": "jest",
|
||||||
"309": "axios",
|
"309": "axios",
|
||||||
"310": "tailwindcss",
|
"310": "tailwindcss",
|
||||||
"312": "@types/passport-jwt",
|
"312": "@types/passport-jwt",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -3,13 +3,13 @@
|
|||||||
"1": "app.module.ts",
|
"1": "app.module.ts",
|
||||||
"2": "WikiController",
|
"2": "WikiController",
|
||||||
"3": "productService.ts",
|
"3": "productService.ts",
|
||||||
"4": "useSettingsStore",
|
"4": "ClientLayout.tsx",
|
||||||
"5": "CmsController",
|
"5": "CmsController",
|
||||||
"6": "tickets.controller.ts",
|
"6": "tickets.controller.ts",
|
||||||
"7": "SmsSettingsPage.tsx",
|
"7": "SmsSettingsPage.tsx",
|
||||||
"8": "SmsService",
|
"8": "SmsService",
|
||||||
"9": "devDependencies",
|
"9": "devDependencies",
|
||||||
"10": "reviews.controller.ts",
|
"10": "CreateReviewDto",
|
||||||
"11": "UsersService",
|
"11": "UsersService",
|
||||||
"12": "index.ts",
|
"12": "index.ts",
|
||||||
"13": "app-audit-verification.e2e-spec.js",
|
"13": "app-audit-verification.e2e-spec.js",
|
||||||
@ -20,7 +20,7 @@
|
|||||||
"18": "JwtAuthGuard",
|
"18": "JwtAuthGuard",
|
||||||
"19": "admin.controller.ts",
|
"19": "admin.controller.ts",
|
||||||
"20": "CreateVideoDto",
|
"20": "CreateVideoDto",
|
||||||
"21": "HomeClient.tsx",
|
"21": "OrderService",
|
||||||
"22": "ProductDto",
|
"22": "ProductDto",
|
||||||
"23": "MenuService",
|
"23": "MenuService",
|
||||||
"24": "BE-001",
|
"24": "BE-001",
|
||||||
@ -32,32 +32,32 @@
|
|||||||
"30": "DEVOPS-001",
|
"30": "DEVOPS-001",
|
||||||
"31": "DOC-001",
|
"31": "DOC-001",
|
||||||
"32": "adminRoutes.tsx",
|
"32": "adminRoutes.tsx",
|
||||||
"33": "WholesaleApplyDto",
|
"33": "WholesaleService",
|
||||||
"34": "B2BController",
|
"34": "B2BService",
|
||||||
"35": "ContactController",
|
"35": "ContactService",
|
||||||
"36": "FaqService",
|
"36": "FaqService",
|
||||||
"37": "راهنمای تست سیستم (Software Testing)",
|
"37": "راهنمای تست سیستم (Software Testing)",
|
||||||
"38": "Button",
|
"38": "Button.tsx",
|
||||||
"39": "CategoriesController",
|
"39": "CategoriesController",
|
||||||
"40": "MediaController",
|
"40": "MediaController",
|
||||||
"41": "What You Must Do When Invoked",
|
"41": "What You Must Do When Invoked",
|
||||||
"42": "SslController",
|
"42": "SslController",
|
||||||
"43": "BannersController",
|
"43": "BannersService",
|
||||||
"44": "TestimonialsController",
|
"44": "TestimonialsService",
|
||||||
"45": "What You Must Do When Invoked",
|
"45": "What You Must Do When Invoked",
|
||||||
"46": "20260526145407_init/migration.sql",
|
"46": "20260526145407_init/migration.sql",
|
||||||
"47": "IngredientsController",
|
"47": "IngredientsService",
|
||||||
"48": "app.e2e-spec.js",
|
"48": "app.e2e-spec.js",
|
||||||
"49": "devDependencies",
|
"49": "devDependencies",
|
||||||
"50": "devDependencies",
|
"50": "devDependencies",
|
||||||
"51": "BlogsController",
|
"51": "BlogsController",
|
||||||
"52": "prescriptions.controller.ts",
|
"52": "prescriptions.controller.ts",
|
||||||
"53": "SmartAdvisorService",
|
"53": "SmartAdvisorService",
|
||||||
"54": "Button.tsx",
|
"54": "MenuManager.tsx",
|
||||||
"55": "UITexts.tsx",
|
"55": "UITexts.tsx",
|
||||||
"56": "Orders.tsx",
|
"56": "PrescriptionsManager.tsx",
|
||||||
"57": "Role & Core Objective",
|
"57": "Role & Core Objective",
|
||||||
"58": "RedisService",
|
"58": "RevalidationService",
|
||||||
"59": "compilerOptions",
|
"59": "compilerOptions",
|
||||||
"60": "CreateUserDto",
|
"60": "CreateUserDto",
|
||||||
"61": "ProductPage.tsx",
|
"61": "ProductPage.tsx",
|
||||||
@ -65,9 +65,9 @@
|
|||||||
"63": "dependencies",
|
"63": "dependencies",
|
||||||
"64": "compilerOptions",
|
"64": "compilerOptions",
|
||||||
"65": "admin.service.ts",
|
"65": "admin.service.ts",
|
||||||
"66": "AdminController",
|
"66": "AdminQueryDto",
|
||||||
"67": "ConfirmModal.tsx",
|
"67": "PetsController",
|
||||||
"68": "lib/services/api.ts",
|
"68": "useSettingsStore",
|
||||||
"69": "Required Review Group Closures",
|
"69": "Required Review Group Closures",
|
||||||
"70": "compilerOptions",
|
"70": "compilerOptions",
|
||||||
"71": "getPageMetadata",
|
"71": "getPageMetadata",
|
||||||
@ -75,7 +75,7 @@
|
|||||||
"73": "Operational Rules & Boundaries",
|
"73": "Operational Rules & Boundaries",
|
||||||
"74": "WikiController",
|
"74": "WikiController",
|
||||||
"75": "PetsController",
|
"75": "PetsController",
|
||||||
"76": "RevalidationService",
|
"76": "ProductsService",
|
||||||
"77": "seo.module.ts",
|
"77": "seo.module.ts",
|
||||||
"78": "rss.xml/route.ts",
|
"78": "rss.xml/route.ts",
|
||||||
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
||||||
@ -84,7 +84,7 @@
|
|||||||
"82": "scripts",
|
"82": "scripts",
|
||||||
"83": "dependencies",
|
"83": "dependencies",
|
||||||
"84": "Role & Core Objective",
|
"84": "Role & Core Objective",
|
||||||
"85": "AuthController",
|
"85": "auth.controller.ts",
|
||||||
"86": "zibal.service.ts",
|
"86": "zibal.service.ts",
|
||||||
"87": "dependencies",
|
"87": "dependencies",
|
||||||
"88": "CreateEBankCheckoutDto",
|
"88": "CreateEBankCheckoutDto",
|
||||||
@ -92,9 +92,9 @@
|
|||||||
"90": "PetProfile.tsx",
|
"90": "PetProfile.tsx",
|
||||||
"91": "Reconciled Audit Roles & Assignments",
|
"91": "Reconciled Audit Roles & Assignments",
|
||||||
"92": "OrdersService",
|
"92": "OrdersService",
|
||||||
"93": "auth.service.ts",
|
"93": "Orders.tsx",
|
||||||
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
|
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
|
||||||
"95": "wiki/[slug]/page.tsx",
|
"95": "getSeoConfig",
|
||||||
"96": "compilerOptions",
|
"96": "compilerOptions",
|
||||||
"97": "PaymentService",
|
"97": "PaymentService",
|
||||||
"98": "scripts",
|
"98": "scripts",
|
||||||
@ -112,7 +112,7 @@
|
|||||||
"110": "Operational Rules & Boundaries",
|
"110": "Operational Rules & Boundaries",
|
||||||
"111": "Operational Rules & Boundaries",
|
"111": "Operational Rules & Boundaries",
|
||||||
"112": "Operational Rules & Boundaries",
|
"112": "Operational Rules & Boundaries",
|
||||||
"113": "sms.service.ts",
|
"113": "AdminTransactionFilterDto",
|
||||||
"114": "AppService",
|
"114": "AppService",
|
||||||
"115": "Spinner.tsx",
|
"115": "Spinner.tsx",
|
||||||
"116": "Vazirmatn Changelog",
|
"116": "Vazirmatn Changelog",
|
||||||
@ -122,13 +122,13 @@
|
|||||||
"120": "compilerOptions",
|
"120": "compilerOptions",
|
||||||
"121": "backend/README.md",
|
"121": "backend/README.md",
|
||||||
"122": "AdminService",
|
"122": "AdminService",
|
||||||
"123": "ApiOperation",
|
"123": "Body",
|
||||||
"124": "Repository Map",
|
"124": "Repository Map",
|
||||||
"125": "validate_integrity.js",
|
"125": "validate_integrity.js",
|
||||||
"126": "admin-panel/package.json",
|
"126": "admin-panel/package.json",
|
||||||
"127": "Sahel-Font",
|
"127": "Sahel-Font",
|
||||||
"128": "HomeController",
|
"128": "WholesaleApplyDto",
|
||||||
"129": "auth.module.ts",
|
"129": "MetricsController",
|
||||||
"130": "Sahel-Font",
|
"130": "Sahel-Font",
|
||||||
"131": "Role & Core Objective",
|
"131": "Role & Core Objective",
|
||||||
"132": "orchestrate.py",
|
"132": "orchestrate.py",
|
||||||
@ -144,14 +144,14 @@
|
|||||||
"142": "start-dev.js",
|
"142": "start-dev.js",
|
||||||
"143": "generate-openapi.js",
|
"143": "generate-openapi.js",
|
||||||
"144": "SafeImage.tsx",
|
"144": "SafeImage.tsx",
|
||||||
"145": "auth.controller.ts",
|
"145": "wiki/[slug]/page.tsx",
|
||||||
"146": "System Discovery",
|
"146": "System Discovery",
|
||||||
"147": "torob.controller.ts",
|
"147": "catalog/page.tsx",
|
||||||
"148": "Reports.tsx",
|
"148": "RouteErrorBoundary",
|
||||||
"149": "RegisterDto",
|
"149": "search/page.tsx",
|
||||||
"150": "Product Requirement Document (PRD)",
|
"150": "Product Requirement Document (PRD)",
|
||||||
"151": "@eslint/js",
|
"151": "@eslint/js",
|
||||||
"152": "AuthService",
|
"152": "auth.service.ts",
|
||||||
"153": "exclude",
|
"153": "exclude",
|
||||||
"154": "Baseline Command Plan & Reconciled Command History",
|
"154": "Baseline Command Plan & Reconciled Command History",
|
||||||
"155": "seo-backfill.ts",
|
"155": "seo-backfill.ts",
|
||||||
@ -176,15 +176,15 @@
|
|||||||
"174": "rebuild_honest_ledger.js",
|
"174": "rebuild_honest_ledger.js",
|
||||||
"175": "validate_evidence_grade.js",
|
"175": "validate_evidence_grade.js",
|
||||||
"176": "uploads/[...path]/route.ts",
|
"176": "uploads/[...path]/route.ts",
|
||||||
"177": "WikiService",
|
"177": "bcrypt",
|
||||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||||
"179": "track/page.tsx",
|
"179": "class-transformer",
|
||||||
"180": "API Contract Specification",
|
"180": "API Contract Specification",
|
||||||
"181": "⚙️ Backend Technical Review (05_dev_backend)",
|
"181": "⚙️ Backend Technical Review (05_dev_backend)",
|
||||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||||
"184": "trust-seals/page.tsx",
|
"184": "helmet",
|
||||||
"185": "@types/node",
|
"185": "Reviews.tsx",
|
||||||
"186": "seed-ui-texts.ts",
|
"186": "seed-ui-texts.ts",
|
||||||
"187": "seed-wiki.ts",
|
"187": "seed-wiki.ts",
|
||||||
"188": "update-blog.dto.ts",
|
"188": "update-blog.dto.ts",
|
||||||
@ -196,14 +196,14 @@
|
|||||||
"194": "Raw Finding Verification & Disposition Report",
|
"194": "Raw Finding Verification & Disposition Report",
|
||||||
"195": "React + TypeScript + Vite",
|
"195": "React + TypeScript + Vite",
|
||||||
"196": "Select.tsx",
|
"196": "Select.tsx",
|
||||||
"197": "userStore.ts",
|
"197": "toPersian",
|
||||||
"198": "typescript",
|
"198": "js-yaml",
|
||||||
"199": "prisma",
|
"199": "prisma",
|
||||||
"200": "application/README.md",
|
"200": "application/README.md",
|
||||||
"201": "deploy.sh",
|
"201": "deploy.sh",
|
||||||
"202": "🔒 Security & Performance Review (09_devops_security)",
|
"202": "🔒 Security & Performance Review (09_devops_security)",
|
||||||
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
|
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
|
||||||
"204": "eslint-config-next",
|
"204": "@nestjs/core",
|
||||||
"205": "prisma/scientificTerms.ts",
|
"205": "prisma/scientificTerms.ts",
|
||||||
"206": "seed-blogs.ts",
|
"206": "seed-blogs.ts",
|
||||||
"207": "seed-custom.ts",
|
"207": "seed-custom.ts",
|
||||||
@ -219,15 +219,20 @@
|
|||||||
"217": "sync_honest_manifest.js",
|
"217": "sync_honest_manifest.js",
|
||||||
"218": "sync_manifest.js",
|
"218": "sync_manifest.js",
|
||||||
"219": "FormField.tsx",
|
"219": "FormField.tsx",
|
||||||
|
"220": "@nestjs/jwt",
|
||||||
"221": "Textarea.tsx",
|
"221": "Textarea.tsx",
|
||||||
"222": "admin-panel/tsconfig.json",
|
"222": "admin-panel/tsconfig.json",
|
||||||
"223": "tailwindcss",
|
"223": "tailwindcss",
|
||||||
|
"224": "@nestjs/throttler",
|
||||||
"225": "next.config.ts",
|
"225": "next.config.ts",
|
||||||
"226": "Shabnam Font README",
|
"226": "Shabnam Font README",
|
||||||
"227": "AGENTS.md",
|
"227": "AGENTS.md",
|
||||||
"228": "rules/graphify.md",
|
"228": "rules/graphify.md",
|
||||||
"229": ".agents/workflows/graphify.md",
|
"229": ".agents/workflows/graphify.md",
|
||||||
"230": "instructions.md",
|
"230": "instructions.md",
|
||||||
|
"231": "passport",
|
||||||
|
"232": "reflect-metadata",
|
||||||
|
"233": "swagger-ui-express",
|
||||||
"234": "source-map-support",
|
"234": "source-map-support",
|
||||||
"235": "ts-loader",
|
"235": "ts-loader",
|
||||||
"236": "ts-node",
|
"236": "ts-node",
|
||||||
@ -259,6 +264,7 @@
|
|||||||
"262": "User Logout API",
|
"262": "User Logout API",
|
||||||
"263": "generate-openapi.d.ts",
|
"263": "generate-openapi.d.ts",
|
||||||
"264": "@types/compression",
|
"264": "@types/compression",
|
||||||
|
"265": "@eslint/eslintrc",
|
||||||
"266": "@types/express",
|
"266": "@types/express",
|
||||||
"267": "@types/jest",
|
"267": "@types/jest",
|
||||||
"268": "@types/multer",
|
"268": "@types/multer",
|
||||||
@ -288,24 +294,34 @@
|
|||||||
"292": "Production Docker Compose",
|
"292": "Production Docker Compose",
|
||||||
"293": "Staging Docker Compose",
|
"293": "Staging Docker Compose",
|
||||||
"294": "ZibalService",
|
"294": "ZibalService",
|
||||||
|
"295": "eslint-plugin-prettier",
|
||||||
|
"296": "globals",
|
||||||
"297": "ZibalEBankService",
|
"297": "ZibalEBankService",
|
||||||
"298": ".initiateOrderPayment",
|
"298": ".initiateOrderPayment",
|
||||||
"299": "@tailwindcss/postcss",
|
"299": "@tailwindcss/postcss",
|
||||||
"300": "typescript",
|
"300": "typescript",
|
||||||
|
"301": "@nestjs/cli",
|
||||||
"302": "typescript-eslint",
|
"302": "typescript-eslint",
|
||||||
"303": "@nestjs/schematics",
|
"303": "@nestjs/schematics",
|
||||||
|
"304": "@nestjs/testing",
|
||||||
"305": "eslint-config-prettier",
|
"305": "eslint-config-prettier",
|
||||||
|
"306": "prettier",
|
||||||
|
"307": "ts-jest",
|
||||||
"308": "jest",
|
"308": "jest",
|
||||||
"309": "axios",
|
"309": "axios",
|
||||||
"310": "tailwindcss",
|
"310": "tailwindcss",
|
||||||
|
"311": "@types/js-yaml",
|
||||||
"312": "@types/passport-jwt",
|
"312": "@types/passport-jwt",
|
||||||
"313": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
|
"313": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
|
||||||
|
"314": "@types/supertest",
|
||||||
"315": "typescript",
|
"315": "typescript",
|
||||||
|
"316": "typescript-eslint",
|
||||||
"317": "revalidate/route.ts",
|
"317": "revalidate/route.ts",
|
||||||
"318": "MaskableField.tsx",
|
"318": "MaskableField.tsx",
|
||||||
"319": "@tailwindcss/postcss",
|
"319": "@tailwindcss/postcss",
|
||||||
"321": "orders/page.tsx",
|
"321": "orders/page.tsx",
|
||||||
"322": "pets/page.tsx",
|
"322": "pets/page.tsx",
|
||||||
"325": "@types/react-dom",
|
"325": "@types/react-dom",
|
||||||
"327": "eslint-plugin-react-refresh"
|
"327": "eslint-plugin-react-refresh",
|
||||||
|
"330": "tailwindcss"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
# Graph Report - canina (2026-09-06)
|
# Graph Report - canina (2026-09-05)
|
||||||
|
|
||||||
## Corpus Check
|
## Corpus Check
|
||||||
- 603 files · ~1,117,926 words
|
- 603 files · ~1,116,468 words
|
||||||
- Verdict: corpus is large enough that graph structure adds value.
|
- Verdict: corpus is large enough that graph structure adds value.
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
- 4253 nodes · 7800 edges · 309 communities (212 shown, 97 thin omitted)
|
- 4251 nodes · 7789 edges · 325 communities (209 shown, 116 thin omitted)
|
||||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 298 edges (avg confidence: 0.79)
|
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 298 edges (avg confidence: 0.79)
|
||||||
- Token cost: 0 input · 0 output
|
- Token cost: 0 input · 0 output
|
||||||
|
|
||||||
## Graph Freshness
|
## Graph Freshness
|
||||||
- Built from commit: `026c5b90`
|
- Built from commit: `c57f775c`
|
||||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||||
- Run `graphify update .` after code changes (no API cost).
|
- Run `graphify update .` after code changes (no API cost).
|
||||||
|
|
||||||
@ -19,13 +19,13 @@
|
|||||||
- app.module.ts
|
- app.module.ts
|
||||||
- WikiController
|
- WikiController
|
||||||
- productService.ts
|
- productService.ts
|
||||||
- useSettingsStore
|
- ClientLayout.tsx
|
||||||
- CmsController
|
- CmsController
|
||||||
- tickets.controller.ts
|
- tickets.controller.ts
|
||||||
- SmsSettingsPage.tsx
|
- SmsSettingsPage.tsx
|
||||||
- SmsService
|
- SmsService
|
||||||
- devDependencies
|
- devDependencies
|
||||||
- reviews.controller.ts
|
- CreateReviewDto
|
||||||
- UsersService
|
- UsersService
|
||||||
- index.ts
|
- index.ts
|
||||||
- app-audit-verification.e2e-spec.js
|
- app-audit-verification.e2e-spec.js
|
||||||
@ -36,7 +36,7 @@
|
|||||||
- JwtAuthGuard
|
- JwtAuthGuard
|
||||||
- admin.controller.ts
|
- admin.controller.ts
|
||||||
- CreateVideoDto
|
- CreateVideoDto
|
||||||
- HomeClient.tsx
|
- OrderService
|
||||||
- ProductDto
|
- ProductDto
|
||||||
- MenuService
|
- MenuService
|
||||||
- BE-001
|
- BE-001
|
||||||
@ -48,32 +48,32 @@
|
|||||||
- DEVOPS-001
|
- DEVOPS-001
|
||||||
- DOC-001
|
- DOC-001
|
||||||
- adminRoutes.tsx
|
- adminRoutes.tsx
|
||||||
- WholesaleApplyDto
|
- WholesaleService
|
||||||
- B2BController
|
- B2BService
|
||||||
- ContactController
|
- ContactService
|
||||||
- FaqService
|
- FaqService
|
||||||
- راهنمای تست سیستم (Software Testing)
|
- راهنمای تست سیستم (Software Testing)
|
||||||
- Button
|
- Button.tsx
|
||||||
- CategoriesController
|
- CategoriesController
|
||||||
- MediaController
|
- MediaController
|
||||||
- What You Must Do When Invoked
|
- What You Must Do When Invoked
|
||||||
- SslController
|
- SslController
|
||||||
- BannersController
|
- BannersService
|
||||||
- TestimonialsController
|
- TestimonialsService
|
||||||
- What You Must Do When Invoked
|
- What You Must Do When Invoked
|
||||||
- 20260526145407_init/migration.sql
|
- 20260526145407_init/migration.sql
|
||||||
- IngredientsController
|
- IngredientsService
|
||||||
- app.e2e-spec.js
|
- app.e2e-spec.js
|
||||||
- devDependencies
|
- devDependencies
|
||||||
- devDependencies
|
- devDependencies
|
||||||
- BlogsController
|
- BlogsController
|
||||||
- prescriptions.controller.ts
|
- prescriptions.controller.ts
|
||||||
- SmartAdvisorService
|
- SmartAdvisorService
|
||||||
- Button.tsx
|
- MenuManager.tsx
|
||||||
- UITexts.tsx
|
- UITexts.tsx
|
||||||
- Orders.tsx
|
- PrescriptionsManager.tsx
|
||||||
- Role & Core Objective
|
- Role & Core Objective
|
||||||
- RedisService
|
- RevalidationService
|
||||||
- compilerOptions
|
- compilerOptions
|
||||||
- CreateUserDto
|
- CreateUserDto
|
||||||
- ProductPage.tsx
|
- ProductPage.tsx
|
||||||
@ -81,9 +81,9 @@
|
|||||||
- dependencies
|
- dependencies
|
||||||
- compilerOptions
|
- compilerOptions
|
||||||
- admin.service.ts
|
- admin.service.ts
|
||||||
- AdminController
|
- AdminQueryDto
|
||||||
- ConfirmModal.tsx
|
- PetsController
|
||||||
- lib/services/api.ts
|
- useSettingsStore
|
||||||
- Required Review Group Closures
|
- Required Review Group Closures
|
||||||
- compilerOptions
|
- compilerOptions
|
||||||
- getPageMetadata
|
- getPageMetadata
|
||||||
@ -91,7 +91,7 @@
|
|||||||
- Operational Rules & Boundaries
|
- Operational Rules & Boundaries
|
||||||
- WikiController
|
- WikiController
|
||||||
- PetsController
|
- PetsController
|
||||||
- RevalidationService
|
- ProductsService
|
||||||
- seo.module.ts
|
- seo.module.ts
|
||||||
- rss.xml/route.ts
|
- rss.xml/route.ts
|
||||||
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
||||||
@ -100,7 +100,7 @@
|
|||||||
- scripts
|
- scripts
|
||||||
- dependencies
|
- dependencies
|
||||||
- Role & Core Objective
|
- Role & Core Objective
|
||||||
- AuthController
|
- auth.controller.ts
|
||||||
- zibal.service.ts
|
- zibal.service.ts
|
||||||
- dependencies
|
- dependencies
|
||||||
- CreateEBankCheckoutDto
|
- CreateEBankCheckoutDto
|
||||||
@ -108,9 +108,9 @@
|
|||||||
- PetProfile.tsx
|
- PetProfile.tsx
|
||||||
- Reconciled Audit Roles & Assignments
|
- Reconciled Audit Roles & Assignments
|
||||||
- OrdersService
|
- OrdersService
|
||||||
- auth.service.ts
|
- Orders.tsx
|
||||||
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
|
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
|
||||||
- wiki/[slug]/page.tsx
|
- getSeoConfig
|
||||||
- compilerOptions
|
- compilerOptions
|
||||||
- PaymentService
|
- PaymentService
|
||||||
- scripts
|
- scripts
|
||||||
@ -128,7 +128,7 @@
|
|||||||
- Operational Rules & Boundaries
|
- Operational Rules & Boundaries
|
||||||
- Operational Rules & Boundaries
|
- Operational Rules & Boundaries
|
||||||
- Operational Rules & Boundaries
|
- Operational Rules & Boundaries
|
||||||
- sms.service.ts
|
- AdminTransactionFilterDto
|
||||||
- AppService
|
- AppService
|
||||||
- Spinner.tsx
|
- Spinner.tsx
|
||||||
- Vazirmatn Changelog
|
- Vazirmatn Changelog
|
||||||
@ -138,13 +138,13 @@
|
|||||||
- compilerOptions
|
- compilerOptions
|
||||||
- backend/README.md
|
- backend/README.md
|
||||||
- AdminService
|
- AdminService
|
||||||
- ApiOperation
|
- Body
|
||||||
- Repository Map
|
- Repository Map
|
||||||
- validate_integrity.js
|
- validate_integrity.js
|
||||||
- admin-panel/package.json
|
- admin-panel/package.json
|
||||||
- Sahel-Font
|
- Sahel-Font
|
||||||
- HomeController
|
- WholesaleApplyDto
|
||||||
- auth.module.ts
|
- MetricsController
|
||||||
- Sahel-Font
|
- Sahel-Font
|
||||||
- Role & Core Objective
|
- Role & Core Objective
|
||||||
- orchestrate.py
|
- orchestrate.py
|
||||||
@ -160,14 +160,14 @@
|
|||||||
- start-dev.js
|
- start-dev.js
|
||||||
- generate-openapi.js
|
- generate-openapi.js
|
||||||
- SafeImage.tsx
|
- SafeImage.tsx
|
||||||
- auth.controller.ts
|
- wiki/[slug]/page.tsx
|
||||||
- System Discovery
|
- System Discovery
|
||||||
- torob.controller.ts
|
- catalog/page.tsx
|
||||||
- Reports.tsx
|
- RouteErrorBoundary
|
||||||
- RegisterDto
|
- search/page.tsx
|
||||||
- Product Requirement Document (PRD)
|
- Product Requirement Document (PRD)
|
||||||
- @eslint/js
|
- @eslint/js
|
||||||
- AuthService
|
- auth.service.ts
|
||||||
- exclude
|
- exclude
|
||||||
- Baseline Command Plan & Reconciled Command History
|
- Baseline Command Plan & Reconciled Command History
|
||||||
- seo-backfill.ts
|
- seo-backfill.ts
|
||||||
@ -191,15 +191,15 @@
|
|||||||
- rebuild_honest_ledger.js
|
- rebuild_honest_ledger.js
|
||||||
- validate_evidence_grade.js
|
- validate_evidence_grade.js
|
||||||
- uploads/[...path]/route.ts
|
- uploads/[...path]/route.ts
|
||||||
- WikiService
|
- bcrypt
|
||||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||||
- track/page.tsx
|
- class-transformer
|
||||||
- API Contract Specification
|
- API Contract Specification
|
||||||
- ⚙️ Backend Technical Review (05_dev_backend)
|
- ⚙️ Backend Technical Review (05_dev_backend)
|
||||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||||
- trust-seals/page.tsx
|
- helmet
|
||||||
- @types/node
|
- Reviews.tsx
|
||||||
- seed-ui-texts.ts
|
- seed-ui-texts.ts
|
||||||
- seed-wiki.ts
|
- seed-wiki.ts
|
||||||
- update-blog.dto.ts
|
- update-blog.dto.ts
|
||||||
@ -211,14 +211,14 @@
|
|||||||
- Raw Finding Verification & Disposition Report
|
- Raw Finding Verification & Disposition Report
|
||||||
- React + TypeScript + Vite
|
- React + TypeScript + Vite
|
||||||
- Select.tsx
|
- Select.tsx
|
||||||
- userStore.ts
|
- toPersian
|
||||||
- typescript
|
- js-yaml
|
||||||
- prisma
|
- prisma
|
||||||
- application/README.md
|
- application/README.md
|
||||||
- deploy.sh
|
- deploy.sh
|
||||||
- 🔒 Security & Performance Review (09_devops_security)
|
- 🔒 Security & Performance Review (09_devops_security)
|
||||||
- 👁️ UX & Persona Interface Review (08_visual_qa)
|
- 👁️ UX & Persona Interface Review (08_visual_qa)
|
||||||
- eslint-config-next
|
- @nestjs/core
|
||||||
- prisma/scientificTerms.ts
|
- prisma/scientificTerms.ts
|
||||||
- seed-blogs.ts
|
- seed-blogs.ts
|
||||||
- seed-custom.ts
|
- seed-custom.ts
|
||||||
@ -234,15 +234,20 @@
|
|||||||
- sync_honest_manifest.js
|
- sync_honest_manifest.js
|
||||||
- sync_manifest.js
|
- sync_manifest.js
|
||||||
- FormField.tsx
|
- FormField.tsx
|
||||||
|
- @nestjs/jwt
|
||||||
- Textarea.tsx
|
- Textarea.tsx
|
||||||
- admin-panel/tsconfig.json
|
- admin-panel/tsconfig.json
|
||||||
- tailwindcss
|
- tailwindcss
|
||||||
|
- @nestjs/throttler
|
||||||
- next.config.ts
|
- next.config.ts
|
||||||
- Shabnam Font README
|
- Shabnam Font README
|
||||||
- AGENTS.md
|
- AGENTS.md
|
||||||
- rules/graphify.md
|
- rules/graphify.md
|
||||||
- .agents/workflows/graphify.md
|
- .agents/workflows/graphify.md
|
||||||
- instructions.md
|
- instructions.md
|
||||||
|
- passport
|
||||||
|
- reflect-metadata
|
||||||
|
- swagger-ui-express
|
||||||
- source-map-support
|
- source-map-support
|
||||||
- ts-loader
|
- ts-loader
|
||||||
- ts-node
|
- ts-node
|
||||||
@ -270,6 +275,7 @@
|
|||||||
- User Login API
|
- User Login API
|
||||||
- User Logout API
|
- User Logout API
|
||||||
- @types/compression
|
- @types/compression
|
||||||
|
- @eslint/eslintrc
|
||||||
- @types/express
|
- @types/express
|
||||||
- @types/jest
|
- @types/jest
|
||||||
- @types/multer
|
- @types/multer
|
||||||
@ -288,22 +294,32 @@
|
|||||||
- Production Docker Compose
|
- Production Docker Compose
|
||||||
- Staging Docker Compose
|
- Staging Docker Compose
|
||||||
- ZibalService
|
- ZibalService
|
||||||
|
- eslint-plugin-prettier
|
||||||
|
- globals
|
||||||
- ZibalEBankService
|
- ZibalEBankService
|
||||||
- .initiateOrderPayment
|
- .initiateOrderPayment
|
||||||
- @tailwindcss/postcss
|
- @tailwindcss/postcss
|
||||||
- typescript
|
- typescript
|
||||||
|
- @nestjs/cli
|
||||||
- typescript-eslint
|
- typescript-eslint
|
||||||
- @nestjs/schematics
|
- @nestjs/schematics
|
||||||
|
- @nestjs/testing
|
||||||
- eslint-config-prettier
|
- eslint-config-prettier
|
||||||
|
- prettier
|
||||||
|
- ts-jest
|
||||||
- jest
|
- jest
|
||||||
|
- @types/js-yaml
|
||||||
- @types/passport-jwt
|
- @types/passport-jwt
|
||||||
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
||||||
|
- @types/supertest
|
||||||
- typescript
|
- typescript
|
||||||
|
- typescript-eslint
|
||||||
- revalidate/route.ts
|
- revalidate/route.ts
|
||||||
- MaskableField.tsx
|
- MaskableField.tsx
|
||||||
- @tailwindcss/postcss
|
- @tailwindcss/postcss
|
||||||
- @types/react-dom
|
- @types/react-dom
|
||||||
- eslint-plugin-react-refresh
|
- eslint-plugin-react-refresh
|
||||||
|
- tailwindcss
|
||||||
|
|
||||||
## God Nodes (most connected - your core abstractions)
|
## God Nodes (most connected - your core abstractions)
|
||||||
1. `Roles()` - 108 edges
|
1. `Roles()` - 108 edges
|
||||||
@ -322,22 +338,22 @@
|
|||||||
docs/02-user-guide.md → backend/uploads/1781288429353-508765350.jpg
|
docs/02-user-guide.md → backend/uploads/1781288429353-508765350.jpg
|
||||||
- `AuthController` --references--> `ApiResponse` [EXTRACTED]
|
- `AuthController` --references--> `ApiResponse` [EXTRACTED]
|
||||||
backend/src/auth/auth.controller.ts → frontend/admin-panel/src/types/admin.ts
|
backend/src/auth/auth.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||||
- `BlogsController` --references--> `ApiResponse` [EXTRACTED]
|
|
||||||
backend/src/blogs/blogs.controller.ts → frontend/admin-panel/src/types/admin.ts
|
|
||||||
- `HomeController` --references--> `ApiResponse` [EXTRACTED]
|
|
||||||
backend/src/home/home.controller.ts → frontend/admin-panel/src/types/admin.ts
|
|
||||||
- `OrdersController` --references--> `ApiResponse` [EXTRACTED]
|
- `OrdersController` --references--> `ApiResponse` [EXTRACTED]
|
||||||
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||||
|
- `PetsController` --references--> `ApiResponse` [EXTRACTED]
|
||||||
|
backend/src/pets/pets.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||||
|
- `ProductsController` --references--> `ApiResponse` [EXTRACTED]
|
||||||
|
backend/src/products/products.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||||
|
|
||||||
## Import Cycles
|
## Import Cycles
|
||||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
||||||
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
||||||
|
|
||||||
## Communities (309 total, 97 thin omitted)
|
## Communities (325 total, 116 thin omitted)
|
||||||
|
|
||||||
### Community 0 - "Roles"
|
### Community 0 - "Roles"
|
||||||
Cohesion: 0.24
|
Cohesion: 0.23
|
||||||
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
||||||
|
|
||||||
### Community 1 - "app.module.ts"
|
### Community 1 - "app.module.ts"
|
||||||
@ -350,11 +366,11 @@ Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controlle
|
|||||||
|
|
||||||
### Community 3 - "productService.ts"
|
### Community 3 - "productService.ts"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.06
|
||||||
Nodes (35): B2BPortal, dynamic, GET(), revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+27 more)
|
Nodes (35): DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory, BlogPostItem, CatalogPageSpread() (+27 more)
|
||||||
|
|
||||||
### Community 4 - "useSettingsStore"
|
### Community 4 - "ClientLayout.tsx"
|
||||||
Cohesion: 0.08
|
Cohesion: 0.08
|
||||||
Nodes (30): ClientLayout(), metadata, B2BLandingClient(), BrandLogo(), BrandLogoProps, Footer(), Header(), MENU_ICONS (+22 more)
|
Nodes (23): ClientLayout(), LoginModal, BannerPlacement(), BannerPlacementProps, BrandLogo(), BrandLogoProps, Footer(), MaintenancePage() (+15 more)
|
||||||
|
|
||||||
### Community 5 - "CmsController"
|
### Community 5 - "CmsController"
|
||||||
Cohesion: 0.09
|
Cohesion: 0.09
|
||||||
@ -370,35 +386,35 @@ Nodes (10): PatternItem, SmsConfigState, SmsEventDefinition, SmsEventVariable, S
|
|||||||
|
|
||||||
### Community 8 - "SmsService"
|
### Community 8 - "SmsService"
|
||||||
Cohesion: 0.05
|
Cohesion: 0.05
|
||||||
Nodes (27): SmsEventDefinition, SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional (+19 more)
|
Nodes (28): SmsEventDefinition, SmsLogQuery, SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber (+20 more)
|
||||||
|
|
||||||
### Community 9 - "devDependencies"
|
### Community 9 - "devDependencies"
|
||||||
Cohesion: 0.08
|
Cohesion: 0.22
|
||||||
Nodes (25): devDependencies, eslint, @eslint/eslintrc, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||||
|
|
||||||
### Community 10 - "reviews.controller.ts"
|
### Community 10 - "CreateReviewDto"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
Nodes (32): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+24 more)
|
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more)
|
||||||
|
|
||||||
### Community 11 - "UsersService"
|
### Community 11 - "UsersService"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.05
|
||||||
Nodes (32): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+24 more)
|
Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
|
||||||
|
|
||||||
### Community 12 - "index.ts"
|
### Community 12 - "index.ts"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.06
|
||||||
Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/*.ts, authFile, test, compilerOptions (+16 more)
|
Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/*.ts, authFile, test, compilerOptions (+16 more)
|
||||||
|
|
||||||
### Community 13 - "app-audit-verification.e2e-spec.js"
|
### Community 13 - "app-audit-verification.e2e-spec.js"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.07
|
||||||
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
|
Nodes (26): EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter, Catch, PrismaExceptionFilter (+18 more)
|
||||||
|
|
||||||
### Community 14 - "UserDashboard.tsx"
|
### Community 14 - "UserDashboard.tsx"
|
||||||
Cohesion: 0.14
|
Cohesion: 0.11
|
||||||
Nodes (23): AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), BackButton(), BackButtonProps, CheckoutPage() (+15 more)
|
Nodes (22): AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), CheckoutPage(), DeleteConfirmModal(), DeleteConfirmModalProps (+14 more)
|
||||||
|
|
||||||
### Community 15 - "src/services/api.ts"
|
### Community 15 - "src/services/api.ts"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.07
|
||||||
Nodes (38): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+30 more)
|
Nodes (34): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+26 more)
|
||||||
|
|
||||||
### Community 16 - "DoctorQueryDto"
|
### Community 16 - "DoctorQueryDto"
|
||||||
Cohesion: 0.09
|
Cohesion: 0.09
|
||||||
@ -409,23 +425,19 @@ Cohesion: 0.14
|
|||||||
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), ContactFormClient() (+10 more)
|
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), ContactFormClient() (+10 more)
|
||||||
|
|
||||||
### Community 18 - "JwtAuthGuard"
|
### Community 18 - "JwtAuthGuard"
|
||||||
Cohesion: 0.15
|
Cohesion: 0.21
|
||||||
Nodes (9): JwtAuthGuard, Injectable, B2BService, B2BWholesaleOrderItem, Injectable, ROLES_KEY, RequestWithUser, RolesGuard (+1 more)
|
Nodes (6): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable
|
||||||
|
|
||||||
### Community 19 - "admin.controller.ts"
|
### Community 19 - "admin.controller.ts"
|
||||||
Cohesion: 0.35
|
Cohesion: 0.29
|
||||||
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
||||||
|
|
||||||
### Community 20 - "CreateVideoDto"
|
### Community 20 - "CreateVideoDto"
|
||||||
Cohesion: 0.09
|
Cohesion: 0.09
|
||||||
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
|
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
|
||||||
|
|
||||||
### Community 21 - "HomeClient.tsx"
|
|
||||||
Cohesion: 0.10
|
|
||||||
Nodes (22): HomeClient(), HomeClientProps, getHomeData(), Home(), BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), FAQSection() (+14 more)
|
|
||||||
|
|
||||||
### Community 22 - "ProductDto"
|
### Community 22 - "ProductDto"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.20
|
||||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||||
|
|
||||||
### Community 23 - "MenuService"
|
### Community 23 - "MenuService"
|
||||||
@ -465,32 +477,32 @@ Cohesion: 0.06
|
|||||||
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
||||||
|
|
||||||
### Community 32 - "adminRoutes.tsx"
|
### Community 32 - "adminRoutes.tsx"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.06
|
||||||
Nodes (16): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, SslStatus, AdminRouteConfig (+8 more)
|
Nodes (22): App(), CategoryDist, DashboardData, SslStatus, WholesaleRequest, AdminRouteConfig, BannersManager, Categories (+14 more)
|
||||||
|
|
||||||
### Community 33 - "WholesaleApplyDto"
|
### Community 33 - "WholesaleService"
|
||||||
Cohesion: 0.10
|
|
||||||
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
|
|
||||||
|
|
||||||
### Community 34 - "B2BController"
|
|
||||||
Cohesion: 0.14
|
Cohesion: 0.14
|
||||||
Nodes (13): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+5 more)
|
Nodes (14): ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param, Post (+6 more)
|
||||||
|
|
||||||
### Community 35 - "ContactController"
|
### Community 34 - "B2BService"
|
||||||
|
Cohesion: 0.12
|
||||||
|
Nodes (16): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+8 more)
|
||||||
|
|
||||||
|
### Community 35 - "ContactService"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (10): ContactController, Body, Controller, Get, Param, Post, Put, Query (+2 more)
|
Nodes (12): ContactController, Body, Controller, Get, Param, Post, Put, Query (+4 more)
|
||||||
|
|
||||||
### Community 36 - "FaqService"
|
### Community 36 - "FaqService"
|
||||||
Cohesion: 0.14
|
Cohesion: 0.12
|
||||||
Nodes (14): FaqController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
Nodes (16): FaqController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||||
|
|
||||||
### Community 37 - "راهنمای تست سیستم (Software Testing)"
|
### Community 37 - "راهنمای تست سیستم (Software Testing)"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
Nodes (25): اجرای بکاند, اجرای فرانتاند, اجرای پروژه در سرور با PM2, برای راهاندازی بکاند:, برای راهاندازی فرانتاند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسهها تا پس از ریاستارت سرور قطع نشوند:, راهاندازی و انتشار سیستم (Setup & Deployment) (+17 more)
|
Nodes (25): اجرای بکاند, اجرای فرانتاند, اجرای پروژه در سرور با PM2, برای راهاندازی بکاند:, برای راهاندازی فرانتاند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسهها تا پس از ریاستارت سرور قطع نشوند:, راهاندازی و انتشار سیستم (Setup & Deployment) (+17 more)
|
||||||
|
|
||||||
### Community 38 - "Button"
|
### Community 38 - "Button.tsx"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.06
|
||||||
Nodes (13): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Button(), ThSort(), ThSortProps, GatewayHealth, Stats (+5 more)
|
Nodes (32): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Button(), ButtonProps, ButtonSize, ButtonVariant, ThSort() (+24 more)
|
||||||
|
|
||||||
### Community 39 - "CategoriesController"
|
### Community 39 - "CategoriesController"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.10
|
||||||
@ -498,7 +510,7 @@ Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags
|
|||||||
|
|
||||||
### Community 40 - "MediaController"
|
### Community 40 - "MediaController"
|
||||||
Cohesion: 0.11
|
Cohesion: 0.11
|
||||||
Nodes (14): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||||
|
|
||||||
### Community 41 - "What You Must Do When Invoked"
|
### Community 41 - "What You Must Do When Invoked"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
@ -508,13 +520,13 @@ Nodes (26): For /graphify add and --watch, For /graphify query, For the commit h
|
|||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
|
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
|
||||||
|
|
||||||
### Community 43 - "BannersController"
|
### Community 43 - "BannersService"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (13): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+5 more)
|
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
|
||||||
|
|
||||||
### Community 44 - "TestimonialsController"
|
### Community 44 - "TestimonialsService"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (12): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more)
|
Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||||
|
|
||||||
### Community 45 - "What You Must Do When Invoked"
|
### Community 45 - "What You Must Do When Invoked"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
@ -524,9 +536,9 @@ Nodes (26): For /graphify add and --watch, For /graphify query, For the commit h
|
|||||||
Cohesion: 0.27
|
Cohesion: 0.27
|
||||||
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
|
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
|
||||||
|
|
||||||
### Community 47 - "IngredientsController"
|
### Community 47 - "IngredientsService"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (12): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more)
|
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||||
|
|
||||||
### Community 48 - "app.e2e-spec.js"
|
### Community 48 - "app.e2e-spec.js"
|
||||||
Cohesion: 0.50
|
Cohesion: 0.50
|
||||||
@ -538,7 +550,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
|||||||
|
|
||||||
### Community 50 - "devDependencies"
|
### Community 50 - "devDependencies"
|
||||||
Cohesion: 0.12
|
Cohesion: 0.12
|
||||||
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
|
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
|
||||||
|
|
||||||
### Community 51 - "BlogsController"
|
### Community 51 - "BlogsController"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
@ -552,25 +564,25 @@ Nodes (17): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body,
|
|||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||||
|
|
||||||
### Community 54 - "Button.tsx"
|
### Community 54 - "MenuManager.tsx"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.33
|
||||||
Nodes (24): ButtonProps, ButtonSize, ButtonVariant, maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission (+16 more)
|
Nodes (4): MENU_TABS, MenuItem, MenuType, MenuManager
|
||||||
|
|
||||||
### Community 55 - "UITexts.tsx"
|
### Community 55 - "UITexts.tsx"
|
||||||
Cohesion: 0.08
|
Cohesion: 0.10
|
||||||
Nodes (23): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ActiveStates, PRESET_BG_COLORS, PRESET_COLORS, RichTextEditor(), RichTextEditorProps (+15 more)
|
Nodes (17): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ActiveStates, PRESET_BG_COLORS, PRESET_COLORS, RichTextEditor(), RichTextEditorProps (+9 more)
|
||||||
|
|
||||||
### Community 56 - "Orders.tsx"
|
### Community 56 - "PrescriptionsManager.tsx"
|
||||||
Cohesion: 0.11
|
Cohesion: 0.12
|
||||||
Nodes (15): Badge(), BadgeProps, BadgeVariant, variantStyles, Skeleton(), MonitoringStats, getPaymentMethodLabel(), Order (+7 more)
|
Nodes (14): Badge(), BadgeProps, BadgeVariant, variantStyles, Skeleton(), MonitoringStats, ProductItem, UserRecord (+6 more)
|
||||||
|
|
||||||
### Community 57 - "Role & Core Objective"
|
### Community 57 - "Role & Core Objective"
|
||||||
Cohesion: 0.09
|
Cohesion: 0.09
|
||||||
Nodes (22): CREATE MODE — Normal Operation, Expected JSON Output Schema, File Scope Boundary, Forbidden Actions, MODE 1: REVIEW (called during Review Phase), MODE 2: CONTENT CREATION (standalone task from backlog), Operating Modes, Operational Rules & Boundaries (+14 more)
|
Nodes (22): CREATE MODE — Normal Operation, Expected JSON Output Schema, File Scope Boundary, Forbidden Actions, MODE 1: REVIEW (called during Review Phase), MODE 2: CONTENT CREATION (standalone task from backlog), Operating Modes, Operational Rules & Boundaries (+14 more)
|
||||||
|
|
||||||
### Community 58 - "RedisService"
|
### Community 58 - "RevalidationService"
|
||||||
Cohesion: 0.14
|
Cohesion: 0.23
|
||||||
Nodes (6): Optional, RedisModule, Global, Module, RedisService, Injectable
|
Nodes (3): Optional, RevalidationService, Injectable
|
||||||
|
|
||||||
### Community 59 - "compilerOptions"
|
### Community 59 - "compilerOptions"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.06
|
||||||
@ -582,35 +594,35 @@ Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty
|
|||||||
|
|
||||||
### Community 61 - "ProductPage.tsx"
|
### Community 61 - "ProductPage.tsx"
|
||||||
Cohesion: 0.11
|
Cohesion: 0.11
|
||||||
Nodes (38): VerifyContent(), ArchivePage(), ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, B2BPortal(), CartDrawer() (+30 more)
|
Nodes (24): ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, ProductCard(), ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP (+16 more)
|
||||||
|
|
||||||
### Community 62 - "admin.module.ts"
|
### Community 62 - "admin.module.ts"
|
||||||
Cohesion: 0.05
|
Cohesion: 0.07
|
||||||
Nodes (30): AdminModule, Module, MediaService, Injectable, PetsController, ApiBearerAuth, ApiOperation, ApiQuery (+22 more)
|
Nodes (20): AdminModule, Module, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+12 more)
|
||||||
|
|
||||||
### Community 63 - "dependencies"
|
### Community 63 - "dependencies"
|
||||||
Cohesion: 0.05
|
Cohesion: 0.09
|
||||||
Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
|
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+15 more)
|
||||||
|
|
||||||
### Community 64 - "compilerOptions"
|
### Community 64 - "compilerOptions"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.10
|
||||||
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
||||||
|
|
||||||
### Community 65 - "admin.service.ts"
|
### Community 65 - "admin.service.ts"
|
||||||
Cohesion: 0.33
|
Cohesion: 0.39
|
||||||
Nodes (8): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode, CANONICAL_ALIASES
|
Nodes (7): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode
|
||||||
|
|
||||||
### Community 66 - "AdminController"
|
### Community 66 - "AdminQueryDto"
|
||||||
|
Cohesion: 0.18
|
||||||
|
Nodes (7): ApiQuery, Query, AdminProductQueryDto, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||||
|
|
||||||
|
### Community 67 - "PetsController"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.10
|
||||||
Nodes (13): AdminController, ApiBearerAuth, ApiQuery, ApiTags, Controller, Get, Query, UseGuards (+5 more)
|
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
|
||||||
|
|
||||||
### Community 67 - "ConfirmModal.tsx"
|
### Community 68 - "useSettingsStore"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.07
|
||||||
Nodes (16): ConfirmModal(), ConfirmModalProps, Pagination(), PaginationProps, Category, Pet, DoctorOption, Video (+8 more)
|
Nodes (35): HomeClient(), HomeClientProps, B2BLandingClient(), BlogPostClientProps, BlogPost, BlogPreviewSection(), ContactInfoItem, EnamadBadge() (+27 more)
|
||||||
|
|
||||||
### Community 68 - "lib/services/api.ts"
|
|
||||||
Cohesion: 0.09
|
|
||||||
Nodes (16): BlogPost, ContactInfoItem, FAQItem, Testimonial, api, ApiErrorPayload, BASE_DOMAIN, baseURL (+8 more)
|
|
||||||
|
|
||||||
### Community 69 - "Required Review Group Closures"
|
### Community 69 - "Required Review Group Closures"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.10
|
||||||
@ -622,7 +634,7 @@ Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx
|
|||||||
|
|
||||||
### Community 71 - "getPageMetadata"
|
### Community 71 - "getPageMetadata"
|
||||||
Cohesion: 0.08
|
Cohesion: 0.08
|
||||||
Nodes (16): generateMetadata(), CatalogClient(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+8 more)
|
Nodes (18): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), getHomeData(), Home(), generateMetadata() (+10 more)
|
||||||
|
|
||||||
### Community 72 - "Operational Rules & Boundaries"
|
### Community 72 - "Operational Rules & Boundaries"
|
||||||
Cohesion: 0.11
|
Cohesion: 0.11
|
||||||
@ -640,9 +652,9 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
|||||||
Cohesion: 0.05
|
Cohesion: 0.05
|
||||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||||
|
|
||||||
### Community 76 - "RevalidationService"
|
### Community 76 - "ProductsService"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.06
|
||||||
Nodes (24): RevalidationModule, Global, Module, RevalidationService, Injectable, GetProductsDto, ApiPropertyOptional, IsEnum (+16 more)
|
Nodes (30): RevalidationModule, Global, Module, GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString (+22 more)
|
||||||
|
|
||||||
### Community 77 - "seo.module.ts"
|
### Community 77 - "seo.module.ts"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.16
|
||||||
@ -676,9 +688,9 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
|
|||||||
Cohesion: 0.12
|
Cohesion: 0.12
|
||||||
Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more)
|
Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more)
|
||||||
|
|
||||||
### Community 85 - "AuthController"
|
### Community 85 - "auth.controller.ts"
|
||||||
Cohesion: 0.25
|
Cohesion: 0.06
|
||||||
Nodes (13): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
|
Nodes (43): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+35 more)
|
||||||
|
|
||||||
### Community 86 - "zibal.service.ts"
|
### Community 86 - "zibal.service.ts"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.16
|
||||||
@ -697,8 +709,8 @@ Cohesion: 0.17
|
|||||||
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
||||||
|
|
||||||
### Community 90 - "PetProfile.tsx"
|
### Community 90 - "PetProfile.tsx"
|
||||||
Cohesion: 0.12
|
Cohesion: 0.10
|
||||||
Nodes (11): OrderDetailsModal(), OrderRowSkeleton(), PetProfileSkeleton(), ProductListSkeleton(), Skeleton(), SkeletonProps, HealthLog, PetConsumption (+3 more)
|
Nodes (30): B2BPortal, VerifyContent(), metadata, B2BPortal(), Header(), MENU_ICONS, OrderSuccess(), OrderTracking() (+22 more)
|
||||||
|
|
||||||
### Community 91 - "Reconciled Audit Roles & Assignments"
|
### Community 91 - "Reconciled Audit Roles & Assignments"
|
||||||
Cohesion: 0.12
|
Cohesion: 0.12
|
||||||
@ -708,33 +720,29 @@ Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. Rea
|
|||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||||
|
|
||||||
### Community 93 - "auth.service.ts"
|
### Community 93 - "Orders.tsx"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.22
|
||||||
Nodes (14): AdminLoginInput, LoginInput, RegisterInput, SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches (+6 more)
|
Nodes (8): getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderItem, Orders(), PaymentTx, toPersianDigits(), Orders
|
||||||
|
|
||||||
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
|
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (14): 10. Dependency & Wave Adjustments, 11. Acceptance Criteria Refinements, 12. Business and Product Decision Classification, 13. Final Recommended Backlog Summary, 1. Executive Assessment, 2. Findings That Require No Change, 3. Findings Requiring Task Refinements, 4. Tasks Requiring Splitting (+6 more)
|
Nodes (14): 10. Dependency & Wave Adjustments, 11. Acceptance Criteria Refinements, 12. Business and Product Decision Classification, 13. Final Recommended Backlog Summary, 1. Executive Assessment, 2. Findings That Require No Change, 3. Findings Requiring Task Refinements, 4. Tasks Requiring Splitting (+6 more)
|
||||||
|
|
||||||
### Community 95 - "wiki/[slug]/page.tsx"
|
### Community 95 - "getSeoConfig"
|
||||||
Cohesion: 0.18
|
Cohesion: 0.24
|
||||||
Nodes (17): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+9 more)
|
Nodes (12): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+4 more)
|
||||||
|
|
||||||
### Community 96 - "compilerOptions"
|
### Community 96 - "compilerOptions"
|
||||||
Cohesion: 0.06
|
Cohesion: 0.06
|
||||||
Nodes (32): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModules, jsx, lib, module (+24 more)
|
Nodes (32): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModules, jsx, lib, module (+24 more)
|
||||||
|
|
||||||
### Community 97 - "PaymentService"
|
|
||||||
Cohesion: 0.10
|
|
||||||
Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, PaymentService (+1 more)
|
|
||||||
|
|
||||||
### Community 98 - "scripts"
|
### Community 98 - "scripts"
|
||||||
Cohesion: 0.13
|
Cohesion: 0.13
|
||||||
Nodes (15): scripts, build, build:nest, docs:generate, lint, seo:backfill, start, start:debug (+7 more)
|
Nodes (15): scripts, build, build:nest, docs:generate, lint, seo:backfill, start, start:debug (+7 more)
|
||||||
|
|
||||||
### Community 99 - "BlogsController"
|
### Community 99 - "BlogsController"
|
||||||
Cohesion: 0.18
|
Cohesion: 0.08
|
||||||
Nodes (12): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Get (+4 more)
|
Nodes (23): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Get (+15 more)
|
||||||
|
|
||||||
### Community 100 - "Deep Audit Summary Report"
|
### Community 100 - "Deep Audit Summary Report"
|
||||||
Cohesion: 0.14
|
Cohesion: 0.14
|
||||||
@ -769,8 +777,8 @@ Cohesion: 0.06
|
|||||||
Nodes (25): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+17 more)
|
Nodes (25): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+17 more)
|
||||||
|
|
||||||
### Community 108 - "PrismaService"
|
### Community 108 - "PrismaService"
|
||||||
Cohesion: 0.05
|
Cohesion: 0.07
|
||||||
Nodes (26): ApiExcludeController, CategoryQuery, WikiQuery, BannersService, Injectable, MetricsController, Controller, Get (+18 more)
|
Nodes (25): CategoryQuery, DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+17 more)
|
||||||
|
|
||||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||||
Cohesion: 0.17
|
Cohesion: 0.17
|
||||||
@ -788,17 +796,17 @@ Nodes (10): 1. Mark Active Task as Complete, 2. Documentation Updates, 3. Dynami
|
|||||||
Cohesion: 0.18
|
Cohesion: 0.18
|
||||||
Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
|
Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
|
||||||
|
|
||||||
### Community 113 - "sms.service.ts"
|
### Community 113 - "AdminTransactionFilterDto"
|
||||||
Cohesion: 0.12
|
Cohesion: 0.22
|
||||||
Nodes (13): DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig (+5 more)
|
Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||||
|
|
||||||
### Community 114 - "AppService"
|
### Community 114 - "AppService"
|
||||||
Cohesion: 0.29
|
Cohesion: 0.29
|
||||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||||
|
|
||||||
### Community 115 - "Spinner.tsx"
|
### Community 115 - "Spinner.tsx"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.08
|
||||||
Nodes (22): ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, Spinner(), Doctor (+14 more)
|
Nodes (34): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+26 more)
|
||||||
|
|
||||||
### Community 116 - "Vazirmatn Changelog"
|
### Community 116 - "Vazirmatn Changelog"
|
||||||
Cohesion: 0.18
|
Cohesion: 0.18
|
||||||
@ -825,12 +833,12 @@ Cohesion: 0.20
|
|||||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||||
|
|
||||||
### Community 122 - "AdminService"
|
### Community 122 - "AdminService"
|
||||||
Cohesion: 0.12
|
Cohesion: 0.09
|
||||||
Nodes (5): Delete, Param, Put, AdminService, Injectable
|
Nodes (12): AdminController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Delete, Get, Param (+4 more)
|
||||||
|
|
||||||
### Community 123 - "ApiOperation"
|
### Community 123 - "Body"
|
||||||
Cohesion: 0.15
|
Cohesion: 0.20
|
||||||
Nodes (4): ApiOperation, Body, Post, CouponInput
|
Nodes (3): Body, Post, CouponInput
|
||||||
|
|
||||||
### Community 124 - "Repository Map"
|
### Community 124 - "Repository Map"
|
||||||
Cohesion: 0.20
|
Cohesion: 0.20
|
||||||
@ -848,13 +856,13 @@ Nodes (9): name, private, scripts, build, dev, lint, preview, type (+1 more)
|
|||||||
Cohesion: 0.20
|
Cohesion: 0.20
|
||||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||||
|
|
||||||
### Community 128 - "HomeController"
|
### Community 128 - "WholesaleApplyDto"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.29
|
||||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto
|
||||||
|
|
||||||
### Community 129 - "auth.module.ts"
|
### Community 129 - "MetricsController"
|
||||||
Cohesion: 0.18
|
Cohesion: 0.29
|
||||||
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more)
|
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||||
|
|
||||||
### Community 130 - "Sahel-Font"
|
### Community 130 - "Sahel-Font"
|
||||||
Cohesion: 0.20
|
Cohesion: 0.20
|
||||||
@ -913,36 +921,28 @@ Cohesion: 0.25
|
|||||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||||
|
|
||||||
### Community 144 - "SafeImage.tsx"
|
### Community 144 - "SafeImage.tsx"
|
||||||
Cohesion: 0.09
|
Cohesion: 0.08
|
||||||
Nodes (25): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, BlogPostClientProps, OrderDetailsModalProps, PLAYBACK_RATES (+17 more)
|
Nodes (30): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, dynamic, GET(), revalidate (+22 more)
|
||||||
|
|
||||||
### Community 145 - "auth.controller.ts"
|
### Community 145 - "wiki/[slug]/page.tsx"
|
||||||
Cohesion: 0.16
|
Cohesion: 0.60
|
||||||
Nodes (11): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength, LoginDto, ApiProperty (+3 more)
|
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
|
||||||
|
|
||||||
### Community 146 - "System Discovery"
|
### Community 146 - "System Discovery"
|
||||||
Cohesion: 0.25
|
Cohesion: 0.25
|
||||||
Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status Matrix, Excluded / Non-Auditable Artifacts, Major Business Domains Discovered, System Discovery, Technical Architecture Summary
|
Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status Matrix, Excluded / Non-Auditable Artifacts, Major Business Domains Discovered, System Discovery, Technical Architecture Summary
|
||||||
|
|
||||||
### Community 147 - "torob.controller.ts"
|
### Community 148 - "RouteErrorBoundary"
|
||||||
Cohesion: 0.22
|
Cohesion: 0.22
|
||||||
Nodes (8): buildTorobProductSpec(), buildTorobProductTitle(), TorobController, ApiOperation, ApiTags, Controller, Get, Query
|
Nodes (3): Props, RouteErrorBoundary, State
|
||||||
|
|
||||||
### Community 148 - "Reports.tsx"
|
|
||||||
Cohesion: 0.20
|
|
||||||
Nodes (7): BestSellerItem, CategoryDistItem, COLORS, CustomTooltipProps, ReportData, TopCouponItem, Reports
|
|
||||||
|
|
||||||
### Community 149 - "RegisterDto"
|
|
||||||
Cohesion: 0.22
|
|
||||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
|
||||||
|
|
||||||
### Community 150 - "Product Requirement Document (PRD)"
|
### Community 150 - "Product Requirement Document (PRD)"
|
||||||
Cohesion: 0.29
|
Cohesion: 0.29
|
||||||
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
|
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
|
||||||
|
|
||||||
### Community 152 - "AuthService"
|
### Community 152 - "auth.service.ts"
|
||||||
Cohesion: 0.15
|
Cohesion: 0.08
|
||||||
Nodes (3): AuthService, Injectable, normalizeMobile()
|
Nodes (10): AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, normalizeMobile() (+2 more)
|
||||||
|
|
||||||
### Community 153 - "exclude"
|
### Community 153 - "exclude"
|
||||||
Cohesion: 0.22
|
Cohesion: 0.22
|
||||||
@ -1052,6 +1052,10 @@ Nodes (3): Architectural Overview, Critical Review Findings & Required Enhanceme
|
|||||||
Cohesion: 0.50
|
Cohesion: 0.50
|
||||||
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
|
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||||
|
|
||||||
|
### Community 185 - "Reviews.tsx"
|
||||||
|
Cohesion: 0.40
|
||||||
|
Nodes (5): BlogCommentItem, ProductReview, Reviews(), toPersianDigits(), Reviews
|
||||||
|
|
||||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||||
Cohesion: 0.50
|
Cohesion: 0.50
|
||||||
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
|
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
|
||||||
@ -1076,9 +1080,9 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
|
|||||||
Cohesion: 0.50
|
Cohesion: 0.50
|
||||||
Nodes (3): Select, SelectOption, SelectProps
|
Nodes (3): Select, SelectOption, SelectProps
|
||||||
|
|
||||||
### Community 197 - "userStore.ts"
|
### Community 197 - "toPersian"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.09
|
||||||
Nodes (27): AuthModal, CartDrawer, LoginModal, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView, (+19 more)
|
Nodes (23): AuthModal, CartDrawer, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView,, CartDrawer() (+15 more)
|
||||||
|
|
||||||
### Community 200 - "application/README.md"
|
### Community 200 - "application/README.md"
|
||||||
Cohesion: 0.50
|
Cohesion: 0.50
|
||||||
@ -1097,7 +1101,7 @@ Cohesion: 0.67
|
|||||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||||
|
|
||||||
### Community 298 - ".initiateOrderPayment"
|
### Community 298 - ".initiateOrderPayment"
|
||||||
Cohesion: 0.20
|
Cohesion: 0.18
|
||||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||||
|
|
||||||
### Community 317 - "revalidate/route.ts"
|
### Community 317 - "revalidate/route.ts"
|
||||||
@ -1107,22 +1111,22 @@ Nodes (3): GET(), handleRevalidate(), POST()
|
|||||||
## Knowledge Gaps
|
## Knowledge Gaps
|
||||||
- **1355 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1350 more)
|
- **1355 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1350 more)
|
||||||
These have ≤1 connection - possible missing edges or undocumented components.
|
These have ≤1 connection - possible missing edges or undocumented components.
|
||||||
- **97 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
- **116 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||||
|
|
||||||
## Suggested Questions
|
## Suggested Questions
|
||||||
_Questions this graph is uniquely positioned to answer:_
|
_Questions this graph is uniquely positioned to answer:_
|
||||||
|
|
||||||
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BController`, `ContactController`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersController`, `RevalidationService`, `reviews.controller.ts`, `TestimonialsController`, `IngredientsController`, `JwtAuthGuard`, `prescriptions.controller.ts`, `SmartAdvisorService`, `MenuService`?**
|
- **Why does `Roles()` connect `Roles` to `PaymentService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `WholesaleService`, `SmsService`, `SslController`, `BannersService`, `ProductsService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `prescriptions.controller.ts`, `SmartAdvisorService`, `MenuService`?**
|
||||||
_High betweenness centrality (0.093) - this node is a cross-community bridge._
|
_High betweenness centrality (0.093) - this node is a cross-community bridge._
|
||||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `HomeController`, `WikiController`, `BlogsController`, `PetsController`, `RevalidationService`, `UsersService`, `AuthController`, `OrdersService`?**
|
- **Why does `ApiResponse` connect `BlogsController` to `WikiController`, `UsersService`, `PetsController`, `ProductsService`, `src/services/api.ts`, `auth.controller.ts`, `OrdersService`?**
|
||||||
_High betweenness centrality (0.066) - this node is a cross-community bridge._
|
_High betweenness centrality (0.066) - this node is a cross-community bridge._
|
||||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `CmsController`, `tickets.controller.ts`, `reviews.controller.ts`, `PaginationDto`, `PrismaService`, `PetsController`, `RevalidationService`, `auth.controller.ts`, `admin.controller.ts`, `prescriptions.controller.ts`, `admin.module.ts`?**
|
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `PaginationDto`, `PetsController`, `ProductsService`, `UsersService`, `DoctorQueryDto`, `admin.controller.ts`, `prescriptions.controller.ts`, `auth.controller.ts`, `admin.module.ts`?**
|
||||||
_High betweenness centrality (0.030) - this node is a cross-community bridge._
|
_High betweenness centrality (0.030) - this node is a cross-community bridge._
|
||||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||||
_1355 weakly-connected nodes found - possible documentation gaps or missing edges._
|
_1355 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||||
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
||||||
_Cohesion score 0.06531986531986532 - nodes in this community are weakly interconnected._
|
_Cohesion score 0.06848357791754019 - nodes in this community are weakly interconnected._
|
||||||
- **Should `WikiController` be split into smaller, more focused modules?**
|
- **Should `WikiController` be split into smaller, more focused modules?**
|
||||||
_Cohesion score 0.12554112554112554 - nodes in this community are weakly interconnected._
|
_Cohesion score 0.12554112554112554 - nodes in this community are weakly interconnected._
|
||||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||||
_Cohesion score 0.061955965181771634 - nodes in this community are weakly interconnected._
|
_Cohesion score 0.06093189964157706 - nodes in this community are weakly interconnected._
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
# Graph Report - canina (2026-09-06)
|
# Graph Report - canina (2026-09-06)
|
||||||
|
|
||||||
## Corpus Check
|
## Corpus Check
|
||||||
- 603 files · ~1,118,096 words
|
- 603 files · ~1,117,926 words
|
||||||
- Verdict: corpus is large enough that graph structure adds value.
|
- Verdict: corpus is large enough that graph structure adds value.
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
@ -10,7 +10,7 @@
|
|||||||
- Token cost: 0 input · 0 output
|
- Token cost: 0 input · 0 output
|
||||||
|
|
||||||
## Graph Freshness
|
## Graph Freshness
|
||||||
- Built from commit: `a9fbcbb9`
|
- Built from commit: `026c5b90`
|
||||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||||
- Run `graphify update .` after code changes (no API cost).
|
- Run `graphify update .` after code changes (no API cost).
|
||||||
|
|
||||||
@ -81,7 +81,7 @@
|
|||||||
- dependencies
|
- dependencies
|
||||||
- compilerOptions
|
- compilerOptions
|
||||||
- admin.service.ts
|
- admin.service.ts
|
||||||
- AdminQueryDto
|
- AdminController
|
||||||
- ConfirmModal.tsx
|
- ConfirmModal.tsx
|
||||||
- lib/services/api.ts
|
- lib/services/api.ts
|
||||||
- Required Review Group Closures
|
- Required Review Group Closures
|
||||||
@ -138,7 +138,7 @@
|
|||||||
- compilerOptions
|
- compilerOptions
|
||||||
- backend/README.md
|
- backend/README.md
|
||||||
- AdminService
|
- AdminService
|
||||||
- Body
|
- ApiOperation
|
||||||
- Repository Map
|
- Repository Map
|
||||||
- validate_integrity.js
|
- validate_integrity.js
|
||||||
- admin-panel/package.json
|
- admin-panel/package.json
|
||||||
@ -212,7 +212,7 @@
|
|||||||
- React + TypeScript + Vite
|
- React + TypeScript + Vite
|
||||||
- Select.tsx
|
- Select.tsx
|
||||||
- userStore.ts
|
- userStore.ts
|
||||||
- eslint-plugin-prettier
|
- typescript
|
||||||
- prisma
|
- prisma
|
||||||
- application/README.md
|
- application/README.md
|
||||||
- deploy.sh
|
- deploy.sh
|
||||||
@ -234,11 +234,9 @@
|
|||||||
- sync_honest_manifest.js
|
- sync_honest_manifest.js
|
||||||
- sync_manifest.js
|
- sync_manifest.js
|
||||||
- FormField.tsx
|
- FormField.tsx
|
||||||
- globals
|
|
||||||
- Textarea.tsx
|
- Textarea.tsx
|
||||||
- admin-panel/tsconfig.json
|
- admin-panel/tsconfig.json
|
||||||
- tailwindcss
|
- tailwindcss
|
||||||
- typescript-eslint
|
|
||||||
- next.config.ts
|
- next.config.ts
|
||||||
- Shabnam Font README
|
- Shabnam Font README
|
||||||
- AGENTS.md
|
- AGENTS.md
|
||||||
@ -296,6 +294,8 @@
|
|||||||
- typescript
|
- typescript
|
||||||
- typescript-eslint
|
- typescript-eslint
|
||||||
- @nestjs/schematics
|
- @nestjs/schematics
|
||||||
|
- eslint-config-prettier
|
||||||
|
- jest
|
||||||
- @types/passport-jwt
|
- @types/passport-jwt
|
||||||
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
||||||
- typescript
|
- typescript
|
||||||
@ -330,8 +330,8 @@
|
|||||||
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||||
|
|
||||||
## Import Cycles
|
## Import Cycles
|
||||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
|
||||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||||
|
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
||||||
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
||||||
|
|
||||||
## Communities (309 total, 97 thin omitted)
|
## Communities (309 total, 97 thin omitted)
|
||||||
@ -374,7 +374,7 @@ Nodes (27): SmsEventDefinition, SmsService, Injectable, SmsLogQueryDto, ApiPrope
|
|||||||
|
|
||||||
### Community 9 - "devDependencies"
|
### Community 9 - "devDependencies"
|
||||||
Cohesion: 0.08
|
Cohesion: 0.08
|
||||||
Nodes (25): devDependencies, eslint, eslint-config-prettier, @eslint/eslintrc, jest, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
Nodes (25): devDependencies, eslint, @eslint/eslintrc, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
||||||
|
|
||||||
### Community 10 - "reviews.controller.ts"
|
### Community 10 - "reviews.controller.ts"
|
||||||
Cohesion: 0.07
|
Cohesion: 0.07
|
||||||
@ -413,7 +413,7 @@ Cohesion: 0.15
|
|||||||
Nodes (9): JwtAuthGuard, Injectable, B2BService, B2BWholesaleOrderItem, Injectable, ROLES_KEY, RequestWithUser, RolesGuard (+1 more)
|
Nodes (9): JwtAuthGuard, Injectable, B2BService, B2BWholesaleOrderItem, Injectable, ROLES_KEY, RequestWithUser, RolesGuard (+1 more)
|
||||||
|
|
||||||
### Community 19 - "admin.controller.ts"
|
### Community 19 - "admin.controller.ts"
|
||||||
Cohesion: 0.29
|
Cohesion: 0.35
|
||||||
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
||||||
|
|
||||||
### Community 20 - "CreateVideoDto"
|
### Community 20 - "CreateVideoDto"
|
||||||
@ -597,12 +597,12 @@ Cohesion: 0.10
|
|||||||
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
||||||
|
|
||||||
### Community 65 - "admin.service.ts"
|
### Community 65 - "admin.service.ts"
|
||||||
Cohesion: 0.22
|
Cohesion: 0.33
|
||||||
Nodes (8): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode, CANONICAL_ALIASES
|
Nodes (8): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode, CANONICAL_ALIASES
|
||||||
|
|
||||||
### Community 66 - "AdminQueryDto"
|
### Community 66 - "AdminController"
|
||||||
Cohesion: 0.18
|
Cohesion: 0.10
|
||||||
Nodes (8): ApiQuery, Get, Query, AdminProductQueryDto, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
Nodes (13): AdminController, ApiBearerAuth, ApiQuery, ApiTags, Controller, Get, Query, UseGuards (+5 more)
|
||||||
|
|
||||||
### Community 67 - "ConfirmModal.tsx"
|
### Community 67 - "ConfirmModal.tsx"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.10
|
||||||
@ -825,12 +825,12 @@ Cohesion: 0.20
|
|||||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||||
|
|
||||||
### Community 122 - "AdminService"
|
### Community 122 - "AdminService"
|
||||||
Cohesion: 0.10
|
Cohesion: 0.12
|
||||||
Nodes (11): AdminController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Delete, Param, Put (+3 more)
|
Nodes (5): Delete, Param, Put, AdminService, Injectable
|
||||||
|
|
||||||
### Community 123 - "Body"
|
### Community 123 - "ApiOperation"
|
||||||
Cohesion: 0.20
|
Cohesion: 0.15
|
||||||
Nodes (3): Body, Post, CouponInput
|
Nodes (4): ApiOperation, Body, Post, CouponInput
|
||||||
|
|
||||||
### Community 124 - "Repository Map"
|
### Community 124 - "Repository Map"
|
||||||
Cohesion: 0.20
|
Cohesion: 0.20
|
||||||
|
|||||||
2
graphify-out/cache/stat-index.json
vendored
2
graphify-out/cache/stat-index.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user