fix(torob): sanitize imageLink in Torob API and feed to always use frontend domain and proxy path
Some checks failed
Deploy Canina / deploy (push) Successful in 1m44s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 7s

This commit is contained in:
parsa aghaei 2026-08-29 14:18:41 +03:30
parent 376fea356f
commit 88060431bb
14 changed files with 9023 additions and 8720 deletions

View File

@ -42,15 +42,20 @@ export class TorobController {
const nameEn = product.nameEn || ''; const nameEn = product.nameEn || '';
const title = nameEn ? `${nameFa} (${nameEn})` : nameFa; const title = nameEn ? `${nameFa} (${nameEn})` : nameFa;
const rawImage = product.ogImage || product.imageUrl || '';
let imageLink = ''; let imageLink = '';
if (product.ogImage) { if (rawImage) {
imageLink = product.ogImage.startsWith('http') const cleanImage = rawImage.trim()
? product.ogImage .replace(/^https?:\/\/api\.canina\.ir/i, '')
: `${baseUrl}${product.ogImage.startsWith('/') ? product.ogImage : `/${product.ogImage}`}`; .replace(/^https?:\/\/localhost:\d+/i, '')
} else if (product.imageUrl) { .replace(/^https?:\/\/127\.0\.0\.1:\d+/i, '');
imageLink = product.imageUrl.startsWith('http')
? product.imageUrl if (cleanImage.startsWith('http://') || cleanImage.startsWith('https://')) {
: `${baseUrl}/uploads/${product.imageUrl.replace(/^\/?(uploads\/)?/, '')}`; imageLink = cleanImage;
} else {
const cleanPath = cleanImage.replace(/^\/?(api\/)?(uploads\/)?/, '');
imageLink = `${baseUrl}/api/uploads/${cleanPath}`;
}
} }
const isInStock = product.stockStatus !== 'DISCONTINUED' && String(product.stockStatus || '').toLowerCase().includes('in'); const isInStock = product.stockStatus !== 'DISCONTINUED' && String(product.stockStatus || '').toLowerCase().includes('in');

View File

@ -1,6 +1,7 @@
import { NextRequest, NextResponse } from 'next/server'; import { NextRequest, NextResponse } from 'next/server';
import { productService } from '../../../../lib/services/productService'; import { productService } from '../../../../lib/services/productService';
import { PRODUCTS } from '../../../../lib/data/products'; import { PRODUCTS } from '../../../../lib/data/products';
import { getMediaUrl } from '../../../../lib/media';
export const dynamic = 'force-dynamic'; export const dynamic = 'force-dynamic';
export const revalidate = 3600; export const revalidate = 3600;
@ -39,11 +40,13 @@ export async function GET(request: NextRequest) {
const nameEn = product.nameEn || ''; const nameEn = product.nameEn || '';
const title = nameEn ? `${nameFa} (${nameEn})` : nameFa; const title = nameEn ? `${nameFa} (${nameEn})` : nameFa;
const primaryImg = product.ogImage || product.image || product.imageUrl || ''; const primaryImg = product.ogImage || product.image || product.imageUrl || '';
const imageLink = primaryImg let imageLink = '';
? primaryImg.startsWith('http') if (primaryImg) {
? primaryImg const proxied = getMediaUrl(primaryImg);
: `${baseUrl}${primaryImg.startsWith('/') ? primaryImg : `/${primaryImg}`}` imageLink = proxied.startsWith('http')
: ''; ? proxied
: `${baseUrl}${proxied.startsWith('/') ? proxied : `/${proxied}`}`;
}
const isInStock = const isInStock =
product.stockStatus !== 'OUT_OF_STOCK' && product.stockStatus !== 'OUT_OF_STOCK' &&

View File

@ -1,6 +1,7 @@
import { NextResponse } from 'next/server'; import { NextResponse } from 'next/server';
import { productService } from '../../../lib/services/productService'; import { productService } from '../../../lib/services/productService';
import { PRODUCTS } from '../../../lib/data/products'; import { PRODUCTS } from '../../../lib/data/products';
import { getMediaUrl } from '../../../lib/media';
export const dynamic = 'force-dynamic'; export const dynamic = 'force-dynamic';
export const revalidate = 3600; // Revalidate every hour export const revalidate = 3600; // Revalidate every hour
@ -27,7 +28,11 @@ export async function GET() {
const description = product.metaDescription || product.shortDescription || product.description || 'مکمل درمانی اصل کنینا آلمان'; const description = product.metaDescription || product.shortDescription || product.description || 'مکمل درمانی اصل کنینا آلمان';
const primaryImg = product.ogImage || product.image; const primaryImg = product.ogImage || product.image;
const imageLink = primaryImg ? (primaryImg.startsWith('http') ? primaryImg : `${baseUrl}${primaryImg}`) : ''; let imageLink = '';
if (primaryImg) {
const proxied = getMediaUrl(primaryImg);
imageLink = proxied.startsWith('http') ? proxied : `${baseUrl}${proxied.startsWith('/') ? proxied : `/${proxied}`}`;
}
let availability = 'in_stock'; let availability = 'in_stock';
if (product.stockStatus === 'OUT_OF_STOCK') availability = 'out_of_stock'; if (product.stockStatus === 'OUT_OF_STOCK') availability = 'out_of_stock';
@ -38,7 +43,11 @@ export async function GET() {
const additionalImages = (product.images || []) const additionalImages = (product.images || [])
.filter((img: string) => img && img !== primaryImg) .filter((img: string) => img && img !== primaryImg)
.slice(0, 5) .slice(0, 5)
.map((img: string) => `<g:additional_image_link>${img.startsWith('http') ? img : `${baseUrl}${img}`}</g:additional_image_link>`) .map((img: string) => {
const proxied = getMediaUrl(img);
const full = proxied.startsWith('http') ? proxied : `${baseUrl}${proxied.startsWith('/') ? proxied : `/${proxied}`}`;
return `<g:additional_image_link>${full}</g:additional_image_link>`;
})
.join('\n '); .join('\n ');
return ` <item> return ` <item>

View File

@ -20,8 +20,8 @@
"18": "JwtAuthGuard", "18": "JwtAuthGuard",
"19": "ProductsService", "19": "ProductsService",
"20": "CreateVideoDto", "20": "CreateVideoDto",
"21": "ReportsController", "21": "admin.module.ts",
"22": "SettingsController", "22": "SmsService",
"23": "MenuService", "23": "MenuService",
"24": "BE-001", "24": "BE-001",
"25": "FE-001", "25": "FE-001",
@ -75,7 +75,7 @@
"73": "Operational Rules & Boundaries", "73": "Operational Rules & Boundaries",
"74": "WikiController", "74": "WikiController",
"75": "PetsController", "75": "PetsController",
"76": ".updateDosageConfig", "76": "ProductsController",
"77": "seo.module.ts", "77": "seo.module.ts",
"78": "rss.xml/route.ts", "78": "rss.xml/route.ts",
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3", "79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
@ -84,15 +84,15 @@
"82": "scripts", "82": "scripts",
"83": "dependencies", "83": "dependencies",
"84": "Role & Core Objective", "84": "Role & Core Objective",
"85": "CheckoutPage.tsx", "85": "pets/pets.controller.ts",
"86": "zibal.service.ts", "86": "zibal.service.ts",
"87": "dependencies", "87": "dependencies",
"88": "CreateEBankCheckoutDto", "88": "CreateEBankCheckoutDto",
"89": "seed-products.ts", "89": "seed-products.ts",
"90": "SmsService", "90": "UserDashboard.tsx",
"91": "Reconciled Audit Roles & Assignments", "91": "Reconciled Audit Roles & Assignments",
"92": "OrdersService", "92": "OrdersService",
"93": "useSettingsStore", "93": "HomeClient.tsx",
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique", "94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
"95": "blog/[slug]/page.tsx", "95": "blog/[slug]/page.tsx",
"96": "compilerOptions", "96": "compilerOptions",
@ -112,7 +112,7 @@
"110": "Operational Rules & Boundaries", "110": "Operational Rules & Boundaries",
"111": "Operational Rules & Boundaries", "111": "Operational Rules & Boundaries",
"112": "Operational Rules & Boundaries", "112": "Operational Rules & Boundaries",
"113": "BlogsService", "113": "RegisterDto",
"114": "AppService", "114": "AppService",
"115": "Blogs.tsx", "115": "Blogs.tsx",
"116": "Vazirmatn Changelog", "116": "Vazirmatn Changelog",
@ -196,13 +196,14 @@
"194": "Raw Finding Verification & Disposition Report", "194": "Raw Finding Verification & Disposition Report",
"195": "React + TypeScript + Vite", "195": "React + TypeScript + Vite",
"196": "Select.tsx", "196": "Select.tsx",
"197": "NetworkBanner.tsx", "197": "useSettingsStore",
"198": "@types/node", "198": "@types/node",
"199": "tailwindcss", "199": "tailwindcss",
"200": "application/README.md", "200": "application/README.md",
"201": "deploy.sh", "201": "deploy.sh",
"202": "🔒 Security & Performance Review (09_devops_security)", "202": "🔒 Security & Performance Review (09_devops_security)",
"203": "👁️ UX & Persona Interface Review (08_visual_qa)", "203": "👁️ UX & Persona Interface Review (08_visual_qa)",
"204": "eslint",
"205": "prisma/scientificTerms.ts", "205": "prisma/scientificTerms.ts",
"206": "seed-blogs.ts", "206": "seed-blogs.ts",
"207": "seed-custom.ts", "207": "seed-custom.ts",
@ -222,6 +223,7 @@
"221": "Textarea.tsx", "221": "Textarea.tsx",
"222": "admin-panel/tsconfig.json", "222": "admin-panel/tsconfig.json",
"223": "catalog/page.tsx", "223": "catalog/page.tsx",
"224": "eslint-config-prettier",
"225": "next.config.ts", "225": "next.config.ts",
"226": "Shabnam Font README", "226": "Shabnam Font README",
"227": "AGENTS.md", "227": "AGENTS.md",
@ -229,8 +231,9 @@
"229": ".agents/workflows/graphify.md", "229": ".agents/workflows/graphify.md",
"230": "instructions.md", "230": "instructions.md",
"231": "track/page.tsx", "231": "track/page.tsx",
"232": "typescript",
"233": "tailwindcss", "233": "tailwindcss",
"237": "@tailwindcss/postcss", "234": "eslint-config-next",
"238": "@vitejs/plugin-react", "238": "@vitejs/plugin-react",
"240": "supertest", "240": "supertest",
"241": "blog.entity.ts", "241": "blog.entity.ts",
@ -303,14 +306,11 @@
"316": "@types/compression", "316": "@types/compression",
"317": "revalidate/route.ts", "317": "revalidate/route.ts",
"318": "MaskableField.tsx", "318": "MaskableField.tsx",
"319": "eslint-plugin-prettier",
"320": "@types/express", "320": "@types/express",
"321": "orders/page.tsx", "321": "orders/page.tsx",
"322": "pets/page.tsx", "322": "pets/page.tsx",
"323": "@types/jest", "323": "@types/jest",
"324": "globals",
"325": "@types/react-dom", "325": "@types/react-dom",
"327": "eslint-plugin-react-refresh", "327": "eslint-plugin-react-refresh",
"329": "@types/multer", "329": "@types/multer"
"335": "typescript-eslint"
} }

File diff suppressed because one or more lines are too long

View File

@ -3,17 +3,17 @@
"1": "app.module.ts", "1": "app.module.ts",
"2": "PaymentService", "2": "PaymentService",
"3": "productService.ts", "3": "productService.ts",
"4": "useCartStore", "4": "PetProfile.tsx",
"5": "CmsController", "5": "CmsController",
"6": "tickets.controller.ts", "6": "tickets.controller.ts",
"7": "Button.tsx", "7": "Button.tsx",
"8": "WikiController", "8": "WikiController",
"9": "devDependencies", "9": "devDependencies",
"10": "CreateReviewDto", "10": "ReviewsService",
"11": "MediaSelector.tsx", "11": "MediaSelector.tsx",
"12": "index.ts", "12": "index.ts",
"13": "app-audit-verification.e2e-spec.js", "13": "app-audit-verification.e2e-spec.js",
"14": "userStore.ts", "14": "toPersian",
"15": "src/services/api.ts", "15": "src/services/api.ts",
"16": "DoctorQueryDto", "16": "DoctorQueryDto",
"17": "schema.ts", "17": "schema.ts",
@ -21,7 +21,7 @@
"19": "ProductsService", "19": "ProductsService",
"20": "CreateVideoDto", "20": "CreateVideoDto",
"21": "ReportsController", "21": "ReportsController",
"22": "ApiBearerAuth", "22": "SettingsController",
"23": "MenuService", "23": "MenuService",
"24": "BE-001", "24": "BE-001",
"25": "FE-001", "25": "FE-001",
@ -59,15 +59,15 @@
"57": "Role & Core Objective", "57": "Role & Core Objective",
"58": "ContactService", "58": "ContactService",
"59": "compilerOptions", "59": "compilerOptions",
"60": "RedisService", "60": "admin.service.ts",
"61": "ProductPage.tsx", "61": "ProductPage.tsx",
"62": "AdminLoginDto", "62": "RevalidationService",
"63": "dependencies", "63": "dependencies",
"64": "compilerOptions", "64": "compilerOptions",
"65": "BlogsService", "65": "BlogsService",
"66": "ApiOperation", "66": "AdminQueryDto",
"67": "admin.module.ts", "67": "PetsController",
"68": "UserDashboard.tsx", "68": "lib/services/api.ts",
"69": "Required Review Group Closures", "69": "Required Review Group Closures",
"70": "compilerOptions", "70": "compilerOptions",
"71": "getPageMetadata", "71": "getPageMetadata",
@ -75,7 +75,7 @@
"73": "Operational Rules & Boundaries", "73": "Operational Rules & Boundaries",
"74": "WikiController", "74": "WikiController",
"75": "PetsController", "75": "PetsController",
"76": "Param", "76": ".updateDosageConfig",
"77": "seo.module.ts", "77": "seo.module.ts",
"78": "rss.xml/route.ts", "78": "rss.xml/route.ts",
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3", "79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
@ -84,7 +84,7 @@
"82": "scripts", "82": "scripts",
"83": "dependencies", "83": "dependencies",
"84": "Role & Core Objective", "84": "Role & Core Objective",
"85": "SettingsController", "85": "CheckoutPage.tsx",
"86": "zibal.service.ts", "86": "zibal.service.ts",
"87": "dependencies", "87": "dependencies",
"88": "CreateEBankCheckoutDto", "88": "CreateEBankCheckoutDto",
@ -112,7 +112,7 @@
"110": "Operational Rules & Boundaries", "110": "Operational Rules & Boundaries",
"111": "Operational Rules & Boundaries", "111": "Operational Rules & Boundaries",
"112": "Operational Rules & Boundaries", "112": "Operational Rules & Boundaries",
"113": "SettingsService", "113": "BlogsService",
"114": "AppService", "114": "AppService",
"115": "Blogs.tsx", "115": "Blogs.tsx",
"116": "Vazirmatn Changelog", "116": "Vazirmatn Changelog",
@ -122,13 +122,13 @@
"120": "compilerOptions", "120": "compilerOptions",
"121": "backend/README.md", "121": "backend/README.md",
"122": "AdminService", "122": "AdminService",
"123": "UsersController", "123": "UsersService",
"124": "Repository Map", "124": "Repository Map",
"125": "validate_integrity.js", "125": "validate_integrity.js",
"126": "admin-panel/package.json", "126": "admin-panel/package.json",
"127": "Sahel-Font", "127": "Sahel-Font",
"128": "Body", "128": "AdminController",
"129": "users.controller.ts", "129": "AuthService",
"130": "Sahel-Font", "130": "Sahel-Font",
"131": "Role & Core Objective", "131": "Role & Core Objective",
"132": "orchestrate.py", "132": "orchestrate.py",
@ -143,15 +143,15 @@
"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": "getMediaUrl", "144": "SafeImage.tsx",
"145": "auth.module.ts", "145": "TorobController",
"146": "System Discovery", "146": "System Discovery",
"147": "HomeController", "147": "HomeController",
"148": "admin.service.ts", "148": "CreateUserDto",
"149": "SmsSettingsPage.tsx", "149": "SmsSettingsPage.tsx",
"150": "Product Requirement Document (PRD)", "150": "Product Requirement Document (PRD)",
"151": "components/Skeleton.tsx", "151": "CreateReviewDto",
"152": "PodcastPlayerModal.tsx", "152": "MetricsController",
"153": "exclude", "153": "exclude",
"154": "Baseline Command Plan & Reconciled Command History", "154": "Baseline Command Plan & Reconciled Command History",
"155": "seo-backfill.ts", "155": "seo-backfill.ts",
@ -176,15 +176,15 @@
"174": "rebuild_honest_ledger.js", "174": "rebuild_honest_ledger.js",
"175": "validate_evidence_grade.js", "175": "validate_evidence_grade.js",
"176": "uploads/[...path]/route.ts", "176": "uploads/[...path]/route.ts",
"177": "UsersService", "177": "videos/page.tsx",
"178": "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina", "178": "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina",
"179": "app.e2e-spec.js", "179": "app.e2e-spec.js",
"180": "API Contract Specification", "180": "API Contract Specification",
"181": "⚙️ Backend Technical Review (05_dev_backend)", "181": "⚙️ Backend Technical Review (05_dev_backend)",
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)", "182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
"183": "🚀 SEO & Content Strategy Review (12_seo_content)", "183": "🚀 SEO & Content Strategy Review (12_seo_content)",
"184": "RegisterDto", "184": "UpdateReviewDto",
"185": "ProductDto", "185": "app/page.tsx",
"186": "seed-ui-texts.ts", "186": "seed-ui-texts.ts",
"187": "seed-wiki.ts", "187": "seed-wiki.ts",
"188": "update-blog.dto.ts", "188": "update-blog.dto.ts",
@ -196,14 +196,13 @@
"194": "Raw Finding Verification & Disposition Report", "194": "Raw Finding Verification & Disposition Report",
"195": "React + TypeScript + Vite", "195": "React + TypeScript + Vite",
"196": "Select.tsx", "196": "Select.tsx",
"197": "eslint-config-next", "197": "NetworkBanner.tsx",
"198": "SmsLogQueryDto", "198": "@types/node",
"199": "SmartAdvisor.tsx", "199": "tailwindcss",
"200": "application/README.md", "200": "application/README.md",
"201": "deploy.sh", "201": "deploy.sh",
"202": "🔒 Security & Performance Review (09_devops_security)", "202": "🔒 Security & Performance Review (09_devops_security)",
"203": "👁️ UX & Persona Interface Review (08_visual_qa)", "203": "👁️ UX & Persona Interface Review (08_visual_qa)",
"204": "trust-seals/page.tsx",
"205": "prisma/scientificTerms.ts", "205": "prisma/scientificTerms.ts",
"206": "seed-blogs.ts", "206": "seed-blogs.ts",
"207": "seed-custom.ts", "207": "seed-custom.ts",
@ -223,7 +222,6 @@
"221": "Textarea.tsx", "221": "Textarea.tsx",
"222": "admin-panel/tsconfig.json", "222": "admin-panel/tsconfig.json",
"223": "catalog/page.tsx", "223": "catalog/page.tsx",
"224": "wiki/[slug]/page.tsx",
"225": "next.config.ts", "225": "next.config.ts",
"226": "Shabnam Font README", "226": "Shabnam Font README",
"227": "AGENTS.md", "227": "AGENTS.md",
@ -231,14 +229,9 @@
"229": ".agents/workflows/graphify.md", "229": ".agents/workflows/graphify.md",
"230": "instructions.md", "230": "instructions.md",
"231": "track/page.tsx", "231": "track/page.tsx",
"232": "class-transformer",
"233": "tailwindcss", "233": "tailwindcss",
"234": "AdminController",
"235": "helmet",
"236": "js-yaml",
"237": "@tailwindcss/postcss", "237": "@tailwindcss/postcss",
"238": "@vitejs/plugin-react", "238": "@vitejs/plugin-react",
"239": "@nestjs/core",
"240": "supertest", "240": "supertest",
"241": "blog.entity.ts", "241": "blog.entity.ts",
"242": "home.entity.ts", "242": "home.entity.ts",
@ -263,11 +256,6 @@
"261": "User Login API", "261": "User Login API",
"262": "User Logout API", "262": "User Logout API",
"263": "generate-openapi.d.ts", "263": "generate-openapi.d.ts",
"264": "@nestjs/jwt",
"265": "@nestjs/swagger",
"266": "@nestjs/throttler",
"267": "passport",
"268": "eslint-config-prettier",
"269": "eslint-plugin-react-hooks", "269": "eslint-plugin-react-hooks",
"270": "app-audit-verification.e2e-spec.d.ts", "270": "app-audit-verification.e2e-spec.d.ts",
"271": "app.e2e-spec.d.ts", "271": "app.e2e-spec.d.ts",
@ -295,16 +283,13 @@
"293": "Staging Docker Compose", "293": "Staging Docker Compose",
"294": "ZibalService", "294": "ZibalService",
"295": "@nestjs/schematics", "295": "@nestjs/schematics",
"296": "reflect-metadata",
"297": "ZibalEBankService", "297": "ZibalEBankService",
"298": ".initiateOrderPayment", "298": ".initiateOrderPayment",
"299": "@tailwindcss/postcss", "299": "@tailwindcss/postcss",
"300": "typescript", "300": "typescript",
"301": "swagger-ui-express",
"302": "typescript-eslint", "302": "typescript-eslint",
"303": "prisma", "303": "prisma",
"304": "source-map-support", "304": "source-map-support",
"305": "@eslint/eslintrc",
"306": "@eslint/js", "306": "@eslint/js",
"307": "ts-loader", "307": "ts-loader",
"308": "ts-node", "308": "ts-node",
@ -325,14 +310,7 @@
"323": "@types/jest", "323": "@types/jest",
"324": "globals", "324": "globals",
"325": "@types/react-dom", "325": "@types/react-dom",
"326": "jest",
"327": "eslint-plugin-react-refresh", "327": "eslint-plugin-react-refresh",
"328": "@nestjs/cli",
"329": "@types/multer", "329": "@types/multer",
"330": "@nestjs/testing",
"331": "prettier",
"332": "ts-jest",
"333": "@types/js-yaml",
"334": "@types/supertest",
"335": "typescript-eslint" "335": "typescript-eslint"
} }

