feat(ux): add nextjs-toploader navigation progress bar and resolve local dev port conflicts
Some checks failed
Deploy Canina / deploy (push) Successful in 1m32s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s

This commit is contained in:
parsa aghaei 2026-08-29 13:31:05 +03:30
parent b68dd29541
commit 2d54fc8208
19 changed files with 11241 additions and 11034 deletions

View File

@ -6,7 +6,7 @@ import type { ApiResponse, AuthResponseData } from '../types/admin';
export const BASE_DOMAIN = import.meta.env.VITE_API_URL
? import.meta.env.VITE_API_URL.replace(/\/api$/, '')
: (import.meta.env.DEV ? 'http://127.0.0.1:4001' : '');
: (import.meta.env.DEV ? 'http://127.0.0.1:4400' : '');
const baseURL = `${BASE_DOMAIN}/api`;

View File

@ -1,5 +1,6 @@
import type { Metadata } from 'next';
import './globals.css';
import NextTopLoader from 'nextjs-toploader';
import ClientLayout from './ClientLayout';
import { getSeoConfig } from '../lib/seo';
import { vazirmatn, lalezar } from '../lib/fonts';
@ -146,6 +147,18 @@ export default function RootLayout({
return (
<html lang="fa" dir="rtl" className={`${vazirmatn.variable} ${lalezar.variable}`} suppressHydrationWarning>
<body className="min-h-screen bg-medical-gray-50 font-sans" suppressHydrationWarning>
<NextTopLoader
color="#0284c7"
initialPosition={0.08}
crawlSpeed={200}
height={3}
crawl={true}
showSpinner={false}
easing="ease"
speed={200}
shadow="0 0 12px rgba(2,132,199,0.7), 0 0 4px #0284c7"
zIndex={99999}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: safeJsonLd }}

View File

@ -5,13 +5,13 @@ import { useUserStore } from '../store/userStore';
const getBaseURL = () => {
if (process.env.NEXT_PUBLIC_API_URL) return process.env.NEXT_PUBLIC_API_URL;
if (typeof window === 'undefined') {
return 'http://127.0.0.1:4001/api';
return 'http://127.0.0.1:4400/api';
}
return process.env.NODE_ENV === 'development' ? 'http://localhost:4001/api' : '/api';
return process.env.NODE_ENV === 'development' ? 'http://localhost:4400/api' : '/api';
};
const baseURL = getBaseURL();
export const BASE_DOMAIN = process.env.NEXT_PUBLIC_API_URL?.replace('/api', '') || (typeof window !== 'undefined' && process.env.NODE_ENV === 'development' ? 'http://localhost:4001' : '');
export const BASE_DOMAIN = process.env.NEXT_PUBLIC_API_URL?.replace('/api', '') || (typeof window !== 'undefined' && process.env.NODE_ENV === 'development' ? 'http://localhost:4400' : '');
export interface ApiErrorPayload {
success: boolean;

View File

@ -12,6 +12,7 @@
"lucide-react": "^0.475.0",
"motion": "^12.40.0",
"next": "16.2.9",
"nextjs-toploader": "^3.9.17",
"react": "19.2.4",
"react-dom": "19.2.4",
"sonner": "^2.0.7",
@ -5728,7 +5729,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true,
"license": "MIT"
},
"node_modules/js-yaml": {
@ -6212,7 +6212,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
@ -6524,6 +6523,24 @@
"node": "^10 || ^12 || >=14"
}
},
"node_modules/nextjs-toploader": {
"version": "3.9.17",
"resolved": "https://registry.npmjs.org/nextjs-toploader/-/nextjs-toploader-3.9.17.tgz",
"integrity": "sha512-9OF0KSSLtoSAuNg2LZ3aTl4hR9mBDj5L9s9DZiFCbMlXehyICGjkIz5dVGzuATU2bheJZoBdFgq9w07AKSuQQw==",
"license": "MIT",
"dependencies": {
"nprogress": "^0.2.0",
"prop-types": "^15.8.1"
},
"funding": {
"url": "https://buymeacoffee.com/thesgj"
},
"peerDependencies": {
"next": ">= 6.0.0",
"react": ">= 16.0.0",
"react-dom": ">= 16.0.0"
}
},
"node_modules/node-exports-info": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
@ -6553,11 +6570,16 @@
"node": ">=18"
}
},
"node_modules/nprogress": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
"integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
"license": "MIT"
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@ -6928,7 +6950,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
@ -7001,7 +7022,6 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/redent": {

View File

@ -13,6 +13,7 @@
"lucide-react": "^0.475.0",
"motion": "^12.40.0",
"next": "16.2.9",
"nextjs-toploader": "^3.9.17",
"react": "19.2.4",
"react-dom": "19.2.4",
"sonner": "^2.0.7",

View File

@ -7,9 +7,9 @@
"5": "CmsController",
"6": "tickets.controller.ts",
"7": "Button.tsx",
"8": "pets/pets.controller.ts",
"8": "WikiController",
"9": "devDependencies",
"10": "CreateReviewDto",
"10": "ReviewsService",
"11": "MediaSelector.tsx",
"12": "index.ts",
"13": "app-audit-verification.e2e-spec.js",
@ -32,7 +32,7 @@
"30": "DEVOPS-001",
"31": "DOC-001",
"32": "adminRoutes.tsx",
"33": "WholesaleApplyDto",
"33": "WholesaleService",
"34": "B2BService",
"35": "AuthController",
"36": "FaqService",
@ -59,13 +59,13 @@
"57": "Role & Core Objective",
"58": "ContactService",
"59": "compilerOptions",
"60": "PaymentService",
"60": "payment.service.ts",
"61": "useCartStore",
"62": "SmsService",
"63": "dependencies",
"64": "compilerOptions",
"65": "BlogsService",
"66": "ApiOperation",
"66": "AdminQueryDto",
"67": "PetsController",
"68": "UserDashboard.tsx",
"69": "Required Review Group Closures",
@ -75,7 +75,7 @@
"73": "Operational Rules & Boundaries",
"74": "WikiController",
"75": "PetsController",
"76": "Param",
"76": "AdminController",
"77": "seo.module.ts",
"78": "rss.xml/route.ts",
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
@ -89,7 +89,7 @@
"87": "dependencies",
"88": "CreateEBankCheckoutDto",
"89": "seed-products.ts",
"90": "ApiBearerAuth",
"90": "CreateReviewDto",
"91": "Reconciled Audit Roles & Assignments",
"92": "OrdersService",
"93": "HomeClient.tsx",
@ -121,14 +121,14 @@
"119": "compilerOptions",
"120": "compilerOptions",
"121": "backend/README.md",
"122": "AdminService",
"123": "users.service.ts",
"122": "ApiOperation",
"123": "UsersService",
"124": "Repository Map",
"125": "validate_integrity.js",
"126": "admin-panel/package.json",
"127": "Sahel-Font",
"128": "RedisService",
"129": "UsersService",
"128": "AdminService",
"129": "cms.controller.ts",
"130": "Sahel-Font",
"131": "Role & Core Objective",
"132": "orchestrate.py",
@ -178,12 +178,12 @@
"176": "uploads/[...path]/route.ts",
"177": "auth.module.ts",
"178": "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina",
"179": "prisma",
"179": "Reports.tsx",
"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": "RegisterDto",
"184": "auth.controller.ts",
"185": "SmsLogQueryDto",
"186": "seed-ui-texts.ts",
"187": "seed-wiki.ts",
@ -196,8 +196,8 @@
"194": "Raw Finding Verification & Disposition Report",
"195": "React + TypeScript + Vite",
"196": "Select.tsx",
"197": "AdminLoginDto",
"198": "LoginDto",
"197": "WholesaleApplyDto",
"198": "WikiService",
"199": "videos/page.tsx",
"200": "application/README.md",
"201": "deploy.sh",
@ -223,22 +223,21 @@
"221": "Textarea.tsx",
"222": "admin-panel/tsconfig.json",
"223": "catalog/page.tsx",
"224": "bcrypt",
"224": "VerifyOtpDto",
"225": "next.config.ts",
"226": "Shabnam Font README",
"227": "AGENTS.md",
"228": "rules/graphify.md",
"229": ".agents/workflows/graphify.md",
"230": "instructions.md",
"231": "class-transformer",
"232": "helmet",
"231": "AddressDto",
"232": "ZibalCallbackQueryDto",
"233": "tailwindcss",
"234": "@nestjs/schematics",
"235": "js-yaml",
"236": "@nestjs/core",
"237": "source-map-support",
"238": "@nestjs/jwt",
"239": "ts-loader",
"234": ".getDashboardStats",
"235": "@types/node",
"236": "eslint-config-next",
"237": "@tailwindcss/postcss",
"238": "@vitejs/plugin-react",
"240": "supertest",
"241": "blog.entity.ts",
"242": "home.entity.ts",
@ -263,11 +262,6 @@
"261": "User Login API",
"262": "User Logout API",
"263": "generate-openapi.d.ts",
"264": "ts-node",
"265": "@testing-library/jest-dom",
"266": "tsconfig-paths",
"267": "@types/bcrypt",
"268": "@types/compression",
"269": "eslint-plugin-react-hooks",
"270": "app-audit-verification.e2e-spec.d.ts",
"271": "app.e2e-spec.d.ts",
@ -294,45 +288,27 @@
"292": "Production Docker Compose",
"293": "Staging Docker Compose",
"294": "ZibalService",
"295": "@types/express",
"296": "eslint-plugin-prettier",
"297": "ZibalEBankService",
"298": ".initiateOrderPayment",
"299": "@tailwindcss/postcss",
"300": "typescript",
"301": "@types/jest",
"302": "typescript-eslint",
"303": "@nestjs/swagger",
"304": "@types/multer",
"305": "@types/react",
"306": "globals",
"307": "@nestjs/throttler",
"308": "vitest",
"309": "axios",
"310": "tailwindcss",
"311": "reflect-metadata",
"312": "@types/passport-jwt",
"313": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
"314": "typescript-eslint",
"315": "typescript",
"316": "swagger-ui-express",
"317": "revalidate/route.ts",
"318": "MaskableField.tsx",
"319": "@eslint/js",
"320": "@testing-library/react",
"321": "orders/page.tsx",
"322": "pets/page.tsx",
"323": "eslint-config-prettier",
"324": "@eslint/eslintrc",
"325": "@types/react-dom",
"326": "jest",
"327": "eslint-plugin-react-refresh",
"328": "@nestjs/cli",
"329": "@nestjs/testing",
"330": "prettier",
"331": "ts-jest",
"332": "app.e2e-spec.js",
"333": "app/page.tsx",
"334": "@types/js-yaml",
"335": "@types/supertest"
"333": "app/page.tsx"
}

