feat(seo): add Torob meta tags and Torob automated products API endpoint
This commit is contained in:
parent
812bc2920c
commit
f2535b4aee
90
frontend/application/app/api/torob/products/route.ts
Normal file
90
frontend/application/app/api/torob/products/route.ts
Normal file
@ -0,0 +1,90 @@
|
||||
import { NextRequest, NextResponse } from 'next/server';
|
||||
import { productService } from '../../../../lib/services/productService';
|
||||
import { PRODUCTS } from '../../../../lib/data/products';
|
||||
|
||||
export const dynamic = 'force-dynamic';
|
||||
export const revalidate = 3600;
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
const { searchParams } = new URL(request.url);
|
||||
const page = Math.max(1, parseInt(searchParams.get('page') || '1', 10));
|
||||
const pageSize = Math.min(100, Math.max(10, parseInt(searchParams.get('page_size') || '100', 10)));
|
||||
|
||||
const baseUrl = (process.env.NEXT_PUBLIC_SITE_URL || 'https://canina.ir').replace(/\/$/, '');
|
||||
|
||||
let allProducts: any[] = [];
|
||||
try {
|
||||
const res = await productService.getProducts({ limit: 999 });
|
||||
allProducts = res.data && res.data.length > 0 ? res.data : PRODUCTS;
|
||||
} catch {
|
||||
allProducts = PRODUCTS;
|
||||
}
|
||||
|
||||
// Filter indexable active products
|
||||
const indexableProducts = allProducts.filter(
|
||||
(p) => !p.noIndex && p.stockStatus !== 'DISCONTINUED'
|
||||
);
|
||||
|
||||
const totalCount = indexableProducts.length;
|
||||
const maxPages = Math.ceil(totalCount / pageSize) || 1;
|
||||
const startIndex = (page - 1) * pageSize;
|
||||
const pagedProducts = indexableProducts.slice(startIndex, startIndex + pageSize);
|
||||
|
||||
const results = pagedProducts.map((product) => {
|
||||
const slug = product.slug || product.artNo || product.id;
|
||||
const pageUrl = `${baseUrl}/shop/${slug}`;
|
||||
const productId = String(product.artNo || product.id || slug);
|
||||
const nameFa = product.nameFa || product.name || '';
|
||||
const nameEn = product.nameEn || '';
|
||||
const title = nameEn ? `${nameFa} (${nameEn})` : nameFa;
|
||||
const primaryImg = product.ogImage || product.image || product.imageUrl || '';
|
||||
const imageLink = primaryImg
|
||||
? primaryImg.startsWith('http')
|
||||
? primaryImg
|
||||
: `${baseUrl}${primaryImg.startsWith('/') ? primaryImg : `/${primaryImg}`}`
|
||||
: '';
|
||||
|
||||
const isInStock =
|
||||
product.stockStatus !== 'OUT_OF_STOCK' &&
|
||||
product.stockStatus !== 'out_of_stock' &&
|
||||
product.inStock !== false;
|
||||
|
||||
const price = Number(product.priceValue || product.price || 0);
|
||||
const oldPrice = Number(product.oldPrice || product.priceValue || product.price || 0);
|
||||
|
||||
return {
|
||||
product_id: productId,
|
||||
page_unique_code: productId,
|
||||
title,
|
||||
subtitle: nameEn || product.scientificTagline || '',
|
||||
page_url: pageUrl,
|
||||
price,
|
||||
old_price: oldPrice,
|
||||
availability: isInStock ? 'instock' : 'outofstock',
|
||||
image_link: imageLink,
|
||||
guarantee: 'ضمانت اصالت ۱۰۰٪ کمپانی Canina آلمان',
|
||||
category_name: product.category || 'مکمل حیوانات خانگی',
|
||||
};
|
||||
});
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
count: totalCount,
|
||||
max_pages: maxPages,
|
||||
results,
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
'Cache-Control': 'public, s-maxage=3600, stale-while-revalidate=7200',
|
||||
},
|
||||
}
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('[Torob API Error]', error);
|
||||
return NextResponse.json(
|
||||
{ error: 'Internal Server Error fetching products for Torob' },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -86,6 +86,15 @@ export async function generateMetadata(
|
||||
},
|
||||
alternates: {
|
||||
canonical: canonicalUrl,
|
||||
},
|
||||
other: {
|
||||
product_id: String(product.artNo || product.id || resolvedParams.slug),
|
||||
product_name: nameFa,
|
||||
product_price: String(product.priceValue || 0),
|
||||
product_old_price: String(product.priceValue || 0),
|
||||
availability: (product.stockStatus === 'DISCONTINUED' || String(product.stockStatus || '').toLowerCase().includes('out')) ? 'outofstock' : 'instock',
|
||||
guarantee: 'ضمانت اصالت ۱۰۰٪ کمپانی Canina آلمان و اصالت کالا',
|
||||
'og:image': primaryImage.startsWith('http') ? primaryImage : `${baseCanonical}${primaryImage.startsWith('/') ? primaryImage : `/${primaryImage}`}`,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
"7": "Button.tsx",
|
||||
"8": "WikiController",
|
||||
"9": "devDependencies",
|
||||
"10": "ReviewsService",
|
||||
"10": "CreateReviewDto",
|
||||
"11": "MediaSelector.tsx",
|
||||
"12": "index.ts",
|
||||
"13": "app-audit-verification.e2e-spec.js",
|
||||
@ -18,10 +18,10 @@
|
||||
"16": "DoctorQueryDto",
|
||||
"17": "schema.ts",
|
||||
"18": "JwtAuthGuard",
|
||||
"19": "ProductsController",
|
||||
"19": "ProductsService",
|
||||
"20": "CreateVideoDto",
|
||||
"21": "admin.module.ts",
|
||||
"22": "RevalidationService",
|
||||
"21": "ReportsController",
|
||||
"22": "ApiBearerAuth",
|
||||
"23": "MenuService",
|
||||
"24": "BE-001",
|
||||
"25": "FE-001",
|
||||
@ -60,13 +60,13 @@
|
||||
"58": "ContactService",
|
||||
"59": "compilerOptions",
|
||||
"60": "RedisService",
|
||||
"61": "ProductsService",
|
||||
"61": "ProductPage.tsx",
|
||||
"62": "AdminLoginDto",
|
||||
"63": "dependencies",
|
||||
"64": "compilerOptions",
|
||||
"65": "BlogsService",
|
||||
"66": "AdminQueryDto",
|
||||
"67": "PetsController",
|
||||
"66": "ApiOperation",
|
||||
"67": "admin.module.ts",
|
||||
"68": "UserDashboard.tsx",
|
||||
"69": "Required Review Group Closures",
|
||||
"70": "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",
|
||||
@ -84,12 +84,12 @@
|
||||
"82": "scripts",
|
||||
"83": "dependencies",
|
||||
"84": "Role & Core Objective",
|
||||
"85": "VerifyOtpDto",
|
||||
"85": "SettingsController",
|
||||
"86": "zibal.service.ts",
|
||||
"87": "dependencies",
|
||||
"88": "CreateEBankCheckoutDto",
|
||||
"89": "seed-products.ts",
|
||||
"90": "CreateReviewDto",
|
||||
"90": "SmsService",
|
||||
"91": "Reconciled Audit Roles & Assignments",
|
||||
"92": "OrdersService",
|
||||
"93": "useSettingsStore",
|
||||
@ -112,7 +112,7 @@
|
||||
"110": "Operational Rules & Boundaries",
|
||||
"111": "Operational Rules & Boundaries",
|
||||
"112": "Operational Rules & Boundaries",
|
||||
"113": "SmsService",
|
||||
"113": "SettingsService",
|
||||
"114": "AppService",
|
||||
"115": "Blogs.tsx",
|
||||
"116": "Vazirmatn Changelog",
|
||||
@ -121,14 +121,14 @@
|
||||
"119": "compilerOptions",
|
||||
"120": "compilerOptions",
|
||||
"121": "backend/README.md",
|
||||
"122": "ApiOperation",
|
||||
"123": "UsersService",
|
||||
"122": "AdminService",
|
||||
"123": "UsersController",
|
||||
"124": "Repository Map",
|
||||
"125": "validate_integrity.js",
|
||||
"126": "admin-panel/package.json",
|
||||
"127": "Sahel-Font",
|
||||
"128": "AdminController",
|
||||
"129": "MetricsController",
|
||||
"128": "Body",
|
||||
"129": "users.controller.ts",
|
||||
"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": "ProductPage.tsx",
|
||||
"145": "UpdateReviewDto",
|
||||
"144": "getMediaUrl",
|
||||
"145": "auth.module.ts",
|
||||
"146": "System Discovery",
|
||||
"147": "HomeController",
|
||||
"148": "admin.service.ts",
|
||||
"149": "SmsSettingsPage.tsx",
|
||||
"150": "Product Requirement Document (PRD)",
|
||||
"151": "components/Skeleton.tsx",
|
||||
"152": "lib/services/api.ts",
|
||||
"152": "PodcastPlayerModal.tsx",
|
||||
"153": "exclude",
|
||||
"154": "Baseline Command Plan & Reconciled Command History",
|
||||
"155": "seo-backfill.ts",
|
||||
@ -176,7 +176,7 @@
|
||||
"174": "rebuild_honest_ledger.js",
|
||||
"175": "validate_evidence_grade.js",
|
||||
"176": "uploads/[...path]/route.ts",
|
||||
"177": "@types/node",
|
||||
"177": "UsersService",
|
||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||
"179": "app.e2e-spec.js",
|
||||
"180": "API Contract Specification",
|
||||
@ -184,7 +184,7 @@
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"184": "RegisterDto",
|
||||
"185": "typescript",
|
||||
"185": "ProductDto",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -197,7 +197,8 @@
|
||||
"195": "React + TypeScript + Vite",
|
||||
"196": "Select.tsx",
|
||||
"197": "eslint-config-next",
|
||||
"199": "videos/page.tsx",
|
||||
"198": "SmsLogQueryDto",
|
||||
"199": "SmartAdvisor.tsx",
|
||||
"200": "application/README.md",
|
||||
"201": "deploy.sh",
|
||||
"202": "🔒 Security & Performance Review (09_devops_security)",
|
||||
@ -222,16 +223,22 @@
|
||||
"221": "Textarea.tsx",
|
||||
"222": "admin-panel/tsconfig.json",
|
||||
"223": "catalog/page.tsx",
|
||||
"224": "wiki/[slug]/page.tsx",
|
||||
"225": "next.config.ts",
|
||||
"226": "Shabnam Font README",
|
||||
"227": "AGENTS.md",
|
||||
"228": "rules/graphify.md",
|
||||
"229": ".agents/workflows/graphify.md",
|
||||
"230": "instructions.md",
|
||||
"231": "track/page.tsx",
|
||||
"232": "class-transformer",
|
||||
"233": "tailwindcss",
|
||||
"234": ".getDashboardStats",
|
||||
"234": "AdminController",
|
||||
"235": "helmet",
|
||||
"236": "js-yaml",
|
||||
"237": "@tailwindcss/postcss",
|
||||
"238": "@vitejs/plugin-react",
|
||||
"239": "@nestjs/core",
|
||||
"240": "supertest",
|
||||
"241": "blog.entity.ts",
|
||||
"242": "home.entity.ts",
|
||||
@ -256,7 +263,10 @@
|
||||
"261": "User Login API",
|
||||
"262": "User Logout API",
|
||||
"263": "generate-openapi.d.ts",
|
||||
"267": "eslint",
|
||||
"264": "@nestjs/jwt",
|
||||
"265": "@nestjs/swagger",
|
||||
"266": "@nestjs/throttler",
|
||||
"267": "passport",
|
||||
"268": "eslint-config-prettier",
|
||||
"269": "eslint-plugin-react-hooks",
|
||||
"270": "app-audit-verification.e2e-spec.d.ts",
|
||||
@ -285,13 +295,17 @@
|
||||
"293": "Staging Docker Compose",
|
||||
"294": "ZibalService",
|
||||
"295": "@nestjs/schematics",
|
||||
"296": "reflect-metadata",
|
||||
"297": "ZibalEBankService",
|
||||
"298": ".initiateOrderPayment",
|
||||
"299": "@tailwindcss/postcss",
|
||||
"300": "typescript",
|
||||
"301": "swagger-ui-express",
|
||||
"302": "typescript-eslint",
|
||||
"303": "prisma",
|
||||
"304": "source-map-support",
|
||||
"305": "@eslint/eslintrc",
|
||||
"306": "@eslint/js",
|
||||
"307": "ts-loader",
|
||||
"308": "ts-node",
|
||||
"309": "axios",
|
||||
@ -304,13 +318,21 @@
|
||||
"316": "@types/compression",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "eslint-plugin-prettier",
|
||||
"320": "@types/express",
|
||||
"321": "orders/page.tsx",
|
||||
"322": "pets/page.tsx",
|
||||
"323": "@types/jest",
|
||||
"324": "globals",
|
||||
"325": "@types/react-dom",
|
||||
"326": "jest",
|
||||
"327": "eslint-plugin-react-refresh",
|
||||
"328": "@nestjs/cli",
|
||||
"329": "@types/multer",
|
||||
"333": "app/page.tsx"
|
||||
"330": "@nestjs/testing",
|
||||
"331": "prettier",
|
||||
"332": "ts-jest",
|
||||
"333": "@types/js-yaml",
|
||||
"334": "@types/supertest",
|
||||
"335": "typescript-eslint"
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
"1": "app.module.ts",
|
||||
"2": "PaymentService",
|
||||
"3": "productService.ts",
|
||||
"4": "ProductPage.tsx",
|
||||
"4": "useCartStore",
|
||||
"5": "CmsController",
|
||||
"6": "tickets.controller.ts",
|
||||
"7": "Button.tsx",
|
||||
@ -13,14 +13,14 @@
|
||||
"11": "MediaSelector.tsx",
|
||||
"12": "index.ts",
|
||||
"13": "app-audit-verification.e2e-spec.js",
|
||||
"14": "toPersian",
|
||||
"14": "userStore.ts",
|
||||
"15": "src/services/api.ts",
|
||||
"16": "DoctorQueryDto",
|
||||
"17": "schema.ts",
|
||||
"18": "JwtAuthGuard",
|
||||
"19": "ProductsController",
|
||||
"20": "CreateVideoDto",
|
||||
"21": "ReportsController",
|
||||
"21": "admin.module.ts",
|
||||
"22": "RevalidationService",
|
||||
"23": "MenuService",
|
||||
"24": "BE-001",
|
||||
@ -47,7 +47,7 @@
|
||||
"45": "What You Must Do When Invoked",
|
||||
"46": "20260526145407_init/migration.sql",
|
||||
"47": "IngredientsService",
|
||||
"48": "UsersController",
|
||||
"48": "auth.service.ts",
|
||||
"49": "devDependencies",
|
||||
"50": "devDependencies",
|
||||
"51": "BlogsController",
|
||||
@ -59,9 +59,9 @@
|
||||
"57": "Role & Core Objective",
|
||||
"58": "ContactService",
|
||||
"59": "compilerOptions",
|
||||
"60": "payment.service.ts",
|
||||
"60": "RedisService",
|
||||
"61": "ProductsService",
|
||||
"62": "orderService.ts",
|
||||
"62": "AdminLoginDto",
|
||||
"63": "dependencies",
|
||||
"64": "compilerOptions",
|
||||
"65": "BlogsService",
|
||||
@ -75,7 +75,7 @@
|
||||
"73": "Operational Rules & Boundaries",
|
||||
"74": "WikiController",
|
||||
"75": "PetsController",
|
||||
"76": "AdminController",
|
||||
"76": "AdminService",
|
||||
"77": "seo.module.ts",
|
||||
"78": "rss.xml/route.ts",
|
||||
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
||||
@ -84,7 +84,7 @@
|
||||
"82": "scripts",
|
||||
"83": "dependencies",
|
||||
"84": "Role & Core Objective",
|
||||
"85": "ClientLayout.tsx",
|
||||
"85": "VerifyOtpDto",
|
||||
"86": "zibal.service.ts",
|
||||
"87": "dependencies",
|
||||
"88": "CreateEBankCheckoutDto",
|
||||
@ -105,7 +105,7 @@
|
||||
"103": "Comprehensive Change Log",
|
||||
"104": "Coupons.tsx",
|
||||
"105": "Operational Rules & Boundaries",
|
||||
"106": "auth.service.ts",
|
||||
"106": "AuthService",
|
||||
"107": "PaginationDto",
|
||||
"108": "PrismaService",
|
||||
"109": "1. Summary of Integrity Repairs Performed",
|
||||
@ -127,7 +127,7 @@
|
||||
"125": "validate_integrity.js",
|
||||
"126": "admin-panel/package.json",
|
||||
"127": "Sahel-Font",
|
||||
"128": "AdminService",
|
||||
"128": "AdminController",
|
||||
"129": "MetricsController",
|
||||
"130": "Sahel-Font",
|
||||
"131": "Role & Core Objective",
|
||||
@ -143,8 +143,8 @@
|
||||
"141": "application/package.json",
|
||||
"142": "start-dev.js",
|
||||
"143": "generate-openapi.js",
|
||||
"144": "VetGallery.tsx",
|
||||
"145": "ProductDto",
|
||||
"144": "ProductPage.tsx",
|
||||
"145": "UpdateReviewDto",
|
||||
"146": "System Discovery",
|
||||
"147": "HomeController",
|
||||
"148": "admin.service.ts",
|
||||
@ -176,15 +176,15 @@
|
||||
"174": "rebuild_honest_ledger.js",
|
||||
"175": "validate_evidence_grade.js",
|
||||
"176": "uploads/[...path]/route.ts",
|
||||
"177": "auth.module.ts",
|
||||
"177": "@types/node",
|
||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||
"179": "app.e2e-spec.js",
|
||||
"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": "auth.controller.ts",
|
||||
"185": "SmsLogQueryDto",
|
||||
"184": "RegisterDto",
|
||||
"185": "typescript",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -196,8 +196,7 @@
|
||||
"194": "Raw Finding Verification & Disposition Report",
|
||||
"195": "React + TypeScript + Vite",
|
||||
"196": "Select.tsx",
|
||||
"197": "bcrypt",
|
||||
"198": "WikiService",
|
||||
"197": "eslint-config-next",
|
||||
"199": "videos/page.tsx",
|
||||
"200": "application/README.md",
|
||||
"201": "deploy.sh",
|
||||
@ -223,22 +222,16 @@
|
||||
"221": "Textarea.tsx",
|
||||
"222": "admin-panel/tsconfig.json",
|
||||
"223": "catalog/page.tsx",
|
||||
"224": "class-transformer",
|
||||
"225": "next.config.ts",
|
||||
"226": "Shabnam Font README",
|
||||
"227": "AGENTS.md",
|
||||
"228": "rules/graphify.md",
|
||||
"229": ".agents/workflows/graphify.md",
|
||||
"230": "instructions.md",
|
||||
"231": "js-yaml",
|
||||
"232": "@nestjs/core",
|
||||
"233": "tailwindcss",
|
||||
"234": ".getDashboardStats",
|
||||
"235": "@nestjs/jwt",
|
||||
"236": "@nestjs/swagger",
|
||||
"237": "@tailwindcss/postcss",
|
||||
"238": "@vitejs/plugin-react",
|
||||
"239": "@nestjs/throttler",
|
||||
"240": "supertest",
|
||||
"241": "blog.entity.ts",
|
||||
"242": "home.entity.ts",
|
||||
@ -263,9 +256,6 @@
|
||||
"261": "User Login API",
|
||||
"262": "User Logout API",
|
||||
"263": "generate-openapi.d.ts",
|
||||
"264": "passport",
|
||||
"265": "reflect-metadata",
|
||||
"266": "swagger-ui-express",
|
||||
"267": "eslint",
|
||||
"268": "eslint-config-prettier",
|
||||
"269": "eslint-plugin-react-hooks",
|
||||
@ -295,17 +285,13 @@
|
||||
"293": "Staging Docker Compose",
|
||||
"294": "ZibalService",
|
||||
"295": "@nestjs/schematics",
|
||||
"296": "eslint-plugin-prettier",
|
||||
"297": "ZibalEBankService",
|
||||
"298": ".initiateOrderPayment",
|
||||
"299": "@tailwindcss/postcss",
|
||||
"300": "typescript",
|
||||
"301": "@nestjs/testing",
|
||||
"302": "typescript-eslint",
|
||||
"303": "prisma",
|
||||
"304": "source-map-support",
|
||||
"305": "ts-jest",
|
||||
"306": "globals",
|
||||
"307": "ts-loader",
|
||||
"308": "ts-node",
|
||||
"309": "axios",
|
||||
@ -318,20 +304,13 @@
|
||||
"316": "@types/compression",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@eslint/js",
|
||||
"320": "@types/express",
|
||||
"321": "orders/page.tsx",
|
||||
"322": "pets/page.tsx",
|
||||
"323": "@types/jest",
|
||||
"324": "@types/js-yaml",
|
||||
"325": "@types/react-dom",
|
||||
"326": "jest",
|
||||
"327": "eslint-plugin-react-refresh",
|
||||
"328": "@nestjs/cli",
|
||||
"329": "@types/multer",
|
||||
"330": "prettier",
|
||||
"331": "@types/supertest",
|
||||
"332": "typescript-eslint",
|
||||
"333": "app/page.tsx",
|
||||
"334": "tailwindcss"
|
||||
"333": "app/page.tsx"
|
||||
}
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-08-29)
|
||||
|
||||
## Corpus Check
|
||||
- 593 files · ~1,337,968 words
|
||||
- 594 files · ~1,070,682 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4153 nodes · 7492 edges · 335 communities (217 shown, 118 thin omitted)
|
||||
- 4156 nodes · 7496 edges · 314 communities (215 shown, 99 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: `2d54fc82`
|
||||
- Built from commit: `c7d7ac3a`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
- app.module.ts
|
||||
- PaymentService
|
||||
- productService.ts
|
||||
- ProductPage.tsx
|
||||
- useCartStore
|
||||
- CmsController
|
||||
- tickets.controller.ts
|
||||
- Button.tsx
|
||||
@ -29,14 +29,14 @@
|
||||
- MediaSelector.tsx
|
||||
- index.ts
|
||||
- app-audit-verification.e2e-spec.js
|
||||
- toPersian
|
||||
- userStore.ts
|
||||
- src/services/api.ts
|
||||
- DoctorQueryDto
|
||||
- schema.ts
|
||||
- JwtAuthGuard
|
||||
- ProductsController
|
||||
- CreateVideoDto
|
||||
- ReportsController
|
||||
- admin.module.ts
|
||||
- RevalidationService
|
||||
- MenuService
|
||||
- BE-001
|
||||
@ -63,7 +63,7 @@
|
||||
- What You Must Do When Invoked
|
||||
- 20260526145407_init/migration.sql
|
||||
- IngredientsService
|
||||
- UsersController
|
||||
- auth.service.ts
|
||||
- devDependencies
|
||||
- devDependencies
|
||||
- BlogsController
|
||||
@ -75,9 +75,9 @@
|
||||
- Role & Core Objective
|
||||
- ContactService
|
||||
- compilerOptions
|
||||
- payment.service.ts
|
||||
- RedisService
|
||||
- ProductsService
|
||||
- orderService.ts
|
||||
- AdminLoginDto
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- BlogsService
|
||||
@ -91,7 +91,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- PetsController
|
||||
- AdminController
|
||||
- AdminService
|
||||
- seo.module.ts
|
||||
- rss.xml/route.ts
|
||||
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
||||
@ -100,7 +100,7 @@
|
||||
- scripts
|
||||
- dependencies
|
||||
- Role & Core Objective
|
||||
- ClientLayout.tsx
|
||||
- VerifyOtpDto
|
||||
- zibal.service.ts
|
||||
- dependencies
|
||||
- CreateEBankCheckoutDto
|
||||
@ -121,7 +121,7 @@
|
||||
- Comprehensive Change Log
|
||||
- Coupons.tsx
|
||||
- Operational Rules & Boundaries
|
||||
- auth.service.ts
|
||||
- AuthService
|
||||
- PaginationDto
|
||||
- PrismaService
|
||||
- 1. Summary of Integrity Repairs Performed
|
||||
@ -143,7 +143,7 @@
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
- Sahel-Font
|
||||
- AdminService
|
||||
- AdminController
|
||||
- MetricsController
|
||||
- Sahel-Font
|
||||
- Role & Core Objective
|
||||
@ -159,8 +159,8 @@
|
||||
- application/package.json
|
||||
- start-dev.js
|
||||
- generate-openapi.js
|
||||
- VetGallery.tsx
|
||||
- ProductDto
|
||||
- ProductPage.tsx
|
||||
- UpdateReviewDto
|
||||
- System Discovery
|
||||
- HomeController
|
||||
- admin.service.ts
|
||||
@ -191,15 +191,15 @@
|
||||
- rebuild_honest_ledger.js
|
||||
- validate_evidence_grade.js
|
||||
- uploads/[...path]/route.ts
|
||||
- auth.module.ts
|
||||
- @types/node
|
||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||
- app.e2e-spec.js
|
||||
- API Contract Specification
|
||||
- ⚙️ Backend Technical Review (05_dev_backend)
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- auth.controller.ts
|
||||
- SmsLogQueryDto
|
||||
- RegisterDto
|
||||
- typescript
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -211,8 +211,7 @@
|
||||
- Raw Finding Verification & Disposition Report
|
||||
- React + TypeScript + Vite
|
||||
- Select.tsx
|
||||
- bcrypt
|
||||
- WikiService
|
||||
- eslint-config-next
|
||||
- videos/page.tsx
|
||||
- application/README.md
|
||||
- deploy.sh
|
||||
@ -238,21 +237,15 @@
|
||||
- Textarea.tsx
|
||||
- admin-panel/tsconfig.json
|
||||
- catalog/page.tsx
|
||||
- class-transformer
|
||||
- next.config.ts
|
||||
- Shabnam Font README
|
||||
- AGENTS.md
|
||||
- rules/graphify.md
|
||||
- .agents/workflows/graphify.md
|
||||
- instructions.md
|
||||
- js-yaml
|
||||
- @nestjs/core
|
||||
- tailwindcss
|
||||
- @nestjs/jwt
|
||||
- @nestjs/swagger
|
||||
- @tailwindcss/postcss
|
||||
- @vitejs/plugin-react
|
||||
- @nestjs/throttler
|
||||
- supertest
|
||||
- blog.entity.ts
|
||||
- home.entity.ts
|
||||
@ -273,9 +266,6 @@
|
||||
- start.sh
|
||||
- User Login API
|
||||
- User Logout API
|
||||
- passport
|
||||
- reflect-metadata
|
||||
- swagger-ui-express
|
||||
- eslint
|
||||
- eslint-config-prettier
|
||||
- eslint-plugin-react-hooks
|
||||
@ -294,17 +284,13 @@
|
||||
- Staging Docker Compose
|
||||
- ZibalService
|
||||
- @nestjs/schematics
|
||||
- eslint-plugin-prettier
|
||||
- ZibalEBankService
|
||||
- .initiateOrderPayment
|
||||
- @tailwindcss/postcss
|
||||
- typescript
|
||||
- @nestjs/testing
|
||||
- typescript-eslint
|
||||
- prisma
|
||||
- source-map-support
|
||||
- ts-jest
|
||||
- globals
|
||||
- ts-loader
|
||||
- ts-node
|
||||
- tsconfig-paths
|
||||
@ -315,20 +301,13 @@
|
||||
- @types/compression
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @eslint/js
|
||||
- @types/express
|
||||
- @types/jest
|
||||
- @types/js-yaml
|
||||
- @types/react-dom
|
||||
- jest
|
||||
- eslint-plugin-react-refresh
|
||||
- @nestjs/cli
|
||||
- @types/multer
|
||||
- prettier
|
||||
- @types/supertest
|
||||
- typescript-eslint
|
||||
- app/page.tsx
|
||||
- tailwindcss
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `Roles()` - 106 edges
|
||||
@ -359,23 +338,27 @@
|
||||
- 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 (335 total, 118 thin omitted)
|
||||
## Communities (314 total, 99 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 (36): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+28 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (40): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+32 more)
|
||||
|
||||
### Community 2 - "PaymentService"
|
||||
Cohesion: 0.11
|
||||
Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, PaymentService (+1 more)
|
||||
|
||||
### Community 3 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (39): dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory (+31 more)
|
||||
Nodes (37): dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, metadata (+29 more)
|
||||
|
||||
### Community 4 - "ProductPage.tsx"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+7 more)
|
||||
### Community 4 - "useCartStore"
|
||||
Cohesion: 0.10
|
||||
Nodes (25): ArchiveProductCard(), CartDrawer(), FeaturedProducts(), ProductCard(), Header(), OrderSuccess(), OrderTracking(), PetProfile() (+17 more)
|
||||
|
||||
### Community 5 - "CmsController"
|
||||
Cohesion: 0.09
|
||||
@ -390,12 +373,12 @@ Cohesion: 0.12
|
||||
Nodes (14): Button(), ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, BlogCommentItem, ProductReview (+6 more)
|
||||
|
||||
### Community 8 - "WikiController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, @eslint/eslintrc, @types/bcryptjs, @types/node, typescript, @types/node, typescript, @eslint/eslintrc (+1 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (25): devDependencies, @eslint/eslintrc, @eslint/js, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
||||
|
||||
### Community 10 - "ReviewsService"
|
||||
Cohesion: 0.12
|
||||
@ -413,9 +396,9 @@ Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/
|
||||
Cohesion: 0.06
|
||||
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
|
||||
|
||||
### Community 14 - "toPersian"
|
||||
Cohesion: 0.08
|
||||
Nodes (33): VerifyContent(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), CartDrawer(), ProductCard() (+25 more)
|
||||
### Community 14 - "userStore.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (27): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, AuthModal(), AuthModalProps, extractOtpFromText() (+19 more)
|
||||
|
||||
### Community 15 - "src/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
@ -430,28 +413,28 @@ Cohesion: 0.15
|
||||
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage() (+10 more)
|
||||
|
||||
### Community 18 - "JwtAuthGuard"
|
||||
Cohesion: 0.16
|
||||
Nodes (11): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, ApiPropertyOptional, IsOptional (+3 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 19 - "ProductsController"
|
||||
Cohesion: 0.16
|
||||
Cohesion: 0.15
|
||||
Nodes (9): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+1 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 - "ReportsController"
|
||||
Cohesion: 0.14
|
||||
Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more)
|
||||
### Community 21 - "admin.module.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (20): AdminModule, Module, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+12 more)
|
||||
|
||||
### Community 22 - "RevalidationService"
|
||||
Cohesion: 0.16
|
||||
Cohesion: 0.21
|
||||
Nodes (5): RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
|
||||
### Community 23 - "MenuService"
|
||||
Cohesion: 0.10
|
||||
Nodes (19): MenuController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+11 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (16): MenuController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
|
||||
|
||||
### Community 24 - "BE-001"
|
||||
Cohesion: 0.06
|
||||
@ -514,8 +497,8 @@ Cohesion: 0.10
|
||||
Nodes (19): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Badge(), BadgeProps, BadgeVariant, variantStyles, ThSort() (+11 more)
|
||||
|
||||
### Community 39 - "CategoriesController"
|
||||
Cohesion: 0.10
|
||||
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
|
||||
### Community 40 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
@ -526,15 +509,15 @@ 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.11
|
||||
Nodes (15): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+7 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
|
||||
|
||||
### Community 43 - "BannersService"
|
||||
Cohesion: 0.12
|
||||
Cohesion: 0.13
|
||||
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
|
||||
|
||||
### Community 44 - "TestimonialsService"
|
||||
Cohesion: 0.12
|
||||
Cohesion: 0.13
|
||||
Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 45 - "What You Must Do When Invoked"
|
||||
@ -546,12 +529,12 @@ 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.12
|
||||
Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "UsersController"
|
||||
Cohesion: 0.21
|
||||
Nodes (16): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+8 more)
|
||||
### Community 48 - "auth.service.ts"
|
||||
Cohesion: 0.14
|
||||
Nodes (13): AdminLoginInput, LoginInput, RegisterInput, LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength (+5 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -559,7 +542,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
||||
|
||||
### Community 50 - "devDependencies"
|
||||
Cohesion: 0.12
|
||||
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
|
||||
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
|
||||
|
||||
### Community 51 - "BlogsController"
|
||||
Cohesion: 0.14
|
||||
@ -597,21 +580,17 @@ 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 - "payment.service.ts"
|
||||
Cohesion: 0.20
|
||||
Nodes (8): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, ClientMetadata
|
||||
|
||||
### Community 61 - "ProductsService"
|
||||
Cohesion: 0.19
|
||||
Cohesion: 0.18
|
||||
Nodes (10): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Query, ProductsModule, Module (+2 more)
|
||||
|
||||
### Community 62 - "orderService.ts"
|
||||
Cohesion: 0.18
|
||||
Nodes (5): ApiErr, Order, OrderItem, OrderService, mockProduct
|
||||
### Community 62 - "AdminLoginDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
|
||||
|
||||
### Community 63 - "dependencies"
|
||||
Cohesion: 0.09
|
||||
Nodes (23): dependencies, bcryptjs, class-validator, compression, helmet, ioredis, @nestjs/common, @nestjs/passport (+15 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
|
||||
|
||||
### Community 64 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
@ -622,12 +601,12 @@ Cohesion: 0.18
|
||||
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 67 - "PetsController"
|
||||
Cohesion: 0.11
|
||||
Nodes (13): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+5 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 68 - "UserDashboard.tsx"
|
||||
Cohesion: 0.14
|
||||
Nodes (23): AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), CheckoutPage(), DeleteConfirmModal(), DeleteConfirmModalProps (+15 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (32): HomeClient(), VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), CheckoutPage() (+24 more)
|
||||
|
||||
### Community 69 - "Required Review Group Closures"
|
||||
Cohesion: 0.10
|
||||
@ -657,9 +636,9 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
|
||||
### Community 76 - "AdminController"
|
||||
Cohesion: 0.14
|
||||
Nodes (7): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, UseGuards
|
||||
### Community 76 - "AdminService"
|
||||
Cohesion: 0.16
|
||||
Nodes (4): Delete, Param, AdminService, Injectable
|
||||
|
||||
### Community 77 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
@ -693,9 +672,9 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
|
||||
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)
|
||||
|
||||
### Community 85 - "ClientLayout.tsx"
|
||||
Cohesion: 0.13
|
||||
Nodes (14): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, metadata, NetworkBanner(), CURRENT_SYMPTOMS (+6 more)
|
||||
### Community 85 - "VerifyOtpDto"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length
|
||||
|
||||
### Community 86 - "zibal.service.ts"
|
||||
Cohesion: 0.16
|
||||
@ -714,20 +693,20 @@ Cohesion: 0.17
|
||||
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
||||
|
||||
### Community 90 - "CreateReviewDto"
|
||||
Cohesion: 0.14
|
||||
Nodes (13): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+5 more)
|
||||
Cohesion: 0.25
|
||||
Nodes (8): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, Max
|
||||
|
||||
### 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.06
|
||||
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||
|
||||
### Community 93 - "useSettingsStore"
|
||||
Cohesion: 0.08
|
||||
Nodes (33): HomeClient(), HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps (+25 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (27): HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps, BlogPreviewSection() (+19 more)
|
||||
|
||||
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
|
||||
Cohesion: 0.13
|
||||
@ -777,17 +756,17 @@ Nodes (11): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDig
|
||||
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.07
|
||||
Nodes (19): AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, SendOtpDto, ApiProperty, IsNotEmpty (+11 more)
|
||||
### Community 106 - "AuthService"
|
||||
Cohesion: 0.19
|
||||
Nodes (3): AuthService, Injectable, normalizeMobile()
|
||||
|
||||
### Community 107 - "PaginationDto"
|
||||
Cohesion: 0.06
|
||||
Nodes (23): AdminModule, Module, BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto (+15 more)
|
||||
Nodes (25): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+17 more)
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.08
|
||||
Nodes (18): CategoryQuery, PetQuery, WikiQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig (+10 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (20): B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto (+12 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -807,7 +786,7 @@ Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment St
|
||||
|
||||
### Community 113 - "SmsService"
|
||||
Cohesion: 0.06
|
||||
Nodes (20): SmsLogQuery, SmsService, Injectable, SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags (+12 more)
|
||||
Nodes (26): SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString (+18 more)
|
||||
|
||||
### Community 114 - "AppService"
|
||||
Cohesion: 0.29
|
||||
@ -842,12 +821,12 @@ Cohesion: 0.20
|
||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||
|
||||
### Community 122 - "ApiOperation"
|
||||
Cohesion: 0.17
|
||||
Cohesion: 0.15
|
||||
Nodes (3): ApiOperation, Body, Put
|
||||
|
||||
### Community 123 - "UsersService"
|
||||
Cohesion: 0.09
|
||||
Nodes (16): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+8 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (41): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+33 more)
|
||||
|
||||
### Community 124 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -865,9 +844,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 128 - "AdminService"
|
||||
Cohesion: 0.17
|
||||
Nodes (3): Post, AdminService, Injectable
|
||||
### Community 128 - "AdminController"
|
||||
Cohesion: 0.16
|
||||
Nodes (6): AdminController, ApiBearerAuth, ApiTags, Controller, Post, UseGuards
|
||||
|
||||
### Community 129 - "MetricsController"
|
||||
Cohesion: 0.29
|
||||
@ -929,13 +908,13 @@ 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 - "VetGallery.tsx"
|
||||
Cohesion: 0.12
|
||||
Nodes (17): BackButton(), BackButtonProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, VideoModalPlayer, DisplayVideoItem, FALLBACK_VIDEOS (+9 more)
|
||||
### Community 144 - "ProductPage.tsx"
|
||||
Cohesion: 0.07
|
||||
Nodes (30): BackButton(), BackButtonProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, ProductImageZoomModalProps, CalculatorState, GalleryMediaItem (+22 more)
|
||||
|
||||
### Community 145 - "ProductDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
### Community 145 - "UpdateReviewDto"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
|
||||
|
||||
### Community 146 - "System Discovery"
|
||||
Cohesion: 0.25
|
||||
@ -946,8 +925,8 @@ Cohesion: 0.16
|
||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
||||
|
||||
### Community 148 - "admin.service.ts"
|
||||
Cohesion: 0.19
|
||||
Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (21): CouponInput, CouponTargetInput, PaginationQuery, ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber (+13 more)
|
||||
|
||||
### Community 149 - "SmsSettingsPage.tsx"
|
||||
Cohesion: 0.29
|
||||
@ -962,8 +941,8 @@ Cohesion: 0.21
|
||||
Nodes (5): OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps
|
||||
|
||||
### Community 152 - "lib/services/api.ts"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): BlogPostClientProps, BlogPost, ContactInfoItem, OrderDetailsModal(), OrderDetailsModalProps, PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps (+12 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (22): BlogPostClientProps, BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps (+14 more)
|
||||
|
||||
### Community 153 - "exclude"
|
||||
Cohesion: 0.22
|
||||
@ -1053,10 +1032,6 @@ Nodes (4): activeFiles, errors, validationOutput, warnings
|
||||
Cohesion: 0.60
|
||||
Nodes (4): dynamic, GET(), getCandidateUrls(), HEAD()
|
||||
|
||||
### Community 177 - "auth.module.ts"
|
||||
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)
|
||||
@ -1081,13 +1056,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 - "auth.controller.ts"
|
||||
Cohesion: 0.10
|
||||
Nodes (19): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength, LoginDto, ApiProperty (+11 more)
|
||||
|
||||
### Community 185 - "SmsLogQueryDto"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||
### Community 184 - "RegisterDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
@ -1134,8 +1105,8 @@ Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 298 - ".initiateOrderPayment"
|
||||
Cohesion: 0.32
|
||||
Nodes (6): ApiBadRequestResponse, ApiOkResponse, Req, Res, Headers, Ip
|
||||
Cohesion: 0.20
|
||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||
|
||||
### Community 317 - "revalidate/route.ts"
|
||||
Cohesion: 0.83
|
||||
@ -1148,22 +1119,22 @@ Nodes (3): generateMetadata(), getHomeData(), Home()
|
||||
## Knowledge Gaps
|
||||
- **1344 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1339 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **118 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **99 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`, `WikiController`, `PetsController`, `HomeController`, `ProductsController`, `UsersService`, `OrdersService`?**
|
||||
_High betweenness centrality (0.080) - this node is a cross-community bridge._
|
||||
- **Why does `Roles()` connect `Roles` to `PaymentService`, `CmsController`, `tickets.controller.ts`, `ReviewsService`, `JwtAuthGuard`, `ProductsController`, `MenuService`, `WholesaleApplyDto`, `B2BService`, `FaqService`, `SslController`, `BannersService`, `TestimonialsService`, `IngredientsService`, `PrescriptionsService`, `SmartAdvisorService`, `ContactService`, `ProductsService`, `SmsService`?**
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `SmsService`, `JwtAuthGuard`, `ProductsController`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`, `ContactService`, `ProductsService`?**
|
||||
_High betweenness centrality (0.062) - this node is a cross-community bridge._
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `CmsController`, `tickets.controller.ts`, `MediaController`, `PaginationDto`, `PetsController`, `DoctorQueryDto`, `admin.service.ts`, `ReportsController`, `CreateVideoDto`, `auth.controller.ts`, `UsersService`, `OrdersService`, `ProductsService`?**
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `CategoriesController`, `MediaController`, `PaginationDto`, `PetsController`, `auth.service.ts`, `DoctorQueryDto`, `admin.service.ts`, `admin.module.ts`, `UsersService`, `ProductsService`?**
|
||||
_High betweenness centrality (0.035) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_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.06988120195667366 - 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?**
|
||||
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05583972719522592 - nodes in this community are weakly interconnected._
|
||||
- **Should `ProductPage.tsx` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.12631578947368421 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.05563093622795115 - nodes in this community are weakly interconnected._
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-08-29)
|
||||
|
||||
## Corpus Check
|
||||
- 594 files · ~1,070,682 words
|
||||
- 595 files · ~1,071,072 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4156 nodes · 7496 edges · 314 communities (215 shown, 99 thin omitted)
|
||||
- 4160 nodes · 7503 edges · 336 communities (215 shown, 121 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: `c7d7ac3a`
|
||||
- Built from commit: `812bc292`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
- Button.tsx
|
||||
- WikiController
|
||||
- devDependencies
|
||||
- ReviewsService
|
||||
- CreateReviewDto
|
||||
- MediaSelector.tsx
|
||||
- index.ts
|
||||
- app-audit-verification.e2e-spec.js
|
||||
@ -34,10 +34,10 @@
|
||||
- DoctorQueryDto
|
||||
- schema.ts
|
||||
- JwtAuthGuard
|
||||
- ProductsController
|
||||
- ProductsService
|
||||
- CreateVideoDto
|
||||
- admin.module.ts
|
||||
- RevalidationService
|
||||
- ReportsController
|
||||
- ApiBearerAuth
|
||||
- MenuService
|
||||
- BE-001
|
||||
- FE-001
|
||||
@ -76,13 +76,13 @@
|
||||
- ContactService
|
||||
- compilerOptions
|
||||
- RedisService
|
||||
- ProductsService
|
||||
- ProductPage.tsx
|
||||
- AdminLoginDto
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- BlogsService
|
||||
- AdminQueryDto
|
||||
- PetsController
|
||||
- ApiOperation
|
||||
- admin.module.ts
|
||||
- UserDashboard.tsx
|
||||
- Required Review Group Closures
|
||||
- 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
|
||||
@ -100,12 +100,12 @@
|
||||
- scripts
|
||||
- dependencies
|
||||
- Role & Core Objective
|
||||
- VerifyOtpDto
|
||||
- SettingsController
|
||||
- zibal.service.ts
|
||||
- dependencies
|
||||
- CreateEBankCheckoutDto
|
||||
- seed-products.ts
|
||||
- CreateReviewDto
|
||||
- SmsService
|
||||
- Reconciled Audit Roles & Assignments
|
||||
- OrdersService
|
||||
- useSettingsStore
|
||||
@ -128,7 +128,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- SmsService
|
||||
- SettingsService
|
||||
- AppService
|
||||
- Blogs.tsx
|
||||
- Vazirmatn Changelog
|
||||
@ -137,14 +137,14 @@
|
||||
- compilerOptions
|
||||
- compilerOptions
|
||||
- backend/README.md
|
||||
- ApiOperation
|
||||
- UsersService
|
||||
- AdminService
|
||||
- UsersController
|
||||
- Repository Map
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
- Sahel-Font
|
||||
- AdminController
|
||||
- MetricsController
|
||||
- Body
|
||||
- users.controller.ts
|
||||
- Sahel-Font
|
||||
- Role & Core Objective
|
||||
- orchestrate.py
|
||||
@ -159,15 +159,15 @@
|
||||
- application/package.json
|
||||
- start-dev.js
|
||||
- generate-openapi.js
|
||||
- ProductPage.tsx
|
||||
- UpdateReviewDto
|
||||
- getMediaUrl
|
||||
- auth.module.ts
|
||||
- System Discovery
|
||||
- HomeController
|
||||
- admin.service.ts
|
||||
- SmsSettingsPage.tsx
|
||||
- Product Requirement Document (PRD)
|
||||
- components/Skeleton.tsx
|
||||
- lib/services/api.ts
|
||||
- PodcastPlayerModal.tsx
|
||||
- exclude
|
||||
- Baseline Command Plan & Reconciled Command History
|
||||
- seo-backfill.ts
|
||||
@ -191,7 +191,7 @@
|
||||
- rebuild_honest_ledger.js
|
||||
- validate_evidence_grade.js
|
||||
- uploads/[...path]/route.ts
|
||||
- @types/node
|
||||
- UsersService
|
||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||
- app.e2e-spec.js
|
||||
- API Contract Specification
|
||||
@ -199,7 +199,7 @@
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- RegisterDto
|
||||
- typescript
|
||||
- ProductDto
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -212,7 +212,8 @@
|
||||
- React + TypeScript + Vite
|
||||
- Select.tsx
|
||||
- eslint-config-next
|
||||
- videos/page.tsx
|
||||
- SmsLogQueryDto
|
||||
- SmartAdvisor.tsx
|
||||
- application/README.md
|
||||
- deploy.sh
|
||||
- 🔒 Security & Performance Review (09_devops_security)
|
||||
@ -237,15 +238,22 @@
|
||||
- Textarea.tsx
|
||||
- admin-panel/tsconfig.json
|
||||
- catalog/page.tsx
|
||||
- wiki/[slug]/page.tsx
|
||||
- next.config.ts
|
||||
- Shabnam Font README
|
||||
- AGENTS.md
|
||||
- rules/graphify.md
|
||||
- .agents/workflows/graphify.md
|
||||
- instructions.md
|
||||
- track/page.tsx
|
||||
- class-transformer
|
||||
- tailwindcss
|
||||
- AdminController
|
||||
- helmet
|
||||
- js-yaml
|
||||
- @tailwindcss/postcss
|
||||
- @vitejs/plugin-react
|
||||
- @nestjs/core
|
||||
- supertest
|
||||
- blog.entity.ts
|
||||
- home.entity.ts
|
||||
@ -266,7 +274,10 @@
|
||||
- start.sh
|
||||
- User Login API
|
||||
- User Logout API
|
||||
- eslint
|
||||
- @nestjs/jwt
|
||||
- @nestjs/swagger
|
||||
- @nestjs/throttler
|
||||
- passport
|
||||
- eslint-config-prettier
|
||||
- eslint-plugin-react-hooks
|
||||
- Canina Pharma GmbH
|
||||
@ -284,13 +295,17 @@
|
||||
- Staging Docker Compose
|
||||
- ZibalService
|
||||
- @nestjs/schematics
|
||||
- reflect-metadata
|
||||
- ZibalEBankService
|
||||
- .initiateOrderPayment
|
||||
- @tailwindcss/postcss
|
||||
- typescript
|
||||
- swagger-ui-express
|
||||
- typescript-eslint
|
||||
- prisma
|
||||
- source-map-support
|
||||
- @eslint/eslintrc
|
||||
- @eslint/js
|
||||
- ts-loader
|
||||
- ts-node
|
||||
- tsconfig-paths
|
||||
@ -301,13 +316,21 @@
|
||||
- @types/compression
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- eslint-plugin-prettier
|
||||
- @types/express
|
||||
- @types/jest
|
||||
- globals
|
||||
- @types/react-dom
|
||||
- jest
|
||||
- eslint-plugin-react-refresh
|
||||
- @nestjs/cli
|
||||
- @types/multer
|
||||
- app/page.tsx
|
||||
- @nestjs/testing
|
||||
- prettier
|
||||
- ts-jest
|
||||
- @types/js-yaml
|
||||
- @types/supertest
|
||||
- typescript-eslint
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `Roles()` - 106 edges
|
||||
@ -338,7 +361,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`
|
||||
- 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, 99 thin omitted)
|
||||
## Communities (336 total, 121 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
@ -346,7 +369,7 @@ Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Bo
|
||||
|
||||
### Community 1 - "app.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (40): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+32 more)
|
||||
Nodes (38): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+30 more)
|
||||
|
||||
### Community 2 - "PaymentService"
|
||||
Cohesion: 0.11
|
||||
@ -354,11 +377,11 @@ Nodes (9): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOpt
|
||||
|
||||
### Community 3 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (37): dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, metadata (+29 more)
|
||||
Nodes (37): dynamic, revalidate, dynamic, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+29 more)
|
||||
|
||||
### Community 4 - "useCartStore"
|
||||
Cohesion: 0.10
|
||||
Nodes (25): ArchiveProductCard(), CartDrawer(), FeaturedProducts(), ProductCard(), Header(), OrderSuccess(), OrderTracking(), PetProfile() (+17 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (23): FeaturedProducts(), ProductCard(), Header(), MENU_ICONS, OrderSuccess(), PetProfile(), PrescriptionUploadModal(), PrescriptionUploadModalProps (+15 more)
|
||||
|
||||
### Community 5 - "CmsController"
|
||||
Cohesion: 0.09
|
||||
@ -366,7 +389,7 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
|
||||
|
||||
### Community 6 - "tickets.controller.ts"
|
||||
Cohesion: 0.09
|
||||
Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+21 more)
|
||||
Nodes (31): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+23 more)
|
||||
|
||||
### Community 7 - "Button.tsx"
|
||||
Cohesion: 0.12
|
||||
@ -377,12 +400,12 @@ Cohesion: 0.13
|
||||
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): devDependencies, @eslint/eslintrc, @eslint/js, eslint-plugin-prettier, globals, @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 - "ReviewsService"
|
||||
Cohesion: 0.12
|
||||
Nodes (17): ReviewsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+9 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
|
||||
@ -397,8 +420,8 @@ Cohesion: 0.06
|
||||
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
|
||||
|
||||
### Community 14 - "userStore.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (27): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, AuthModal(), AuthModalProps, extractOtpFromText() (+19 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (33): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, AddressModalProps, AuthModal(), AuthModalProps (+25 more)
|
||||
|
||||
### Community 15 - "src/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
@ -409,28 +432,28 @@ Cohesion: 0.09
|
||||
Nodes (24): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
|
||||
|
||||
### Community 17 - "schema.ts"
|
||||
Cohesion: 0.15
|
||||
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage() (+10 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), generateMetadata(), getInitialVideos(), Videos(), ContactFormClient() (+10 more)
|
||||
|
||||
### Community 18 - "JwtAuthGuard"
|
||||
Cohesion: 0.18
|
||||
Cohesion: 0.17
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 19 - "ProductsController"
|
||||
Cohesion: 0.15
|
||||
Nodes (9): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+1 more)
|
||||
### Community 19 - "ProductsService"
|
||||
Cohesion: 0.09
|
||||
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)
|
||||
|
||||
### Community 21 - "admin.module.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (20): AdminModule, Module, ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+12 more)
|
||||
### Community 21 - "ReportsController"
|
||||
Cohesion: 0.14
|
||||
Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more)
|
||||
|
||||
### Community 22 - "RevalidationService"
|
||||
Cohesion: 0.21
|
||||
Nodes (5): RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
### Community 22 - "ApiBearerAuth"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): ApiBearerAuth, Body, Param, Patch, Post, Put, UseGuards
|
||||
|
||||
### Community 23 - "MenuService"
|
||||
Cohesion: 0.12
|
||||
@ -497,12 +520,12 @@ Cohesion: 0.10
|
||||
Nodes (19): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Badge(), BadgeProps, BadgeVariant, variantStyles, ThSort() (+11 more)
|
||||
|
||||
### Community 39 - "CategoriesController"
|
||||
Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
|
||||
|
||||
### Community 40 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||
Nodes (14): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 41 - "What You Must Do When Invoked"
|
||||
Cohesion: 0.07
|
||||
@ -533,8 +556,8 @@ Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "auth.service.ts"
|
||||
Cohesion: 0.14
|
||||
Nodes (13): AdminLoginInput, LoginInput, RegisterInput, LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength (+5 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (19): AdminLoginInput, LoginInput, RegisterInput, LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength (+11 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -580,33 +603,41 @@ 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 - "ProductsService"
|
||||
Cohesion: 0.18
|
||||
Nodes (10): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Query, ProductsModule, Module (+2 more)
|
||||
### Community 60 - "RedisService"
|
||||
Cohesion: 0.10
|
||||
Nodes (10): ApiExcludeController, MetricsController, Controller, Get, Res, RedisModule, Global, Module (+2 more)
|
||||
|
||||
### Community 61 - "ProductPage.tsx"
|
||||
Cohesion: 0.12
|
||||
Nodes (16): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+8 more)
|
||||
|
||||
### Community 62 - "AdminLoginDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
|
||||
|
||||
### 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, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more)
|
||||
|
||||
### Community 64 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
||||
|
||||
### Community 66 - "AdminQueryDto"
|
||||
Cohesion: 0.18
|
||||
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
### Community 65 - "BlogsService"
|
||||
Cohesion: 0.08
|
||||
Nodes (7): BlogsService, Injectable, RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
|
||||
### Community 67 - "PetsController"
|
||||
Cohesion: 0.10
|
||||
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
|
||||
### Community 66 - "ApiOperation"
|
||||
Cohesion: 0.15
|
||||
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 67 - "admin.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (22): AdminModule, Module, MediaService, Injectable, PetsController, ApiBearerAuth, ApiOperation, ApiQuery (+14 more)
|
||||
|
||||
### Community 68 - "UserDashboard.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (32): HomeClient(), VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), CheckoutPage() (+24 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (25): VerifyContent(), AddressFormData, AddressModal(), normalizeDigits(), validateAddressForm(), ArchiveProductCard(), BackButton(), BackButtonProps (+17 more)
|
||||
|
||||
### Community 69 - "Required Review Group Closures"
|
||||
Cohesion: 0.10
|
||||
@ -617,8 +648,8 @@ Cohesion: 0.08
|
||||
Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more)
|
||||
|
||||
### Community 71 - "getPageMetadata"
|
||||
Cohesion: 0.10
|
||||
Nodes (13): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+5 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (17): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), getHomeData(), Home(), generateMetadata(), generateMetadata() (+9 more)
|
||||
|
||||
### Community 72 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.11
|
||||
@ -636,10 +667,6 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
|
||||
### Community 76 - "AdminService"
|
||||
Cohesion: 0.16
|
||||
Nodes (4): Delete, Param, AdminService, Injectable
|
||||
|
||||
### Community 77 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
|
||||
@ -672,9 +699,9 @@ Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast
|
||||
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)
|
||||
|
||||
### Community 85 - "VerifyOtpDto"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length
|
||||
### Community 85 - "SettingsController"
|
||||
Cohesion: 0.20
|
||||
Nodes (8): SettingsController, ApiOkResponse, ApiOperation, ApiTags, Controller, Delete, Get, Query
|
||||
|
||||
### Community 86 - "zibal.service.ts"
|
||||
Cohesion: 0.16
|
||||
@ -692,21 +719,17 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
|
||||
Cohesion: 0.17
|
||||
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
||||
|
||||
### Community 90 - "CreateReviewDto"
|
||||
Cohesion: 0.25
|
||||
Nodes (8): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, Max
|
||||
|
||||
### Community 91 - "Reconciled Audit Roles & Assignments"
|
||||
Cohesion: 0.12
|
||||
Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. React / Vite Storefront Auditor, 3. NestJS Backend Auditor, 4. Admin Features Auditor, 5. Database & Data Integrity Auditor, 6. Security Auditor, 7. TypeScript & Code Quality Auditor (+7 more)
|
||||
|
||||
### Community 92 - "OrdersService"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
|
||||
|
||||
### Community 93 - "useSettingsStore"
|
||||
Cohesion: 0.10
|
||||
Nodes (27): HomeClientProps, ArchivePage(), CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps, BlogPreviewSection() (+19 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (43): HomeClient(), HomeClientProps, CATEGORY_MAP, ICON_MAP, B2BLandingClient(), BannerPlacement(), BannerPlacementProps, BlogPostClientProps (+35 more)
|
||||
|
||||
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
|
||||
Cohesion: 0.13
|
||||
@ -757,16 +780,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 - "AuthService"
|
||||
Cohesion: 0.19
|
||||
Nodes (3): AuthService, Injectable, normalizeMobile()
|
||||
Cohesion: 0.18
|
||||
Nodes (4): AuthService, Injectable, normalizeMobile(), UserAddressInput
|
||||
|
||||
### Community 107 - "PaginationDto"
|
||||
Cohesion: 0.06
|
||||
Nodes (25): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+17 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (19): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+11 more)
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.07
|
||||
Nodes (20): B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto (+12 more)
|
||||
Nodes (20): CategoryQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto (+12 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -784,10 +807,6 @@ 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 - "SmsService"
|
||||
Cohesion: 0.06
|
||||
Nodes (26): SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString (+18 more)
|
||||
|
||||
### Community 114 - "AppService"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
@ -820,13 +839,13 @@ Nodes (9): compilerOptions, esModuleInterop, module, moduleResolution, skipLibCh
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||
|
||||
### Community 122 - "ApiOperation"
|
||||
### Community 122 - "AdminService"
|
||||
Cohesion: 0.15
|
||||
Nodes (3): ApiOperation, Body, Put
|
||||
Nodes (3): Put, AdminService, Injectable
|
||||
|
||||
### Community 123 - "UsersService"
|
||||
Cohesion: 0.06
|
||||
Nodes (41): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+33 more)
|
||||
### Community 123 - "UsersController"
|
||||
Cohesion: 0.20
|
||||
Nodes (16): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+8 more)
|
||||
|
||||
### Community 124 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -844,13 +863,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 128 - "AdminController"
|
||||
Cohesion: 0.16
|
||||
Nodes (6): AdminController, ApiBearerAuth, ApiTags, Controller, Post, UseGuards
|
||||
|
||||
### Community 129 - "MetricsController"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
### Community 129 - "users.controller.ts"
|
||||
Cohesion: 0.13
|
||||
Nodes (13): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+5 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
@ -908,13 +923,13 @@ 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 - "ProductPage.tsx"
|
||||
Cohesion: 0.07
|
||||
Nodes (30): BackButton(), BackButtonProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, ProductImageZoomModalProps, CalculatorState, GalleryMediaItem (+22 more)
|
||||
### Community 144 - "getMediaUrl"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, VideoModalPlayer, DisplayVideoItem, FALLBACK_VIDEOS, TestimonialItem, PLAYBACK_RATES (+6 more)
|
||||
|
||||
### Community 145 - "UpdateReviewDto"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
|
||||
### Community 145 - "auth.module.ts"
|
||||
Cohesion: 0.17
|
||||
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more)
|
||||
|
||||
### Community 146 - "System Discovery"
|
||||
Cohesion: 0.25
|
||||
@ -925,8 +940,8 @@ Cohesion: 0.16
|
||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
||||
|
||||
### Community 148 - "admin.service.ts"
|
||||
Cohesion: 0.13
|
||||
Nodes (21): CouponInput, CouponTargetInput, PaginationQuery, ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber (+13 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more)
|
||||
|
||||
### Community 149 - "SmsSettingsPage.tsx"
|
||||
Cohesion: 0.29
|
||||
@ -940,9 +955,9 @@ Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements,
|
||||
Cohesion: 0.21
|
||||
Nodes (5): OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps
|
||||
|
||||
### Community 152 - "lib/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (22): BlogPostClientProps, BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps (+14 more)
|
||||
### Community 152 - "PodcastPlayerModal.tsx"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps
|
||||
|
||||
### Community 153 - "exclude"
|
||||
Cohesion: 0.22
|
||||
@ -1060,6 +1075,10 @@ Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO &
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 185 - "ProductDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### 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
|
||||
@ -1084,9 +1103,13 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Select, SelectOption, SelectProps
|
||||
|
||||
### Community 199 - "videos/page.tsx"
|
||||
Cohesion: 0.47
|
||||
Nodes (5): generateMetadata(), getInitialVideos(), Videos(), VideosPage(), generateVideoObjectSchema()
|
||||
### 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"
|
||||
Cohesion: 0.50
|
||||
@ -1100,10 +1123,18 @@ 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 - "wiki/[slug]/page.tsx"
|
||||
Cohesion: 0.60
|
||||
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
|
||||
|
||||
### Community 226 - "Shabnam Font README"
|
||||
Cohesion: 0.67
|
||||
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"
|
||||
Cohesion: 0.20
|
||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||
@ -1112,29 +1143,25 @@ Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, Ap
|
||||
Cohesion: 0.83
|
||||
Nodes (3): GET(), handleRevalidate(), POST()
|
||||
|
||||
### Community 333 - "app/page.tsx"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): generateMetadata(), getHomeData(), Home()
|
||||
|
||||
## Knowledge Gaps
|
||||
- **1344 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1339 more)
|
||||
- **1346 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1341 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **99 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **121 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`, `HomeController`, `ProductsController`, `UsersService`, `OrdersService`?**
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `AuthController`, `WikiController`, `PetsController`, `HomeController`, `ProductsService`, `UsersController`, `OrdersService`?**
|
||||
_High betweenness centrality (0.080) - this node is a cross-community bridge._
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleApplyDto`, `B2BService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SslController`, `BannersService`, `ReviewsService`, `TestimonialsService`, `IngredientsService`, `SmsService`, `JwtAuthGuard`, `ProductsController`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`, `ContactService`, `ProductsService`?**
|
||||
- **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`?**
|
||||
_High betweenness centrality (0.062) - this node is a cross-community bridge._
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `PetsController`, `CmsController`, `tickets.controller.ts`, `CategoriesController`, `MediaController`, `PaginationDto`, `PetsController`, `auth.service.ts`, `DoctorQueryDto`, `admin.service.ts`, `admin.module.ts`, `UsersService`, `ProductsService`?**
|
||||
- **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`?**
|
||||
_High betweenness centrality (0.035) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_1344 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?**
|
||||
_Cohesion score 0.061016949152542375 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06390977443609022 - nodes in this community are weakly interconnected._
|
||||
- **Should `PaymentService` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05563093622795115 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.05698778833107191 - nodes in this community are weakly interconnected._
|
||||
2
graphify-out/cache/stat-index.json
vendored
2
graphify-out/cache/stat-index.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user