Compare commits
2 Commits
7c94ff5d6b
...
d3fc197224
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3fc197224 | ||
|
|
e7ded849f6 |
@ -9,6 +9,7 @@ import { productService } from "../lib/services/productService";
|
||||
import SafeImage from "./SafeImage";
|
||||
import { useUserStore } from "../lib/store/userStore";
|
||||
import { useSettingsStore } from "../lib/store/settingsStore";
|
||||
import { useCatalogMode } from "../lib/useCatalogMode";
|
||||
import AuthModal from "./AuthModal";
|
||||
import DeleteConfirmModal from "./DeleteConfirmModal";
|
||||
import { toast } from "sonner";
|
||||
@ -21,6 +22,7 @@ export default function CartDrawer({ isOpen, onClose, onCheckout, onShopNavigate
|
||||
}) {
|
||||
const { items, updateQuantity, removeItem, isSubscribed, toggleSubscription, getTotal, getSubtotal, getDiscount, coupon, applyCoupon, addItem } = useCartStore();
|
||||
const { isLoggedIn } = useUserStore();
|
||||
const { showPrices } = useCatalogMode();
|
||||
const isRefillEnabled = useSettingsStore((state) => state.getText('REFILL_SUBSCRIPTION_ENABLED', 'false') === 'true');
|
||||
const refillPercent = useSettingsStore((state) => state.getText('REFILL_REWARD_PERCENT', '5'));
|
||||
const [isAuthModalOpen, setIsAuthModalOpen] = useState(false);
|
||||
@ -168,10 +170,12 @@ export default function CartDrawer({ isOpen, onClose, onCheckout, onShopNavigate
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-left flex flex-col justify-between items-end">
|
||||
<span className="text-xs font-black text-medical-gray-900 font-vazir">{toPersian((item.product.priceValue * item.quantity).toLocaleString())}</span>
|
||||
<span className="text-[10px] text-medical-gray-400 font-bold">تومان</span>
|
||||
</div>
|
||||
{showPrices && (
|
||||
<div className="text-left flex flex-col justify-between items-end">
|
||||
<span className="text-xs font-black text-medical-gray-900 font-vazir">{toPersian((item.product.priceValue * item.quantity).toLocaleString())}</span>
|
||||
<span className="text-[10px] text-medical-gray-400 font-bold">تومان</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Delete Confirmation Overlay */}
|
||||
<AnimatePresence>
|
||||
@ -248,48 +252,50 @@ export default function CartDrawer({ isOpen, onClose, onCheckout, onShopNavigate
|
||||
{/* Footer */}
|
||||
{items.length > 0 && (
|
||||
<div className="p-6 bg-medical-gray-50 border-t border-medical-gray-200 space-y-6">
|
||||
{/* Discount Code */}
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-center gap-2 text-[10px] font-black text-medical-gray-400 uppercase tracking-widest px-2">
|
||||
<Ticket className="w-3 h-3" />
|
||||
کد تخفیف اختصاصی
|
||||
</div>
|
||||
<div className="relative">
|
||||
<input
|
||||
type="text"
|
||||
placeholder="CANINO2024"
|
||||
value={couponCode}
|
||||
onChange={(e) => setCouponCode(e.target.value)}
|
||||
className={`w-full bg-white border ${couponStatus === 'error' ? 'border-red-300' : 'border-medical-gray-200'} rounded-2xl py-3 px-4 pr-10 text-sm font-bold focus:outline-none focus:ring-2 focus:ring-canina-blue/20 transition-all`}
|
||||
/>
|
||||
<button
|
||||
onClick={handleApplyCoupon}
|
||||
className={`absolute left-2 top-1/2 -translate-y-1/2 px-4 py-1.5 rounded-xl text-[10px] font-black transition-all ${couponStatus === 'success' ? 'bg-green-600 text-white' : 'bg-medical-gray-900 text-white hover:bg-canina-blue'}`}
|
||||
>
|
||||
{couponStatus === 'success' ? <CheckCircle2 className="w-3 h-3" /> : 'اعمال'}
|
||||
</button>
|
||||
</div>
|
||||
{coupon && (
|
||||
<div className="flex items-center justify-between p-3 bg-green-50 border border-green-100 rounded-2xl">
|
||||
<div className="flex items-center gap-2 text-[10px] font-bold text-green-600">
|
||||
<div className="w-1.5 h-1.5 rounded-full bg-green-600 animate-pulse" />
|
||||
کد {coupon.code} ({(coupon.discount < 1 ? coupon.discount * 100 : coupon.discount)} {coupon.discount < 1 ? '٪' : 'تومان'}) اعمال شد
|
||||
</div>
|
||||
{/* Discount Code (Only when prices are active) */}
|
||||
{showPrices && (
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-center gap-2 text-[10px] font-black text-medical-gray-400 uppercase tracking-widest px-2">
|
||||
<Ticket className="w-3 h-3" />
|
||||
کد تخفیف اختصاصی
|
||||
</div>
|
||||
<div className="relative">
|
||||
<input
|
||||
type="text"
|
||||
placeholder="CANINO2024"
|
||||
value={couponCode}
|
||||
onChange={(e) => setCouponCode(e.target.value)}
|
||||
className={`w-full bg-white border ${couponStatus === 'error' ? 'border-red-300' : 'border-medical-gray-200'} rounded-2xl py-3 px-4 pr-10 text-sm font-bold focus:outline-none focus:ring-2 focus:ring-canina-blue/20 transition-all`}
|
||||
/>
|
||||
<button
|
||||
onClick={() => {
|
||||
useCartStore.getState().removeCoupon();
|
||||
setCouponCode("");
|
||||
}}
|
||||
className="p-1 hover:bg-red-50 hover:text-red-500 text-medical-gray-400 rounded-lg transition-all"
|
||||
onClick={handleApplyCoupon}
|
||||
className={`absolute left-2 top-1/2 -translate-y-1/2 px-4 py-1.5 rounded-xl text-[10px] font-black transition-all ${couponStatus === 'success' ? 'bg-green-600 text-white' : 'bg-medical-gray-900 text-white hover:bg-canina-blue'}`}
|
||||
>
|
||||
<Trash2 className="w-3.5 h-3.5" />
|
||||
{couponStatus === 'success' ? <CheckCircle2 className="w-3 h-3" /> : 'اعمال'}
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{coupon && (
|
||||
<div className="flex items-center justify-between p-3 bg-green-50 border border-green-100 rounded-2xl">
|
||||
<div className="flex items-center gap-2 text-[10px] font-bold text-green-600">
|
||||
<div className="w-1.5 h-1.5 rounded-full bg-green-600 animate-pulse" />
|
||||
کد {coupon.code} ({(coupon.discount < 1 ? coupon.discount * 100 : coupon.discount)} {coupon.discount < 1 ? '٪' : 'تومان'}) اعمال شد
|
||||
</div>
|
||||
<button
|
||||
onClick={() => {
|
||||
useCartStore.getState().removeCoupon();
|
||||
setCouponCode("");
|
||||
}}
|
||||
className="p-1 hover:bg-red-50 hover:text-red-500 text-medical-gray-400 rounded-lg transition-all"
|
||||
>
|
||||
<Trash2 className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Subscription Toggle */}
|
||||
{isRefillEnabled && (
|
||||
{showPrices && isRefillEnabled && (
|
||||
<div
|
||||
onClick={() => {
|
||||
if (!isLoggedIn && !isSubscribed) {
|
||||
@ -336,25 +342,34 @@ export default function CartDrawer({ isOpen, onClose, onCheckout, onShopNavigate
|
||||
|
||||
<AuthModal isOpen={isAuthModalOpen} onClose={() => setIsAuthModalOpen(false)} />
|
||||
|
||||
<div className="space-y-2">
|
||||
<div className="flex items-center justify-between text-sm px-2">
|
||||
<span className="text-medical-gray-500 font-bold">مجموع اقلام</span>
|
||||
<span className="text-medical-gray-900 font-black font-vazir">{toPersian(getSubtotal().toLocaleString())} تومان</span>
|
||||
</div>
|
||||
{getDiscount() > 0 && (
|
||||
<div className="flex items-center justify-between text-sm text-green-600 px-2 font-black">
|
||||
<span className="font-bold">مجموع تخفیفها</span>
|
||||
<span className="font-black font-vazir">-{toPersian(getDiscount().toLocaleString())} تومان</span>
|
||||
{showPrices ? (
|
||||
<div className="space-y-2">
|
||||
<div className="flex items-center justify-between text-sm px-2">
|
||||
<span className="text-medical-gray-500 font-bold">مجموع اقلام</span>
|
||||
<span className="text-medical-gray-900 font-black font-vazir">{toPersian(getSubtotal().toLocaleString())} تومان</span>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex items-center justify-between border-t border-medical-gray-200 pt-4 px-2">
|
||||
<span className="text-lg font-black text-medical-gray-900 italic">مجموع قابل پرداخت</span>
|
||||
<div className="text-left">
|
||||
<p data-testid="cart-total-price" className="text-2xl font-black text-canina-blue tracking-tighter leading-none font-vazir">{toPersian(getTotal().toLocaleString())}</p>
|
||||
<p className="text-[10px] text-medical-gray-400 font-bold">تومان</p>
|
||||
{getDiscount() > 0 && (
|
||||
<div className="flex items-center justify-between text-sm text-green-600 px-2 font-black">
|
||||
<span className="font-bold">مجموع تخفیفها</span>
|
||||
<span className="font-black font-vazir">-{toPersian(getDiscount().toLocaleString())} تومان</span>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex items-center justify-between border-t border-medical-gray-200 pt-4 px-2">
|
||||
<span className="text-lg font-black text-medical-gray-900 italic">مجموع قابل پرداخت</span>
|
||||
<div className="text-left">
|
||||
<p data-testid="cart-total-price" className="text-2xl font-black text-canina-blue tracking-tighter leading-none font-vazir">{toPersian(getTotal().toLocaleString())}</p>
|
||||
<p className="text-[10px] text-medical-gray-400 font-bold">تومان</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="bg-white border border-medical-gray-200 rounded-2xl p-4 flex items-center justify-between">
|
||||
<span className="text-xs font-black text-medical-gray-700 font-vazir">تعداد کل اقلام انتخابی</span>
|
||||
<span className="text-sm font-black text-canina-blue font-vazir">
|
||||
{toPersian(items.reduce((acc, curr) => acc + curr.quantity, 0))} قلم کالا
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<button
|
||||
onClick={onCheckout}
|
||||
|
||||
@ -16,6 +16,18 @@ vi.mock('../../lib/services/productService', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock('../../lib/useCatalogMode', () => ({
|
||||
useCatalogMode: vi.fn(() => ({
|
||||
isCatalogOnly: false,
|
||||
showPrices: true,
|
||||
allowCart: true,
|
||||
allowCheckout: true,
|
||||
showPreorderBtn: false,
|
||||
})),
|
||||
}));
|
||||
|
||||
import { useCatalogMode } from '../../lib/useCatalogMode';
|
||||
|
||||
const mockProduct = {
|
||||
id: 'canhydrox-gag',
|
||||
name: 'Canhydrox GAG',
|
||||
@ -29,6 +41,18 @@ describe('CartDrawer', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
vi.mocked(productService.getProducts).mockResolvedValue({ data: [], total: 0 });
|
||||
vi.mocked(useCatalogMode).mockReturnValue({
|
||||
isCatalogOnly: false,
|
||||
showPrices: true,
|
||||
allowCart: true,
|
||||
allowCheckout: true,
|
||||
showPreorderBtn: false,
|
||||
showOrders: true,
|
||||
showWallet: true,
|
||||
showCharity: true,
|
||||
orderDisabledTitle: '',
|
||||
orderDisabledMessage: '',
|
||||
});
|
||||
});
|
||||
|
||||
it('renders empty cart state when no items in cart', () => {
|
||||
@ -99,4 +123,41 @@ describe('CartDrawer', () => {
|
||||
fireEvent.click(minusBtn);
|
||||
expect(mockUpdateQuantity).toHaveBeenCalledWith('canhydrox-gag', 1);
|
||||
});
|
||||
|
||||
it('hides prices, total and coupon code when showPrices is false in catalog mode', () => {
|
||||
vi.mocked(useCatalogMode).mockReturnValue({
|
||||
isCatalogOnly: true,
|
||||
showPrices: false,
|
||||
allowCart: true,
|
||||
allowCheckout: true,
|
||||
showPreorderBtn: false,
|
||||
showOrders: false,
|
||||
showWallet: false,
|
||||
showCharity: false,
|
||||
orderDisabledTitle: '',
|
||||
orderDisabledMessage: '',
|
||||
});
|
||||
|
||||
vi.mocked(useCartStore).mockReturnValue({
|
||||
items: [{ product: mockProduct, quantity: 2 }],
|
||||
updateQuantity: vi.fn(),
|
||||
removeItem: vi.fn(),
|
||||
isSubscribed: false,
|
||||
toggleSubscription: vi.fn(),
|
||||
getTotal: () => 2000,
|
||||
getSubtotal: () => 2000,
|
||||
getDiscount: () => 0,
|
||||
coupon: null,
|
||||
applyCoupon: vi.fn(),
|
||||
addItem: vi.fn(),
|
||||
} as unknown as ReturnType<typeof useCartStore>);
|
||||
|
||||
render(<CartDrawer isOpen={true} onClose={vi.fn()} onCheckout={vi.fn()} />);
|
||||
|
||||
expect(screen.getByText('Canhydrox GAG')).toBeInTheDocument();
|
||||
expect(screen.queryByText('کد تخفیف اختصاصی')).not.toBeInTheDocument();
|
||||
expect(screen.queryByText('مجموع قابل پرداخت')).not.toBeInTheDocument();
|
||||
expect(screen.getByText('تعداد کل اقلام انتخابی')).toBeInTheDocument();
|
||||
expect(screen.getByText('۲ قلم کالا')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
"5": "CmsController",
|
||||
"6": "tickets.controller.ts",
|
||||
"7": "SmsSettingsPage.tsx",
|
||||
"8": "SmsService",
|
||||
"8": "SettingsService",
|
||||
"9": "devDependencies",
|
||||
"10": "CreateReviewDto",
|
||||
"11": "UsersService",
|
||||
@ -32,7 +32,7 @@
|
||||
"30": "DEVOPS-001",
|
||||
"31": "DOC-001",
|
||||
"32": "adminRoutes.tsx",
|
||||
"33": "WholesaleService",
|
||||
"33": "WholesaleApplyDto",
|
||||
"34": "B2BService",
|
||||
"35": "ContactService",
|
||||
"36": "FaqService",
|
||||
@ -45,7 +45,7 @@
|
||||
"43": "BannersService",
|
||||
"44": "TestimonialsService",
|
||||
"45": "What You Must Do When Invoked",
|
||||
"46": "WholesaleApplyDto",
|
||||
"46": "sms.service.ts",
|
||||
"47": "IngredientsService",
|
||||
"48": "Button.tsx",
|
||||
"49": "devDependencies",
|
||||
@ -55,9 +55,9 @@
|
||||
"53": "SmartAdvisorService",
|
||||
"54": "Modal.tsx",
|
||||
"55": "UITexts.tsx",
|
||||
"56": "PrescriptionsManager.tsx",
|
||||
"56": "Orders.tsx",
|
||||
"57": "Role & Core Objective",
|
||||
"58": "MetricsController",
|
||||
"58": "ConfirmModal.tsx",
|
||||
"59": "compilerOptions",
|
||||
"60": "admin.controller.ts",
|
||||
"61": "ProductPage.tsx",
|
||||
@ -66,7 +66,7 @@
|
||||
"64": "compilerOptions",
|
||||
"65": "admin.service.ts",
|
||||
"66": "AdminController",
|
||||
"67": "OrdersController",
|
||||
"67": "SmsService",
|
||||
"68": "components/Skeleton.tsx",
|
||||
"69": "Required Review Group Closures",
|
||||
"70": "compilerOptions",
|
||||
@ -75,7 +75,7 @@
|
||||
"73": "Operational Rules & Boundaries",
|
||||
"74": "WikiController",
|
||||
"75": "PetsController",
|
||||
"76": "RevalidationService",
|
||||
"76": "ProductsService",
|
||||
"77": "seo.module.ts",
|
||||
"78": "rss.xml/route.ts",
|
||||
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
||||
@ -87,11 +87,11 @@
|
||||
"85": "app.e2e-spec.js",
|
||||
"86": "zibal.service.ts",
|
||||
"87": "dependencies",
|
||||
"88": "CreateEBankCheckoutDto",
|
||||
"88": "payment.controller.ts",
|
||||
"89": "seed-products.ts",
|
||||
"90": "20260526145407_init/migration.sql",
|
||||
"91": "Reconciled Audit Roles & Assignments",
|
||||
"92": ".retryPayment",
|
||||
"92": "OrdersService",
|
||||
"93": "auth.controller.ts",
|
||||
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
|
||||
"95": "wiki/[slug]/page.tsx",
|
||||
@ -105,8 +105,8 @@
|
||||
"103": "Comprehensive Change Log",
|
||||
"104": "Products.tsx",
|
||||
"105": "Operational Rules & Boundaries",
|
||||
"106": "InitiatePaymentDto",
|
||||
"107": "PaginationDto",
|
||||
"106": "PaymentService",
|
||||
"107": "BlogsService",
|
||||
"108": "PrismaService",
|
||||
"109": "1. Summary of Integrity Repairs Performed",
|
||||
"110": "Operational Rules & Boundaries",
|
||||
@ -114,7 +114,7 @@
|
||||
"112": "Operational Rules & Boundaries",
|
||||
"113": "lib/services/api.ts",
|
||||
"114": "AppService",
|
||||
"115": "MediaSelector.tsx",
|
||||
"115": "Media.tsx",
|
||||
"116": "Vazirmatn Changelog",
|
||||
"117": "Vazirmatn Font فونت وزیرمتن",
|
||||
"118": "Operational Rules & Boundaries",
|
||||
@ -127,7 +127,7 @@
|
||||
"125": "validate_integrity.js",
|
||||
"126": "admin-panel/package.json",
|
||||
"127": "Sahel-Font",
|
||||
"128": "HomeController",
|
||||
"128": "auth.module.ts",
|
||||
"129": "WikiController",
|
||||
"130": "Sahel-Font",
|
||||
"131": "Role & Core Objective",
|
||||
@ -144,13 +144,13 @@
|
||||
"142": "start-dev.js",
|
||||
"143": "generate-openapi.js",
|
||||
"144": "SafeImage.tsx",
|
||||
"145": "Orders.tsx",
|
||||
"145": "PaginationDto",
|
||||
"146": "System Discovery",
|
||||
"147": "torob.controller.ts",
|
||||
"148": "ProductDto",
|
||||
"149": "CreateOrderDto",
|
||||
"149": "PetsController",
|
||||
"150": "Product Requirement Document (PRD)",
|
||||
"151": "OrdersService",
|
||||
"151": "SmsLogQueryDto",
|
||||
"152": "@eslint/js",
|
||||
"153": "exclude",
|
||||
"154": "Baseline Command Plan & Reconciled Command History",
|
||||
@ -178,7 +178,7 @@
|
||||
"176": "uploads/[...path]/route.ts",
|
||||
"177": "eslint-config-prettier",
|
||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||
"179": "CreateApiKeyDto",
|
||||
"179": "eslint-config-next",
|
||||
"180": "API Contract Specification",
|
||||
"181": "⚙️ Backend Technical Review (05_dev_backend)",
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
@ -203,7 +203,7 @@
|
||||
"201": "deploy.sh",
|
||||
"202": "🔒 Security & Performance Review (09_devops_security)",
|
||||
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
|
||||
"204": "reviews.service.ts",
|
||||
"204": "RevalidationService",
|
||||
"205": "prisma/scientificTerms.ts",
|
||||
"206": "seed-blogs.ts",
|
||||
"207": "seed-custom.ts",
|
||||
@ -307,7 +307,6 @@
|
||||
"315": "typescript",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@tailwindcss/postcss",
|
||||
"321": "orders/page.tsx",
|
||||
"322": "pets/page.tsx",
|
||||
"325": "@types/react-dom",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -3,13 +3,13 @@
|
||||
"1": "app.module.ts",
|
||||
"2": "ApiKeysService",
|
||||
"3": "productService.ts",
|
||||
"4": "RevalidationService",
|
||||
"4": "HomeClient.tsx",
|
||||
"5": "CmsController",
|
||||
"6": "tickets.controller.ts",
|
||||
"7": "SmsSettingsPage.tsx",
|
||||
"8": "SmsService",
|
||||
"9": "devDependencies",
|
||||
"10": "reviews.controller.ts",
|
||||
"10": "CreateReviewDto",
|
||||
"11": "UsersService",
|
||||
"12": "index.ts",
|
||||
"13": "app-audit-verification.e2e-spec.js",
|
||||
@ -18,9 +18,9 @@
|
||||
"16": "DoctorQueryDto",
|
||||
"17": "schema.ts",
|
||||
"18": "JwtAuthGuard",
|
||||
"19": "admin.controller.ts",
|
||||
"19": "BulkPriceAdjustmentDto",
|
||||
"20": "CreateVideoDto",
|
||||
"21": "ClientLayout.tsx",
|
||||
"21": "useSettingsStore",
|
||||
"22": "AdminService",
|
||||
"23": "MenuService",
|
||||
"24": "BE-001",
|
||||
@ -59,14 +59,14 @@
|
||||
"57": "Role & Core Objective",
|
||||
"58": "MetricsController",
|
||||
"59": "compilerOptions",
|
||||
"60": "CreateUserDto",
|
||||
"60": "admin.controller.ts",
|
||||
"61": "ProductPage.tsx",
|
||||
"62": "admin.module.ts",
|
||||
"63": "dependencies",
|
||||
"64": "compilerOptions",
|
||||
"65": "admin.service.ts",
|
||||
"66": "AdminController",
|
||||
"67": "OrderService",
|
||||
"67": "OrdersController",
|
||||
"68": "components/Skeleton.tsx",
|
||||
"69": "Required Review Group Closures",
|
||||
"70": "compilerOptions",
|
||||
@ -75,7 +75,7 @@
|
||||
"73": "Operational Rules & Boundaries",
|
||||
"74": "WikiController",
|
||||
"75": "PetsController",
|
||||
"76": "ProductsService",
|
||||
"76": "RevalidationService",
|
||||
"77": "seo.module.ts",
|
||||
"78": "rss.xml/route.ts",
|
||||
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
||||
@ -89,12 +89,12 @@
|
||||
"87": "dependencies",
|
||||
"88": "CreateEBankCheckoutDto",
|
||||
"89": "seed-products.ts",
|
||||
"90": "PetProfile.tsx",
|
||||
"90": "20260526145407_init/migration.sql",
|
||||
"91": "Reconciled Audit Roles & Assignments",
|
||||
"92": "OrdersService",
|
||||
"92": ".retryPayment",
|
||||
"93": "auth.controller.ts",
|
||||
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
|
||||
"95": "getSeoConfig",
|
||||
"95": "wiki/[slug]/page.tsx",
|
||||
"96": "compilerOptions",
|
||||
"97": "AdminTransactionFilterDto",
|
||||
"98": "scripts",
|
||||
@ -112,7 +112,7 @@
|
||||
"110": "Operational Rules & Boundaries",
|
||||
"111": "Operational Rules & Boundaries",
|
||||
"112": "Operational Rules & Boundaries",
|
||||
"113": "useSettingsStore",
|
||||
"113": "lib/services/api.ts",
|
||||
"114": "AppService",
|
||||
"115": "MediaSelector.tsx",
|
||||
"116": "Vazirmatn Changelog",
|
||||
@ -121,14 +121,14 @@
|
||||
"119": "compilerOptions",
|
||||
"120": "compilerOptions",
|
||||
"121": "backend/README.md",
|
||||
"122": "ApiOperation",
|
||||
"122": "Body",
|
||||
"123": "auth.service.ts",
|
||||
"124": "Repository Map",
|
||||
"125": "validate_integrity.js",
|
||||
"126": "admin-panel/package.json",
|
||||
"127": "Sahel-Font",
|
||||
"128": "HomeController",
|
||||
"129": "PaymentService",
|
||||
"129": "WikiController",
|
||||
"130": "Sahel-Font",
|
||||
"131": "Role & Core Objective",
|
||||
"132": "orchestrate.py",
|
||||
@ -143,14 +143,14 @@
|
||||
"141": "application/package.json",
|
||||
"142": "start-dev.js",
|
||||
"143": "generate-openapi.js",
|
||||
"144": "getMediaUrl",
|
||||
"144": "SafeImage.tsx",
|
||||
"145": "Orders.tsx",
|
||||
"146": "System Discovery",
|
||||
"147": "torob.controller.ts",
|
||||
"148": "ProductDto",
|
||||
"149": "catalog/page.tsx",
|
||||
"149": "CreateOrderDto",
|
||||
"150": "Product Requirement Document (PRD)",
|
||||
"151": "@nestjs/jwt",
|
||||
"151": "OrdersService",
|
||||
"152": "@eslint/js",
|
||||
"153": "exclude",
|
||||
"154": "Baseline Command Plan & Reconciled Command History",
|
||||
@ -178,13 +178,13 @@
|
||||
"176": "uploads/[...path]/route.ts",
|
||||
"177": "eslint-config-prettier",
|
||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||
"179": "eslint-config-next",
|
||||
"179": "CreateApiKeyDto",
|
||||
"180": "API Contract Specification",
|
||||
"181": "⚙️ Backend Technical Review (05_dev_backend)",
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"184": "trust-seals/page.tsx",
|
||||
"185": "wiki/[slug]/page.tsx",
|
||||
"185": "CartDrawer.tsx",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -203,7 +203,7 @@
|
||||
"201": "deploy.sh",
|
||||
"202": "🔒 Security & Performance Review (09_devops_security)",
|
||||
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
|
||||
"204": "class-transformer",
|
||||
"204": "reviews.service.ts",
|
||||
"205": "prisma/scientificTerms.ts",
|
||||
"206": "seed-blogs.ts",
|
||||
"207": "seed-custom.ts",
|
||||
@ -219,20 +219,20 @@
|
||||
"217": "sync_honest_manifest.js",
|
||||
"218": "sync_manifest.js",
|
||||
"219": "FormField.tsx",
|
||||
"220": "globals",
|
||||
"220": "AdminQueryDto",
|
||||
"221": "Textarea.tsx",
|
||||
"222": "admin-panel/tsconfig.json",
|
||||
"223": "tailwindcss",
|
||||
"224": "typescript-eslint",
|
||||
"224": "wiki/page.tsx",
|
||||
"225": "next.config.ts",
|
||||
"226": "Shabnam Font README",
|
||||
"227": "AGENTS.md",
|
||||
"228": "rules/graphify.md",
|
||||
"229": ".agents/workflows/graphify.md",
|
||||
"230": "instructions.md",
|
||||
"231": "helmet",
|
||||
"232": "js-yaml",
|
||||
"233": "@nestjs/core",
|
||||
"231": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
|
||||
"232": "@types/node",
|
||||
"233": "typescript",
|
||||
"234": "source-map-support",
|
||||
"235": "ts-loader",
|
||||
"236": "ts-node",
|
||||
@ -264,7 +264,7 @@
|
||||
"262": "User Logout API",
|
||||
"263": "generate-openapi.d.ts",
|
||||
"264": "@types/compression",
|
||||
"265": "@nestjs/cli",
|
||||
"265": "tailwindcss",
|
||||
"266": "@types/express",
|
||||
"267": "@types/jest",
|
||||
"268": "@types/multer",
|
||||
@ -293,35 +293,23 @@
|
||||
"292": "Production Docker Compose",
|
||||
"293": "Staging Docker Compose",
|
||||
"294": "ZibalService",
|
||||
"295": "@eslint/eslintrc",
|
||||
"296": "@nestjs/throttler",
|
||||
"297": "ZibalEBankService",
|
||||
"298": ".initiateOrderPayment",
|
||||
"299": "@tailwindcss/postcss",
|
||||
"300": "typescript",
|
||||
"301": "passport",
|
||||
"302": "typescript-eslint",
|
||||
"303": "@nestjs/schematics",
|
||||
"304": "reflect-metadata",
|
||||
"305": "swagger-ui-express",
|
||||
"306": "eslint-plugin-react-hooks",
|
||||
"309": "axios",
|
||||
"310": "tailwindcss",
|
||||
"311": "jest",
|
||||
"312": "@types/passport-jwt",
|
||||
"313": "@nestjs/swagger",
|
||||
"315": "typescript",
|
||||
"316": "@nestjs/testing",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@tailwindcss/postcss",
|
||||
"320": "prettier",
|
||||
"321": "orders/page.tsx",
|
||||
"322": "pets/page.tsx",
|
||||
"323": "ts-jest",
|
||||
"324": "@types/js-yaml",
|
||||
"325": "@types/react-dom",
|
||||
"326": "@types/supertest",
|
||||
"327": "eslint-plugin-react-refresh",
|
||||
"331": "eslint-plugin-prettier"
|
||||
"327": "eslint-plugin-react-refresh"
|
||||
}
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-09-13)
|
||||
|
||||
## Corpus Check
|
||||
- 609 files · ~1,125,351 words
|
||||
- 609 files · ~1,125,316 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4286 nodes · 7915 edges · 325 communities (210 shown, 115 thin omitted)
|
||||
- 4304 nodes · 7945 edges · 313 communities (217 shown, 96 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 303 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `3261a834`
|
||||
- Built from commit: `8e4ee984`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -19,13 +19,13 @@
|
||||
- app.module.ts
|
||||
- ApiKeysService
|
||||
- productService.ts
|
||||
- RevalidationService
|
||||
- HomeClient.tsx
|
||||
- CmsController
|
||||
- tickets.controller.ts
|
||||
- SmsSettingsPage.tsx
|
||||
- SmsService
|
||||
- devDependencies
|
||||
- reviews.controller.ts
|
||||
- CreateReviewDto
|
||||
- UsersService
|
||||
- index.ts
|
||||
- app-audit-verification.e2e-spec.js
|
||||
@ -34,9 +34,9 @@
|
||||
- DoctorQueryDto
|
||||
- schema.ts
|
||||
- JwtAuthGuard
|
||||
- admin.controller.ts
|
||||
- BulkPriceAdjustmentDto
|
||||
- CreateVideoDto
|
||||
- ClientLayout.tsx
|
||||
- useSettingsStore
|
||||
- AdminService
|
||||
- MenuService
|
||||
- BE-001
|
||||
@ -75,14 +75,14 @@
|
||||
- Role & Core Objective
|
||||
- MetricsController
|
||||
- compilerOptions
|
||||
- CreateUserDto
|
||||
- admin.controller.ts
|
||||
- ProductPage.tsx
|
||||
- admin.module.ts
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- admin.service.ts
|
||||
- AdminController
|
||||
- OrderService
|
||||
- OrdersController
|
||||
- components/Skeleton.tsx
|
||||
- Required Review Group Closures
|
||||
- compilerOptions
|
||||
@ -91,7 +91,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- PetsController
|
||||
- ProductsService
|
||||
- RevalidationService
|
||||
- seo.module.ts
|
||||
- rss.xml/route.ts
|
||||
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
||||
@ -105,12 +105,12 @@
|
||||
- dependencies
|
||||
- CreateEBankCheckoutDto
|
||||
- seed-products.ts
|
||||
- PetProfile.tsx
|
||||
- 20260526145407_init/migration.sql
|
||||
- Reconciled Audit Roles & Assignments
|
||||
- OrdersService
|
||||
- .retryPayment
|
||||
- auth.controller.ts
|
||||
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
|
||||
- getSeoConfig
|
||||
- wiki/[slug]/page.tsx
|
||||
- compilerOptions
|
||||
- AdminTransactionFilterDto
|
||||
- scripts
|
||||
@ -128,7 +128,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- useSettingsStore
|
||||
- lib/services/api.ts
|
||||
- AppService
|
||||
- MediaSelector.tsx
|
||||
- Vazirmatn Changelog
|
||||
@ -137,14 +137,14 @@
|
||||
- compilerOptions
|
||||
- compilerOptions
|
||||
- backend/README.md
|
||||
- ApiOperation
|
||||
- Body
|
||||
- auth.service.ts
|
||||
- Repository Map
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
- Sahel-Font
|
||||
- HomeController
|
||||
- PaymentService
|
||||
- WikiController
|
||||
- Sahel-Font
|
||||
- Role & Core Objective
|
||||
- orchestrate.py
|
||||
@ -159,14 +159,14 @@
|
||||
- application/package.json
|
||||
- start-dev.js
|
||||
- generate-openapi.js
|
||||
- getMediaUrl
|
||||
- SafeImage.tsx
|
||||
- Orders.tsx
|
||||
- System Discovery
|
||||
- torob.controller.ts
|
||||
- ProductDto
|
||||
- catalog/page.tsx
|
||||
- CreateOrderDto
|
||||
- Product Requirement Document (PRD)
|
||||
- @nestjs/jwt
|
||||
- OrdersService
|
||||
- @eslint/js
|
||||
- exclude
|
||||
- Baseline Command Plan & Reconciled Command History
|
||||
@ -193,13 +193,13 @@
|
||||
- uploads/[...path]/route.ts
|
||||
- eslint-config-prettier
|
||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||
- eslint-config-next
|
||||
- CreateApiKeyDto
|
||||
- API Contract Specification
|
||||
- ⚙️ Backend Technical Review (05_dev_backend)
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- trust-seals/page.tsx
|
||||
- wiki/[slug]/page.tsx
|
||||
- CartDrawer.tsx
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -218,7 +218,7 @@
|
||||
- deploy.sh
|
||||
- 🔒 Security & Performance Review (09_devops_security)
|
||||
- 👁️ UX & Persona Interface Review (08_visual_qa)
|
||||
- class-transformer
|
||||
- reviews.service.ts
|
||||
- prisma/scientificTerms.ts
|
||||
- seed-blogs.ts
|
||||
- seed-custom.ts
|
||||
@ -234,20 +234,20 @@
|
||||
- sync_honest_manifest.js
|
||||
- sync_manifest.js
|
||||
- FormField.tsx
|
||||
- globals
|
||||
- AdminQueryDto
|
||||
- Textarea.tsx
|
||||
- admin-panel/tsconfig.json
|
||||
- tailwindcss
|
||||
- typescript-eslint
|
||||
- wiki/page.tsx
|
||||
- next.config.ts
|
||||
- Shabnam Font README
|
||||
- AGENTS.md
|
||||
- rules/graphify.md
|
||||
- .agents/workflows/graphify.md
|
||||
- instructions.md
|
||||
- helmet
|
||||
- js-yaml
|
||||
- @nestjs/core
|
||||
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
||||
- @types/node
|
||||
- typescript
|
||||
- source-map-support
|
||||
- ts-loader
|
||||
- ts-node
|
||||
@ -275,7 +275,7 @@
|
||||
- User Login API
|
||||
- User Logout API
|
||||
- @types/compression
|
||||
- @nestjs/cli
|
||||
- tailwindcss
|
||||
- @types/express
|
||||
- @types/jest
|
||||
- @types/multer
|
||||
@ -293,33 +293,21 @@
|
||||
- Production Docker Compose
|
||||
- Staging Docker Compose
|
||||
- ZibalService
|
||||
- @eslint/eslintrc
|
||||
- @nestjs/throttler
|
||||
- ZibalEBankService
|
||||
- .initiateOrderPayment
|
||||
- @tailwindcss/postcss
|
||||
- typescript
|
||||
- passport
|
||||
- typescript-eslint
|
||||
- @nestjs/schematics
|
||||
- reflect-metadata
|
||||
- swagger-ui-express
|
||||
- eslint-plugin-react-hooks
|
||||
- jest
|
||||
- @types/passport-jwt
|
||||
- @nestjs/swagger
|
||||
- typescript
|
||||
- @nestjs/testing
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @tailwindcss/postcss
|
||||
- prettier
|
||||
- ts-jest
|
||||
- @types/js-yaml
|
||||
- @types/react-dom
|
||||
- @types/supertest
|
||||
- eslint-plugin-react-refresh
|
||||
- eslint-plugin-prettier
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `Roles()` - 108 edges
|
||||
@ -346,35 +334,35 @@
|
||||
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
|
||||
## 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/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`
|
||||
|
||||
## Communities (325 total, 115 thin omitted)
|
||||
## Communities (313 total, 96 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
||||
|
||||
### Community 1 - "app.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (42): AdminModule, Module, AuthModule, Module, B2BModule, Module, BannersModule, Module (+34 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (38): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+30 more)
|
||||
|
||||
### Community 2 - "ApiKeysService"
|
||||
Cohesion: 0.07
|
||||
Nodes (22): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+14 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (16): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||
|
||||
### Community 3 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (37): DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory, BlogPostItem, CartDrawer() (+29 more)
|
||||
Nodes (33): dynamic, GET(), revalidate, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+25 more)
|
||||
|
||||
### Community 4 - "RevalidationService"
|
||||
Cohesion: 0.15
|
||||
Nodes (6): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
### Community 4 - "HomeClient.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): HomeClient(), HomeClientProps, BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), FAQSection(), Hero(), StatCounter() (+12 more)
|
||||
|
||||
### Community 5 - "CmsController"
|
||||
Cohesion: 0.08
|
||||
Nodes (26): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+18 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
|
||||
|
||||
### Community 6 - "tickets.controller.ts"
|
||||
Cohesion: 0.09
|
||||
@ -386,15 +374,15 @@ Nodes (10): PatternItem, SmsConfigState, SmsEventDefinition, SmsEventVariable, S
|
||||
|
||||
### Community 8 - "SmsService"
|
||||
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"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (25): devDependencies, eslint, @eslint/eslintrc, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
||||
|
||||
### Community 10 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (32): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+24 more)
|
||||
### Community 10 - "CreateReviewDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ReviewsController (+17 more)
|
||||
|
||||
### Community 11 - "UsersService"
|
||||
Cohesion: 0.06
|
||||
@ -410,11 +398,11 @@ Nodes (26): EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(
|
||||
|
||||
### Community 14 - "toPersian"
|
||||
Cohesion: 0.09
|
||||
Nodes (32): VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), ArchivePage(), B2BPortal() (+24 more)
|
||||
Nodes (35): B2BPortal, VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), ArchivePage() (+27 more)
|
||||
|
||||
### Community 15 - "src/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (31): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+23 more)
|
||||
Nodes (32): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+24 more)
|
||||
|
||||
### Community 16 - "DoctorQueryDto"
|
||||
Cohesion: 0.09
|
||||
@ -428,21 +416,17 @@ Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), ge
|
||||
Cohesion: 0.20
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 19 - "admin.controller.ts"
|
||||
Cohesion: 0.35
|
||||
### Community 19 - "BulkPriceAdjustmentDto"
|
||||
Cohesion: 0.30
|
||||
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
||||
|
||||
### Community 20 - "CreateVideoDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (29): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+21 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more)
|
||||
|
||||
### Community 21 - "ClientLayout.tsx"
|
||||
### Community 21 - "useSettingsStore"
|
||||
Cohesion: 0.08
|
||||
Nodes (23): AuthModal, B2BPortal, CartDrawer, MobileBottomNav, PrescriptionUploadModal, BannerPlacement(), BannerPlacementProps, BrandLogo() (+15 more)
|
||||
|
||||
### Community 22 - "AdminService"
|
||||
Cohesion: 0.09
|
||||
Nodes (3): Delete, AdminService, Injectable
|
||||
Nodes (29): ClientLayout(), MobileBottomNav, PrescriptionUploadModal, metadata, B2BLandingClient(), BrandLogo(), BrandLogoProps, Footer() (+21 more)
|
||||
|
||||
### Community 23 - "MenuService"
|
||||
Cohesion: 0.12
|
||||
@ -481,8 +465,8 @@ Cohesion: 0.06
|
||||
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
||||
|
||||
### Community 32 - "adminRoutes.tsx"
|
||||
Cohesion: 0.06
|
||||
Nodes (20): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, CategoryDist, DashboardData (+12 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (17): App(), Props, RouteErrorBoundary, State, CategoryDist, DashboardData, BestSellerItem, CategoryDistItem (+9 more)
|
||||
|
||||
### Community 33 - "WholesaleService"
|
||||
Cohesion: 0.14
|
||||
@ -509,8 +493,8 @@ Cohesion: 0.16
|
||||
Nodes (13): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Button(), ThSort(), ThSortProps, GatewayHealth, Stats (+5 more)
|
||||
|
||||
### Community 39 - "CategoriesController"
|
||||
Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
|
||||
|
||||
### Community 40 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
@ -545,8 +529,8 @@ Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "Button.tsx"
|
||||
Cohesion: 0.11
|
||||
Nodes (14): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, FAQManager, PaymentGatewaysPage (+6 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (15): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, BannersManager, FAQManager (+7 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -554,7 +538,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
||||
|
||||
### Community 50 - "devDependencies"
|
||||
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"
|
||||
Cohesion: 0.07
|
||||
@ -569,12 +553,12 @@ Cohesion: 0.13
|
||||
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 54 - "Modal.tsx"
|
||||
Cohesion: 0.08
|
||||
Nodes (19): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, MENU_TABS, MenuItem, MenuType (+11 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (21): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, MENU_TABS, MenuItem, MenuType (+13 more)
|
||||
|
||||
### Community 55 - "UITexts.tsx"
|
||||
Cohesion: 0.08
|
||||
Nodes (23): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ActiveStates, PRESET_BG_COLORS, PRESET_COLORS, RichTextEditor(), RichTextEditorProps (+15 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (12): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ToggleSwitch(), ToggleSwitchProps, AppSitePage, PageSection, SectionField (+4 more)
|
||||
|
||||
### Community 56 - "PrescriptionsManager.tsx"
|
||||
Cohesion: 0.12
|
||||
@ -592,33 +576,37 @@ Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
Cohesion: 0.06
|
||||
Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more)
|
||||
|
||||
### Community 60 - "CreateUserDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more)
|
||||
### Community 60 - "admin.controller.ts"
|
||||
Cohesion: 0.18
|
||||
Nodes (11): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+3 more)
|
||||
|
||||
### Community 61 - "ProductPage.tsx"
|
||||
Cohesion: 0.19
|
||||
Nodes (24): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, ProductCard(), MobileBottomNav(), OrderTracking(), PetProfile() (+16 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (39): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, FeaturedProducts(), ProductCard(), Header(), MobileBottomNav() (+31 more)
|
||||
|
||||
### Community 62 - "admin.module.ts"
|
||||
Cohesion: 0.04
|
||||
Nodes (32): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+24 more)
|
||||
Nodes (34): AdminModule, Module, PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+26 more)
|
||||
|
||||
### Community 63 - "dependencies"
|
||||
Cohesion: 0.09
|
||||
Nodes (23): dependencies, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
|
||||
|
||||
### Community 64 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
||||
|
||||
### Community 65 - "admin.service.ts"
|
||||
Cohesion: 0.19
|
||||
Nodes (8): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode, CANONICAL_ALIASES
|
||||
Cohesion: 0.31
|
||||
Nodes (7): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode
|
||||
|
||||
### Community 66 - "AdminController"
|
||||
Cohesion: 0.10
|
||||
Nodes (12): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+4 more)
|
||||
|
||||
### Community 67 - "OrdersController"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): AdminController, ApiBearerAuth, ApiQuery, ApiTags, Controller, Get, Query, UseGuards (+5 more)
|
||||
Nodes (11): OrdersController, ApiBearerAuth, ApiTags, Controller, IsNotEmpty, IsNumber, IsString, UseGuards (+3 more)
|
||||
|
||||
### Community 68 - "components/Skeleton.tsx"
|
||||
Cohesion: 0.21
|
||||
@ -634,7 +622,7 @@ Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx
|
||||
|
||||
### Community 71 - "getPageMetadata"
|
||||
Cohesion: 0.09
|
||||
Nodes (14): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+6 more)
|
||||
Nodes (15): generateMetadata(), CatalogClient(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+7 more)
|
||||
|
||||
### Community 72 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.11
|
||||
@ -652,9 +640,9 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
|
||||
### Community 76 - "ProductsService"
|
||||
Cohesion: 0.10
|
||||
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more)
|
||||
### Community 76 - "RevalidationService"
|
||||
Cohesion: 0.07
|
||||
Nodes (25): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable, GetProductsDto, ApiPropertyOptional (+17 more)
|
||||
|
||||
### Community 77 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
@ -708,17 +696,17 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
|
||||
Cohesion: 0.17
|
||||
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
||||
|
||||
### Community 90 - "PetProfile.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (28): ClientLayout(), metadata, Header(), MENU_ICONS, OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage() (+20 more)
|
||||
### Community 90 - "20260526145407_init/migration.sql"
|
||||
Cohesion: 0.27
|
||||
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
|
||||
|
||||
### Community 91 - "Reconciled Audit Roles & Assignments"
|
||||
Cohesion: 0.12
|
||||
Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. React / Vite Storefront Auditor, 3. NestJS Backend Auditor, 4. Admin Features Auditor, 5. Database & Data Integrity Auditor, 6. Security Auditor, 7. TypeScript & Code Quality Auditor (+7 more)
|
||||
|
||||
### Community 92 - "OrdersService"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||
### Community 92 - ".retryPayment"
|
||||
Cohesion: 0.19
|
||||
Nodes (11): ApiBadRequestResponse, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Get, Param (+3 more)
|
||||
|
||||
### Community 93 - "auth.controller.ts"
|
||||
Cohesion: 0.06
|
||||
@ -728,9 +716,9 @@ Nodes (43): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse,
|
||||
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)
|
||||
|
||||
### Community 95 - "getSeoConfig"
|
||||
Cohesion: 0.24
|
||||
Nodes (12): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+4 more)
|
||||
### Community 95 - "wiki/[slug]/page.tsx"
|
||||
Cohesion: 0.22
|
||||
Nodes (16): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), generateMetadata() (+8 more)
|
||||
|
||||
### Community 96 - "compilerOptions"
|
||||
Cohesion: 0.06
|
||||
@ -765,8 +753,8 @@ Cohesion: 0.15
|
||||
Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TASK-SEC-003`, 4. `TASK-FIN-001`, 5. `TASK-BUILD-001`, 6. `TASK-AUTH-001`, 7. `TASK-FE-001` (+4 more)
|
||||
|
||||
### Community 104 - "Products.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (25): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+17 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (24): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+16 more)
|
||||
|
||||
### Community 105 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.17
|
||||
@ -777,12 +765,12 @@ Cohesion: 0.43
|
||||
Nodes (7): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 107 - "PaginationDto"
|
||||
Cohesion: 0.05
|
||||
Nodes (33): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+25 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (18): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+10 more)
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.07
|
||||
Nodes (24): DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig (+16 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (25): CategoryQuery, DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+17 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -800,17 +788,17 @@ Nodes (10): 1. Mark Active Task as Complete, 2. Documentation Updates, 3. Dynami
|
||||
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)
|
||||
|
||||
### Community 113 - "useSettingsStore"
|
||||
Cohesion: 0.07
|
||||
Nodes (38): HomeClient(), HomeClientProps, B2BLandingClient(), BlogPostClientProps, BlogPost, BlogPreviewSection(), ContactInfoItem, FAQItem (+30 more)
|
||||
### Community 113 - "lib/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (22): BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, ProductReviews, ProductReviews(), ProductReviewsProps, ReviewItem (+14 more)
|
||||
|
||||
### Community 114 - "AppService"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
|
||||
### Community 115 - "MediaSelector.tsx"
|
||||
Cohesion: 0.06
|
||||
Nodes (35): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+27 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (45): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+37 more)
|
||||
|
||||
### Community 116 - "Vazirmatn Changelog"
|
||||
Cohesion: 0.18
|
||||
@ -836,13 +824,13 @@ Nodes (9): compilerOptions, esModuleInterop, module, moduleResolution, skipLibCh
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||
|
||||
### Community 122 - "ApiOperation"
|
||||
Cohesion: 0.23
|
||||
Nodes (6): ApiOperation, Body, Param, Post, Put, CouponInput
|
||||
### Community 122 - "Body"
|
||||
Cohesion: 0.17
|
||||
Nodes (3): Body, Post, CouponInput
|
||||
|
||||
### Community 123 - "auth.service.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (10): AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, normalizeMobile() (+2 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (13): AppModule, Module, AuthModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput (+5 more)
|
||||
|
||||
### Community 124 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -864,6 +852,10 @@ Nodes (9): Arch Linux, Contributors, Install, Known problems for variable versio
|
||||
Cohesion: 0.16
|
||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
||||
|
||||
### Community 129 - "WikiController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||
@ -920,9 +912,9 @@ Nodes (7): backend, distMainPath, fs, http, path, { spawn, execSync }, waitForBa
|
||||
Cohesion: 0.25
|
||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||
|
||||
### Community 144 - "getMediaUrl"
|
||||
### Community 144 - "SafeImage.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (24): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, dynamic, GET(), revalidate (+16 more)
|
||||
Nodes (25): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer() (+17 more)
|
||||
|
||||
### Community 145 - "Orders.tsx"
|
||||
Cohesion: 0.22
|
||||
@ -937,9 +929,13 @@ Cohesion: 0.22
|
||||
Nodes (8): buildTorobProductSpec(), buildTorobProductTitle(), TorobController, ApiOperation, ApiTags, Controller, Get, Query
|
||||
|
||||
### Community 148 - "ProductDto"
|
||||
Cohesion: 0.14
|
||||
Cohesion: 0.16
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 149 - "CreateOrderDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
|
||||
|
||||
### Community 150 - "Product Requirement Document (PRD)"
|
||||
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)
|
||||
@ -1036,6 +1032,10 @@ Nodes (5): dynamic, GET(), getCandidateUrls(), getMimeType(), HEAD()
|
||||
Cohesion: 0.33
|
||||
Nodes (5): نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina, ۱. معماری و نقشهای کاربری (User Roles), ۲. ماتریس جریانها و قابلیتهای کاربرمحور (Feature & Flow Matrix), ۳. وضعیت پوشش نهایی سوئیت ۱۱گانه (Final 11 Test Suites Status), ۴. راهنمای نگهداری و افزودن فیچرهای جدید بدون شکستن تستها (Developer Maintenance Guide)
|
||||
|
||||
### Community 179 - "CreateApiKeyDto"
|
||||
Cohesion: 0.27
|
||||
Nodes (7): CreateApiKeyDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 180 - "API Contract Specification"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): 1. OpenAPI 3.0 (Swagger) Specification, 2. Endpoint Definitions & Data Types, API Contract Specification
|
||||
@ -1052,9 +1052,9 @@ Nodes (3): Architectural Overview, Critical Review Findings & Required Enhanceme
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
|
||||
### Community 185 - "wiki/[slug]/page.tsx"
|
||||
Cohesion: 0.60
|
||||
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
|
||||
### Community 185 - "CartDrawer.tsx"
|
||||
Cohesion: 0.32
|
||||
Nodes (5): CartDrawer, CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, mockProduct
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
@ -1081,8 +1081,8 @@ Cohesion: 0.50
|
||||
Nodes (3): Select, SelectOption, SelectProps
|
||||
|
||||
### Community 197 - "AuthModal.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (19): LoginModal, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView,, extractOtpFromText(), LoginModal() (+11 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (17): AuthModal, LoginModal, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView,, extractOtpFromText() (+9 more)
|
||||
|
||||
### Community 198 - "app/page.tsx"
|
||||
Cohesion: 0.67
|
||||
@ -1096,16 +1096,32 @@ Nodes (3): Deploy on Vercel, Getting Started, Learn More
|
||||
Cohesion: 0.50
|
||||
Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
|
||||
|
||||
### Community 204 - "reviews.service.ts"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
|
||||
|
||||
### Community 211 - "Master Task Backlog (Phase 3.3)"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan
|
||||
|
||||
### Community 220 - "AdminQueryDto"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): AdminProductQueryDto, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 224 - "wiki/page.tsx"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): generateMetadata(), formatIngredientDisplayName(), IngredientWiki()
|
||||
|
||||
### Community 226 - "Shabnam Font README"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 294 - "ZibalService"
|
||||
Cohesion: 0.09
|
||||
Nodes (4): PaymentService, Injectable, Injectable, ZibalService
|
||||
|
||||
### Community 298 - ".initiateOrderPayment"
|
||||
Cohesion: 0.18
|
||||
Cohesion: 0.20
|
||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||
|
||||
### Community 317 - "revalidate/route.ts"
|
||||
@ -1113,24 +1129,24 @@ Cohesion: 0.83
|
||||
Nodes (3): GET(), handleRevalidate(), POST()
|
||||
|
||||
## Knowledge Gaps
|
||||
- **1354 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1349 more)
|
||||
- **1356 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1351 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **115 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **96 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `ProductsService`, `reviews.controller.ts`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
_High betweenness centrality (0.074) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `HomeController`, `ApiKeysService`, `BlogsController`, `PetsController`, `ProductsService`, `UsersService`, `PaginationDto`, `OrdersService`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.061) - this node is a cross-community bridge._
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `ApiKeysService`, `CmsController`, `tickets.controller.ts`, `CategoriesController`, `reviews.controller.ts`, `PaginationDto`, `PetsController`, `ProductsService`, `UsersService`, `DoctorQueryDto`, `admin.controller.ts`, `CreateVideoDto`, `auth.controller.ts`, `admin.module.ts`?**
|
||||
_High betweenness centrality (0.030) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `ApiKeysService` to `HomeController`, `WikiController`, `OrdersController`, `BlogsController`, `PetsController`, `RevalidationService`, `UsersService`, `src/services/api.ts`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.076) - this node is a cross-community bridge._
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `RevalidationService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
_High betweenness centrality (0.066) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `HomeController`, `app.module.ts`, `ApiKeysService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `UsersService`, `DoctorQueryDto`, `torob.controller.ts`, `CreateVideoDto`, `MenuService`, `OrdersService`, `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `CreateApiKeyDto`, `PrescriptionsService`, `SmartAdvisorService`, `MetricsController`, `admin.module.ts`, `admin.service.ts`, `OrdersController`, `PetsController`, `RevalidationService`, `reviews.service.ts`, `seo.module.ts`, `zibal.service.ts`, `PaginationDto`, `auth.service.ts`?**
|
||||
_High betweenness centrality (0.031) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_1354 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
_1356 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05764145954521417 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06516290726817042 - nodes in this community are weakly interconnected._
|
||||
- **Should `ApiKeysService` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.07422402159244265 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.09195402298850575 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.061018437225636525 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06187202538339503 - 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,16 +1,16 @@
|
||||
# Graph Report - canina (2026-09-13)
|
||||
|
||||
## Corpus Check
|
||||
- 609 files · ~1,125,316 words
|
||||
- 609 files · ~1,125,530 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4304 nodes · 7945 edges · 313 communities (217 shown, 96 thin omitted)
|
||||
- 4304 nodes · 7950 edges · 312 communities (215 shown, 97 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 303 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `8e4ee984`
|
||||
- Built from commit: `ef0731ff`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
- CmsController
|
||||
- tickets.controller.ts
|
||||
- SmsSettingsPage.tsx
|
||||
- SmsService
|
||||
- SettingsService
|
||||
- devDependencies
|
||||
- CreateReviewDto
|
||||
- UsersService
|
||||
@ -48,7 +48,7 @@
|
||||
- DEVOPS-001
|
||||
- DOC-001
|
||||
- adminRoutes.tsx
|
||||
- WholesaleService
|
||||
- WholesaleApplyDto
|
||||
- B2BService
|
||||
- ContactService
|
||||
- FaqService
|
||||
@ -61,7 +61,7 @@
|
||||
- BannersService
|
||||
- TestimonialsService
|
||||
- What You Must Do When Invoked
|
||||
- WholesaleApplyDto
|
||||
- sms.service.ts
|
||||
- IngredientsService
|
||||
- Button.tsx
|
||||
- devDependencies
|
||||
@ -71,9 +71,9 @@
|
||||
- SmartAdvisorService
|
||||
- Modal.tsx
|
||||
- UITexts.tsx
|
||||
- PrescriptionsManager.tsx
|
||||
- Orders.tsx
|
||||
- Role & Core Objective
|
||||
- MetricsController
|
||||
- ConfirmModal.tsx
|
||||
- compilerOptions
|
||||
- admin.controller.ts
|
||||
- ProductPage.tsx
|
||||
@ -82,7 +82,7 @@
|
||||
- compilerOptions
|
||||
- admin.service.ts
|
||||
- AdminController
|
||||
- OrdersController
|
||||
- SmsService
|
||||
- components/Skeleton.tsx
|
||||
- Required Review Group Closures
|
||||
- compilerOptions
|
||||
@ -91,7 +91,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- PetsController
|
||||
- RevalidationService
|
||||
- ProductsService
|
||||
- seo.module.ts
|
||||
- rss.xml/route.ts
|
||||
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
||||
@ -103,11 +103,11 @@
|
||||
- app.e2e-spec.js
|
||||
- zibal.service.ts
|
||||
- dependencies
|
||||
- CreateEBankCheckoutDto
|
||||
- payment.controller.ts
|
||||
- seed-products.ts
|
||||
- 20260526145407_init/migration.sql
|
||||
- Reconciled Audit Roles & Assignments
|
||||
- .retryPayment
|
||||
- OrdersService
|
||||
- auth.controller.ts
|
||||
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
|
||||
- wiki/[slug]/page.tsx
|
||||
@ -121,8 +121,8 @@
|
||||
- Comprehensive Change Log
|
||||
- Products.tsx
|
||||
- Operational Rules & Boundaries
|
||||
- InitiatePaymentDto
|
||||
- PaginationDto
|
||||
- PaymentService
|
||||
- BlogsService
|
||||
- PrismaService
|
||||
- 1. Summary of Integrity Repairs Performed
|
||||
- Operational Rules & Boundaries
|
||||
@ -130,7 +130,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- lib/services/api.ts
|
||||
- AppService
|
||||
- MediaSelector.tsx
|
||||
- Media.tsx
|
||||
- Vazirmatn Changelog
|
||||
- Vazirmatn Font فونت وزیرمتن
|
||||
- Operational Rules & Boundaries
|
||||
@ -143,7 +143,7 @@
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
- Sahel-Font
|
||||
- HomeController
|
||||
- auth.module.ts
|
||||
- WikiController
|
||||
- Sahel-Font
|
||||
- Role & Core Objective
|
||||
@ -160,13 +160,13 @@
|
||||
- start-dev.js
|
||||
- generate-openapi.js
|
||||
- SafeImage.tsx
|
||||
- Orders.tsx
|
||||
- PaginationDto
|
||||
- System Discovery
|
||||
- torob.controller.ts
|
||||
- ProductDto
|
||||
- CreateOrderDto
|
||||
- PetsController
|
||||
- Product Requirement Document (PRD)
|
||||
- OrdersService
|
||||
- SmsLogQueryDto
|
||||
- @eslint/js
|
||||
- exclude
|
||||
- Baseline Command Plan & Reconciled Command History
|
||||
@ -193,7 +193,7 @@
|
||||
- uploads/[...path]/route.ts
|
||||
- eslint-config-prettier
|
||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||
- CreateApiKeyDto
|
||||
- eslint-config-next
|
||||
- API Contract Specification
|
||||
- ⚙️ Backend Technical Review (05_dev_backend)
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
@ -218,7 +218,7 @@
|
||||
- deploy.sh
|
||||
- 🔒 Security & Performance Review (09_devops_security)
|
||||
- 👁️ UX & Persona Interface Review (08_visual_qa)
|
||||
- reviews.service.ts
|
||||
- RevalidationService
|
||||
- prisma/scientificTerms.ts
|
||||
- seed-blogs.ts
|
||||
- seed-custom.ts
|
||||
@ -305,7 +305,6 @@
|
||||
- typescript
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @tailwindcss/postcss
|
||||
- @types/react-dom
|
||||
- eslint-plugin-react-refresh
|
||||
|
||||
@ -328,29 +327,29 @@
|
||||
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]
|
||||
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
|
||||
|
||||
## 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/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`
|
||||
- 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 (313 total, 96 thin omitted)
|
||||
## Communities (312 total, 97 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
||||
|
||||
### Community 1 - "app.module.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (38): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+30 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (34): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+26 more)
|
||||
|
||||
### Community 2 - "ApiKeysService"
|
||||
Cohesion: 0.09
|
||||
Nodes (16): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (33): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+25 more)
|
||||
|
||||
### Community 3 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
@ -372,21 +371,21 @@ Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty,
|
||||
Cohesion: 0.20
|
||||
Nodes (10): PatternItem, SmsConfigState, SmsEventDefinition, SmsEventVariable, SmsLogItem, SmsLogStats, SmsRule, SmsSettingsPage() (+2 more)
|
||||
|
||||
### Community 8 - "SmsService"
|
||||
Cohesion: 0.05
|
||||
Nodes (28): SmsEventDefinition, SmsLogQuery, SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber (+20 more)
|
||||
### Community 8 - "SettingsService"
|
||||
Cohesion: 0.09
|
||||
Nodes (17): SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Delete (+9 more)
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): devDependencies, eslint, @eslint/eslintrc, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
||||
|
||||
### Community 10 - "CreateReviewDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ReviewsController (+17 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more)
|
||||
|
||||
### Community 11 - "UsersService"
|
||||
Cohesion: 0.06
|
||||
Nodes (38): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), JwtPayload, JwtStrategy, Injectable, AddressDto, ApiProperty (+30 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (31): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+23 more)
|
||||
|
||||
### Community 12 - "index.ts"
|
||||
Cohesion: 0.06
|
||||
@ -402,7 +401,7 @@ Nodes (35): B2BPortal, VerifyContent(), AddressFormData, AddressModal(), Address
|
||||
|
||||
### Community 15 - "src/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (32): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+24 more)
|
||||
Nodes (30): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+22 more)
|
||||
|
||||
### Community 16 - "DoctorQueryDto"
|
||||
Cohesion: 0.09
|
||||
@ -413,8 +412,8 @@ Cohesion: 0.14
|
||||
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), ContactFormClient() (+10 more)
|
||||
|
||||
### Community 18 - "JwtAuthGuard"
|
||||
Cohesion: 0.20
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
Cohesion: 0.16
|
||||
Nodes (8): JwtAuthGuard, Injectable, ROLES_KEY, SortOrder, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 19 - "BulkPriceAdjustmentDto"
|
||||
Cohesion: 0.30
|
||||
@ -425,8 +424,8 @@ Cohesion: 0.07
|
||||
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more)
|
||||
|
||||
### Community 21 - "useSettingsStore"
|
||||
Cohesion: 0.08
|
||||
Nodes (29): ClientLayout(), MobileBottomNav, PrescriptionUploadModal, metadata, B2BLandingClient(), BrandLogo(), BrandLogoProps, Footer() (+21 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (26): CartDrawer, ClientLayout(), MobileBottomNav, PrescriptionUploadModal, metadata, B2BLandingClient(), BrandLogo(), BrandLogoProps (+18 more)
|
||||
|
||||
### Community 23 - "MenuService"
|
||||
Cohesion: 0.12
|
||||
@ -465,12 +464,12 @@ Cohesion: 0.06
|
||||
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
||||
|
||||
### Community 32 - "adminRoutes.tsx"
|
||||
Cohesion: 0.07
|
||||
Nodes (17): App(), Props, RouteErrorBoundary, State, CategoryDist, DashboardData, BestSellerItem, CategoryDistItem (+9 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (10): App(), Props, RouteErrorBoundary, State, CategoryDist, DashboardData, AdminRouteConfig, Dashboard (+2 more)
|
||||
|
||||
### Community 33 - "WholesaleService"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param, Post (+6 more)
|
||||
### Community 33 - "WholesaleApplyDto"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
|
||||
|
||||
### Community 34 - "B2BService"
|
||||
Cohesion: 0.12
|
||||
@ -489,8 +488,8 @@ Cohesion: 0.07
|
||||
Nodes (25): اجرای بکاند, اجرای فرانتاند, اجرای پروژه در سرور با PM2, برای راهاندازی بکاند:, برای راهاندازی فرانتاند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسهها تا پس از ریاستارت سرور قطع نشوند:, راهاندازی و انتشار سیستم (Setup & Deployment) (+17 more)
|
||||
|
||||
### Community 38 - "Button"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Button(), ThSort(), ThSortProps, GatewayHealth, Stats (+5 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (20): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Badge(), BadgeProps, BadgeVariant, variantStyles, Button() (+12 more)
|
||||
|
||||
### Community 39 - "CategoriesController"
|
||||
Cohesion: 0.10
|
||||
@ -505,8 +504,8 @@ Cohesion: 0.07
|
||||
Nodes (26): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+18 more)
|
||||
|
||||
### Community 42 - "SslController"
|
||||
Cohesion: 0.13
|
||||
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (15): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+7 more)
|
||||
|
||||
### Community 43 - "BannersService"
|
||||
Cohesion: 0.13
|
||||
@ -520,17 +519,17 @@ Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body,
|
||||
Cohesion: 0.07
|
||||
Nodes (26): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+18 more)
|
||||
|
||||
### Community 46 - "WholesaleApplyDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto
|
||||
### Community 46 - "sms.service.ts"
|
||||
Cohesion: 0.09
|
||||
Nodes (16): DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventDefinition, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+8 more)
|
||||
|
||||
### Community 47 - "IngredientsService"
|
||||
Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "Button.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (15): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, BannersManager, FAQManager (+7 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (17): ButtonProps, ButtonSize, ButtonVariant, Spinner(), BestSellerItem, CategoryDistItem, COLORS, CustomTooltipProps (+9 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -538,7 +537,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
||||
|
||||
### Community 50 - "devDependencies"
|
||||
Cohesion: 0.12
|
||||
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
|
||||
Nodes (17): devDependencies, eslint, jsdom, @tailwindcss/postcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
|
||||
|
||||
### Community 51 - "BlogsController"
|
||||
Cohesion: 0.07
|
||||
@ -553,24 +552,24 @@ Cohesion: 0.13
|
||||
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 54 - "Modal.tsx"
|
||||
Cohesion: 0.07
|
||||
Nodes (21): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, MENU_TABS, MenuItem, MenuType (+13 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (17): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, FAQ, BlogCommentItem, ProductReview (+9 more)
|
||||
|
||||
### Community 55 - "UITexts.tsx"
|
||||
Cohesion: 0.14
|
||||
Nodes (12): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ToggleSwitch(), ToggleSwitchProps, AppSitePage, PageSection, SectionField (+4 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (35): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector() (+27 more)
|
||||
|
||||
### Community 56 - "PrescriptionsManager.tsx"
|
||||
Cohesion: 0.12
|
||||
Nodes (14): Badge(), BadgeProps, BadgeVariant, variantStyles, Skeleton(), MonitoringStats, ProductItem, UserRecord (+6 more)
|
||||
### Community 56 - "Orders.tsx"
|
||||
Cohesion: 0.11
|
||||
Nodes (15): Skeleton(), MonitoringStats, getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderItem, Orders(), PaymentTx (+7 more)
|
||||
|
||||
### Community 57 - "Role & Core Objective"
|
||||
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)
|
||||
|
||||
### Community 58 - "MetricsController"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
### Community 58 - "ConfirmModal.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (15): ConfirmModal(), ConfirmModalProps, HeroBanner, VetTestimonial, Doctor, MENU_TABS, MenuItem, MenuType (+7 more)
|
||||
|
||||
### Community 59 - "compilerOptions"
|
||||
Cohesion: 0.06
|
||||
@ -582,11 +581,11 @@ Nodes (11): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty
|
||||
|
||||
### Community 61 - "ProductPage.tsx"
|
||||
Cohesion: 0.11
|
||||
Nodes (39): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, FeaturedProducts(), ProductCard(), Header(), MobileBottomNav() (+31 more)
|
||||
Nodes (40): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, FeaturedProducts(), ProductCard(), Header(), MobileBottomNav() (+32 more)
|
||||
|
||||
### Community 62 - "admin.module.ts"
|
||||
Cohesion: 0.04
|
||||
Nodes (34): AdminModule, Module, PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+26 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (17): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+9 more)
|
||||
|
||||
### Community 63 - "dependencies"
|
||||
Cohesion: 0.05
|
||||
@ -604,9 +603,9 @@ Nodes (7): CouponTargetInput, PaginationQuery, applyRounding(), calculateSelling
|
||||
Cohesion: 0.10
|
||||
Nodes (12): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+4 more)
|
||||
|
||||
### Community 67 - "OrdersController"
|
||||
Cohesion: 0.15
|
||||
Nodes (11): OrdersController, ApiBearerAuth, ApiTags, Controller, IsNotEmpty, IsNumber, IsString, UseGuards (+3 more)
|
||||
### Community 67 - "SmsService"
|
||||
Cohesion: 0.20
|
||||
Nodes (3): SmsService, Injectable, Optional
|
||||
|
||||
### Community 68 - "components/Skeleton.tsx"
|
||||
Cohesion: 0.21
|
||||
@ -640,9 +639,9 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
|
||||
### Community 76 - "RevalidationService"
|
||||
Cohesion: 0.07
|
||||
Nodes (25): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable, GetProductsDto, ApiPropertyOptional (+17 more)
|
||||
### Community 76 - "ProductsService"
|
||||
Cohesion: 0.11
|
||||
Nodes (14): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+6 more)
|
||||
|
||||
### Community 77 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
@ -688,9 +687,9 @@ Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRe
|
||||
Cohesion: 0.11
|
||||
Nodes (19): dependencies, axios, lucide-react, motion, next, nextjs-toploader, react, react-dom (+11 more)
|
||||
|
||||
### Community 88 - "CreateEBankCheckoutDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsNumber, IsOptional, IsString, Min
|
||||
### Community 88 - "payment.controller.ts"
|
||||
Cohesion: 0.12
|
||||
Nodes (19): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsNumber, IsOptional, IsString, Min (+11 more)
|
||||
|
||||
### Community 89 - "seed-products.ts"
|
||||
Cohesion: 0.17
|
||||
@ -704,9 +703,9 @@ Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_cond
|
||||
Cohesion: 0.12
|
||||
Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. React / Vite Storefront Auditor, 3. NestJS Backend Auditor, 4. Admin Features Auditor, 5. Database & Data Integrity Auditor, 6. Security Auditor, 7. TypeScript & Code Quality Auditor (+7 more)
|
||||
|
||||
### Community 92 - ".retryPayment"
|
||||
Cohesion: 0.19
|
||||
Nodes (11): ApiBadRequestResponse, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Get, Param (+3 more)
|
||||
### Community 92 - "OrdersService"
|
||||
Cohesion: 0.06
|
||||
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
|
||||
|
||||
### Community 93 - "auth.controller.ts"
|
||||
Cohesion: 0.06
|
||||
@ -753,24 +752,20 @@ Cohesion: 0.15
|
||||
Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TASK-SEC-003`, 4. `TASK-FIN-001`, 5. `TASK-BUILD-001`, 6. `TASK-AUTH-001`, 7. `TASK-FE-001` (+4 more)
|
||||
|
||||
### Community 104 - "Products.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (24): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+16 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (25): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+17 more)
|
||||
|
||||
### Community 105 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.17
|
||||
Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (Mandatory), 3. Acceptance Criteria Verification, 4. Failure Routing Protocol, 5. Success Routing Protocol, 6. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries (+3 more)
|
||||
|
||||
### Community 106 - "InitiatePaymentDto"
|
||||
Cohesion: 0.43
|
||||
Nodes (7): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 107 - "PaginationDto"
|
||||
Cohesion: 0.07
|
||||
Nodes (18): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+10 more)
|
||||
### Community 107 - "BlogsService"
|
||||
Cohesion: 0.13
|
||||
Nodes (5): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.06
|
||||
Nodes (25): CategoryQuery, DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+17 more)
|
||||
Nodes (23): ApiExcludeController, CategoryQuery, PetQuery, PetsService, Injectable, MetricsController, Controller, Get (+15 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -789,16 +784,16 @@ 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)
|
||||
|
||||
### Community 113 - "lib/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (22): BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, ProductReviews, ProductReviews(), ProductReviewsProps, ReviewItem (+14 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (26): BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, ProductReviews, ProductReviews(), ProductReviewsProps, ReviewItem (+18 more)
|
||||
|
||||
### Community 114 - "AppService"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
|
||||
### Community 115 - "MediaSelector.tsx"
|
||||
Cohesion: 0.05
|
||||
Nodes (45): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+37 more)
|
||||
### Community 115 - "Media.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (17): Pagination(), PaginationProps, Category, getFileType(), Media, MediaManager(), Pet, DoctorOption (+9 more)
|
||||
|
||||
### Community 116 - "Vazirmatn Changelog"
|
||||
Cohesion: 0.18
|
||||
@ -829,8 +824,8 @@ Cohesion: 0.17
|
||||
Nodes (3): Body, Post, CouponInput
|
||||
|
||||
### Community 123 - "auth.service.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (13): AppModule, Module, AuthModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput (+5 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (9): AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, RedisService (+1 more)
|
||||
|
||||
### Community 124 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -848,13 +843,13 @@ Nodes (9): name, private, scripts, build, dev, lint, preview, type (+1 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||
|
||||
### Community 128 - "HomeController"
|
||||
Cohesion: 0.16
|
||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
||||
### Community 128 - "auth.module.ts"
|
||||
Cohesion: 0.15
|
||||
Nodes (12): AdminModule, Module, DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload (+4 more)
|
||||
|
||||
### Community 129 - "WikiController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
@ -913,12 +908,12 @@ Cohesion: 0.25
|
||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||
|
||||
### Community 144 - "SafeImage.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (25): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer() (+17 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (24): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer() (+16 more)
|
||||
|
||||
### Community 145 - "Orders.tsx"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderItem, Orders(), PaymentTx, toPersianDigits(), Orders
|
||||
### Community 145 - "PaginationDto"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): PaginationDto, ApiPropertyOptional, IsEnum, IsInt, IsOptional, IsString, Min, Type (+5 more)
|
||||
|
||||
### Community 146 - "System Discovery"
|
||||
Cohesion: 0.25
|
||||
@ -932,14 +927,18 @@ Nodes (8): buildTorobProductSpec(), buildTorobProductTitle(), TorobController, A
|
||||
Cohesion: 0.16
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 149 - "CreateOrderDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
|
||||
### Community 149 - "PetsController"
|
||||
Cohesion: 0.15
|
||||
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
|
||||
|
||||
### Community 150 - "Product Requirement Document (PRD)"
|
||||
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)
|
||||
|
||||
### Community 151 - "SmsLogQueryDto"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||
|
||||
### Community 153 - "exclude"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): exclude, extends, dist, node_modules, prisma, **/*spec.ts, test, ./tsconfig.json
|
||||
@ -1032,10 +1031,6 @@ Nodes (5): dynamic, GET(), getCandidateUrls(), getMimeType(), HEAD()
|
||||
Cohesion: 0.33
|
||||
Nodes (5): نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina, ۱. معماری و نقشهای کاربری (User Roles), ۲. ماتریس جریانها و قابلیتهای کاربرمحور (Feature & Flow Matrix), ۳. وضعیت پوشش نهایی سوئیت ۱۱گانه (Final 11 Test Suites Status), ۴. راهنمای نگهداری و افزودن فیچرهای جدید بدون شکستن تستها (Developer Maintenance Guide)
|
||||
|
||||
### Community 179 - "CreateApiKeyDto"
|
||||
Cohesion: 0.27
|
||||
Nodes (7): CreateApiKeyDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 180 - "API Contract Specification"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): 1. OpenAPI 3.0 (Swagger) Specification, 2. Endpoint Definitions & Data Types, API Contract Specification
|
||||
@ -1053,8 +1048,8 @@ Cohesion: 0.50
|
||||
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
|
||||
### Community 185 - "CartDrawer.tsx"
|
||||
Cohesion: 0.32
|
||||
Nodes (5): CartDrawer, CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, mockProduct
|
||||
Cohesion: 0.36
|
||||
Nodes (4): CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, mockProduct
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
@ -1096,9 +1091,9 @@ Nodes (3): Deploy on Vercel, Getting Started, Learn More
|
||||
Cohesion: 0.50
|
||||
Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
|
||||
|
||||
### Community 204 - "reviews.service.ts"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
|
||||
### Community 204 - "RevalidationService"
|
||||
Cohesion: 0.16
|
||||
Nodes (6): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
|
||||
### Community 211 - "Master Task Backlog (Phase 3.3)"
|
||||
Cohesion: 0.67
|
||||
@ -1116,13 +1111,9 @@ Nodes (3): generateMetadata(), formatIngredientDisplayName(), IngredientWiki()
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 294 - "ZibalService"
|
||||
Cohesion: 0.09
|
||||
Nodes (4): PaymentService, Injectable, Injectable, ZibalService
|
||||
|
||||
### Community 298 - ".initiateOrderPayment"
|
||||
Cohesion: 0.20
|
||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||
Cohesion: 0.32
|
||||
Nodes (6): ApiBadRequestResponse, ApiOkResponse, Req, Res, Headers, Ip
|
||||
|
||||
### Community 317 - "revalidate/route.ts"
|
||||
Cohesion: 0.83
|
||||
@ -1131,22 +1122,22 @@ Nodes (3): GET(), handleRevalidate(), POST()
|
||||
## Knowledge Gaps
|
||||
- **1356 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1351 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **96 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **97 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `ApiResponse` connect `ApiKeysService` to `HomeController`, `WikiController`, `OrdersController`, `BlogsController`, `PetsController`, `RevalidationService`, `UsersService`, `src/services/api.ts`, `auth.controller.ts`?**
|
||||
- **Why does `ApiResponse` connect `ApiKeysService` to `WikiController`, `BlogsController`, `PetsController`, `ProductsService`, `UsersService`, `src/services/api.ts`, `OrdersService`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.076) - this node is a cross-community bridge._
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `RevalidationService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
- **Why does `Roles()` connect `Roles` to `CmsController`, `tickets.controller.ts`, `SettingsService`, `CreateReviewDto`, `PaginationDto`, `JwtAuthGuard`, `MenuService`, `WholesaleApplyDto`, `B2BService`, `ContactService`, `FaqService`, `SslController`, `BannersService`, `TestimonialsService`, `IngredientsService`, `PrescriptionsService`, `SmartAdvisorService`, `ProductsService`, `payment.controller.ts`?**
|
||||
_High betweenness centrality (0.066) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `HomeController`, `app.module.ts`, `ApiKeysService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `UsersService`, `DoctorQueryDto`, `torob.controller.ts`, `CreateVideoDto`, `MenuService`, `OrdersService`, `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `CreateApiKeyDto`, `PrescriptionsService`, `SmartAdvisorService`, `MetricsController`, `admin.module.ts`, `admin.service.ts`, `OrdersController`, `PetsController`, `RevalidationService`, `reviews.service.ts`, `seo.module.ts`, `zibal.service.ts`, `PaginationDto`, `auth.service.ts`?**
|
||||
- **Why does `PrismaService` connect `PrismaService` to `app.module.ts`, `ApiKeysService`, `WikiController`, `CmsController`, `tickets.controller.ts`, `SettingsService`, `DoctorQueryDto`, `torob.controller.ts`, `CreateVideoDto`, `MenuService`, `WholesaleApplyDto`, `B2BService`, `ContactService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `sms.service.ts`, `IngredientsService`, `PrescriptionsService`, `SmartAdvisorService`, `admin.module.ts`, `admin.service.ts`, `SmsService`, `PetsController`, `RevalidationService`, `ProductsService`, `seo.module.ts`, `zibal.service.ts`, `OrdersService`, `PaymentService`, `BlogsService`, `auth.service.ts`?**
|
||||
_High betweenness centrality (0.031) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_1356 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.06516290726817042 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06265664160401002 - nodes in this community are weakly interconnected._
|
||||
- **Should `ApiKeysService` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.09195402298850575 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.05012531328320802 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.06187202538339503 - nodes in this community are weakly interconnected._
|
||||
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