File diff suppressed because one or more lines are too long

View File

@ -1,24 +1,24 @@
{
"0": "Roles",
"1": "app.module.ts",
"2": "SettingsController",
"2": "SettingsService",
"3": "productService.ts",
"4": "ProductPage.tsx",
"5": "CmsController",
"6": "tickets.controller.ts",
"7": "Button.tsx",
"8": "reviews.controller.ts",
"8": "pets/pets.controller.ts",
"9": "devDependencies",
"10": "ReviewsController",
"10": "CreateReviewDto",
"11": "MediaSelector.tsx",
"12": "index.ts",
"13": "app-audit-verification.e2e-spec.js",
"14": "lib/services/api.ts",
"14": "userStore.ts",
"15": "src/services/api.ts",
"16": "DoctorQueryDto",
"17": "schema.ts",
"18": "JwtAuthGuard",
"19": "ProductsController",
"19": "ProductsService",
"20": "CreateVideoDto",
"21": "admin.module.ts",
"22": "RevalidationService",
@ -33,7 +33,7 @@
"31": "DOC-001",
"32": "adminRoutes.tsx",
"33": "WholesaleApplyDto",
"34": "B2BController",
"34": "B2BService",
"35": "AuthController",
"36": "FaqService",
"37": "راهنمای تست سیستم (Software Testing)",
@ -42,16 +42,16 @@
"40": "MediaController",
"41": "What You Must Do When Invoked",
"42": "SslController",
"43": "BannersController",
"44": "TestimonialsController",
"43": "BannersService",
"44": "TestimonialsService",
"45": "What You Must Do When Invoked",
"46": "20260526145407_init/migration.sql",
"47": "IngredientsController",
"47": "IngredientsService",
"48": "UsersController",
"49": "devDependencies",
"50": "devDependencies",
"51": "BlogsController",
"52": "PrescriptionsController",
"52": "PrescriptionsService",
"53": "SmartAdvisorService",
"54": "Modal.tsx",
"55": "UITexts.tsx",
@ -60,7 +60,7 @@
"58": "ContactService",
"59": "compilerOptions",
"60": "PaymentService",
"61": "PetProfile.tsx",
"61": "useCartStore",
"62": "SmsService",
"63": "dependencies",
"64": "compilerOptions",
@ -75,7 +75,7 @@
"73": "Operational Rules & Boundaries",
"74": "WikiController",
"75": "PetsController",
"76": "AdminService",
"76": "Param",
"77": "seo.module.ts",
"78": "rss.xml/route.ts",
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
@ -89,7 +89,7 @@
"87": "dependencies",
"88": "CreateEBankCheckoutDto",
"89": "seed-products.ts",
"90": "ProductsService",
"90": "ApiBearerAuth",
"91": "Reconciled Audit Roles & Assignments",
"92": "OrdersService",
"93": "HomeClient.tsx",
@ -112,7 +112,7 @@
"110": "Operational Rules & Boundaries",
"111": "Operational Rules & Boundaries",
"112": "Operational Rules & Boundaries",
"113": "AdminTransactionFilterDto",
"113": "SettingsController",
"114": "AppService",
"115": "Blogs.tsx",
"116": "Vazirmatn Changelog",
@ -121,14 +121,14 @@
"119": "compilerOptions",
"120": "compilerOptions",
"121": "backend/README.md",
"122": "AdminController",
"123": "MetricsController",
"122": "AdminService",
"123": "users.service.ts",
"124": "Repository Map",
"125": "validate_integrity.js",
"126": "admin-panel/package.json",
"127": "Sahel-Font",
"128": "Body",
"129": "wiki/[slug]/page.tsx",
"128": "RedisService",
"129": "UsersService",
"130": "Sahel-Font",
"131": "Role & Core Objective",
"132": "orchestrate.py",
@ -143,15 +143,15 @@
"141": "application/package.json",
"142": "start-dev.js",
"143": "generate-openapi.js",
"144": "SafeImage.tsx",
"144": "VetGallery.tsx",
"145": "ProductDto",
"146": "System Discovery",
"147": "HomeController",
"148": "admin.service.ts",
"149": "SmsSettingsPage.tsx",
"150": "Product Requirement Document (PRD)",
"151": "zibal-ebank.service.ts",
"152": "useCartStore",
"151": "components/Skeleton.tsx",
"152": "lib/services/api.ts",
"153": "exclude",
"154": "Baseline Command Plan & Reconciled Command History",
"155": "seo-backfill.ts",
@ -176,14 +176,15 @@
"174": "rebuild_honest_ledger.js",
"175": "validate_evidence_grade.js",
"176": "uploads/[...path]/route.ts",
"177": "UsersService",
"177": "auth.module.ts",
"178": "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina",
"179": "prisma",
"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": "@types/node",
"184": "RegisterDto",
"185": "SmsLogQueryDto",
"186": "seed-ui-texts.ts",
"187": "seed-wiki.ts",
"188": "update-blog.dto.ts",
@ -195,10 +196,14 @@
"194": "Raw Finding Verification & Disposition Report",
"195": "React + TypeScript + Vite",
"196": "Select.tsx",
"197": "AdminLoginDto",
"198": "LoginDto",
"199": "videos/page.tsx",
"200": "application/README.md",
"201": "deploy.sh",
"202": "🔒 Security & Performance Review (09_devops_security)",
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
"204": "trust-seals/page.tsx",
"205": "prisma/scientificTerms.ts",
"206": "seed-blogs.ts",
"207": "seed-custom.ts",
@ -217,16 +222,22 @@
"220": "Input.tsx",
"221": "Textarea.tsx",
"222": "admin-panel/tsconfig.json",
"223": "catalog/page.tsx",
"224": "bcrypt",
"225": "next.config.ts",
"226": "Shabnam Font README",
"227": "AGENTS.md",
"228": "rules/graphify.md",
"229": ".agents/workflows/graphify.md",
"230": "instructions.md",
"231": "WikiController",
"231": "class-transformer",
"232": "helmet",
"233": "tailwindcss",
"234": "@nestjs/schematics",
"235": "js-yaml",
"236": "@nestjs/core",
"237": "source-map-support",
"238": "@nestjs/jwt",
"239": "ts-loader",
"240": "supertest",
"241": "blog.entity.ts",
@ -291,25 +302,37 @@
"300": "typescript",
"301": "@types/jest",
"302": "typescript-eslint",
"303": "@nestjs/swagger",
"304": "@types/multer",
"305": "@types/react",
"306": "globals",
"307": "@nestjs/throttler",
"308": "vitest",
"309": "axios",
"310": "tailwindcss",
"311": "reflect-metadata",
"312": "@types/passport-jwt",
"313": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
"314": "typescript-eslint",
"315": "typescript",
"316": "swagger-ui-express",
"317": "revalidate/route.ts",
"318": "MaskableField.tsx",
"319": "@eslint/js",
"320": "@testing-library/react",
"321": "orders/page.tsx",
"322": "pets/page.tsx",
"323": "eslint-config-prettier",
"324": "@eslint/eslintrc",
"325": "@types/react-dom",
"326": "jest",
"327": "eslint-plugin-react-refresh",
"330": "track/page.tsx",
"328": "@nestjs/cli",
"329": "@nestjs/testing",
"330": "prettier",
"331": "ts-jest",
"332": "app.e2e-spec.js",
"333": "app/page.tsx"
"333": "app/page.tsx",
"334": "@types/js-yaml",
"335": "@types/supertest"
}

