Compare commits

..

2 Commits

Author SHA1 Message Date
dc3b8f4488 Merge branch 'develop'
All checks were successful
Deploy Canina / deploy (push) Successful in 1m32s
2026-08-24 01:46:45 +03:30
c68ff27621 fix(frontend): add defensive guards against undefined props in FeaturedProducts
All checks were successful
Deploy Canina / deploy (push) Successful in 1m49s
2026-08-24 01:46:15 +03:30
12 changed files with 120452 additions and 117812 deletions

View File

@ -25,11 +25,15 @@ function ProductCard({ product }: { product: Product }) {
const compatibility = useMemo(() => { const compatibility = useMemo(() => {
if (!activePet) return null; if (!activePet) return null;
const sameSpecies = product.suitableFor === activePet.type || product.suitableFor === "هر دو"; const petType = activePet.type || 'سگ';
const helpsSymptom = (activePet.medicalConditions || []).some((s) => product.symptoms.includes(s)); const sameSpecies = product.suitableFor === petType || product.suitableFor === "هر دو";
if (!sameSpecies) return { type: "alert", text: `مخصوص ${product.suitableFor}` }; const productSymptoms = Array.isArray(product.symptoms) ? product.symptoms : [];
if (helpsSymptom) return { type: "success", text: `توصیه شده برای ${activePet.name}` }; const petConditions = Array.isArray(activePet.medicalConditions) ? activePet.medicalConditions : [];
return { type: "neutral", text: `مناسب برای ${activePet.name}` }; const helpsSymptom = petConditions.some((s) => productSymptoms.includes(s));
if (!sameSpecies) return { type: "alert", text: `مخصوص ${product.suitableFor || 'پت'}` };
if (helpsSymptom) return { type: "success", text: `توصیه شده برای ${activePet.name || 'پت شما'}` };
return { type: "neutral", text: `مناسب برای ${activePet.name || 'پت شما'}` };
}, [product, activePet]); }, [product, activePet]);
const isCatalogOnly = getText('CATALOG_ONLY_MODE', 'false') === 'true'; const isCatalogOnly = getText('CATALOG_ONLY_MODE', 'false') === 'true';
@ -113,13 +117,13 @@ function ProductCard({ product }: { product: Product }) {
{/* Short description */} {/* Short description */}
<p className="text-xs text-medical-gray-500 leading-relaxed line-clamp-2 flex-1"> <p className="text-xs text-medical-gray-500 leading-relaxed line-clamp-2 flex-1">
{product.shortDescription || product.description} {product.shortDescription || product.description || ''}
</p> </p>
{/* Footer: Price + CTA */} {/* Footer: Price + CTA */}
<div className="flex items-center justify-between pt-3 border-t border-medical-gray-100"> <div className="flex items-center justify-between pt-3 border-t border-medical-gray-100">
<div className="text-base font-black text-medical-gray-900 font-vazir whitespace-nowrap"> <div className="text-base font-black text-medical-gray-900 font-vazir whitespace-nowrap">
{showPrices ? product.price : 'تماس بگیرید'} {showPrices ? (typeof product.price === 'string' || typeof product.price === 'number' ? String(product.price) : 'تماس بگیرید') : 'تماس بگیرید'}
</div> </div>
{showPreorderBtn ? ( {showPreorderBtn ? (
<span className="text-[11px] font-black text-amber-600 bg-amber-50 px-3 py-1 rounded-full border border-amber-200"> <span className="text-[11px] font-black text-amber-600 bg-amber-50 px-3 py-1 rounded-full border border-amber-200">

View File

@ -20,7 +20,7 @@
"18": "JwtAuthGuard", "18": "JwtAuthGuard",
"19": "ProductsService", "19": "ProductsService",
"20": "CreateVideoDto", "20": "CreateVideoDto",
"21": "toPersian", "21": "NetworkBanner.tsx",
"22": "UserDashboard.tsx", "22": "UserDashboard.tsx",
"23": "MenuService", "23": "MenuService",
"24": "BE-001", "24": "BE-001",
@ -306,7 +306,7 @@
"304": "@testing-library/react", "304": "@testing-library/react",
"305": "@types/react", "305": "@types/react",
"306": "globals", "306": "globals",
"307": "@types/react-dom", "307": "eslint-config-next",
"308": "vitest", "308": "vitest",
"309": "axios", "309": "axios",
"310": "tailwindcss", "310": "tailwindcss",

File diff suppressed because one or more lines are too long

View File

@ -1,26 +1,26 @@
{ {
"0": "Roles", "0": "Roles",
"1": "app.module.ts", "1": "app.module.ts",
"2": "SettingsController", "2": "SmsService",
"3": "useCartStore", "3": "productService.ts",
"4": "SafeImage.tsx", "4": "SafeImage.tsx",
"5": "CmsController", "5": "CmsController",
"6": "tickets.controller.ts", "6": "tickets.controller.ts",
"7": "PaginationDto", "7": "PaginationDto",
"8": "admin.module.ts", "8": "admin.module.ts",
"9": "devDependencies", "9": "devDependencies",
"10": "ReviewsService", "10": "CreateReviewDto",
"11": "api", "11": "Modal.tsx",
"12": "PetProfile.tsx", "12": "PetProfile.tsx",
"13": "app-audit-verification.e2e-spec.js", "13": "main.ts",
"14": "lib/services/api.ts", "14": "lib/services/api.ts",
"15": "src/services/api.ts", "15": "src/services/api.ts",
"16": "DoctorQueryDto", "16": "DoctorQueryDto",
"17": "admin.service.ts", "17": "AuthService",
"18": "JwtAuthGuard", "18": "JwtAuthGuard",
"19": "ProductsService", "19": "ProductsService",
"20": "CreateVideoDto", "20": "CreateVideoDto",
"21": "SmsService", "21": "toPersian",
"22": "UserDashboard.tsx", "22": "UserDashboard.tsx",
"23": "MenuService", "23": "MenuService",
"24": "BE-001", "24": "BE-001",
@ -31,13 +31,13 @@
"29": "TEST-001", "29": "TEST-001",
"30": "DEVOPS-001", "30": "DEVOPS-001",
"31": "DOC-001", "31": "DOC-001",
"32": "Spinner.tsx", "32": "Button.tsx",
"33": "WholesaleApplyDto", "33": "WholesaleApplyDto",
"34": "B2BService", "34": "B2BService",
"35": "auth.controller.ts", "35": "AuthController",
"36": "FaqService", "36": "FaqService",
"37": "راهنمای تست سیستم (Software Testing)", "37": "راهنمای تست سیستم (Software Testing)",
"38": "Transactions.tsx", "38": "Button",
"39": "CategoriesController", "39": "CategoriesController",
"40": "MediaController", "40": "MediaController",
"41": "What You Must Do When Invoked", "41": "What You Must Do When Invoked",
@ -45,27 +45,27 @@
"43": "BannersService", "43": "BannersService",
"44": "TestimonialsService", "44": "TestimonialsService",
"45": "What You Must Do When Invoked", "45": "What You Must Do When Invoked",
"46": "Body", "46": "AdminController",
"47": "IngredientsService", "47": "IngredientsService",
"48": "adminRoutes.tsx", "48": "adminRoutes.tsx",
"49": "devDependencies", "49": "devDependencies",
"50": "devDependencies", "50": "devDependencies",
"51": "BlogsController", "51": "BlogsController",
"52": "prescriptions.module.ts", "52": "PrescriptionsController",
"53": "SmartAdvisorService", "53": "SmartAdvisorService",
"54": "UsersService", "54": "UsersService",
"55": "UITexts.tsx", "55": "UITexts.tsx",
"56": "SettingsService", "56": "Orders.tsx",
"57": "Role & Core Objective", "57": "Role & Core Objective",
"58": "ContactService", "58": "ContactService",
"59": "compilerOptions", "59": "compilerOptions",
"60": "CreateUserDto", "60": "admin.service.ts",
"61": "CreateEBankCheckoutDto", "61": "CreateEBankCheckoutDto",
"62": "CreateOrderDto", "62": "WikiController",
"63": "dependencies", "63": "dependencies",
"64": "compilerOptions", "64": "compilerOptions",
"65": "ProductPage.tsx", "65": "ProductPage.tsx",
"66": "AdminController", "66": "ApiOperation",
"67": "PetsController", "67": "PetsController",
"68": "BlogsController", "68": "BlogsController",
"69": "Required Review Group Closures", "69": "Required Review Group Closures",
@ -75,16 +75,16 @@
"73": "Operational Rules & Boundaries", "73": "Operational Rules & Boundaries",
"74": "WikiController", "74": "WikiController",
"75": "PetsController", "75": "PetsController",
"76": "CreateReviewDto", "76": "PaymentService",
"77": "seo.module.ts", "77": "seo.module.ts",
"78": "Param", "78": "AdminService",
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3", "79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
"80": "Operational Rules & Boundaries", "80": "Operational Rules & Boundaries",
"81": "Operational Rules & Boundaries", "81": "Operational Rules & Boundaries",
"82": "scripts", "82": "scripts",
"83": "dependencies", "83": "dependencies",
"84": "Role & Core Objective", "84": "Role & Core Objective",
"85": "sms.service.ts", "85": "auth.service.ts",
"86": "zibal.service.ts", "86": "zibal.service.ts",
"87": "dependencies", "87": "dependencies",
"88": "HomeClient.tsx", "88": "HomeClient.tsx",
@ -92,21 +92,21 @@
"90": "SmsLogQueryDto", "90": "SmsLogQueryDto",
"91": "Reconciled Audit Roles & Assignments", "91": "Reconciled Audit Roles & Assignments",
"92": "OrdersService", "92": "OrdersService",
"93": "admin.controller.ts", "93": "app-audit-verification.e2e-spec.js",
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique", "94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
"95": "getSeoConfig", "95": "getSeoConfig",
"96": "compilerOptions", "96": "compilerOptions",
"97": "prisma", "97": "prisma",
"98": "scripts", "98": "scripts",
"99": "trust-seals/page.tsx", "99": "HomeController",
"100": "Deep Audit Summary Report", "100": "Deep Audit Summary Report",
"101": "Operational Rules & Boundaries", "101": "Operational Rules & Boundaries",
"102": "jest", "102": "jest",
"103": "Comprehensive Change Log", "103": "Comprehensive Change Log",
"104": "Coupons.tsx", "104": "Coupons.tsx",
"105": "Operational Rules & Boundaries", "105": "Operational Rules & Boundaries",
"106": "catalog/page.tsx", "106": "auth.controller.ts",
"107": "wiki/page.tsx", "107": "payment.service.ts",
"108": "PrismaService", "108": "PrismaService",
"109": "1. Summary of Integrity Repairs Performed", "109": "1. Summary of Integrity Repairs Performed",
"110": "Operational Rules & Boundaries", "110": "Operational Rules & Boundaries",
@ -121,7 +121,7 @@
"119": "compilerOptions", "119": "compilerOptions",
"120": "compilerOptions", "120": "compilerOptions",
"121": "backend/README.md", "121": "backend/README.md",
"122": ".adjustWallet", "122": "Body",
"123": "js-yaml", "123": "js-yaml",
"124": "Repository Map", "124": "Repository Map",
"125": "validate_integrity.js", "125": "validate_integrity.js",
@ -143,7 +143,7 @@
"141": "application/package.json", "141": "application/package.json",
"142": "start-dev.js", "142": "start-dev.js",
"143": "generate-openapi.js", "143": "generate-openapi.js",
"144": "AdminService", "144": "RegisterDto",
"145": "eslint-config-prettier", "145": "eslint-config-prettier",
"146": "System Discovery", "146": "System Discovery",
"147": "Media.tsx", "147": "Media.tsx",
@ -175,10 +175,10 @@
"173": "Phase 3 Audit Traceability Matrix", "173": "Phase 3 Audit Traceability Matrix",
"174": "rebuild_honest_ledger.js", "174": "rebuild_honest_ledger.js",
"175": "validate_evidence_grade.js", "175": "validate_evidence_grade.js",
"176": "Reviews.tsx", "176": "InitiatePaymentDto",
"177": "blog/page.tsx", "177": "blog/page.tsx",
"178": "prettier", "178": "prettier",
"179": "PodcastPlayerModal.tsx", "179": "VerifyOtpDto",
"180": "API Contract Specification", "180": "API Contract Specification",
"181": "⚙️ Backend Technical Review (05_dev_backend)", "181": "⚙️ Backend Technical Review (05_dev_backend)",
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)", "182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
@ -223,7 +223,7 @@
"221": "Textarea.tsx", "221": "Textarea.tsx",
"222": "admin-panel/tsconfig.json", "222": "admin-panel/tsconfig.json",
"223": "ts-jest", "223": "ts-jest",
"224": "dashboard/page.tsx", "224": "SendOtpDto",
"225": "next.config.ts", "225": "next.config.ts",
"226": "Shabnam Font README", "226": "Shabnam Font README",
"227": "AGENTS.md", "227": "AGENTS.md",
@ -310,7 +310,13 @@
"308": "vitest", "308": "vitest",
"309": "axios", "309": "axios",
"310": "tailwindcss", "310": "tailwindcss",
"311": "track/page.tsx",
"312": "BlogsModule",
"313": "app/page.tsx",
"314": "@eslint/js", "314": "@eslint/js",
"315": "typescript", "315": "typescript",
"316": "search/page.tsx",
"317": "shop/page.tsx",
"318": "MaskableField.tsx",
"324": "typescript-eslint" "324": "typescript-eslint"
} }

View File

@ -1,42 +1,42 @@
# Graph Report - canina (2026-08-23) # Graph Report - caninairan (2026-08-24)
## Corpus Check ## Corpus Check
- 544 files · ~1,299,812 words - 544 files · ~1,300,486 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 3899 nodes · 6893 edges · 314 communities (193 shown, 121 thin omitted) - 3905 nodes · 7028 edges · 320 communities (201 shown, 119 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 262 edges (avg confidence: 0.79) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 270 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `828c90b4` - Built from commit: `d1e3daf9`
- Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost). - Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation) ## Community Hubs (Navigation)
- Roles - Roles
- app.module.ts - app.module.ts
- SettingsController - SmsService
- useCartStore - productService.ts
- SafeImage.tsx - SafeImage.tsx
- CmsController - CmsController
- tickets.controller.ts - tickets.controller.ts
- PaginationDto - PaginationDto
- admin.module.ts - admin.module.ts
- devDependencies - devDependencies
- ReviewsService - CreateReviewDto
- api - Modal.tsx
- PetProfile.tsx - PetProfile.tsx
- app-audit-verification.e2e-spec.js - main.ts
- lib/services/api.ts - lib/services/api.ts
- src/services/api.ts - src/services/api.ts
- DoctorQueryDto - DoctorQueryDto
- admin.service.ts - AuthService
- JwtAuthGuard - JwtAuthGuard
- ProductsService - ProductsService
- CreateVideoDto - CreateVideoDto
- SmsService - toPersian
- UserDashboard.tsx - UserDashboard.tsx
- MenuService - MenuService
- BE-001 - BE-001
@ -47,13 +47,13 @@
- TEST-001 - TEST-001
- DEVOPS-001 - DEVOPS-001
- DOC-001 - DOC-001
- Spinner.tsx - Button.tsx
- WholesaleApplyDto - WholesaleApplyDto
- B2BService - B2BService
- auth.controller.ts - AuthController
- FaqService - FaqService
- راهنمای تست سیستم (Software Testing) - راهنمای تست سیستم (Software Testing)
- Transactions.tsx - Button
- CategoriesController - CategoriesController
- MediaController - MediaController
- What You Must Do When Invoked - What You Must Do When Invoked
@ -61,27 +61,27 @@
- BannersService - BannersService
- TestimonialsService - TestimonialsService
- What You Must Do When Invoked - What You Must Do When Invoked
- Body - AdminController
- IngredientsService - IngredientsService
- adminRoutes.tsx - adminRoutes.tsx
- devDependencies - devDependencies
- devDependencies - devDependencies
- BlogsController - BlogsController
- prescriptions.module.ts - PrescriptionsController
- SmartAdvisorService - SmartAdvisorService
- UsersService - UsersService
- UITexts.tsx - UITexts.tsx
- SettingsService - Orders.tsx
- Role & Core Objective - Role & Core Objective
- ContactService - ContactService
- compilerOptions - compilerOptions
- CreateUserDto - admin.service.ts
- CreateEBankCheckoutDto - CreateEBankCheckoutDto
- CreateOrderDto - WikiController
- dependencies - dependencies
- compilerOptions - compilerOptions
- ProductPage.tsx - ProductPage.tsx
- AdminController - ApiOperation
- PetsController - PetsController
- BlogsController - BlogsController
- Required Review Group Closures - Required Review Group Closures
@ -91,16 +91,16 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- WikiController - WikiController
- PetsController - PetsController
- CreateReviewDto - PaymentService
- seo.module.ts - seo.module.ts
- Param - AdminService
- 🏢 AI Software Agency — Master Orchestration Protocol v3 - 🏢 AI Software Agency — Master Orchestration Protocol v3
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- scripts - scripts
- dependencies - dependencies
- Role & Core Objective - Role & Core Objective
- sms.service.ts - auth.service.ts
- zibal.service.ts - zibal.service.ts
- dependencies - dependencies
- HomeClient.tsx - HomeClient.tsx
@ -108,21 +108,21 @@
- SmsLogQueryDto - SmsLogQueryDto
- Reconciled Audit Roles & Assignments - Reconciled Audit Roles & Assignments
- OrdersService - OrdersService
- admin.controller.ts - app-audit-verification.e2e-spec.js
- Phase 3.1 — Human Review Preparation and Master Backlog Critique - Phase 3.1 — Human Review Preparation and Master Backlog Critique
- getSeoConfig - getSeoConfig
- compilerOptions - compilerOptions
- prisma - prisma
- scripts - scripts
- trust-seals/page.tsx - HomeController
- Deep Audit Summary Report - Deep Audit Summary Report
- Operational Rules & Boundaries - Operational Rules & Boundaries
- jest - jest
- Comprehensive Change Log - Comprehensive Change Log
- Coupons.tsx - Coupons.tsx
- Operational Rules & Boundaries - Operational Rules & Boundaries
- catalog/page.tsx - auth.controller.ts
- wiki/page.tsx - payment.service.ts
- PrismaService - PrismaService
- 1. Summary of Integrity Repairs Performed - 1. Summary of Integrity Repairs Performed
- Operational Rules & Boundaries - Operational Rules & Boundaries
@ -137,7 +137,7 @@
- compilerOptions - compilerOptions
- compilerOptions - compilerOptions
- backend/README.md - backend/README.md
- .adjustWallet - Body
- js-yaml - js-yaml
- Repository Map - Repository Map
- validate_integrity.js - validate_integrity.js
@ -159,7 +159,7 @@
- application/package.json - application/package.json
- start-dev.js - start-dev.js
- generate-openapi.js - generate-openapi.js
- AdminService - RegisterDto
- eslint-config-prettier - eslint-config-prettier
- System Discovery - System Discovery
- Media.tsx - Media.tsx
@ -191,10 +191,10 @@
- Phase 3 Audit Traceability Matrix - Phase 3 Audit Traceability Matrix
- rebuild_honest_ledger.js - rebuild_honest_ledger.js
- validate_evidence_grade.js - validate_evidence_grade.js
- Reviews.tsx - InitiatePaymentDto
- blog/page.tsx - blog/page.tsx
- prettier - prettier
- PodcastPlayerModal.tsx - VerifyOtpDto
- API Contract Specification - API Contract Specification
- ⚙️ Backend Technical Review (05_dev_backend) - ⚙️ Backend Technical Review (05_dev_backend)
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend) - 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
@ -239,7 +239,7 @@
- Textarea.tsx - Textarea.tsx
- admin-panel/tsconfig.json - admin-panel/tsconfig.json
- ts-jest - ts-jest
- dashboard/page.tsx - SendOtpDto
- next.config.ts - next.config.ts
- Shabnam Font README - Shabnam Font README
- AGENTS.md - AGENTS.md
@ -309,21 +309,27 @@
- globals - globals
- @types/react-dom - @types/react-dom
- vitest - vitest
- track/page.tsx
- BlogsModule
- app/page.tsx
- @eslint/js - @eslint/js
- typescript - typescript
- search/page.tsx
- shop/page.tsx
- MaskableField.tsx
- typescript-eslint - typescript-eslint
## God Nodes (most connected - your core abstractions) ## God Nodes (most connected - your core abstractions)
1. `Roles()` - 105 edges 1. `Roles()` - 106 edges
2. `PrismaService` - 87 edges 2. `PrismaService` - 87 edges
3. `useSettingsStore` - 53 edges 3. `useSettingsStore` - 53 edges
4. `api` - 44 edges 4. `api` - 44 edges
5. `SmsService` - 42 edges 5. `SmsService` - 42 edges
6. `PaginationDto` - 41 edges 6. `PaginationDto` - 41 edges
7. `PaymentController` - 37 edges 7. `Button()` - 39 edges
8. `ZibalService` - 37 edges 8. `PaymentController` - 38 edges
9. `AdminService` - 35 edges 9. `ZibalService` - 37 edges
10. `JwtAuthGuard` - 35 edges 10. `AdminService` - 36 edges
## Surprising Connections (you probably didn't know these) ## Surprising Connections (you probably didn't know these)
- `User Roles and Capabilities` --conceptually_related_to--> `User Profile Photo` [INFERRED] - `User Roles and Capabilities` --conceptually_related_to--> `User Profile Photo` [INFERRED]
@ -342,7 +348,7 @@
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts` - 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts` - 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Communities (314 total, 121 thin omitted) ## Communities (320 total, 119 thin omitted)
### Community 0 - "Roles" ### Community 0 - "Roles"
Cohesion: 0.24 Cohesion: 0.24
@ -350,19 +356,19 @@ Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Bo
### Community 1 - "app.module.ts" ### Community 1 - "app.module.ts"
Cohesion: 0.08 Cohesion: 0.08
Nodes (32): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+24 more) Nodes (34): AdminModule, Module, B2BModule, Module, BannersModule, Module, CmsModule, Module (+26 more)
### Community 2 - "SettingsController" ### Community 2 - "SmsService"
Cohesion: 0.17 Cohesion: 0.06
Nodes (16): SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Delete (+8 more) Nodes (20): SmsLogQuery, SmsService, Injectable, SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags (+12 more)
### Community 3 - "useCartStore" ### Community 3 - "productService.ts"
Cohesion: 0.07 Cohesion: 0.09
Nodes (36): B2BPortal(), BlogPost, CartDrawer(), CatalogPageSpread(), CatalogPageSpreadProps, CategoryMeta, getFormBadge(), getSpeciesBadge() (+28 more) Nodes (25): BlogPost, CatalogPageSpread(), CatalogPageSpreadProps, CategoryMeta, getFormBadge(), getSpeciesBadge(), FlipbookCatalog(), FlipbookCatalogProps (+17 more)
### Community 4 - "SafeImage.tsx" ### Community 4 - "SafeImage.tsx"
Cohesion: 0.11 Cohesion: 0.09
Nodes (16): BlogPost, BlogPreviewSection(), SafeImage(), SafeImageProps, Testimonial, TestimonialsSection(), DisplayVideoItem, FALLBACK_VIDEOS (+8 more) Nodes (20): BlogPost, BlogPreviewSection(), OrderDetailsModalProps, PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps, SafeImage(), SafeImageProps (+12 more)
### Community 5 - "CmsController" ### Community 5 - "CmsController"
Cohesion: 0.09 Cohesion: 0.09
@ -373,64 +379,68 @@ Cohesion: 0.09
Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+21 more) Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+21 more)
### Community 7 - "PaginationDto" ### Community 7 - "PaginationDto"
Cohesion: 0.05 Cohesion: 0.06
Nodes (28): BlogsService, Injectable, BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder (+20 more) Nodes (17): BlogsService, Injectable, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+9 more)
### Community 8 - "admin.module.ts" ### Community 8 - "admin.module.ts"
Cohesion: 0.07 Cohesion: 0.10
Nodes (19): AdminModule, Module, CategoryQuery, ReportsController, ApiBearerAuth, ApiOperation, ApiTags, Controller (+11 more) Nodes (13): ReportsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Get, UseGuards, ReportsService (+5 more)
### Community 9 - "devDependencies" ### Community 9 - "devDependencies"
Cohesion: 0.22 Cohesion: 0.22
Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more) Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more)
### Community 10 - "ReviewsService" ### Community 10 - "CreateReviewDto"
Cohesion: 0.12 Cohesion: 0.07
Nodes (16): ReviewsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more) Nodes (29): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+21 more)
### Community 11 - "api" ### Community 11 - "Modal.tsx"
Cohesion: 0.10 Cohesion: 0.07
Nodes (22): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, Pagination(), PaginationProps (+14 more) Nodes (30): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, maxWidthClasses, Modal() (+22 more)
### Community 12 - "PetProfile.tsx" ### Community 12 - "PetProfile.tsx"
Cohesion: 0.16 Cohesion: 0.13
Nodes (16): Header(), MENU_ICONS, OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, CURRENT_SYMPTOMS, MEDICAL_HISTORIES, SmartAdvisor() (+8 more) Nodes (15): FeaturedProducts(), ProductCard(), OrderSuccess(), OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps (+7 more)
### Community 13 - "app-audit-verification.e2e-spec.js" ### Community 13 - "main.ts"
Cohesion: 0.05 Cohesion: 0.12
Nodes (30): CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable, ApiErrorResponse, ErrorDetailField (+22 more) Nodes (8): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable
### Community 14 - "lib/services/api.ts" ### Community 14 - "lib/services/api.ts"
Cohesion: 0.07 Cohesion: 0.06
Nodes (19): ContactInfoItem, LoginModal(), LoginModalProps, api, ApiErrorPayload, baseURL, ApiErr, AuthResponse (+11 more) Nodes (22): ContactInfoItem, PrescriptionUploadModal(), PrescriptionUploadModalProps, api, ApiErrorPayload, baseURL, ApiErr, AuthResponse (+14 more)
### Community 15 - "src/services/api.ts" ### Community 15 - "src/services/api.ts"
Cohesion: 0.07 Cohesion: 0.07
Nodes (34): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+26 more) Nodes (35): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+27 more)
### Community 16 - "DoctorQueryDto" ### Community 16 - "DoctorQueryDto"
Cohesion: 0.09 Cohesion: 0.09
Nodes (24): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more) Nodes (24): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
### Community 17 - "admin.service.ts" ### Community 17 - "AuthService"
Cohesion: 0.08 Cohesion: 0.16
Nodes (12): CouponTargetInput, PaginationQuery, AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput (+4 more) Nodes (3): AuthService, Injectable, normalizeMobile()
### Community 18 - "JwtAuthGuard" ### Community 18 - "JwtAuthGuard"
Cohesion: 0.15 Cohesion: 0.17
Nodes (11): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, IsNotEmpty, IsNumber (+3 more) Nodes (8): JwtAuthGuard, Injectable, B2BWholesaleOrderItem, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 19 - "ProductsService" ### Community 19 - "ProductsService"
Cohesion: 0.09 Cohesion: 0.10
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more) Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more)
### Community 20 - "CreateVideoDto" ### Community 20 - "CreateVideoDto"
Cohesion: 0.07 Cohesion: 0.07
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more) Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more)
### Community 21 - "toPersian"
Cohesion: 0.15
Nodes (23): VerifyContent(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), BackButton(), BackButtonProps (+15 more)
### Community 22 - "UserDashboard.tsx" ### Community 22 - "UserDashboard.tsx"
Cohesion: 0.10 Cohesion: 0.13
Nodes (28): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), BackButtonProps, CheckoutPage(), DeleteConfirmModal(), DeleteConfirmModalProps (+20 more) Nodes (17): AddressModal(), AddressModalProps, DeleteConfirmModal(), DeleteConfirmModalProps, OrderDetailsModal(), SearchableSelect(), SearchableSelectProps, PRESET_AMOUNTS (+9 more)
### Community 23 - "MenuService" ### Community 23 - "MenuService"
Cohesion: 0.11 Cohesion: 0.11
@ -468,21 +478,21 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati
Cohesion: 0.06 Cohesion: 0.06
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more) Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
### Community 32 - "Spinner.tsx" ### Community 32 - "Button.tsx"
Cohesion: 0.06 Cohesion: 0.08
Nodes (20): Spinner(), FAQ, MENU_TABS, MenuItem, MenuType, BestSellerItem, CategoryDistItem, COLORS (+12 more) Nodes (18): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, MENU_TABS, MenuItem, MenuType (+10 more)
### Community 33 - "WholesaleApplyDto" ### Community 33 - "WholesaleApplyDto"
Cohesion: 0.10 Cohesion: 0.10
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more) Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
### Community 34 - "B2BService" ### Community 34 - "B2BService"
Cohesion: 0.13 Cohesion: 0.14
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more) Nodes (14): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
### Community 35 - "auth.controller.ts" ### Community 35 - "AuthController"
Cohesion: 0.06 Cohesion: 0.25
Nodes (42): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+34 more) Nodes (12): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+4 more)
### Community 36 - "FaqService" ### Community 36 - "FaqService"
Cohesion: 0.12 Cohesion: 0.12
@ -492,13 +502,13 @@ Nodes (16): FaqController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
Cohesion: 0.07 Cohesion: 0.07
Nodes (25): اجرای بک‌اند, اجرای فرانت‌اند, اجرای پروژه در سرور با PM2, برای راه‌اندازی بک‌اند:, برای راه‌اندازی فرانت‌اند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسه‌ها تا پس از ری‌استارت سرور قطع نشوند:, راه‌اندازی و انتشار سیستم (Setup & Deployment) (+17 more) Nodes (25): اجرای بک‌اند, اجرای فرانت‌اند, اجرای پروژه در سرور با PM2, برای راه‌اندازی بک‌اند:, برای راه‌اندازی فرانت‌اند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسه‌ها تا پس از ری‌استارت سرور قطع نشوند:, راه‌اندازی و انتشار سیستم (Setup & Deployment) (+17 more)
### Community 38 - "Transactions.tsx" ### Community 38 - "Button"
Cohesion: 0.05 Cohesion: 0.10
Nodes (40): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Badge(), BadgeProps, BadgeVariant, variantStyles, Button() (+32 more) Nodes (19): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Badge(), BadgeProps, BadgeVariant, variantStyles, Button() (+11 more)
### Community 39 - "CategoriesController" ### Community 39 - "CategoriesController"
Cohesion: 0.10 Cohesion: 0.09
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more) Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
### Community 40 - "MediaController" ### Community 40 - "MediaController"
Cohesion: 0.11 Cohesion: 0.11
@ -513,28 +523,28 @@ Cohesion: 0.13
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more) Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
### Community 43 - "BannersService" ### Community 43 - "BannersService"
Cohesion: 0.13 Cohesion: 0.12
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more) Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 44 - "TestimonialsService" ### Community 44 - "TestimonialsService"
Cohesion: 0.13 Cohesion: 0.12
Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 45 - "What You Must Do When Invoked" ### Community 45 - "What You Must Do When Invoked"
Cohesion: 0.07 Cohesion: 0.07
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) 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 - "Body" ### Community 46 - "AdminController"
Cohesion: 0.17 Cohesion: 0.14
Nodes (3): Body, Put, CouponInput Nodes (6): AdminController, ApiBearerAuth, ApiTags, Controller, Put, UseGuards
### Community 47 - "IngredientsService" ### Community 47 - "IngredientsService"
Cohesion: 0.13 Cohesion: 0.12
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 48 - "adminRoutes.tsx" ### Community 48 - "adminRoutes.tsx"
Cohesion: 0.06 Cohesion: 0.07
Nodes (26): App(), HeroBanner, VetTestimonial, ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, Ticket (+18 more) Nodes (20): App(), HeroBanner, VetTestimonial, ContactInfoItem, ContactSubmission, BestSellerItem, CategoryDistItem, COLORS (+12 more)
### Community 49 - "devDependencies" ### Community 49 - "devDependencies"
Cohesion: 0.11 Cohesion: 0.11
@ -548,22 +558,26 @@ Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsd
Cohesion: 0.14 Cohesion: 0.14
Nodes (16): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more) Nodes (16): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 52 - "prescriptions.module.ts" ### Community 52 - "PrescriptionsController"
Cohesion: 0.12 Cohesion: 0.16
Nodes (16): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+8 more) Nodes (12): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+4 more)
### Community 53 - "SmartAdvisorService" ### Community 53 - "SmartAdvisorService"
Cohesion: 0.13 Cohesion: 0.11
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (16): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
### Community 54 - "UsersService" ### Community 54 - "UsersService"
Cohesion: 0.06 Cohesion: 0.05
Nodes (41): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+33 more) Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
### Community 55 - "UITexts.tsx" ### Community 55 - "UITexts.tsx"
Cohesion: 0.10 Cohesion: 0.10
Nodes (18): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, COLORS, RichTextEditor(), RichTextEditorProps, ToggleSwitch(), ToggleSwitchProps (+10 more) Nodes (18): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, COLORS, RichTextEditor(), RichTextEditorProps, ToggleSwitch(), ToggleSwitchProps (+10 more)
### Community 56 - "Orders.tsx"
Cohesion: 0.09
Nodes (20): Pagination(), PaginationProps, Skeleton(), getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderItem, Orders() (+12 more)
### Community 57 - "Role & Core Objective" ### Community 57 - "Role & Core Objective"
Cohesion: 0.09 Cohesion: 0.09
Nodes (22): CREATE MODE — Normal Operation, Expected JSON Output Schema, File Scope Boundary, Forbidden Actions, MODE 1: REVIEW (called during Review Phase), MODE 2: CONTENT CREATION (standalone task from backlog), Operating Modes, Operational Rules & Boundaries (+14 more) Nodes (22): CREATE MODE — Normal Operation, Expected JSON Output Schema, File Scope Boundary, Forbidden Actions, MODE 1: REVIEW (called during Review Phase), MODE 2: CONTENT CREATION (standalone task from backlog), Operating Modes, Operational Rules & Boundaries (+14 more)
@ -576,17 +590,17 @@ Nodes (11): ContactController, Body, Controller, Get, Param, Post, Put, Query (+
Cohesion: 0.06 Cohesion: 0.06
Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more) Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more)
### Community 60 - "CreateUserDto" ### Community 60 - "admin.service.ts"
Cohesion: 0.21 Cohesion: 0.17
Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more) Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more)
### Community 61 - "CreateEBankCheckoutDto" ### Community 61 - "CreateEBankCheckoutDto"
Cohesion: 0.22 Cohesion: 0.22
Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsNumber, IsOptional, IsString, Min Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsNumber, IsOptional, IsString, Min
### Community 62 - "CreateOrderDto" ### Community 62 - "WikiController"
Cohesion: 0.21 Cohesion: 0.13
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more) Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
### Community 63 - "dependencies" ### Community 63 - "dependencies"
Cohesion: 0.10 Cohesion: 0.10
@ -597,12 +611,12 @@ Cohesion: 0.10
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more) Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
### Community 65 - "ProductPage.tsx" ### Community 65 - "ProductPage.tsx"
Cohesion: 0.15 Cohesion: 0.13
Nodes (12): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore, ProductReviews() (+4 more) Nodes (14): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore, ProductReviews() (+6 more)
### Community 66 - "AdminController" ### Community 66 - "ApiOperation"
Cohesion: 0.24 Cohesion: 0.12
Nodes (9): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+1 more) Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 67 - "PetsController" ### Community 67 - "PetsController"
Cohesion: 0.10 Cohesion: 0.10
@ -621,8 +635,8 @@ Cohesion: 0.08
Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more) Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more)
### Community 71 - "getPageMetadata" ### Community 71 - "getPageMetadata"
Cohesion: 0.13 Cohesion: 0.14
Nodes (9): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), ArchivePage(), SearchResultsPage() (+1 more) Nodes (7): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), getPageMetadata()
### Community 72 - "Operational Rules & Boundaries" ### Community 72 - "Operational Rules & Boundaries"
Cohesion: 0.11 Cohesion: 0.11
@ -640,14 +654,14 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
Cohesion: 0.05 Cohesion: 0.05
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more) Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
### Community 76 - "CreateReviewDto"
Cohesion: 0.14
Nodes (13): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+5 more)
### Community 77 - "seo.module.ts" ### Community 77 - "seo.module.ts"
Cohesion: 0.16 Cohesion: 0.16
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more) Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
### Community 78 - "AdminService"
Cohesion: 0.20
Nodes (4): Delete, Param, AdminService, Injectable
### Community 79 - "🏢 AI Software Agency — Master Orchestration Protocol v3" ### Community 79 - "🏢 AI Software Agency — Master Orchestration Protocol v3"
Cohesion: 0.11 Cohesion: 0.11
Nodes (17): Activation, Agent Directory Reference, 🏢 AI Software Agency — Master Orchestration Protocol v3, Phase 1: Specialist Review (All agents read, none write code yet), Phase 2: Master Synthesis (02_product_manager in SYNTHESIS mode), Phase 3: Execution (Same as always), PIPELINE A — New Project (GREENFIELD), PIPELINE B — Review & Improve Existing Project (REVIEW_AND_PLAN) ★ (+9 more) Nodes (17): Activation, Agent Directory Reference, 🏢 AI Software Agency — Master Orchestration Protocol v3, Phase 1: Specialist Review (All agents read, none write code yet), Phase 2: Master Synthesis (02_product_manager in SYNTHESIS mode), Phase 3: Execution (Same as always), PIPELINE A — New Project (GREENFIELD), PIPELINE B — Review & Improve Existing Project (REVIEW_AND_PLAN) ★ (+9 more)
@ -672,21 +686,21 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
Cohesion: 0.12 Cohesion: 0.12
Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more) Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more)
### Community 85 - "sms.service.ts" ### Community 85 - "auth.service.ts"
Cohesion: 0.22 Cohesion: 0.15
Nodes (5): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery Nodes (8): AdminLoginInput, LoginInput, RegisterInput, RedisModule, Global, Module, RedisService, Injectable
### Community 86 - "zibal.service.ts" ### Community 86 - "zibal.service.ts"
Cohesion: 0.09 Cohesion: 0.16
Nodes (17): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, GatewayHealthResult (+9 more) Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRequestOptions, PaymentRequestResult, PaymentVerifyResult, ZibalInquiryResponse, ZibalRequestResponse (+1 more)
### Community 87 - "dependencies" ### Community 87 - "dependencies"
Cohesion: 0.12 Cohesion: 0.12
Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, sonner (+9 more) Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, sonner (+9 more)
### Community 88 - "HomeClient.tsx" ### Community 88 - "HomeClient.tsx"
Cohesion: 0.10 Cohesion: 0.14
Nodes (23): HomeClient(), HomeClientProps, getHomeData(), Home(), ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, BannerPlacement() (+15 more) Nodes (17): HomeClient(), HomeClientProps, CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, Hero(), StatCounter() (+9 more)
### Community 89 - "seed-products.ts" ### Community 89 - "seed-products.ts"
Cohesion: 0.17 Cohesion: 0.17
@ -701,12 +715,12 @@ 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) 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" ### Community 92 - "OrdersService"
Cohesion: 0.09 Cohesion: 0.08
Nodes (20): OrdersController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+12 more) Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
### Community 93 - "admin.controller.ts" ### Community 93 - "app-audit-verification.e2e-spec.js"
Cohesion: 0.33 Cohesion: 0.13
Nodes (4): AdminQueryDto, ApiPropertyOptional, IsOptional, IsString Nodes (14): ApiErrorResponse, ErrorDetailField, ApiProperty, app_module_1, client_1, common_1, decimal_interceptor_1, fs (+6 more)
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique" ### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
Cohesion: 0.13 Cohesion: 0.13
@ -724,6 +738,10 @@ Nodes (32): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModu
Cohesion: 0.14 Cohesion: 0.14
Nodes (14): scripts, build, build:nest, docs:generate, lint, start, start:debug, start:dev (+6 more) Nodes (14): scripts, build, build:nest, docs:generate, lint, start, start:debug, start:dev (+6 more)
### Community 99 - "HomeController"
Cohesion: 0.16
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
### Community 100 - "Deep Audit Summary Report" ### Community 100 - "Deep Audit Summary Report"
Cohesion: 0.14 Cohesion: 0.14
Nodes (13): 1. Audit Overview, 2. Findings Metrics, 3. Inspected Scope & Command Log, 4. Key Business & Integration Questions, 5. Audit Limitations & Integrity Confirmation, 6. Exact Next Recommended Phase, Blocked Commands & Reasons, By Confidence (+5 more) Nodes (13): 1. Audit Overview, 2. Findings Metrics, 3. Inspected Scope & Command Log, 4. Key Business & Integration Questions, 5. Audit Limitations & Integrity Confirmation, 6. Exact Next Recommended Phase, Blocked Commands & Reasons, By Confidence (+5 more)
@ -741,16 +759,24 @@ 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) 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 - "Coupons.tsx" ### Community 104 - "Coupons.tsx"
Cohesion: 0.15 Cohesion: 0.12
Nodes (11): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+3 more) Nodes (13): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+5 more)
### Community 105 - "Operational Rules & Boundaries" ### Community 105 - "Operational Rules & Boundaries"
Cohesion: 0.17 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) 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 - "auth.controller.ts"
Cohesion: 0.16
Nodes (11): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength, LoginDto, ApiProperty (+3 more)
### Community 107 - "payment.service.ts"
Cohesion: 0.20
Nodes (8): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, ClientMetadata
### Community 108 - "PrismaService" ### Community 108 - "PrismaService"
Cohesion: 0.07 Cohesion: 0.07
Nodes (18): ApiExcludeController, MetricsController, Controller, Get, Res, CreateContactSubmissionDto, UpdateContactInfoItemDto, MenuType (+10 more) Nodes (22): ApiExcludeController, MetricsController, Controller, Get, Res, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+14 more)
### Community 109 - "1. Summary of Integrity Repairs Performed" ### Community 109 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17 Cohesion: 0.17
@ -769,7 +795,7 @@ Cohesion: 0.18
Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more) Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
### Community 113 - "ProductDto" ### Community 113 - "ProductDto"
Cohesion: 0.20 Cohesion: 0.22
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
### Community 114 - "AppService" ### Community 114 - "AppService"
@ -817,8 +843,8 @@ Cohesion: 0.20
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more) Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
### Community 129 - "seo.ts" ### Community 129 - "seo.ts"
Cohesion: 0.20 Cohesion: 0.18
Nodes (5): generateMetadata(), generateMetadata(), DEFAULT_SEO_CONFIG, PageMetadataOptions, SeoConfig Nodes (6): CatalogClient(), generateMetadata(), generateMetadata(), DEFAULT_SEO_CONFIG, PageMetadataOptions, SeoConfig
### Community 130 - "Sahel-Font" ### Community 130 - "Sahel-Font"
Cohesion: 0.20 Cohesion: 0.20
@ -872,6 +898,10 @@ Nodes (7): backend, distMainPath, fs, http, path, { spawn, execSync }, waitForBa
Cohesion: 0.25 Cohesion: 0.25
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
### Community 144 - "RegisterDto"
Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 146 - "System Discovery" ### Community 146 - "System Discovery"
Cohesion: 0.25 Cohesion: 0.25
Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status Matrix, Excluded / Non-Auditable Artifacts, Major Business Domains Discovered, System Discovery, Technical Architecture Summary Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status Matrix, Excluded / Non-Auditable Artifacts, Major Business Domains Discovered, System Discovery, Technical Architecture Summary
@ -964,17 +994,17 @@ Nodes (4): evidenceList, ledger, mandatoryMap, mandatoryScope
Cohesion: 0.40 Cohesion: 0.40
Nodes (4): activeFiles, errors, validationOutput, warnings Nodes (4): activeFiles, errors, validationOutput, warnings
### Community 176 - "Reviews.tsx" ### Community 176 - "InitiatePaymentDto"
Cohesion: 0.50 Cohesion: 0.43
Nodes (4): ProductReview, Reviews(), toPersianDigits(), Reviews Nodes (7): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
### Community 177 - "blog/page.tsx" ### Community 177 - "blog/page.tsx"
Cohesion: 0.50 Cohesion: 0.50
Nodes (4): Blog(), generateMetadata(), getBlogs(), BlogPage() Nodes (4): Blog(), generateMetadata(), getBlogs(), BlogPage()
### Community 179 - "PodcastPlayerModal.tsx" ### Community 179 - "VerifyOtpDto"
Cohesion: 0.40 Cohesion: 0.29
Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length
### Community 180 - "API Contract Specification" ### Community 180 - "API Contract Specification"
Cohesion: 0.50 Cohesion: 0.50
@ -1017,8 +1047,8 @@ Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps Nodes (3): Select, SelectOption, SelectProps
### Community 199 - "useSettingsStore" ### Community 199 - "useSettingsStore"
Cohesion: 0.10 Cohesion: 0.11
Nodes (24): ClientLayout(), AuthModal(), AuthModalProps, extractOtpFromText(), BrandLogo(), BrandLogoProps, FAQItem, FAQSection() (+16 more) Nodes (22): ClientLayout(), BrandLogo(), BrandLogoProps, EnamadBadge(), FAQItem, FAQSection(), Footer(), MENU_ICONS (+14 more)
### Community 200 - "application/README.md" ### Community 200 - "application/README.md"
Cohesion: 0.50 Cohesion: 0.50
@ -1032,41 +1062,49 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
Cohesion: 0.67 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 Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan
### Community 224 - "SendOtpDto"
Cohesion: 0.33
Nodes (5): SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches
### Community 226 - "Shabnam Font README" ### Community 226 - "Shabnam Font README"
Cohesion: 0.67 Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font 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" ### Community 298 - ".initiateOrderPayment"
Cohesion: 0.14 Cohesion: 0.18
Nodes (17): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+9 more) Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
### Community 301 - "app.e2e-spec.js" ### Community 301 - "app.e2e-spec.js"
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): app_module_1, supertest_1, testing_1 Nodes (3): app_module_1, supertest_1, testing_1
### Community 312 - "BlogsModule"
Cohesion: 0.33
Nodes (4): BlogsModule, Module, OrdersModule, Module
### Community 313 - "app/page.tsx"
Cohesion: 0.67
Nodes (3): generateMetadata(), getHomeData(), Home()
## Knowledge Gaps ## Knowledge Gaps
- **1278 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1273 more) - **1278 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1273 more)
These have ≤1 connection - possible missing edges or undocumented components. These have ≤1 connection - possible missing edges or undocumented components.
- **121 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. - **119 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions ## Suggested Questions
_Questions this graph is uniquely positioned to answer:_ _Questions this graph is uniquely positioned to answer:_
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `SettingsController`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `prescriptions.module.ts`, `SmartAdvisorService`, `MenuService`, `ContactService`?** - **Why does `ApiResponse` connect `src/services/api.ts` to `HomeController`, `AuthController`, `BlogsController`, `PetsController`, `ProductsService`, `UsersService`, `OrdersService`, `WikiController`?**
_High betweenness centrality (0.067) - this node is a cross-community bridge._ _High betweenness centrality (0.065) - this node is a cross-community bridge._
- **Why does `ApiResponse` connect `src/services/api.ts` to `auth.controller.ts`, `BlogsController`, `PaginationDto`, `PetsController`, `app-audit-verification.e2e-spec.js`, `ProductsService`, `UsersService`, `OrdersService`?** - **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `SmsService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsController`, `SmartAdvisorService`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.066) - this node is a cross-community bridge._ _High betweenness centrality (0.064) - this node is a cross-community bridge._
- **Why does `PrismaService` connect `PrismaService` to `app.module.ts`, `CmsController`, `tickets.controller.ts`, `PaginationDto`, `admin.module.ts`, `ReviewsService`, `app-audit-verification.e2e-spec.js`, `DoctorQueryDto`, `admin.service.ts`, `ProductsService`, `CreateVideoDto`, `SmsService`, `MenuService`, `WholesaleApplyDto`, `B2BService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `prescriptions.module.ts`, `SmartAdvisorService`, `UsersService`, `SettingsService`, `ContactService`, `PetsController`, `PetsController`, `CreateReviewDto`, `seo.module.ts`, `sms.service.ts`, `zibal.service.ts`, `OrdersService`?** - **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `CategoriesController`, `MediaController`, `PaginationDto`, `admin.module.ts`, `auth.controller.ts`, `PetsController`, `DoctorQueryDto`, `ProductsService`, `CreateVideoDto`, `UsersService`, `admin.service.ts`?**
_High betweenness centrality (0.034) - this node is a cross-community bridge._ _High betweenness centrality (0.036) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?** - **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1278 weakly-connected nodes found - possible documentation gaps or missing edges._ _1278 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `app.module.ts` be split into smaller, more focused modules?** - **Should `app.module.ts` be split into smaller, more focused modules?**
_Cohesion score 0.07955596669750231 - nodes in this community are weakly interconnected._ _Cohesion score 0.07510204081632653 - nodes in this community are weakly interconnected._
- **Should `useCartStore` be split into smaller, more focused modules?** - **Should `SmsService` be split into smaller, more focused modules?**
_Cohesion score 0.07244843997884717 - nodes in this community are weakly interconnected._ _Cohesion score 0.060542309490416085 - nodes in this community are weakly interconnected._
- **Should `SafeImage.tsx` be split into smaller, more focused modules?** - **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.10846560846560846 - nodes in this community are weakly interconnected._ _Cohesion score 0.08888888888888889 - 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

View File

@ -1,16 +1,16 @@
# Graph Report - caninairan (2026-08-24) # Graph Report - caninairan (2026-08-24)
## Corpus Check ## Corpus Check
- 544 files · ~1,300,486 words - 544 files · ~1,300,529 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 3905 nodes · 7028 edges · 320 communities (201 shown, 119 thin omitted) - 3905 nodes · 7028 edges · 320 communities (200 shown, 120 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 270 edges (avg confidence: 0.8) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 270 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `d1e3daf9` - Built from commit: `b9188555`
- Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost). - Run `graphify update .` after code changes (no API cost).
@ -36,7 +36,7 @@
- JwtAuthGuard - JwtAuthGuard
- ProductsService - ProductsService
- CreateVideoDto - CreateVideoDto
- toPersian - NetworkBanner.tsx
- UserDashboard.tsx - UserDashboard.tsx
- MenuService - MenuService
- BE-001 - BE-001
@ -307,7 +307,7 @@
- @testing-library/react - @testing-library/react
- @types/react - @types/react
- globals - globals
- @types/react-dom - eslint-config-next
- vitest - vitest
- track/page.tsx - track/page.tsx
- BlogsModule - BlogsModule
@ -348,7 +348,7 @@
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts` - 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts` - 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Communities (320 total, 119 thin omitted) ## Communities (320 total, 120 thin omitted)
### Community 0 - "Roles" ### Community 0 - "Roles"
Cohesion: 0.24 Cohesion: 0.24
@ -399,8 +399,8 @@ Cohesion: 0.07
Nodes (30): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, maxWidthClasses, Modal() (+22 more) Nodes (30): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, maxWidthClasses, Modal() (+22 more)
### Community 12 - "PetProfile.tsx" ### Community 12 - "PetProfile.tsx"
Cohesion: 0.13 Cohesion: 0.11
Nodes (15): FeaturedProducts(), ProductCard(), OrderSuccess(), OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps (+7 more) Nodes (19): FeaturedProducts(), ProductCard(), OrderSuccess(), OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps (+11 more)
### Community 13 - "main.ts" ### Community 13 - "main.ts"
Cohesion: 0.12 Cohesion: 0.12
@ -408,7 +408,7 @@ Nodes (8): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionF
### Community 14 - "lib/services/api.ts" ### Community 14 - "lib/services/api.ts"
Cohesion: 0.06 Cohesion: 0.06
Nodes (22): ContactInfoItem, PrescriptionUploadModal(), PrescriptionUploadModalProps, api, ApiErrorPayload, baseURL, ApiErr, AuthResponse (+14 more) Nodes (24): ContactInfoItem, LoginModal(), LoginModalProps, PrescriptionUploadModal(), PrescriptionUploadModalProps, api, ApiErrorPayload, baseURL (+16 more)
### Community 15 - "src/services/api.ts" ### Community 15 - "src/services/api.ts"
Cohesion: 0.07 Cohesion: 0.07
@ -434,13 +434,9 @@ Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, P
Cohesion: 0.07 Cohesion: 0.07
Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more) Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more)
### Community 21 - "toPersian"
Cohesion: 0.15
Nodes (23): VerifyContent(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), BackButton(), BackButtonProps (+15 more)
### Community 22 - "UserDashboard.tsx" ### Community 22 - "UserDashboard.tsx"
Cohesion: 0.13 Cohesion: 0.11
Nodes (17): AddressModal(), AddressModalProps, DeleteConfirmModal(), DeleteConfirmModalProps, OrderDetailsModal(), SearchableSelect(), SearchableSelectProps, PRESET_AMOUNTS (+9 more) Nodes (26): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), BackButtonProps, CheckoutPage(), DeleteConfirmModal(), DeleteConfirmModalProps (+18 more)
### Community 23 - "MenuService" ### Community 23 - "MenuService"
Cohesion: 0.11 Cohesion: 0.11
@ -552,7 +548,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
### Community 50 - "devDependencies" ### Community 50 - "devDependencies"
Cohesion: 0.13 Cohesion: 0.13
Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, tailwindcss, @tailwindcss/postcss, @types/node (+7 more) Nodes (15): devDependencies, eslint, jsdom, tailwindcss, @tailwindcss/postcss, @types/node, @types/react-dom, @vitejs/plugin-react (+7 more)
### Community 51 - "BlogsController" ### Community 51 - "BlogsController"
Cohesion: 0.14 Cohesion: 0.14
@ -612,7 +608,7 @@ Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib
### Community 65 - "ProductPage.tsx" ### Community 65 - "ProductPage.tsx"
Cohesion: 0.13 Cohesion: 0.13
Nodes (14): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore, ProductReviews() (+6 more) Nodes (15): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore, ProductReviews() (+7 more)
### Community 66 - "ApiOperation" ### Community 66 - "ApiOperation"
Cohesion: 0.12 Cohesion: 0.12
@ -700,7 +696,7 @@ Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, s
### Community 88 - "HomeClient.tsx" ### Community 88 - "HomeClient.tsx"
Cohesion: 0.14 Cohesion: 0.14
Nodes (17): HomeClient(), HomeClientProps, CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, Hero(), StatCounter() (+9 more) Nodes (17): HomeClient(), HomeClientProps, ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, Hero() (+9 more)
### Community 89 - "seed-products.ts" ### Community 89 - "seed-products.ts"
Cohesion: 0.17 Cohesion: 0.17
@ -1047,8 +1043,8 @@ Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps Nodes (3): Select, SelectOption, SelectProps
### Community 199 - "useSettingsStore" ### Community 199 - "useSettingsStore"
Cohesion: 0.11 Cohesion: 0.12
Nodes (22): ClientLayout(), BrandLogo(), BrandLogoProps, EnamadBadge(), FAQItem, FAQSection(), Footer(), MENU_ICONS (+14 more) Nodes (27): ClientLayout(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), BrandLogo(), BrandLogoProps, CartDrawer() (+19 more)
### Community 200 - "application/README.md" ### Community 200 - "application/README.md"
Cohesion: 0.50 Cohesion: 0.50
@ -1089,7 +1085,7 @@ Nodes (3): generateMetadata(), getHomeData(), Home()
## Knowledge Gaps ## Knowledge Gaps
- **1278 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1273 more) - **1278 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1273 more)
These have ≤1 connection - possible missing edges or undocumented components. These have ≤1 connection - possible missing edges or undocumented components.
- **119 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. - **120 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions ## Suggested Questions
_Questions this graph is uniquely positioned to answer:_ _Questions this graph is uniquely positioned to answer:_

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

View File

@ -1218,8 +1218,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/admin-panel/src/pages/Products.tsx": { "frontend/admin-panel/src/pages/Products.tsx": {
"mtime": 1787520351.3262084, "mtime": 1787521911.235717,
"seen": 1787521817.251278, "seen": 1787523364.4096823,
"ast_hash": "b5276c59fd281eb5135bf0ec1a02fb45", "ast_hash": "b5276c59fd281eb5135bf0ec1a02fb45",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1518,8 +1518,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/ArchivePage.tsx": { "frontend/application/components/ArchivePage.tsx": {
"mtime": 1787520351.3302107, "mtime": 1787521911.2407174,
"seen": 1787521817.251408, "seen": 1787523364.437178,
"ast_hash": "60090dda4b3e7920b17d5c9b4d6e90d9", "ast_hash": "60090dda4b3e7920b17d5c9b4d6e90d9",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1590,14 +1590,14 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/FeaturedProducts.tsx": { "frontend/application/components/FeaturedProducts.tsx": {
"mtime": 1787520351.3322089, "mtime": 1787523184.240043,
"seen": 1787521817.251439, "seen": 1787523364.4428003,
"ast_hash": "a1db88fa79dc9ec8ece02050fde9ed59", "ast_hash": "a2adec0a4d3c4fae99aff04b96136933",
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/Footer.tsx": { "frontend/application/components/Footer.tsx": {
"mtime": 1787521548.111487, "mtime": 1787521873.5160186,
"seen": 1787521817.2514412, "seen": 1787523364.4428072,
"ast_hash": "0c95b1f0c18b3f5916426a11ca32080f", "ast_hash": "0c95b1f0c18b3f5916426a11ca32080f",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1644,8 +1644,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/OrderDetailsModal.tsx": { "frontend/application/components/OrderDetailsModal.tsx": {
"mtime": 1787521563.534203, "mtime": 1787521873.5190487,
"seen": 1787521817.2514563, "seen": 1787523364.4451466,
"ast_hash": "33f3b67271e3aebb658832bcd55dc724", "ast_hash": "33f3b67271e3aebb658832bcd55dc724",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1662,8 +1662,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/PetProfile.tsx": { "frontend/application/components/PetProfile.tsx": {
"mtime": 1787521674.111283, "mtime": 1787521873.5280473,
"seen": 1787521817.2514617, "seen": 1787523364.445775,
"ast_hash": "eb76224ae401494b5c53f98bc663bbba", "ast_hash": "eb76224ae401494b5c53f98bc663bbba",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1674,14 +1674,14 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/ProductPage.tsx": { "frontend/application/components/ProductPage.tsx": {
"mtime": 1787521475.9069345, "mtime": 1787521911.2457168,
"seen": 1787521817.2514699, "seen": 1787523364.4461324,
"ast_hash": "d0b175868635ce94b9bbb9ad41adf938", "ast_hash": "d0b175868635ce94b9bbb9ad41adf938",
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/SafeImage.tsx": { "frontend/application/components/SafeImage.tsx": {
"mtime": 1787521107.531712, "mtime": 1787521873.5475776,
"seen": 1787521817.2514734, "seen": 1787523364.4465334,
"ast_hash": "af4fb3f7b0363b5cb0ed5329c70ac1b2", "ast_hash": "af4fb3f7b0363b5cb0ed5329c70ac1b2",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -1830,8 +1830,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/lib/services/productService.ts": { "frontend/application/lib/services/productService.ts": {
"mtime": 1787520351.3372207, "mtime": 1787521911.247717,
"seen": 1787521817.251534, "seen": 1787523364.458532,
"ast_hash": "0cdaf8956e9bdbb8f73de38e5cb192b8", "ast_hash": "0cdaf8956e9bdbb8f73de38e5cb192b8",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -3168,14 +3168,14 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/BannerPlacement.tsx": { "frontend/application/components/BannerPlacement.tsx": {
"mtime": 1787521146.0667057, "mtime": 1787521873.5115192,
"seen": 1787521817.2514157, "seen": 1787523364.4382982,
"ast_hash": "07d28c2ba50fb8920d093bb523d279ca", "ast_hash": "07d28c2ba50fb8920d093bb523d279ca",
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/BrandLogo.tsx": { "frontend/application/components/BrandLogo.tsx": {
"mtime": 1787521173.4592164, "mtime": 1787521873.5135057,
"seen": 1787521817.2514217, "seen": 1787523364.4389758,
"ast_hash": "f180f3378dbf473fbc2756faa4d5efa6", "ast_hash": "f180f3378dbf473fbc2756faa4d5efa6",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -3288,14 +3288,14 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/PodcastPlayerModal.tsx": { "frontend/application/components/PodcastPlayerModal.tsx": {
"mtime": 1787521390.0340972, "mtime": 1787521873.5325625,
"seen": 1787521817.251466, "seen": 1787523364.445781,
"ast_hash": "9b5b7a106e6415e45a0e6a96cacdef8e", "ast_hash": "9b5b7a106e6415e45a0e6a96cacdef8e",
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/application/components/PodcastInlinePlayer.tsx": { "frontend/application/components/PodcastInlinePlayer.tsx": {
"mtime": 1787521347.0107746, "mtime": 1787521873.530064,
"seen": 1787521817.2514637, "seen": 1787523364.4457784,
"ast_hash": "ddc318d43ed1c00b3751108d6fa42866", "ast_hash": "ddc318d43ed1c00b3751108d6fa42866",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -3318,8 +3318,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/admin-panel/src/components/ui/RichTextEditor.tsx": { "frontend/admin-panel/src/components/ui/RichTextEditor.tsx": {
"mtime": 1787520351.3222096, "mtime": 1787521911.2317145,
"seen": 1787521817.2511349, "seen": 1787523364.3972886,
"ast_hash": "57bf9b7c2258117caea626b233c01cd9", "ast_hash": "57bf9b7c2258117caea626b233c01cd9",
"semantic_hash": "" "semantic_hash": ""
}, },
@ -3444,8 +3444,8 @@
"semantic_hash": "" "semantic_hash": ""
}, },
"frontend/admin-panel/src/pages/ZibalPortalPage.tsx": { "frontend/admin-panel/src/pages/ZibalPortalPage.tsx": {
"mtime": 1787520351.3282132, "mtime": 1787521911.2377188,
"seen": 1787521817.2513177, "seen": 1787523364.419189,
"ast_hash": "621681c2a7701baa5fe57f6716d9a360", "ast_hash": "621681c2a7701baa5fe57f6716d9a360",
"semantic_hash": "" "semantic_hash": ""
}, },