View File

@ -1,16 +1,16 @@
# Graph Report - canina (2026-08-29) # Graph Report - canina (2026-08-29)
## Corpus Check ## Corpus Check
- 595 files · ~1,071,072 words - 596 files · ~1,071,368 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 4160 nodes · 7503 edges · 336 communities (215 shown, 121 thin omitted) - 4169 nodes · 7516 edges · 314 communities (211 shown, 103 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `812bc292` - Built from commit: `f2535b4a`
- Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost). - Run `graphify update .` after code changes (no API cost).
@ -19,17 +19,17 @@
- app.module.ts - app.module.ts
- PaymentService - PaymentService
- productService.ts - productService.ts
- useCartStore - PetProfile.tsx
- CmsController - CmsController
- tickets.controller.ts - tickets.controller.ts
- Button.tsx - Button.tsx
- WikiController - WikiController
- devDependencies - devDependencies
- CreateReviewDto - ReviewsService
- MediaSelector.tsx - MediaSelector.tsx
- index.ts - index.ts
- app-audit-verification.e2e-spec.js - app-audit-verification.e2e-spec.js
- userStore.ts - toPersian
- src/services/api.ts - src/services/api.ts
- DoctorQueryDto - DoctorQueryDto
- schema.ts - schema.ts
@ -37,7 +37,7 @@
- ProductsService - ProductsService
- CreateVideoDto - CreateVideoDto
- ReportsController - ReportsController
- ApiBearerAuth - SettingsController
- MenuService - MenuService
- BE-001 - BE-001
- FE-001 - FE-001
@ -75,15 +75,15 @@
- Role & Core Objective - Role & Core Objective
- ContactService - ContactService
- compilerOptions - compilerOptions
- RedisService - admin.service.ts
- ProductPage.tsx - ProductPage.tsx
- AdminLoginDto - RevalidationService
- dependencies - dependencies
- compilerOptions - compilerOptions
- BlogsService - BlogsService
- ApiOperation - AdminQueryDto
- admin.module.ts - PetsController
- UserDashboard.tsx - lib/services/api.ts
- Required Review Group Closures - Required Review Group Closures
- compilerOptions - compilerOptions
- getPageMetadata - getPageMetadata
@ -91,7 +91,7 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- WikiController - WikiController
- PetsController - PetsController
- Param - .updateDosageConfig
- seo.module.ts - seo.module.ts
- rss.xml/route.ts - rss.xml/route.ts
- 🏢 AI Software Agency — Master Orchestration Protocol v3 - 🏢 AI Software Agency — Master Orchestration Protocol v3
@ -100,7 +100,7 @@
- scripts - scripts
- dependencies - dependencies
- Role & Core Objective - Role & Core Objective
- SettingsController - CheckoutPage.tsx
- zibal.service.ts - zibal.service.ts
- dependencies - dependencies
- CreateEBankCheckoutDto - CreateEBankCheckoutDto
@ -128,7 +128,7 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- SettingsService - BlogsService
- AppService - AppService
- Blogs.tsx - Blogs.tsx
- Vazirmatn Changelog - Vazirmatn Changelog
@ -138,13 +138,13 @@
- compilerOptions - compilerOptions
- backend/README.md - backend/README.md
- AdminService - AdminService
- UsersController - UsersService
- Repository Map - Repository Map
- validate_integrity.js - validate_integrity.js
- admin-panel/package.json - admin-panel/package.json
- Sahel-Font - Sahel-Font
- Body - AdminController
- users.controller.ts - AuthService
- Sahel-Font - Sahel-Font
- Role & Core Objective - Role & Core Objective
- orchestrate.py - orchestrate.py
@ -159,15 +159,15 @@
- application/package.json - application/package.json
- start-dev.js - start-dev.js
- generate-openapi.js - generate-openapi.js
- getMediaUrl - SafeImage.tsx
- auth.module.ts - TorobController
- System Discovery - System Discovery
- HomeController - HomeController
- admin.service.ts - CreateUserDto
- SmsSettingsPage.tsx - SmsSettingsPage.tsx
- Product Requirement Document (PRD) - Product Requirement Document (PRD)
- components/Skeleton.tsx - CreateReviewDto
- PodcastPlayerModal.tsx - MetricsController
- exclude - exclude
- Baseline Command Plan & Reconciled Command History - Baseline Command Plan & Reconciled Command History
- seo-backfill.ts - seo-backfill.ts
@ -191,15 +191,15 @@
- rebuild_honest_ledger.js - rebuild_honest_ledger.js
- validate_evidence_grade.js - validate_evidence_grade.js
- uploads/[...path]/route.ts - uploads/[...path]/route.ts
- UsersService - videos/page.tsx
- نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina - نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina
- app.e2e-spec.js - app.e2e-spec.js
- API Contract Specification - API Contract Specification
- ⚙️ Backend Technical Review (05_dev_backend) - ⚙️ Backend Technical Review (05_dev_backend)
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend) - 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
- 🚀 SEO & Content Strategy Review (12_seo_content) - 🚀 SEO & Content Strategy Review (12_seo_content)
- RegisterDto - UpdateReviewDto
- ProductDto - app/page.tsx
- seed-ui-texts.ts - seed-ui-texts.ts
- seed-wiki.ts - seed-wiki.ts
- update-blog.dto.ts - update-blog.dto.ts
@ -211,14 +211,13 @@
- Raw Finding Verification & Disposition Report - Raw Finding Verification & Disposition Report
- React + TypeScript + Vite - React + TypeScript + Vite
- Select.tsx - Select.tsx
- eslint-config-next - NetworkBanner.tsx
- SmsLogQueryDto - @types/node
- SmartAdvisor.tsx - tailwindcss
- application/README.md - application/README.md
- deploy.sh - deploy.sh
- 🔒 Security & Performance Review (09_devops_security) - 🔒 Security & Performance Review (09_devops_security)
- 👁️ UX & Persona Interface Review (08_visual_qa) - 👁️ UX & Persona Interface Review (08_visual_qa)
- trust-seals/page.tsx
- prisma/scientificTerms.ts - prisma/scientificTerms.ts
- seed-blogs.ts - seed-blogs.ts
- seed-custom.ts - seed-custom.ts
@ -238,7 +237,6 @@
- Textarea.tsx - Textarea.tsx
- admin-panel/tsconfig.json - admin-panel/tsconfig.json
- catalog/page.tsx - catalog/page.tsx
- wiki/[slug]/page.tsx
- next.config.ts - next.config.ts
- Shabnam Font README - Shabnam Font README
- AGENTS.md - AGENTS.md
@ -246,14 +244,9 @@
- .agents/workflows/graphify.md - .agents/workflows/graphify.md
- instructions.md - instructions.md
- track/page.tsx - track/page.tsx
- class-transformer
- tailwindcss - tailwindcss
- AdminController
- helmet
- js-yaml
- @tailwindcss/postcss - @tailwindcss/postcss
- @vitejs/plugin-react - @vitejs/plugin-react
- @nestjs/core
- supertest - supertest
- blog.entity.ts - blog.entity.ts
- home.entity.ts - home.entity.ts
@ -274,11 +267,6 @@
- start.sh - start.sh
- User Login API - User Login API
- User Logout API - User Logout API
- @nestjs/jwt
- @nestjs/swagger
- @nestjs/throttler
- passport
- eslint-config-prettier
- eslint-plugin-react-hooks - eslint-plugin-react-hooks
- Canina Pharma GmbH - Canina Pharma GmbH
- Pets Table - Pets Table
@ -295,16 +283,13 @@
- Staging Docker Compose - Staging Docker Compose
- ZibalService - ZibalService
- @nestjs/schematics - @nestjs/schematics
- reflect-metadata
- ZibalEBankService - ZibalEBankService
- .initiateOrderPayment - .initiateOrderPayment
- @tailwindcss/postcss - @tailwindcss/postcss
- typescript - typescript
- swagger-ui-express
- typescript-eslint - typescript-eslint
- prisma - prisma
- source-map-support - source-map-support
- @eslint/eslintrc
- @eslint/js - @eslint/js
- ts-loader - ts-loader
- ts-node - ts-node
@ -321,20 +306,13 @@
- @types/jest - @types/jest
- globals - globals
- @types/react-dom - @types/react-dom
- jest
- eslint-plugin-react-refresh - eslint-plugin-react-refresh
- @nestjs/cli
- @types/multer - @types/multer
- @nestjs/testing
- prettier
- ts-jest
- @types/js-yaml
- @types/supertest
- typescript-eslint - typescript-eslint
## God Nodes (most connected - your core abstractions) ## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges 1. `Roles()` - 106 edges
2. `PrismaService` - 87 edges 2. `PrismaService` - 89 edges
3. `useSettingsStore` - 61 edges 3. `useSettingsStore` - 61 edges
4. `api` - 44 edges 4. `api` - 44 edges
5. `SmsService` - 43 edges 5. `SmsService` - 43 edges
@ -361,7 +339,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 (336 total, 121 thin omitted) ## Communities (314 total, 103 thin omitted)
### Community 0 - "Roles" ### Community 0 - "Roles"
Cohesion: 0.24 Cohesion: 0.24
@ -369,7 +347,7 @@ Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Bo
### Community 1 - "app.module.ts" ### Community 1 - "app.module.ts"
Cohesion: 0.06 Cohesion: 0.06
Nodes (38): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+30 more) Nodes (40): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+32 more)
### Community 2 - "PaymentService" ### Community 2 - "PaymentService"
Cohesion: 0.11 Cohesion: 0.11
@ -377,11 +355,11 @@ Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOpt
### Community 3 - "productService.ts" ### Community 3 - "productService.ts"
Cohesion: 0.06 Cohesion: 0.06
Nodes (37): dynamic, revalidate, dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+29 more) Nodes (34): dynamic, revalidate, dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+26 more)
### Community 4 - "useCartStore" ### Community 4 - "PetProfile.tsx"
Cohesion: 0.09 Cohesion: 0.08
Nodes (23): FeaturedProducts(), ProductCard(), Header(), MENU_ICONS, OrderSuccess(), PetProfile(), PrescriptionUploadModal(), PrescriptionUploadModalProps (+15 more) Nodes (23): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage(), OrderRowSkeleton() (+15 more)
### Community 5 - "CmsController" ### Community 5 - "CmsController"
Cohesion: 0.09 Cohesion: 0.09
@ -389,7 +367,7 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
### Community 6 - "tickets.controller.ts" ### Community 6 - "tickets.controller.ts"
Cohesion: 0.09 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" ### Community 7 - "Button.tsx"
Cohesion: 0.12 Cohesion: 0.12
@ -400,12 +378,12 @@ Cohesion: 0.13
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more) Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
### Community 9 - "devDependencies" ### Community 9 - "devDependencies"
Cohesion: 0.22 Cohesion: 0.08
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more) Nodes (25): devDependencies, eslint, eslint-config-prettier, @eslint/eslintrc, jest, @nestjs/cli, @nestjs/testing, prettier (+17 more)
### Community 10 - "CreateReviewDto" ### Community 10 - "ReviewsService"
Cohesion: 0.07 Cohesion: 0.12
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more) Nodes (17): ReviewsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+9 more)
### Community 11 - "MediaSelector.tsx" ### Community 11 - "MediaSelector.tsx"
Cohesion: 0.06 Cohesion: 0.06
@ -419,9 +397,9 @@ Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/
Cohesion: 0.06 Cohesion: 0.06
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more) Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
### Community 14 - "userStore.ts" ### Community 14 - "toPersian"
Cohesion: 0.06 Cohesion: 0.09
Nodes (33): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, AddressModalProps, AuthModal(), AuthModalProps (+25 more) Nodes (36): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, VerifyContent(), ArchiveProductCard(), AuthModal() (+28 more)
### Community 15 - "src/services/api.ts" ### Community 15 - "src/services/api.ts"
Cohesion: 0.08 Cohesion: 0.08
@ -432,16 +410,16 @@ 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 - "schema.ts" ### Community 17 - "schema.ts"
Cohesion: 0.14 Cohesion: 0.15
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), ContactFormClient() (+10 more) Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage() (+10 more)
### Community 18 - "JwtAuthGuard" ### Community 18 - "JwtAuthGuard"
Cohesion: 0.17 Cohesion: 0.17
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 19 - "ProductsService" ### Community 19 - "ProductsService"
Cohesion: 0.09 Cohesion: 0.15
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more) Nodes (13): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiTags, Controller (+5 more)
### Community 20 - "CreateVideoDto" ### Community 20 - "CreateVideoDto"
Cohesion: 0.09 Cohesion: 0.09
@ -451,9 +429,9 @@ Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEm
Cohesion: 0.14 Cohesion: 0.14
Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more) Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more)
### Community 22 - "ApiBearerAuth" ### Community 22 - "SettingsController"
Cohesion: 0.25 Cohesion: 0.08
Nodes (7): ApiBearerAuth, Body, Param, Patch, Post, Put, UseGuards Nodes (24): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, SettingsController (+16 more)
### Community 23 - "MenuService" ### Community 23 - "MenuService"
Cohesion: 0.12 Cohesion: 0.12
@ -556,8 +534,8 @@ Cohesion: 0.13
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 - "auth.service.ts" ### Community 48 - "auth.service.ts"
Cohesion: 0.11 Cohesion: 0.06
Nodes (19): AdminLoginInput, LoginInput, RegisterInput, LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength (+11 more) Nodes (33): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+25 more)
### Community 49 - "devDependencies" ### Community 49 - "devDependencies"
Cohesion: 0.11 Cohesion: 0.11
@ -565,7 +543,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
### Community 50 - "devDependencies" ### Community 50 - "devDependencies"
Cohesion: 0.12 Cohesion: 0.12
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more) Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
### Community 51 - "BlogsController" ### Community 51 - "BlogsController"
Cohesion: 0.14 Cohesion: 0.14
@ -603,41 +581,37 @@ Nodes (12): 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 - "RedisService" ### Community 60 - "admin.service.ts"
Cohesion: 0.10 Cohesion: 0.10
Nodes (10): ApiExcludeController, MetricsController, Controller, Get, Res, RedisModule, Global, Module (+2 more) Nodes (12): CouponTargetInput, PaginationQuery, ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional (+4 more)
### Community 61 - "ProductPage.tsx" ### Community 61 - "ProductPage.tsx"
Cohesion: 0.12 Cohesion: 0.10
Nodes (16): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+8 more) Nodes (20): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+12 more)
### Community 62 - "AdminLoginDto" ### Community 62 - "RevalidationService"
Cohesion: 0.29 Cohesion: 0.16
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength Nodes (5): RevalidationModule, Global, Module, RevalidationService, Injectable
### Community 63 - "dependencies" ### Community 63 - "dependencies"
Cohesion: 0.09 Cohesion: 0.05
Nodes (23): dependencies, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more) Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
### Community 64 - "compilerOptions" ### Community 64 - "compilerOptions"
Cohesion: 0.10 Cohesion: 0.10
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more) Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
### Community 65 - "BlogsService" ### Community 66 - "AdminQueryDto"
Cohesion: 0.08 Cohesion: 0.18
Nodes (7): BlogsService, Injectable, RevalidationModule, Global, Module, RevalidationService, Injectable Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 66 - "ApiOperation" ### Community 67 - "PetsController"
Cohesion: 0.15 Cohesion: 0.11
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString Nodes (13): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+5 more)
### Community 67 - "admin.module.ts" ### Community 68 - "lib/services/api.ts"
Cohesion: 0.06 Cohesion: 0.07
Nodes (22): AdminModule, Module, MediaService, Injectable, PetsController, ApiBearerAuth, ApiOperation, ApiQuery (+14 more) Nodes (29): BlogPost, ContactInfoItem, DeleteConfirmModal(), DeleteConfirmModalProps, FAQItem, OrderDetailsModal(), OrderDetailsModalProps, Testimonial (+21 more)
### Community 68 - "UserDashboard.tsx"
Cohesion: 0.12
Nodes (25): VerifyContent(), AddressFormData, AddressModal(), normalizeDigits(), validateAddressForm(), ArchiveProductCard(), BackButton(), BackButtonProps (+17 more)
### Community 69 - "Required Review Group Closures" ### Community 69 - "Required Review Group Closures"
Cohesion: 0.10 Cohesion: 0.10
@ -648,8 +622,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.09 Cohesion: 0.10
Nodes (17): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), getHomeData(), Home(), generateMetadata(), generateMetadata() (+9 more) Nodes (13): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+5 more)
### Community 72 - "Operational Rules & Boundaries" ### Community 72 - "Operational Rules & Boundaries"
Cohesion: 0.11 Cohesion: 0.11
@ -667,6 +641,10 @@ 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 - ".updateDosageConfig"
Cohesion: 0.17
Nodes (6): ApiOperation, Body, Get, Param, Patch, UseGuards
### 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)
@ -699,9 +677,9 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
Cohesion: 0.12 Cohesion: 0.12
Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more) Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more)
### Community 85 - "SettingsController" ### Community 85 - "CheckoutPage.tsx"
Cohesion: 0.20 Cohesion: 0.32
Nodes (8): SettingsController, ApiOkResponse, ApiOperation, ApiTags, Controller, Delete, Get, Query Nodes (10): AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), SearchableSelect(), SearchableSelectProps, IRAN_PROVINCES (+2 more)
### Community 86 - "zibal.service.ts" ### Community 86 - "zibal.service.ts"
Cohesion: 0.16 Cohesion: 0.16
@ -728,8 +706,8 @@ Cohesion: 0.06
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more) Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
### Community 93 - "useSettingsStore" ### Community 93 - "useSettingsStore"
Cohesion: 0.07 Cohesion: 0.08
Nodes (43): HomeClient(), HomeClientProps, CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps, BlogPostClientProps (+35 more) Nodes (32): HomeClient(), HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps (+24 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
@ -780,16 +758,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) 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 - "AuthService" ### Community 106 - "AuthService"
Cohesion: 0.18 Cohesion: 0.12
Nodes (4): AuthService, Injectable, normalizeMobile(), UserAddressInput Nodes (3): AuthService, Injectable, normalizeMobile()
### Community 107 - "PaginationDto" ### Community 107 - "PaginationDto"
Cohesion: 0.07 Cohesion: 0.06
Nodes (19): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+11 more) Nodes (28): AdminModule, Module, MediaService, Injectable, SslCertInfo, Injectable, WikiQuery, WikiService (+20 more)
### Community 108 - "PrismaService" ### Community 108 - "PrismaService"
Cohesion: 0.07 Cohesion: 0.07
Nodes (20): CategoryQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto (+12 more) Nodes (21): CategoryQuery, PetQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery (+13 more)
### Community 109 - "1. Summary of Integrity Repairs Performed" ### Community 109 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17 Cohesion: 0.17
@ -839,13 +817,9 @@ Nodes (9): compilerOptions, esModuleInterop, module, moduleResolution, skipLibCh
Cohesion: 0.20 Cohesion: 0.20
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more) Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
### Community 122 - "AdminService" ### Community 123 - "UsersService"
Cohesion: 0.15 Cohesion: 0.06
Nodes (3): Put, AdminService, Injectable Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
### Community 123 - "UsersController"
Cohesion: 0.20
Nodes (16): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+8 more)
### Community 124 - "Repository Map" ### Community 124 - "Repository Map"
Cohesion: 0.20 Cohesion: 0.20
@ -863,9 +837,9 @@ Nodes (9): name, private, scripts, build, dev, lint, preview, type (+1 more)
Cohesion: 0.20 Cohesion: 0.20
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more) Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
### Community 129 - "users.controller.ts" ### Community 128 - "AdminController"
Cohesion: 0.13 Cohesion: 0.19
Nodes (13): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+5 more) Nodes (12): AdminController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Param (+4 more)
### Community 130 - "Sahel-Font" ### Community 130 - "Sahel-Font"
Cohesion: 0.20 Cohesion: 0.20
@ -923,13 +897,13 @@ 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 - "getMediaUrl" ### Community 144 - "SafeImage.tsx"
Cohesion: 0.14 Cohesion: 0.10
Nodes (14): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, VideoModalPlayer, DisplayVideoItem, FALLBACK_VIDEOS, TestimonialItem, PLAYBACK_RATES (+6 more) Nodes (20): BackButton(), BackButtonProps, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, PLAYBACK_RATES, PodcastPlayerModal() (+12 more)
### Community 145 - "auth.module.ts" ### Community 145 - "TorobController"
Cohesion: 0.17 Cohesion: 0.25
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more) Nodes (6): TorobController, ApiOperation, ApiTags, Controller, Get, Query
### Community 146 - "System Discovery" ### Community 146 - "System Discovery"
Cohesion: 0.25 Cohesion: 0.25
@ -939,9 +913,9 @@ Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status
Cohesion: 0.16 Cohesion: 0.16
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more) Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
### Community 148 - "admin.service.ts" ### Community 148 - "CreateUserDto"
Cohesion: 0.17 Cohesion: 0.26
Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more) Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more)
### Community 149 - "SmsSettingsPage.tsx" ### Community 149 - "SmsSettingsPage.tsx"
Cohesion: 0.29 Cohesion: 0.29
@ -951,13 +925,13 @@ Nodes (7): PatternItem, SmsConfigState, SmsLogItem, SmsLogStats, SmsSettingsPage
Cohesion: 0.29 Cohesion: 0.29
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD) Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
### Community 151 - "components/Skeleton.tsx" ### Community 151 - "CreateReviewDto"
Cohesion: 0.21 Cohesion: 0.25
Nodes (5): OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps Nodes (8): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, Max
### Community 152 - "PodcastPlayerModal.tsx" ### Community 152 - "MetricsController"
Cohesion: 0.40 Cohesion: 0.29
Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
### Community 153 - "exclude" ### Community 153 - "exclude"
Cohesion: 0.22 Cohesion: 0.22
@ -1047,6 +1021,10 @@ Nodes (4): activeFiles, errors, validationOutput, warnings
Cohesion: 0.60 Cohesion: 0.60
Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD() Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD()
### Community 177 - "videos/page.tsx"
Cohesion: 0.47
Nodes (5): generateMetadata(), getInitialVideos(), Videos(), VideosPage(), generateVideoObjectSchema()
### Community 178 - "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina" ### Community 178 - "نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina"
Cohesion: 0.33 Cohesion: 0.33
Nodes (5): نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina, ۱. معماری و نقش‌های کاربری (User Roles), ۲. ماتریس جریان‌ها و قابلیت‌های کاربرمحور (Feature & Flow Matrix), ۳. وضعیت پوشش نهایی سوئیت ۱۱گانه (Final 11 Test Suites Status), ۴. راهنمای نگهداری و افزودن فیچرهای جدید بدون شکستن تست‌ها (Developer Maintenance Guide) Nodes (5): نقشه جامع پوشش تست‌های سرتاسری (E2E Test Coverage Map) — پروژه Canina, ۱. معماری و نقش‌های کاربری (User Roles), ۲. ماتریس جریان‌ها و قابلیت‌های کاربرمحور (Feature & Flow Matrix), ۳. وضعیت پوشش نهایی سوئیت ۱۱گانه (Final 11 Test Suites Status), ۴. راهنمای نگهداری و افزودن فیچرهای جدید بدون شکستن تست‌ها (Developer Maintenance Guide)
@ -1071,13 +1049,13 @@ Nodes (3): Architectural Overview, Critical Review Findings & Required Enhanceme
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content) Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
### Community 184 - "RegisterDto" ### Community 184 - "UpdateReviewDto"
Cohesion: 0.22 Cohesion: 0.40
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
### Community 185 - "ProductDto" ### Community 185 - "app/page.tsx"
Cohesion: 0.22 Cohesion: 0.67
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString Nodes (3): generateMetadata(), getHomeData(), Home()
### Community 191 - "graphify reference: add a URL and watch a folder" ### Community 191 - "graphify reference: add a URL and watch a folder"
Cohesion: 0.50 Cohesion: 0.50
@ -1103,14 +1081,6 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps Nodes (3): Select, SelectOption, SelectProps
### Community 198 - "SmsLogQueryDto"
Cohesion: 0.25
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 199 - "SmartAdvisor.tsx"
Cohesion: 0.29
Nodes (5): metadata, CURRENT_SYMPTOMS, MEDICAL_HISTORIES, SmartAdvisor(), SmartAdvisorProps
### Community 200 - "application/README.md" ### Community 200 - "application/README.md"
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): Deploy on Vercel, Getting Started, Learn More Nodes (3): Deploy on Vercel, Getting Started, Learn More
@ -1123,18 +1093,10 @@ 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 - "wiki/[slug]/page.tsx"
Cohesion: 0.60
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
### 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 234 - "AdminController"
Cohesion: 0.22
Nodes (5): AdminController, ApiBearerAuth, ApiTags, Controller, UseGuards
### Community 298 - ".initiateOrderPayment" ### Community 298 - ".initiateOrderPayment"
Cohesion: 0.20 Cohesion: 0.20
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more) Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
@ -1146,22 +1108,22 @@ Nodes (3): GET(), handleRevalidate(), POST()
## Knowledge Gaps ## Knowledge Gaps
- **1346 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1341 more) - **1346 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1341 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. - **103 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 `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `HomeController`, `ProductsService`, `UsersController`, `OrdersService`?** - **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `HomeController`, `ProductsService`, `UsersService`, `OrdersService`?**
_High betweenness centrality (0.080) - this node is a cross-community bridge._ _High betweenness centrality (0.084) - this node is a cross-community bridge._
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SettingsController`, `ApiBearerAuth`, `MenuService`, `SmartAdvisorService`, `ContactService`?** - **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `.updateDosageConfig`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `SettingsController`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.062) - this node is a cross-community bridge._ _High betweenness centrality (0.064) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `users.controller.ts`, `admin.module.ts`, `CmsController`, `tickets.controller.ts`, `PaginationDto`, `PetsController`, `auth.service.ts`, `DoctorQueryDto`, `ProductsService`, `admin.service.ts`, `OrdersService`?** - **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `CmsController`, `tickets.controller.ts`, `PaginationDto`, `PetsController`, `auth.service.ts`, `DoctorQueryDto`, `ProductsService`, `ReportsController`, `UsersService`, `OrdersService`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._ _High betweenness centrality (0.035) - 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?**
_1346 weakly-connected nodes found - possible documentation gaps or missing edges._ _1346 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.06390977443609022 - nodes in this community are weakly interconnected._ _Cohesion score 0.061016949152542375 - nodes in this community are weakly interconnected._
- **Should `PaymentService` be split into smaller, more focused modules?** - **Should `PaymentService` be split into smaller, more focused modules?**
_Cohesion score 0.11 - nodes in this community are weakly interconnected._ _Cohesion score 0.11 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?** - **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.05698778833107191 - nodes in this community are weakly interconnected._ _Cohesion score 0.059907834101382486 - 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) # Graph Report - canina (2026-08-29)
## Corpus Check ## Corpus Check
- 596 files · ~1,071,368 words - 596 files · ~1,071,427 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 4169 nodes · 7516 edges · 314 communities (211 shown, 103 thin omitted) - 4169 nodes · 7522 edges · 314 communities (214 shown, 100 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `f2535b4a` - Built from commit: `376fea35`
- 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,8 +36,8 @@
- JwtAuthGuard - JwtAuthGuard
- ProductsService - ProductsService
- CreateVideoDto - CreateVideoDto
- ReportsController - admin.module.ts
- SettingsController - SmsService
- MenuService - MenuService
- BE-001 - BE-001
- FE-001 - FE-001
@ -91,7 +91,7 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- WikiController - WikiController
- PetsController - PetsController
- .updateDosageConfig - ProductsController
- seo.module.ts - seo.module.ts
- rss.xml/route.ts - rss.xml/route.ts
- 🏢 AI Software Agency — Master Orchestration Protocol v3 - 🏢 AI Software Agency — Master Orchestration Protocol v3
@ -100,15 +100,15 @@
- scripts - scripts
- dependencies - dependencies
- Role & Core Objective - Role & Core Objective
- CheckoutPage.tsx - pets/pets.controller.ts
- zibal.service.ts - zibal.service.ts
- dependencies - dependencies
- CreateEBankCheckoutDto - CreateEBankCheckoutDto
- seed-products.ts - seed-products.ts
- SmsService - UserDashboard.tsx
- Reconciled Audit Roles & Assignments - Reconciled Audit Roles & Assignments
- OrdersService - OrdersService
- useSettingsStore - HomeClient.tsx
- Phase 3.1 — Human Review Preparation and Master Backlog Critique - Phase 3.1 — Human Review Preparation and Master Backlog Critique
- blog/[slug]/page.tsx - blog/[slug]/page.tsx
- compilerOptions - compilerOptions
@ -128,7 +128,7 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- BlogsService - RegisterDto
- AppService - AppService
- Blogs.tsx - Blogs.tsx
- Vazirmatn Changelog - Vazirmatn Changelog
@ -211,13 +211,14 @@
- Raw Finding Verification & Disposition Report - Raw Finding Verification & Disposition Report
- React + TypeScript + Vite - React + TypeScript + Vite
- Select.tsx - Select.tsx
- NetworkBanner.tsx - useSettingsStore
- @types/node - @types/node
- tailwindcss - tailwindcss
- application/README.md - application/README.md
- deploy.sh - deploy.sh
- 🔒 Security & Performance Review (09_devops_security) - 🔒 Security & Performance Review (09_devops_security)
- 👁️ UX & Persona Interface Review (08_visual_qa) - 👁️ UX & Persona Interface Review (08_visual_qa)
- eslint
- prisma/scientificTerms.ts - prisma/scientificTerms.ts
- seed-blogs.ts - seed-blogs.ts
- seed-custom.ts - seed-custom.ts
@ -237,6 +238,7 @@
- Textarea.tsx - Textarea.tsx
- admin-panel/tsconfig.json - admin-panel/tsconfig.json
- catalog/page.tsx - catalog/page.tsx
- eslint-config-prettier
- next.config.ts - next.config.ts
- Shabnam Font README - Shabnam Font README
- AGENTS.md - AGENTS.md
@ -244,8 +246,9 @@
- .agents/workflows/graphify.md - .agents/workflows/graphify.md
- instructions.md - instructions.md
- track/page.tsx - track/page.tsx
- typescript
- tailwindcss - tailwindcss
- @tailwindcss/postcss - eslint-config-next
- @vitejs/plugin-react - @vitejs/plugin-react
- supertest - supertest
- blog.entity.ts - blog.entity.ts
@ -301,14 +304,11 @@
- @types/compression - @types/compression
- revalidate/route.ts - revalidate/route.ts
- MaskableField.tsx - MaskableField.tsx
- eslint-plugin-prettier
- @types/express - @types/express
- @types/jest - @types/jest
- globals
- @types/react-dom - @types/react-dom
- eslint-plugin-react-refresh - eslint-plugin-react-refresh
- @types/multer - @types/multer
- typescript-eslint
## God Nodes (most connected - your core abstractions) ## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges 1. `Roles()` - 106 edges
@ -335,11 +335,11 @@
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
## Import Cycles ## Import Cycles
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts` - 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts` - 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Communities (314 total, 103 thin omitted) ## Communities (314 total, 100 thin omitted)
### Community 0 - "Roles" ### Community 0 - "Roles"
Cohesion: 0.24 Cohesion: 0.24
@ -355,11 +355,11 @@ Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOpt
### Community 3 - "productService.ts" ### Community 3 - "productService.ts"
Cohesion: 0.06 Cohesion: 0.06
Nodes (34): dynamic, revalidate, dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+26 more) Nodes (36): dynamic, GET(), revalidate, dynamic, GET(), revalidate, DEFAULT_CATEGORIES, dynamic (+28 more)
### Community 4 - "PetProfile.tsx" ### Community 4 - "PetProfile.tsx"
Cohesion: 0.08 Cohesion: 0.11
Nodes (23): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage(), OrderRowSkeleton() (+15 more) Nodes (19): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage(), CURRENT_SYMPTOMS (+11 more)
### Community 5 - "CmsController" ### Community 5 - "CmsController"
Cohesion: 0.09 Cohesion: 0.09
@ -379,7 +379,7 @@ Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controlle
### Community 9 - "devDependencies" ### Community 9 - "devDependencies"
Cohesion: 0.08 Cohesion: 0.08
Nodes (25): devDependencies, eslint, eslint-config-prettier, @eslint/eslintrc, jest, @nestjs/cli, @nestjs/testing, prettier (+17 more) Nodes (25): devDependencies, @eslint/eslintrc, eslint-plugin-prettier, globals, jest, @nestjs/cli, @nestjs/testing, prettier (+17 more)
### Community 10 - "ReviewsService" ### Community 10 - "ReviewsService"
Cohesion: 0.12 Cohesion: 0.12
@ -399,7 +399,7 @@ Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsS
### Community 14 - "toPersian" ### Community 14 - "toPersian"
Cohesion: 0.09 Cohesion: 0.09
Nodes (36): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, VerifyContent(), ArchiveProductCard(), AuthModal() (+28 more) Nodes (41): VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), ArchiveProductCard(), AuthModal() (+33 more)
### Community 15 - "src/services/api.ts" ### Community 15 - "src/services/api.ts"
Cohesion: 0.08 Cohesion: 0.08
@ -418,20 +418,20 @@ Cohesion: 0.17
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 19 - "ProductsService" ### Community 19 - "ProductsService"
Cohesion: 0.15 Cohesion: 0.18
Nodes (13): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiTags, Controller (+5 more) Nodes (10): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Query, ProductsModule, Module (+2 more)
### Community 20 - "CreateVideoDto" ### Community 20 - "CreateVideoDto"
Cohesion: 0.09 Cohesion: 0.09
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more) Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
### Community 21 - "ReportsController" ### Community 21 - "admin.module.ts"
Cohesion: 0.14 Cohesion: 0.07
Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more) Nodes (22): AdminModule, Module, MediaService, Injectable, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery (+14 more)
### Community 22 - "SettingsController" ### Community 22 - "SmsService"
Cohesion: 0.08 Cohesion: 0.06
Nodes (24): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, SettingsController (+16 more) Nodes (26): SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString (+18 more)
### Community 23 - "MenuService" ### Community 23 - "MenuService"
Cohesion: 0.12 Cohesion: 0.12
@ -482,7 +482,7 @@ Cohesion: 0.13
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more) Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more)
### Community 35 - "AuthController" ### Community 35 - "AuthController"
Cohesion: 0.25 Cohesion: 0.23
Nodes (13): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more) Nodes (13): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
### Community 36 - "FaqService" ### Community 36 - "FaqService"
@ -534,8 +534,8 @@ Cohesion: 0.13
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 - "auth.service.ts" ### Community 48 - "auth.service.ts"
Cohesion: 0.06 Cohesion: 0.08
Nodes (33): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+25 more) Nodes (25): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+17 more)
### Community 49 - "devDependencies" ### Community 49 - "devDependencies"
Cohesion: 0.11 Cohesion: 0.11
@ -543,7 +543,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
### Community 50 - "devDependencies" ### Community 50 - "devDependencies"
Cohesion: 0.12 Cohesion: 0.12
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more) Nodes (17): devDependencies, eslint, jsdom, @tailwindcss/postcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
### Community 51 - "BlogsController" ### Community 51 - "BlogsController"
Cohesion: 0.14 Cohesion: 0.14
@ -606,12 +606,12 @@ Cohesion: 0.18
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 67 - "PetsController" ### Community 67 - "PetsController"
Cohesion: 0.11 Cohesion: 0.10
Nodes (13): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+5 more) Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
### Community 68 - "lib/services/api.ts" ### Community 68 - "lib/services/api.ts"
Cohesion: 0.07 Cohesion: 0.09
Nodes (29): BlogPost, ContactInfoItem, DeleteConfirmModal(), DeleteConfirmModalProps, FAQItem, OrderDetailsModal(), OrderDetailsModalProps, Testimonial (+21 more) Nodes (19): BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, Testimonial, api, ApiErrorPayload, BASE_DOMAIN (+11 more)
### Community 69 - "Required Review Group Closures" ### Community 69 - "Required Review Group Closures"
Cohesion: 0.10 Cohesion: 0.10
@ -638,12 +638,12 @@ Cohesion: 0.13
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 75 - "PetsController" ### Community 75 - "PetsController"
Cohesion: 0.05 Cohesion: 0.08
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more) Nodes (32): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreateReminderDto, ApiProperty (+24 more)
### Community 76 - ".updateDosageConfig" ### Community 76 - "ProductsController"
Cohesion: 0.17 Cohesion: 0.15
Nodes (6): ApiOperation, Body, Get, Param, Patch, UseGuards Nodes (9): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+1 more)
### Community 77 - "seo.module.ts" ### Community 77 - "seo.module.ts"
Cohesion: 0.16 Cohesion: 0.16
@ -677,9 +677,9 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
Cohesion: 0.12 Cohesion: 0.12
Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more) Nodes (16): 1. Active Secret Scanning (All Modified Files), 2. Docker Container Verification (if Dockerfile exists), 3. CI/CD Basic Check (if `.github/workflows/` exists), 4. Failure Routing Protocol, 5. Forbidden Actions, ENFORCE MODE — Normal Operation, Expected JSON Output Schema, Operational Rules & Boundaries (+8 more)
### Community 85 - "CheckoutPage.tsx" ### Community 85 - "pets/pets.controller.ts"
Cohesion: 0.32 Cohesion: 0.11
Nodes (10): AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), SearchableSelect(), SearchableSelectProps, IRAN_PROVINCES (+2 more) Nodes (15): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+7 more)
### Community 86 - "zibal.service.ts" ### Community 86 - "zibal.service.ts"
Cohesion: 0.16 Cohesion: 0.16
@ -697,17 +697,21 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
Cohesion: 0.17 Cohesion: 0.17
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more) Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
### Community 90 - "UserDashboard.tsx"
Cohesion: 0.12
Nodes (11): DeleteConfirmModal(), DeleteConfirmModalProps, OrderDetailsModal(), OrderRowSkeleton(), PetProfileSkeleton(), Skeleton(), SkeletonProps, CreateTicketPayload (+3 more)
### Community 91 - "Reconciled Audit Roles & Assignments" ### Community 91 - "Reconciled Audit Roles & Assignments"
Cohesion: 0.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.06 Cohesion: 0.07
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more) Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
### Community 93 - "useSettingsStore" ### Community 93 - "HomeClient.tsx"
Cohesion: 0.08 Cohesion: 0.09
Nodes (32): HomeClient(), HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps (+24 more) Nodes (22): HomeClient(), HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, BlogPreviewSection() (+14 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
@ -758,16 +762,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) 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 - "AuthService" ### Community 106 - "AuthService"
Cohesion: 0.12 Cohesion: 0.13
Nodes (3): AuthService, Injectable, normalizeMobile() Nodes (3): AuthService, Injectable, normalizeMobile()
### Community 107 - "PaginationDto" ### Community 107 - "PaginationDto"
Cohesion: 0.06 Cohesion: 0.06
Nodes (28): AdminModule, Module, MediaService, Injectable, SslCertInfo, Injectable, WikiQuery, WikiService (+20 more) Nodes (25): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+17 more)
### Community 108 - "PrismaService" ### Community 108 - "PrismaService"
Cohesion: 0.07 Cohesion: 0.07
Nodes (21): CategoryQuery, PetQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery (+13 more) Nodes (20): CategoryQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto (+12 more)
### Community 109 - "1. Summary of Integrity Repairs Performed" ### Community 109 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17 Cohesion: 0.17
@ -785,6 +789,10 @@ Nodes (10): 1. Mark Active Task as Complete, 2. Documentation Updates, 3. Dynami
Cohesion: 0.18 Cohesion: 0.18
Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more) Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
### Community 113 - "RegisterDto"
Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 114 - "AppService" ### Community 114 - "AppService"
Cohesion: 0.29 Cohesion: 0.29
Nodes (5): AppController, Controller, Get, AppService, Injectable Nodes (5): AppController, Controller, Get, AppService, Injectable
@ -914,7 +922,7 @@ Cohesion: 0.16
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more) Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
### Community 148 - "CreateUserDto" ### Community 148 - "CreateUserDto"
Cohesion: 0.26 Cohesion: 0.29
Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more) Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more)
### Community 149 - "SmsSettingsPage.tsx" ### Community 149 - "SmsSettingsPage.tsx"
@ -1081,6 +1089,10 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps Nodes (3): Select, SelectOption, SelectProps
### Community 197 - "useSettingsStore"
Cohesion: 0.11
Nodes (20): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, B2BLandingClient(), BrandLogo(), BrandLogoProps (+12 more)
### Community 200 - "application/README.md" ### Community 200 - "application/README.md"
Cohesion: 0.50 Cohesion: 0.50
Nodes (3): Deploy on Vercel, Getting Started, Learn More Nodes (3): Deploy on Vercel, Getting Started, Learn More
@ -1108,16 +1120,16 @@ Nodes (3): GET(), handleRevalidate(), POST()
## Knowledge Gaps ## Knowledge Gaps
- **1346 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1341 more) - **1346 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1341 more)
These have ≤1 connection - possible missing edges or undocumented components. These have ≤1 connection - possible missing edges or undocumented components.
- **103 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. - **100 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 `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `HomeController`, `ProductsService`, `UsersService`, `OrdersService`?** - **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `ProductsController`, `HomeController`, `UsersService`, `OrdersService`?**
_High betweenness centrality (0.084) - this node is a cross-community bridge._ _High betweenness centrality (0.084) - this node is a cross-community bridge._
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `.updateDosageConfig`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `SettingsController`, `MenuService`, `ContactService`?** - **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `ProductsController`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `SmsService`, `MenuService`, `ContactService`?**
_High betweenness centrality (0.064) - this node is a cross-community bridge._ _High betweenness centrality (0.064) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `CmsController`, `tickets.controller.ts`, `PaginationDto`, `PetsController`, `auth.service.ts`, `DoctorQueryDto`, `ProductsService`, `ReportsController`, `UsersService`, `OrdersService`?** - **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `PaginationDto`, `auth.service.ts`, `DoctorQueryDto`, `ProductsService`, `admin.module.ts`, `pets/pets.controller.ts`, `UsersService`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._ _High betweenness centrality (0.035) - 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?**
_1346 weakly-connected nodes found - possible documentation gaps or missing edges._ _1346 weakly-connected nodes found - possible documentation gaps or missing edges._

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