View File

@ -1,40 +1,40 @@
# Graph Report - canina (2026-08-29)
## Corpus Check
- 593 files · ~1,337,817 words
- 593 files · ~1,337,957 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 4149 nodes · 7481 edges · 313 communities (211 shown, 102 thin omitted)
- 4151 nodes · 7487 edges · 336 communities (214 shown, 122 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `d9c693c4`
- Built from commit: `fa1a35c8`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- Roles
- app.module.ts
- SettingsController
- SettingsService
- productService.ts
- ProductPage.tsx
- CmsController
- tickets.controller.ts
- Button.tsx
- reviews.controller.ts
- pets/pets.controller.ts
- devDependencies
- ReviewsController
- CreateReviewDto
- MediaSelector.tsx
- index.ts
- app-audit-verification.e2e-spec.js
- lib/services/api.ts
- userStore.ts
- src/services/api.ts
- DoctorQueryDto
- schema.ts
- JwtAuthGuard
- ProductsController
- ProductsService
- CreateVideoDto
- admin.module.ts
- RevalidationService
@ -49,7 +49,7 @@
- DOC-001
- adminRoutes.tsx
- WholesaleApplyDto
- B2BController
- B2BService
- AuthController
- FaqService
- راهنمای تست سیستم (Software Testing)
@ -58,16 +58,16 @@
- MediaController
- What You Must Do When Invoked
- SslController
- BannersController
- TestimonialsController
- BannersService
- TestimonialsService
- What You Must Do When Invoked
- 20260526145407_init/migration.sql
- IngredientsController
- IngredientsService
- UsersController
- devDependencies
- devDependencies
- BlogsController
- PrescriptionsController
- PrescriptionsService
- SmartAdvisorService
- Modal.tsx
- UITexts.tsx
@ -76,7 +76,7 @@
- ContactService
- compilerOptions
- PaymentService
- PetProfile.tsx
- useCartStore
- SmsService
- dependencies
- compilerOptions
@ -91,7 +91,7 @@
- Operational Rules & Boundaries
- WikiController
- PetsController
- AdminService
- Param
- seo.module.ts
- rss.xml/route.ts
- 🏢 AI Software Agency — Master Orchestration Protocol v3
@ -105,7 +105,7 @@
- dependencies
- CreateEBankCheckoutDto
- seed-products.ts
- ProductsService
- ApiBearerAuth
- Reconciled Audit Roles & Assignments
- OrdersService
- HomeClient.tsx
@ -128,7 +128,7 @@
- Operational Rules & Boundaries
- Operational Rules & Boundaries
- Operational Rules & Boundaries
- AdminTransactionFilterDto
- SettingsController
- AppService
- Blogs.tsx
- Vazirmatn Changelog
@ -137,14 +137,14 @@
- compilerOptions
- compilerOptions
- backend/README.md
- AdminController
- MetricsController
- AdminService
- users.service.ts
- Repository Map
- validate_integrity.js
- admin-panel/package.json
- Sahel-Font
- Body
- wiki/[slug]/page.tsx
- RedisService
- UsersService
- Sahel-Font
- Role & Core Objective
- orchestrate.py
@ -159,15 +159,15 @@
- application/package.json
- start-dev.js
- generate-openapi.js
- SafeImage.tsx
- VetGallery.tsx
- ProductDto
- System Discovery
- HomeController
- admin.service.ts
- SmsSettingsPage.tsx
- Product Requirement Document (PRD)
- zibal-ebank.service.ts
- useCartStore
- components/Skeleton.tsx
- lib/services/api.ts
- exclude
- Baseline Command Plan & Reconciled Command History
- seo-backfill.ts
@ -191,14 +191,15 @@
- rebuild_honest_ledger.js
- validate_evidence_grade.js
- uploads/[...path]/route.ts
- UsersService
- auth.module.ts
- نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina
- prisma
- API Contract Specification
- ⚙️ Backend Technical Review (05_dev_backend)
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
- 🚀 SEO & Content Strategy Review (12_seo_content)
- @types/node
- RegisterDto
- SmsLogQueryDto
- seed-ui-texts.ts
- seed-wiki.ts
- update-blog.dto.ts
@ -210,10 +211,14 @@
- Raw Finding Verification & Disposition Report
- React + TypeScript + Vite
- Select.tsx
- AdminLoginDto
- LoginDto
- videos/page.tsx
- application/README.md
- deploy.sh
- 🔒 Security & Performance Review (09_devops_security)
- 👁️ UX & Persona Interface Review (08_visual_qa)
- trust-seals/page.tsx
- prisma/scientificTerms.ts
- seed-blogs.ts
- seed-custom.ts
@ -232,16 +237,22 @@
- Input.tsx
- Textarea.tsx
- admin-panel/tsconfig.json
- catalog/page.tsx
- bcrypt
- next.config.ts
- Shabnam Font README
- AGENTS.md
- rules/graphify.md
- .agents/workflows/graphify.md
- instructions.md
- WikiController
- class-transformer
- helmet
- tailwindcss
- @nestjs/schematics
- js-yaml
- @nestjs/core
- source-map-support
- @nestjs/jwt
- ts-loader
- supertest
- blog.entity.ts
@ -291,23 +302,35 @@
- typescript
- @types/jest
- typescript-eslint
- @nestjs/swagger
- @types/multer
- @types/react
- globals
- @nestjs/throttler
- vitest
- reflect-metadata
- @types/passport-jwt
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
- typescript-eslint
- typescript
- swagger-ui-express
- revalidate/route.ts
- MaskableField.tsx
- @eslint/js
- @testing-library/react
- eslint-config-prettier
- @eslint/eslintrc
- @types/react-dom
- jest
- eslint-plugin-react-refresh
- track/page.tsx
- @nestjs/cli
- @nestjs/testing
- prettier
- ts-jest
- app.e2e-spec.js
- app/page.tsx
- @types/js-yaml
- @types/supertest
## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges
@ -334,27 +357,23 @@
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/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, 102 thin omitted)
## Communities (336 total, 122 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 (34): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+26 more)
### Community 2 - "SettingsController"
Cohesion: 0.07
Nodes (24): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, SettingsController (+16 more)
Cohesion: 0.05
Nodes (43): AppModule, Module, B2BModule, Module, BannersModule, Module, CmsModule, Module (+35 more)
### Community 3 - "productService.ts"
Cohesion: 0.06
Nodes (32): dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory (+24 more)
Nodes (33): dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory (+25 more)
### Community 4 - "ProductPage.tsx"
Cohesion: 0.13
@ -366,23 +385,23 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
### Community 6 - "tickets.controller.ts"
Cohesion: 0.09
Nodes (31): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+23 more)
Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+21 more)
### Community 7 - "Button.tsx"
Cohesion: 0.12
Nodes (14): Button(), ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, BlogCommentItem, ProductReview (+6 more)
### Community 8 - "reviews.controller.ts"
Cohesion: 0.13
Nodes (17): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+9 more)
### Community 8 - "pets/pets.controller.ts"
Cohesion: 0.12
Nodes (15): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+7 more)
### Community 9 - "devDependencies"
Cohesion: 0.08
Nodes (25): devDependencies, eslint, eslint-config-prettier, @eslint/eslintrc, jest, @nestjs/cli, @nestjs/testing, prettier (+17 more)
Cohesion: 0.22
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
### Community 10 - "ReviewsController"
Cohesion: 0.13
Nodes (15): ReviewsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 10 - "CreateReviewDto"
Cohesion: 0.07
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more)
### Community 11 - "MediaSelector.tsx"
Cohesion: 0.06
@ -396,9 +415,9 @@ Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/
Cohesion: 0.07
Nodes (26): EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter, Catch, PrismaExceptionFilter (+18 more)
### Community 14 - "lib/services/api.ts"
Cohesion: 0.09
Nodes (16): BlogPostClient(), BlogPostClientProps, ContactInfoItem, Testimonial, api, ApiErrorPayload, BASE_DOMAIN, baseURL (+8 more)
### Community 14 - "userStore.ts"
Cohesion: 0.11
Nodes (11): LoginModal, LoginModal(), LoginModalProps, ApiErr, AuthResponse, AuthService, User, Transaction (+3 more)
### Community 15 - "src/services/api.ts"
Cohesion: 0.08
@ -409,28 +428,24 @@ Cohesion: 0.09
Nodes (24): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
### Community 17 - "schema.ts"
Cohesion: 0.13
Nodes (19): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), B2BLandingClient() (+11 more)
Cohesion: 0.15
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage() (+10 more)
### Community 18 - "JwtAuthGuard"
Cohesion: 0.12
Nodes (11): JwtAuthGuard, Injectable, B2BService, B2BWholesaleOrderItem, Injectable, ROLES_KEY, RequestWithUser, RolesGuard (+3 more)
Cohesion: 0.17
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 19 - "ProductsController"
Cohesion: 0.14
Nodes (10): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+2 more)
### Community 19 - "ProductsService"
Cohesion: 0.10
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more)
### Community 20 - "CreateVideoDto"
Cohesion: 0.07
Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more)
Cohesion: 0.09
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
### Community 21 - "admin.module.ts"
Cohesion: 0.06
Nodes (20): AdminModule, Module, MediaService, Injectable, PetsService, Injectable, ReportsController, ApiBearerAuth (+12 more)
### Community 22 - "RevalidationService"
Cohesion: 0.15
Nodes (5): RevalidationModule, Global, Module, RevalidationService, Injectable
Cohesion: 0.07
Nodes (19): AdminModule, Module, MediaService, Injectable, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery (+11 more)
### Community 23 - "MenuService"
Cohesion: 0.12
@ -473,16 +488,16 @@ Cohesion: 0.06
Nodes (24): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, BestSellerItem, CategoryDistItem (+16 more)
### Community 33 - "WholesaleApplyDto"
Cohesion: 0.11
Cohesion: 0.10
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
### Community 34 - "B2BController"
Cohesion: 0.14
Nodes (13): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+5 more)
### Community 34 - "B2BService"
Cohesion: 0.13
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more)
### Community 35 - "AuthController"
Cohesion: 0.08
Nodes (32): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+24 more)
Cohesion: 0.25
Nodes (13): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
### Community 36 - "FaqService"
Cohesion: 0.14
@ -501,8 +516,8 @@ Cohesion: 0.10
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 40 - "MediaController"
Cohesion: 0.11
Nodes (14): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
Cohesion: 0.07
Nodes (23): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+15 more)
### Community 41 - "What You Must Do When Invoked"
Cohesion: 0.07
@ -512,13 +527,13 @@ Nodes (26): For /graphify add and --watch, For /graphify query, For the commit h
Cohesion: 0.13
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
### Community 43 - "BannersController"
### Community 43 - "BannersService"
Cohesion: 0.13
Nodes (13): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+5 more)
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 44 - "TestimonialsController"
### Community 44 - "TestimonialsService"
Cohesion: 0.13
Nodes (12): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more)
Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 45 - "What You Must Do When Invoked"
Cohesion: 0.07
@ -528,13 +543,13 @@ Nodes (26): For /graphify add and --watch, For /graphify query, For the commit h
Cohesion: 0.27
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
### Community 47 - "IngredientsController"
### Community 47 - "IngredientsService"
Cohesion: 0.13
Nodes (12): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more)
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 48 - "UsersController"
Cohesion: 0.08
Nodes (29): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+21 more)
Cohesion: 0.21
Nodes (16): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+8 more)
### Community 49 - "devDependencies"
Cohesion: 0.11
@ -548,9 +563,9 @@ Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsd
Cohesion: 0.14
Nodes (16): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 52 - "PrescriptionsController"
Cohesion: 0.16
Nodes (12): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+4 more)
### Community 52 - "PrescriptionsService"
Cohesion: 0.14
Nodes (14): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
### Community 53 - "SmartAdvisorService"
Cohesion: 0.13
@ -580,33 +595,33 @@ Nodes (12): ContactController, Body, Controller, Get, Param, Post, Put, Query (+
Cohesion: 0.06
Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more)
### Community 61 - "PetProfile.tsx"
Cohesion: 0.07
Nodes (24): metadata, FeaturedProducts(), ProductCard(), Header(), OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, OrderRowSkeleton() (+16 more)
### Community 60 - "PaymentService"
Cohesion: 0.11
Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, PaymentService (+1 more)
### Community 62 - "SmsService"
Cohesion: 0.12
Nodes (4): SmsService, Injectable, PrescriptionsService, Injectable
### Community 61 - "useCartStore"
Cohesion: 0.08
Nodes (27): ArchiveProductCard(), CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, FeaturedProducts(), ProductCard(), Header(), OrderDetailsModal() (+19 more)
### Community 63 - "dependencies"
Cohesion: 0.05
Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
Cohesion: 0.09
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+15 more)
### Community 64 - "compilerOptions"
Cohesion: 0.10
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
### Community 66 - "ApiOperation"
Cohesion: 0.12
Cohesion: 0.13
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 67 - "PetsController"
Cohesion: 0.15
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
Cohesion: 0.10
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
### Community 68 - "UserDashboard.tsx"
Cohesion: 0.11
Nodes (34): LoginModal, HomeClient(), VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm() (+26 more)
Cohesion: 0.12
Nodes (32): HomeClient(), VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), AuthModal() (+24 more)
### Community 69 - "Required Review Group Closures"
Cohesion: 0.10
@ -617,8 +632,8 @@ Cohesion: 0.08
Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more)
### Community 71 - "getPageMetadata"
Cohesion: 0.08
Nodes (17): generateMetadata(), CatalogClient(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+9 more)
Cohesion: 0.10
Nodes (13): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+5 more)
### Community 72 - "Operational Rules & Boundaries"
Cohesion: 0.11
@ -633,12 +648,8 @@ Cohesion: 0.13
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 75 - "PetsController"
Cohesion: 0.05
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
### Community 76 - "AdminService"
Cohesion: 0.20
Nodes (4): Delete, Param, AdminService, Injectable
Cohesion: 0.08
Nodes (32): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreateReminderDto, ApiProperty (+24 more)
### Community 77 - "seo.module.ts"
Cohesion: 0.16
@ -674,7 +685,7 @@ Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container
### Community 85 - "useSettingsStore"
Cohesion: 0.09
Nodes (24): AuthModal, CartDrawer, ClientLayout(), BrandLogo(), BrandLogoProps, EnamadBadge(), FAQItem, FAQSection() (+16 more)
Nodes (27): AuthModal, B2BPortal, CartDrawer, ClientLayout(), metadata, ArchivePage(), B2BLandingClient(), BrandLogo() (+19 more)
### Community 86 - "zibal.service.ts"
Cohesion: 0.16
@ -692,29 +703,29 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
Cohesion: 0.17
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
### Community 90 - "ProductsService"
Cohesion: 0.21
Nodes (9): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsModule, Module, ProductsService (+1 more)
### Community 90 - "ApiBearerAuth"
Cohesion: 0.25
Nodes (7): ApiBearerAuth, Body, Param, Patch, Post, Put, UseGuards
### 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
Cohesion: 0.06
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
### Community 93 - "HomeClient.tsx"
Cohesion: 0.11
Nodes (19): HomeClientProps, ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), Hero() (+11 more)
Cohesion: 0.12
Nodes (18): HomeClientProps, CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), FAQItem, FAQSection() (+10 more)
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
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 - "blog/[slug]/page.tsx"
Cohesion: 0.29
Nodes (10): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+2 more)
Cohesion: 0.26
Nodes (11): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+3 more)
### Community 96 - "compilerOptions"
Cohesion: 0.06
@ -729,8 +740,8 @@ Cohesion: 0.13
Nodes (15): scripts, build, build:nest, docs:generate, lint, seo:backfill, start, start:debug (+7 more)
### Community 99 - "BlogsController"
Cohesion: 0.10
Nodes (14): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Get (+6 more)
Cohesion: 0.18
Nodes (12): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Get (+4 more)
### Community 100 - "Deep Audit Summary Report"
Cohesion: 0.14
@ -757,16 +768,16 @@ 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 - "auth.service.ts"
Cohesion: 0.06
Nodes (24): AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, SendOtpDto (+16 more)
Cohesion: 0.10
Nodes (17): AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, SendOtpDto, ApiProperty, IsNotEmpty (+9 more)
### Community 107 - "PaginationDto"
Cohesion: 0.11
Nodes (16): BlogsModule, Module, BlogFilterDto, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt (+8 more)
Cohesion: 0.06
Nodes (23): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+15 more)
### Community 108 - "PrismaService"
Cohesion: 0.07
Nodes (21): CategoryQuery, PetQuery, WikiQuery, BannersService, Injectable, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+13 more)
Cohesion: 0.06
Nodes (27): ApiExcludeController, CategoryQuery, B2BWholesaleOrderItem, MetricsController, Controller, Get, Res, MeliPayamakPattern (+19 more)
### Community 109 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17
@ -784,9 +795,9 @@ 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 - "AdminTransactionFilterDto"
Cohesion: 0.25
Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 113 - "SettingsController"
Cohesion: 0.20
Nodes (8): SettingsController, ApiOkResponse, ApiOperation, ApiTags, Controller, Delete, Get, Query
### Community 114 - "AppService"
Cohesion: 0.29
@ -820,13 +831,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 - "AdminController"
Cohesion: 0.14
Nodes (6): AdminController, ApiBearerAuth, ApiTags, Controller, Put, UseGuards
### Community 122 - "AdminService"
Cohesion: 0.11
Nodes (10): AdminController, ApiBearerAuth, ApiTags, Body, Controller, Post, Put, UseGuards (+2 more)
### Community 123 - "MetricsController"
Cohesion: 0.29
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
### Community 123 - "users.service.ts"
Cohesion: 0.13
Nodes (14): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+6 more)
### Community 124 - "Repository Map"
Cohesion: 0.20
@ -844,9 +855,9 @@ 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 129 - "wiki/[slug]/page.tsx"
Cohesion: 0.60
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
### Community 128 - "RedisService"
Cohesion: 0.15
Nodes (5): RedisModule, Global, Module, RedisService, Injectable
### Community 130 - "Sahel-Font"
Cohesion: 0.20
@ -904,9 +915,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 - "SafeImage.tsx"
Cohesion: 0.10
Nodes (23): BackButton(), BackButtonProps, BlogPost, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, PLAYBACK_RATES, PodcastPlayerModal() (+15 more)
### Community 144 - "VetGallery.tsx"
Cohesion: 0.12
Nodes (17): BackButton(), BackButtonProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, VideoModalPlayer, DisplayVideoItem, FALLBACK_VIDEOS (+9 more)
### Community 145 - "ProductDto"
Cohesion: 0.22
@ -932,13 +943,13 @@ Nodes (7): PatternItem, SmsConfigState, SmsLogItem, SmsLogStats, SmsSettingsPage
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 - "zibal-ebank.service.ts"
Cohesion: 0.40
Nodes (4): EBankCheckoutListFilter, EBankCheckoutOptions, EBankIdentifiedPaymentFilter, EBankStatementFilter
### Community 151 - "components/Skeleton.tsx"
Cohesion: 0.21
Nodes (5): OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps
### Community 152 - "useCartStore"
Cohesion: 0.11
Nodes (15): B2BPortal, B2BPortal(), CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, mockProduct, ApiErr, Order (+7 more)
### Community 152 - "lib/services/api.ts"
Cohesion: 0.08
Nodes (19): BlogPostClientProps, BlogPost, ContactInfoItem, OrderDetailsModalProps, PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps, SafeImage() (+11 more)
### Community 153 - "exclude"
Cohesion: 0.22
@ -952,6 +963,10 @@ Nodes (6): Attempted Command Execution Log, Backend `backend/package.json` Scrip
Cohesion: 0.67
Nodes (3): prisma, runSeoBackfill(), stripHtml()
### Community 158 - "media/[...path]/route.ts"
Cohesion: 0.60
Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD()
### Community 159 - "with-vpn.sh"
Cohesion: 0.62
Nodes (6): cleanup(), log(), with-vpn.sh script, start_vpn(), stop_vpn(), vpn_is_up()
@ -1020,9 +1035,13 @@ Nodes (4): evidenceList, ledger, mandatoryMap, mandatoryScope
Cohesion: 0.40
Nodes (4): activeFiles, errors, validationOutput, warnings
### Community 177 - "UsersService"
Cohesion: 0.12
Nodes (13): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+5 more)
### Community 176 - "uploads/[...path]/route.ts"
Cohesion: 0.60
Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD()
### Community 177 - "auth.module.ts"
Cohesion: 0.17
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more)
### Community 178 - "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina"
Cohesion: 0.33
@ -1044,6 +1063,14 @@ 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 184 - "RegisterDto"
Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 185 - "SmsLogQueryDto"
Cohesion: 0.25
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 191 - "graphify reference: add a URL and watch a folder"
Cohesion: 0.50
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
@ -1068,6 +1095,18 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps
### Community 197 - "AdminLoginDto"
Cohesion: 0.29
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
### Community 198 - "LoginDto"
Cohesion: 0.33
Nodes (5): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength
### Community 199 - "videos/page.tsx"
Cohesion: 0.47
Nodes (5): generateMetadata(), getInitialVideos(), Videos(), VideosPage(), generateVideoObjectSchema()
### Community 200 - "application/README.md"
Cohesion: 0.50
Nodes (3): Deploy on Vercel, Getting Started, Learn More
@ -1084,10 +1123,6 @@ Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Managem
Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
### Community 231 - "WikiController"
Cohesion: 0.21
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
### Community 298 - ".initiateOrderPayment"
Cohesion: 0.20
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
@ -1107,22 +1142,22 @@ Nodes (3): generateMetadata(), getHomeData(), Home()
## Knowledge Gaps
- **1343 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1338 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **102 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **122 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 `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `UsersController`, `HomeController`, `ProductsController`, `OrdersService`?**
- **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `MediaController`, `PetsController`, `UsersController`, `HomeController`, `ProductsService`, `OrdersService`?**
_High betweenness centrality (0.080) - this node is a cross-community bridge._
- **Why does `Roles()` connect `Roles` to `SettingsController`, `CmsController`, `tickets.controller.ts`, `reviews.controller.ts`, `ReviewsController`, `JwtAuthGuard`, `ProductsController`, `MenuService`, `WholesaleApplyDto`, `B2BController`, `FaqService`, `SslController`, `BannersController`, `TestimonialsController`, `IngredientsController`, `PrescriptionsController`, `SmartAdvisorService`, `ContactService`, `ProductsService`?**
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `ApiBearerAuth`, `tickets.controller.ts`, `SslController`, `BannersService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `SettingsController`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.063) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `app.module.ts`, `CmsController`, `tickets.controller.ts`, `reviews.controller.ts`, `auth.service.ts`, `PaginationDto`, `PetsController`, `UsersService`, `admin.service.ts`, `admin.module.ts`, `CreateVideoDto`, `ProductsService`, `OrdersService`?**
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `pets/pets.controller.ts`, `auth.service.ts`, `PaginationDto`, `DoctorQueryDto`, `ProductsService`, `admin.service.ts`, `admin.module.ts`, `users.service.ts`, `OrdersService`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1343 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `app.module.ts` be split into smaller, more focused modules?**
_Cohesion score 0.06748911465892599 - nodes in this community are weakly interconnected._
- **Should `SettingsController` be split into smaller, more focused modules?**
_Cohesion score 0.07333333333333333 - nodes in this community are weakly interconnected._
_Cohesion score 0.053613053613053616 - nodes in this community are weakly interconnected._
- **Should `SettingsService` be split into smaller, more focused modules?**
_Cohesion score 0.09782608695652174 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.06440677966101695 - nodes in this community are weakly interconnected._
_Cohesion score 0.06384180790960452 - 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 - canina (2026-08-29)
## Corpus Check
- 593 files · ~1,337,957 words
- 593 files · ~1,337,982 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 4151 nodes · 7487 edges · 336 communities (214 shown, 122 thin omitted)
- 4153 nodes · 7489 edges · 312 communities (221 shown, 91 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `fa1a35c8`
- Built from commit: `b68dd295`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@ -23,9 +23,9 @@
- CmsController
- tickets.controller.ts
- Button.tsx
- pets/pets.controller.ts
- WikiController
- devDependencies
- CreateReviewDto
- ReviewsService
- MediaSelector.tsx
- index.ts
- app-audit-verification.e2e-spec.js
@ -48,7 +48,7 @@
- DEVOPS-001
- DOC-001
- adminRoutes.tsx
- WholesaleApplyDto
- WholesaleService
- B2BService
- AuthController
- FaqService
@ -75,13 +75,13 @@
- Role & Core Objective
- ContactService
- compilerOptions
- PaymentService
- payment.service.ts
- useCartStore
- SmsService
- dependencies
- compilerOptions
- BlogsService
- ApiOperation
- AdminQueryDto
- PetsController
- UserDashboard.tsx
- Required Review Group Closures
@ -91,7 +91,7 @@
- Operational Rules & Boundaries
- WikiController
- PetsController
- Param
- AdminController
- seo.module.ts
- rss.xml/route.ts
- 🏢 AI Software Agency — Master Orchestration Protocol v3
@ -105,7 +105,7 @@
- dependencies
- CreateEBankCheckoutDto
- seed-products.ts
- ApiBearerAuth
- CreateReviewDto
- Reconciled Audit Roles & Assignments
- OrdersService
- HomeClient.tsx
@ -137,14 +137,14 @@
- compilerOptions
- compilerOptions
- backend/README.md
- AdminService
- users.service.ts
- ApiOperation
- UsersService
- Repository Map
- validate_integrity.js
- admin-panel/package.json
- Sahel-Font
- RedisService
- UsersService
- AdminService
- cms.controller.ts
- Sahel-Font
- Role & Core Objective
- orchestrate.py
@ -193,12 +193,12 @@
- uploads/[...path]/route.ts
- auth.module.ts
- نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina
- prisma
- Reports.tsx
- API Contract Specification
- ⚙️ Backend Technical Review (05_dev_backend)
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
- 🚀 SEO & Content Strategy Review (12_seo_content)
- RegisterDto
- auth.controller.ts
- SmsLogQueryDto
- seed-ui-texts.ts
- seed-wiki.ts
@ -211,8 +211,8 @@
- Raw Finding Verification & Disposition Report
- React + TypeScript + Vite
- Select.tsx
- AdminLoginDto
- LoginDto
- WholesaleApplyDto
- WikiService
- videos/page.tsx
- application/README.md
- deploy.sh
@ -238,22 +238,20 @@
- Textarea.tsx
- admin-panel/tsconfig.json
- catalog/page.tsx
- bcrypt
- VerifyOtpDto
- next.config.ts
- Shabnam Font README
- AGENTS.md
- rules/graphify.md
- .agents/workflows/graphify.md
- instructions.md
- class-transformer
- helmet
- AddressDto
- ZibalCallbackQueryDto
- tailwindcss
- @nestjs/schematics
- js-yaml
- @nestjs/core
- source-map-support
- @nestjs/jwt
- ts-loader
- @types/node
- eslint-config-next
- @tailwindcss/postcss
- @vitejs/plugin-react
- supertest
- blog.entity.ts
- home.entity.ts
@ -274,11 +272,6 @@
- start.sh
- User Login API
- User Logout API
- ts-node
- @testing-library/jest-dom
- tsconfig-paths
- @types/bcrypt
- @types/compression
- eslint-plugin-react-hooks
- Canina Pharma GmbH
- Pets Table
@ -294,43 +287,25 @@
- Production Docker Compose
- Staging Docker Compose
- ZibalService
- @types/express
- eslint-plugin-prettier
- ZibalEBankService
- .initiateOrderPayment
- @tailwindcss/postcss
- typescript
- @types/jest
- typescript-eslint
- @nestjs/swagger
- @types/multer
- @types/react
- globals
- @nestjs/throttler
- vitest
- reflect-metadata
- @types/passport-jwt
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
- typescript-eslint
- typescript
- swagger-ui-express
- revalidate/route.ts
- MaskableField.tsx
- @eslint/js
- @testing-library/react
- eslint-config-prettier
- @eslint/eslintrc
- @types/react-dom
- jest
- eslint-plugin-react-refresh
- @nestjs/cli
- @nestjs/testing
- prettier
- ts-jest
- app.e2e-spec.js
- app/page.tsx
- @types/js-yaml
- @types/supertest
## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges
@ -361,15 +336,15 @@
- 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 (336 total, 122 thin omitted)
## Communities (312 total, 91 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.05
Nodes (43): AppModule, Module, B2BModule, Module, BannersModule, Module, CmsModule, Module (+35 more)
Cohesion: 0.07
Nodes (35): B2BModule, Module, BannersModule, Module, BlogsModule, Module, CmsModule, Module (+27 more)
### Community 3 - "productService.ts"
Cohesion: 0.06
@ -380,8 +355,8 @@ Cohesion: 0.13
Nodes (15): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+7 more)
### Community 5 - "CmsController"
Cohesion: 0.09
Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
Cohesion: 0.10
Nodes (14): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 6 - "tickets.controller.ts"
Cohesion: 0.09
@ -391,17 +366,17 @@ Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty,
Cohesion: 0.12
Nodes (14): Button(), ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, BlogCommentItem, ProductReview (+6 more)
### Community 8 - "pets/pets.controller.ts"
Cohesion: 0.12
Nodes (15): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+7 more)
### Community 8 - "WikiController"
Cohesion: 0.13
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
### Community 9 - "devDependencies"
Cohesion: 0.22
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
Cohesion: 0.05
Nodes (43): devDependencies, eslint, eslint-config-prettier, @eslint/eslintrc, @nestjs/schematics, @nestjs/testing, prisma, source-map-support (+35 more)
### Community 10 - "CreateReviewDto"
Cohesion: 0.07
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more)
### Community 10 - "ReviewsService"
Cohesion: 0.12
Nodes (17): ReviewsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+9 more)
### Community 11 - "MediaSelector.tsx"
Cohesion: 0.06
@ -412,8 +387,8 @@ Cohesion: 0.06
Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/*.ts, authFile, test, compilerOptions (+16 more)
### Community 13 - "app-audit-verification.e2e-spec.js"
Cohesion: 0.07
Nodes (26): EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter, Catch, PrismaExceptionFilter (+18 more)
Cohesion: 0.06
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
### Community 14 - "userStore.ts"
Cohesion: 0.11
@ -432,7 +407,7 @@ Cohesion: 0.15
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage() (+10 more)
### Community 18 - "JwtAuthGuard"
Cohesion: 0.17
Cohesion: 0.19
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 19 - "ProductsService"
@ -440,16 +415,20 @@ Cohesion: 0.10
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more)
### Community 20 - "CreateVideoDto"
Cohesion: 0.09
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
Cohesion: 0.07
Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more)
### Community 21 - "admin.module.ts"
Cohesion: 0.07
Nodes (19): AdminModule, Module, MediaService, Injectable, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery (+11 more)
Cohesion: 0.08
Nodes (19): AdminModule, Module, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth, ApiOperation (+11 more)
### Community 22 - "RevalidationService"
Cohesion: 0.20
Nodes (5): RevalidationModule, Global, Module, RevalidationService, Injectable
### Community 23 - "MenuService"
Cohesion: 0.12
Nodes (16): MenuController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
Cohesion: 0.10
Nodes (19): MenuController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+11 more)
### Community 24 - "BE-001"
Cohesion: 0.06
@ -484,24 +463,24 @@ 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 (24): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, BestSellerItem, CategoryDistItem (+16 more)
Cohesion: 0.08
Nodes (17): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, AdminRouteConfig, CMS (+9 more)
### Community 33 - "WholesaleApplyDto"
Cohesion: 0.10
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
### Community 33 - "WholesaleService"
Cohesion: 0.14
Nodes (14): ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param, Post (+6 more)
### Community 34 - "B2BService"
Cohesion: 0.13
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more)
Cohesion: 0.12
Nodes (16): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+8 more)
### Community 35 - "AuthController"
Cohesion: 0.25
Nodes (13): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
### Community 36 - "FaqService"
Cohesion: 0.14
Nodes (14): FaqController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
Cohesion: 0.12
Nodes (16): FaqController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
### Community 37 - "راهنمای تست سیستم (Software Testing)"
Cohesion: 0.07
@ -516,24 +495,24 @@ Cohesion: 0.10
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 40 - "MediaController"
Cohesion: 0.07
Nodes (23): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+15 more)
Cohesion: 0.11
Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
### Community 41 - "What You Must Do When Invoked"
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
Cohesion: 0.12
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 44 - "TestimonialsService"
Cohesion: 0.13
Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
Cohesion: 0.11
Nodes (16): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
### Community 45 - "What You Must Do When Invoked"
Cohesion: 0.07
@ -544,11 +523,11 @@ Cohesion: 0.27
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
### Community 47 - "IngredientsService"
Cohesion: 0.13
Cohesion: 0.12
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 48 - "UsersController"
Cohesion: 0.21
Cohesion: 0.19
Nodes (16): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+8 more)
### Community 49 - "devDependencies"
@ -556,20 +535,20 @@ Cohesion: 0.11
Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, globals, postcss, @types/node (+11 more)
### Community 50 - "devDependencies"
Cohesion: 0.13
Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, tailwindcss, @tailwindcss/postcss, @types/node (+7 more)
Cohesion: 0.12
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
### Community 51 - "BlogsController"
Cohesion: 0.14
Nodes (16): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 52 - "PrescriptionsService"
Cohesion: 0.14
Cohesion: 0.13
Nodes (14): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
### Community 53 - "SmartAdvisorService"
Cohesion: 0.13
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
Cohesion: 0.11
Nodes (16): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
### Community 54 - "Modal.tsx"
Cohesion: 0.10
@ -595,29 +574,29 @@ Nodes (12): ContactController, Body, Controller, Get, Param, Post, Put, Query (+
Cohesion: 0.06
Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more)
### Community 60 - "PaymentService"
Cohesion: 0.11
Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, PaymentService (+1 more)
### Community 60 - "payment.service.ts"
Cohesion: 0.20
Nodes (8): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, ClientMetadata
### Community 61 - "useCartStore"
Cohesion: 0.08
Nodes (27): ArchiveProductCard(), CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, FeaturedProducts(), ProductCard(), Header(), OrderDetailsModal() (+19 more)
### Community 63 - "dependencies"
Cohesion: 0.09
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+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 66 - "ApiOperation"
Cohesion: 0.13
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 66 - "AdminQueryDto"
Cohesion: 0.18
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 67 - "PetsController"
Cohesion: 0.10
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
Cohesion: 0.14
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
### Community 68 - "UserDashboard.tsx"
Cohesion: 0.12
@ -648,8 +627,12 @@ Cohesion: 0.13
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 75 - "PetsController"
Cohesion: 0.08
Nodes (32): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreateReminderDto, ApiProperty (+24 more)
Cohesion: 0.05
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
### Community 76 - "AdminController"
Cohesion: 0.14
Nodes (7): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, UseGuards
### Community 77 - "seo.module.ts"
Cohesion: 0.16
@ -692,8 +675,8 @@ Cohesion: 0.16
Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRequestOptions, PaymentRequestResult, PaymentVerifyResult, ZibalInquiryResponse, ZibalRequestResponse (+1 more)
### Community 87 - "dependencies"
Cohesion: 0.12
Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, sonner (+9 more)
Cohesion: 0.11
Nodes (19): dependencies, axios, lucide-react, motion, next, nextjs-toploader, react, react-dom (+11 more)
### Community 88 - "CreateEBankCheckoutDto"
Cohesion: 0.22
@ -703,9 +686,9 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
Cohesion: 0.17
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
### Community 90 - "ApiBearerAuth"
Cohesion: 0.25
Nodes (7): ApiBearerAuth, Body, Param, Patch, Post, Put, UseGuards
### Community 90 - "CreateReviewDto"
Cohesion: 0.13
Nodes (13): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+5 more)
### Community 91 - "Reconciled Audit Roles & Assignments"
Cohesion: 0.12
@ -769,15 +752,15 @@ Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (
### Community 106 - "auth.service.ts"
Cohesion: 0.10
Nodes (17): AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, SendOtpDto, ApiProperty, IsNotEmpty (+9 more)
Nodes (8): AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, normalizeMobile(), RedisService, Injectable
### Community 107 - "PaginationDto"
Cohesion: 0.06
Nodes (23): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+15 more)
Cohesion: 0.10
Nodes (12): BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt (+4 more)
### Community 108 - "PrismaService"
Cohesion: 0.06
Nodes (27): ApiExcludeController, CategoryQuery, B2BWholesaleOrderItem, MetricsController, Controller, Get, Res, MeliPayamakPattern (+19 more)
Cohesion: 0.07
Nodes (22): ApiExcludeController, CategoryQuery, WikiQuery, MetricsController, Controller, Get, Res, MeliPayamakPattern (+14 more)
### Community 109 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17
@ -796,8 +779,8 @@ 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 - "SettingsController"
Cohesion: 0.20
Nodes (8): SettingsController, ApiOkResponse, ApiOperation, ApiTags, Controller, Delete, Get, Query
Cohesion: 0.18
Nodes (15): SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Delete (+7 more)
### Community 114 - "AppService"
Cohesion: 0.29
@ -831,13 +814,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 - "AdminService"
Cohesion: 0.11
Nodes (10): AdminController, ApiBearerAuth, ApiTags, Body, Controller, Post, Put, UseGuards (+2 more)
### Community 122 - "ApiOperation"
Cohesion: 0.17
Nodes (3): ApiOperation, Body, Put
### Community 123 - "users.service.ts"
Cohesion: 0.13
Nodes (14): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+6 more)
### Community 123 - "UsersService"
Cohesion: 0.14
Nodes (9): ApiPropertyOptional, IsEmail, IsOptional, IsString, MinLength, UpdateProfileDto, Injectable, UserAddressInput (+1 more)
### Community 124 - "Repository Map"
Cohesion: 0.20
@ -855,9 +838,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 - "RedisService"
Cohesion: 0.15
Nodes (5): RedisModule, Global, Module, RedisService, Injectable
### Community 128 - "AdminService"
Cohesion: 0.17
Nodes (3): Post, AdminService, Injectable
### Community 129 - "cms.controller.ts"
Cohesion: 0.37
Nodes (10): CreateHeroBannerDto, CreateSmartAdvisorRuleDto, CreateVetTestimonialDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNumber, IsOptional (+2 more)
### Community 130 - "Sahel-Font"
Cohesion: 0.20
@ -932,7 +919,7 @@ Cohesion: 0.16
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
### Community 148 - "admin.service.ts"
Cohesion: 0.17
Cohesion: 0.19
Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more)
### Community 149 - "SmsSettingsPage.tsx"
@ -1040,13 +1027,17 @@ Cohesion: 0.60
Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD()
### Community 177 - "auth.module.ts"
Cohesion: 0.17
Cohesion: 0.15
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more)
### Community 178 - "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina"
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 - "Reports.tsx"
Cohesion: 0.20
Nodes (7): BestSellerItem, CategoryDistItem, COLORS, CustomTooltipProps, ReportData, TopCouponItem, Reports
### Community 180 - "API Contract Specification"
Cohesion: 0.50
Nodes (3): 1. OpenAPI 3.0 (Swagger) Specification, 2. Endpoint Definitions & Data Types, API Contract Specification
@ -1063,9 +1054,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 184 - "RegisterDto"
Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 184 - "auth.controller.ts"
Cohesion: 0.08
Nodes (24): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength, LoginDto, ApiProperty (+16 more)
### Community 185 - "SmsLogQueryDto"
Cohesion: 0.25
@ -1095,13 +1086,9 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps
### Community 197 - "AdminLoginDto"
### Community 197 - "WholesaleApplyDto"
Cohesion: 0.29
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
### Community 198 - "LoginDto"
Cohesion: 0.33
Nodes (5): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength
Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto
### Community 199 - "videos/page.tsx"
Cohesion: 0.47
@ -1119,45 +1106,57 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
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 224 - "VerifyOtpDto"
Cohesion: 0.29
Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length
### Community 226 - "Shabnam Font README"
Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
### Community 231 - "AddressDto"
Cohesion: 0.29
Nodes (7): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString
### Community 232 - "ZibalCallbackQueryDto"
Cohesion: 0.40
Nodes (4): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto
### 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
Nodes (3): GET(), handleRevalidate(), POST()
### Community 332 - "app.e2e-spec.js"
Cohesion: 0.50
Nodes (3): app_module_1, supertest_1, testing_1
### Community 333 - "app/page.tsx"
Cohesion: 0.67
Nodes (3): generateMetadata(), getHomeData(), Home()
## Knowledge Gaps
- **1343 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1338 more)
- **1344 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1339 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **122 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **91 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 `src/services/api.ts` to `BlogsController`, `AuthController`, `MediaController`, `PetsController`, `UsersController`, `HomeController`, `ProductsService`, `OrdersService`?**
- **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `UsersController`, `HomeController`, `ProductsService`, `OrdersService`?**
_High betweenness centrality (0.080) - this node is a cross-community bridge._
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `ApiBearerAuth`, `tickets.controller.ts`, `SslController`, `BannersService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `SettingsController`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.063) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `pets/pets.controller.ts`, `auth.service.ts`, `PaginationDto`, `DoctorQueryDto`, `ProductsService`, `admin.service.ts`, `admin.module.ts`, `users.service.ts`, `OrdersService`?**
- **Why does `Roles()` connect `Roles` to `cms.controller.ts`, `B2BService`, `WholesaleService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `SettingsController`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.062) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `cms.controller.ts`, `PetsController`, `tickets.controller.ts`, `MediaController`, `PaginationDto`, `PetsController`, `DoctorQueryDto`, `ProductsService`, `admin.service.ts`, `admin.module.ts`, `CreateVideoDto`, `auth.controller.ts`, `UsersService`, `OrdersService`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1343 weakly-connected nodes found - possible documentation gaps or missing edges._
_1344 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `app.module.ts` be split into smaller, more focused modules?**
_Cohesion score 0.053613053613053616 - nodes in this community are weakly interconnected._
_Cohesion score 0.07058823529411765 - nodes in this community are weakly interconnected._
- **Should `SettingsService` be split into smaller, more focused modules?**
_Cohesion score 0.09782608695652174 - nodes in this community are weakly interconnected._
_Cohesion score 0.11231884057971014 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.06384180790960452 - nodes in this community are weakly interconnected._

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 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

View File

@ -4,7 +4,7 @@ const http = require('http');
const URLS = [
{ url: 'http://localhost:4005', name: 'Frontend Store' },
{ url: 'http://127.0.0.1:5050', name: 'Admin Panel' },
{ url: 'http://localhost:4001/api/docs', name: 'Backend API Docs' }
{ url: 'http://localhost:4400/api/docs', name: 'Backend API Docs' }
];
function openUrl(url) {

View File

@ -3,7 +3,7 @@ const http = require('http');
const fs = require('fs');
const path = require('path');
const BACKEND_PORT = 4001;
const BACKEND_PORT = 4400;
const MAX_WAIT = 60000;
const distMainPath = path.join(__dirname, '..', 'backend', 'dist', 'main.js');