feat(sms): display live MeliPayamak account balance/credit in SMS settings
All checks were successful
Deploy Canina / deploy (push) Successful in 44s
All checks were successful
Deploy Canina / deploy (push) Successful in 44s
This commit is contained in:
parent
16c1ecdff2
commit
f430c4931f
@ -294,6 +294,72 @@ export class SmsService {
|
||||
return patterns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch remaining SMS balance/credit (in Rials or count) from MeliPayamak
|
||||
*/
|
||||
async getCredit(): Promise<{ success: boolean; credit: number; message?: string }> {
|
||||
const config = await this.getSmsConfig();
|
||||
|
||||
if (!config.username || !config.password) {
|
||||
return {
|
||||
success: false,
|
||||
credit: 0,
|
||||
message: 'نام کاربری و کلمه عبور ملی پیامک تنظیم نشده است.',
|
||||
};
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
const payload = JSON.stringify({
|
||||
username: config.username,
|
||||
password: config.password,
|
||||
});
|
||||
|
||||
const req = https.request(
|
||||
'https://rest.payamak-panel.com/api/SendSMS/GetCredit',
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Content-Length': Buffer.byteLength(payload),
|
||||
},
|
||||
},
|
||||
(res) => {
|
||||
let data = '';
|
||||
res.on('data', (chunk: Buffer | string) => (data += String(chunk)));
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const json = JSON.parse(data);
|
||||
const val = Number(json.Value ?? json.value ?? 0);
|
||||
resolve({
|
||||
success: true,
|
||||
credit: val,
|
||||
message: `اعتبار با موفقیت دریافت شد: ${val}`,
|
||||
});
|
||||
} catch (err: unknown) {
|
||||
const msg = err instanceof Error ? err.message : String(err);
|
||||
resolve({
|
||||
success: false,
|
||||
credit: 0,
|
||||
message: `خطای دریافت اعتبار: ${data || msg}`,
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
req.on('error', (err: Error) => {
|
||||
resolve({
|
||||
success: false,
|
||||
credit: 0,
|
||||
message: `خطای برقراری ارتباط با وبسرویس ملی پیامک: ${err.message}`,
|
||||
});
|
||||
});
|
||||
|
||||
req.write(payload);
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch all registered patterns from MeliPayamak (with local cache sync)
|
||||
*/
|
||||
|
||||
@ -184,6 +184,15 @@ export class SettingsController {
|
||||
return this.settingsService.getSmsSettings();
|
||||
}
|
||||
|
||||
@UseGuards(JwtAuthGuard, RolesGuard)
|
||||
@Roles('Admin')
|
||||
@ApiBearerAuth()
|
||||
@Get('sms/credit')
|
||||
@ApiOperation({ summary: 'استعلام موجودی و شارژ باقیمانده حساب ملی پیامک' })
|
||||
getSmsCredit() {
|
||||
return this.settingsService.getSmsCredit();
|
||||
}
|
||||
|
||||
@UseGuards(JwtAuthGuard, RolesGuard)
|
||||
@Roles('Admin')
|
||||
@ApiBearerAuth()
|
||||
|
||||
@ -367,6 +367,10 @@ export class SettingsService implements OnModuleInit {
|
||||
return this.smsService.getSmsConfig();
|
||||
}
|
||||
|
||||
async getSmsCredit() {
|
||||
return this.smsService.getCredit();
|
||||
}
|
||||
|
||||
async updateSmsSettings(value: Prisma.InputJsonValue) {
|
||||
const key = 'sms_config';
|
||||
return this.prisma.setting.upsert({
|
||||
|
||||
@ -5,6 +5,7 @@ import {
|
||||
Send,
|
||||
ShieldCheck,
|
||||
KeyRound,
|
||||
Coins,
|
||||
User,
|
||||
Hash,
|
||||
HelpCircle,
|
||||
@ -97,6 +98,8 @@ export default function SmsSettingsPage() {
|
||||
});
|
||||
|
||||
const [patterns, setPatterns] = useState<PatternItem[]>([]);
|
||||
const [credit, setCredit] = useState<number | null>(null);
|
||||
const [isLoadingCredit, setIsLoadingCredit] = useState(false);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [isLoadingPatterns, setIsLoadingPatterns] = useState(false);
|
||||
const [isSaving, setIsSaving] = useState(false);
|
||||
@ -142,12 +145,28 @@ export default function SmsSettingsPage() {
|
||||
message: string;
|
||||
} | null>(null);
|
||||
|
||||
const fetchCredit = async () => {
|
||||
try {
|
||||
setIsLoadingCredit(true);
|
||||
const res = await api.get('/settings/sms/credit');
|
||||
const data = res.data?.data || res.data;
|
||||
if (data && data.success) {
|
||||
setCredit(Number(data.credit) || 0);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Failed to load SMS credit:', err);
|
||||
} finally {
|
||||
setIsLoadingCredit(false);
|
||||
}
|
||||
};
|
||||
|
||||
const fetchSettingsAndPatterns = async () => {
|
||||
try {
|
||||
setIsLoading(true);
|
||||
const [resConfig, resPatterns] = await Promise.allSettled([
|
||||
const [resConfig, resPatterns, resCredit] = await Promise.allSettled([
|
||||
api.get('/settings/sms'),
|
||||
api.get('/settings/sms/patterns'),
|
||||
api.get('/settings/sms/credit'),
|
||||
]);
|
||||
|
||||
if (resConfig.status === 'fulfilled') {
|
||||
@ -171,6 +190,13 @@ export default function SmsSettingsPage() {
|
||||
const pList = resPatterns.value.data?.data || resPatterns.value.data || [];
|
||||
setPatterns(Array.isArray(pList) ? pList : []);
|
||||
}
|
||||
|
||||
if (resCredit.status === 'fulfilled') {
|
||||
const cData = resCredit.value.data?.data || resCredit.value.data;
|
||||
if (cData && cData.success) {
|
||||
setCredit(Number(cData.credit) || 0);
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Failed to load SMS data:', err);
|
||||
} finally {
|
||||
@ -746,8 +772,70 @@ export default function SmsSettingsPage() {
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{/* Test SMS Sidebar (1 col on large) */}
|
||||
{/* Balance & Test SMS Sidebar (1 col on large) */}
|
||||
<div className="space-y-6">
|
||||
{/* Realtime Credit / Balance Card */}
|
||||
<div className="bg-gradient-to-br from-indigo-900 via-purple-900 to-slate-900 p-6 rounded-2xl shadow-xl border border-purple-800/40 text-white space-y-4 relative overflow-hidden">
|
||||
<div className="absolute -left-6 -bottom-6 w-28 h-28 bg-purple-500/20 rounded-full blur-2xl pointer-events-none" />
|
||||
<div className="flex items-center justify-between border-b border-white/10 pb-3">
|
||||
<div className="flex items-center gap-2">
|
||||
<Coins className="w-5 h-5 text-amber-400" />
|
||||
<h3 className="text-base font-black">موجودی و شارژ پنل پیامک</h3>
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
onClick={fetchCredit}
|
||||
disabled={isLoadingCredit}
|
||||
className="p-1.5 text-white/70 hover:text-white hover:bg-white/10 rounded-xl transition-all border border-white/10 cursor-pointer"
|
||||
title="استعلام مجدد شارژ"
|
||||
>
|
||||
<RefreshCw className={`w-3.5 h-3.5 ${isLoadingCredit ? 'animate-spin text-amber-400' : ''}`} />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<p className="text-xs text-white/70 font-medium">اعتبار باقیمانده در درگاه ملی پیامک:</p>
|
||||
<div className="flex items-baseline gap-2">
|
||||
{isLoadingCredit ? (
|
||||
<div className="flex items-center gap-2 py-1 text-amber-400 text-sm font-bold">
|
||||
<Spinner size="sm" />
|
||||
<span>در حال استعلام از وبسرویس...</span>
|
||||
</div>
|
||||
) : credit !== null ? (
|
||||
<>
|
||||
<span className="text-3xl font-black text-amber-400 font-mono tracking-tight" dir="ltr">
|
||||
{toPersianDigits(credit.toLocaleString())}
|
||||
</span>
|
||||
<span className="text-xs font-bold text-white/80">ریال / پالس</span>
|
||||
</>
|
||||
) : (
|
||||
<span className="text-sm font-bold text-rose-300">اطلاعات شارژ دریافت نشد</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="p-3 bg-white/5 rounded-xl border border-white/10 text-[11px] text-white/75 space-y-1">
|
||||
<div className="flex items-center justify-between">
|
||||
<span>وضعیت حساب:</span>
|
||||
<span className="font-bold text-emerald-400">فعال و متصل به وبسرویس</span>
|
||||
</div>
|
||||
<div className="flex items-center justify-between">
|
||||
<span>نام کاربری:</span>
|
||||
<span className="font-mono text-white/90" dir="ltr">{config.username || 'تنظیم نشده'}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a
|
||||
href="https://melipayamak.com"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="w-full bg-white/10 hover:bg-white/20 text-white font-bold py-2.5 px-4 rounded-xl text-xs flex items-center justify-center gap-1.5 transition-colors border border-white/15"
|
||||
>
|
||||
<span>شارژ و افزایش اعتبار در ملی پیامک</span>
|
||||
<ArrowUpRight className="w-3.5 h-3.5" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div className="bg-white p-6 rounded-2xl shadow-sm border border-gray-200 space-y-5">
|
||||
<div className="flex items-center gap-2 border-b border-gray-100 pb-3">
|
||||
<Send className="w-5 h-5 text-blue-600" />
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
{
|
||||
"0": "AdminController",
|
||||
"0": "ApiOperation",
|
||||
"1": "productService.ts",
|
||||
"2": "CmsController",
|
||||
"3": "app.module.ts",
|
||||
"4": "CreateReviewDto",
|
||||
"4": "reviews.controller.ts",
|
||||
"5": "tickets.controller.ts",
|
||||
"6": "UserDashboard.tsx",
|
||||
"7": "MediaSelector.tsx",
|
||||
"8": "ReportsController",
|
||||
"8": "admin.module.ts",
|
||||
"9": "PetProfile.tsx",
|
||||
"10": "DoctorsService",
|
||||
"11": "useSettingsStore",
|
||||
"12": "adminRoutes.tsx",
|
||||
"13": "PrismaService",
|
||||
"14": "videos.controller.ts",
|
||||
"14": "BlogsController",
|
||||
"15": "ProductsService",
|
||||
"16": "lib/services/api.ts",
|
||||
"17": "CreateVideoDto",
|
||||
"18": "src/services/api.ts",
|
||||
"19": "LoginDto",
|
||||
"19": "pets/pets.controller.ts",
|
||||
"20": "BE-001",
|
||||
"21": "Roles",
|
||||
"22": "FE-001",
|
||||
@ -28,7 +28,7 @@
|
||||
"26": "TEST-001",
|
||||
"27": "DEVOPS-001",
|
||||
"28": "DOC-001",
|
||||
"29": "WholesaleApplyDto",
|
||||
"29": "WholesaleService",
|
||||
"30": "main.ts",
|
||||
"31": "JwtAuthGuard",
|
||||
"32": "ZibalService",
|
||||
@ -42,11 +42,11 @@
|
||||
"40": "SslController",
|
||||
"41": "PodcastPlayerModal.tsx",
|
||||
"42": "IngredientsService",
|
||||
"43": "AuthService",
|
||||
"43": "RedisService",
|
||||
"44": "MediaController",
|
||||
"45": "Pagination.tsx",
|
||||
"46": "SmsService",
|
||||
"47": "OrdersController",
|
||||
"47": "OrdersService",
|
||||
"48": "PrescriptionsService",
|
||||
"49": "SmartAdvisorService",
|
||||
"50": "TestimonialsService",
|
||||
@ -56,20 +56,20 @@
|
||||
"54": "compilerOptions",
|
||||
"55": "Media.tsx",
|
||||
"56": "compilerOptions",
|
||||
"57": "admin.module.ts",
|
||||
"57": "PetsController",
|
||||
"58": "PaginationDto",
|
||||
"59": "dependencies",
|
||||
"60": "compilerOptions",
|
||||
"61": "HomeClient.tsx",
|
||||
"62": "BlogsController",
|
||||
"63": "AuthController",
|
||||
"63": "SettingsService",
|
||||
"64": "BannersService",
|
||||
"65": "Required Review Group Closures",
|
||||
"66": "Coupons.tsx",
|
||||
"67": "Operational Rules & Boundaries",
|
||||
"68": "Operational Rules & Boundaries",
|
||||
"69": "WikiController",
|
||||
"70": "ApiOperation",
|
||||
"70": "AdminQueryDto",
|
||||
"71": "PetsController",
|
||||
"72": "seo.module.ts",
|
||||
"73": "admin.service.ts",
|
||||
@ -97,28 +97,28 @@
|
||||
"95": "Operational Rules & Boundaries",
|
||||
"96": "exclude",
|
||||
"97": "jest",
|
||||
"98": "OrdersService",
|
||||
"98": "AdminController",
|
||||
"99": "Comprehensive Change Log",
|
||||
"100": "Operational Rules & Boundaries",
|
||||
"101": "CreateOrderDto",
|
||||
"102": "eslint",
|
||||
"103": ".handleZibalCallback",
|
||||
"104": "auth.service.ts",
|
||||
"101": "AdminService",
|
||||
"102": "devDependencies",
|
||||
"103": "ProductDto",
|
||||
"104": "auth.controller.ts",
|
||||
"105": "1. Summary of Integrity Repairs Performed",
|
||||
"106": "reflect-metadata",
|
||||
"106": "BlogsService",
|
||||
"107": "Operational Rules & Boundaries",
|
||||
"108": "Operational Rules & Boundaries",
|
||||
"109": "Operational Rules & Boundaries",
|
||||
"110": "AppService",
|
||||
"111": "AdminLoginDto",
|
||||
"112": "eslint-plugin-prettier",
|
||||
"111": "SmsLogQueryDto",
|
||||
"112": "WholesaleApplyDto",
|
||||
"113": "Vazirmatn Changelog",
|
||||
"114": "Vazirmatn Font فونت وزیرمتن",
|
||||
"115": "Operational Rules & Boundaries",
|
||||
"116": "compilerOptions",
|
||||
"117": "compilerOptions",
|
||||
"118": "backend/README.md",
|
||||
"119": "devDependencies",
|
||||
"119": "eslint",
|
||||
"120": "Repository Map",
|
||||
"121": "validate_integrity.js",
|
||||
"122": "admin-panel/package.json",
|
||||
@ -173,7 +173,7 @@
|
||||
"171": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"172": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"173": "@types/node",
|
||||
"174": "Body",
|
||||
"174": "ZibalCallbackQueryDto",
|
||||
"175": "seed-ui-texts.ts",
|
||||
"176": "seed-wiki.ts",
|
||||
"177": "update-blog.dto.ts",
|
||||
@ -211,10 +211,10 @@
|
||||
"209": "sync_honest_manifest.js",
|
||||
"210": "sync_manifest.js",
|
||||
"211": "@types/multer",
|
||||
"212": "ProductDto",
|
||||
"212": "bcryptjs",
|
||||
"213": "@testing-library/jest-dom",
|
||||
"214": "RedisService",
|
||||
"215": "WikiService",
|
||||
"214": "helmet",
|
||||
"215": "js-yaml",
|
||||
"216": "FormField.tsx",
|
||||
"217": "Input.tsx",
|
||||
"218": "Textarea.tsx",
|
||||
@ -231,15 +231,16 @@
|
||||
"229": "eslint-plugin-react-refresh",
|
||||
"230": "@tailwindcss/postcss",
|
||||
"231": "typescript",
|
||||
"232": "@nestjs/core",
|
||||
"233": "@testing-library/react",
|
||||
"234": "@types/react",
|
||||
"235": "typescript",
|
||||
"236": "vitest",
|
||||
"237": "axios",
|
||||
"238": "tailwindcss",
|
||||
"239": "RegisterDto",
|
||||
"237": "@nestjs/jwt",
|
||||
"238": "@nestjs/swagger",
|
||||
"239": "@nestjs/throttler",
|
||||
"240": "ts-loader",
|
||||
"241": "AdminService",
|
||||
"241": "passport-jwt",
|
||||
"242": "@types/bcrypt",
|
||||
"243": "MetricsController",
|
||||
"244": "blog.entity.ts",
|
||||
@ -287,25 +288,21 @@
|
||||
"286": "Shabnam Font Sample",
|
||||
"287": "Production Docker Compose",
|
||||
"288": "Staging Docker Compose",
|
||||
"289": "@prisma/client",
|
||||
"290": "swagger-ui-express",
|
||||
"291": "NetworkBanner.tsx",
|
||||
"292": "bcryptjs",
|
||||
"293": "helmet",
|
||||
"294": "js-yaml",
|
||||
"296": "@nestjs/jwt",
|
||||
"297": "@nestjs/swagger",
|
||||
"298": "@nestjs/throttler",
|
||||
"299": "passport-jwt",
|
||||
"300": "@prisma/client",
|
||||
"301": "swagger-ui-express",
|
||||
"292": "eslint-config-prettier",
|
||||
"293": "@eslint/js",
|
||||
"294": "jest",
|
||||
"295": "@nestjs/schematics",
|
||||
"296": "@nestjs/testing",
|
||||
"297": "source-map-support",
|
||||
"298": "ts-jest",
|
||||
"299": "tsconfig-paths",
|
||||
"300": "@types/bcryptjs",
|
||||
"301": "typescript-eslint",
|
||||
"302": "@eslint/eslintrc",
|
||||
"303": "@eslint/js",
|
||||
"304": "jest",
|
||||
"305": "@nestjs/schematics",
|
||||
"306": "@nestjs/testing",
|
||||
"307": "source-map-support",
|
||||
"308": "ts-jest",
|
||||
"309": "tsconfig-paths",
|
||||
"310": "@types/bcryptjs",
|
||||
"311": "typescript-eslint",
|
||||
"303": "axios",
|
||||
"304": "tailwindcss",
|
||||
"312": "tailwindcss"
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
{
|
||||
"0": "AdminController",
|
||||
"0": "AdminService",
|
||||
"1": "productService.ts",
|
||||
"2": "CmsController",
|
||||
"3": "app.module.ts",
|
||||
@ -7,18 +7,18 @@
|
||||
"5": "tickets.controller.ts",
|
||||
"6": "UserDashboard.tsx",
|
||||
"7": "MediaSelector.tsx",
|
||||
"8": "ReportsController",
|
||||
"8": "admin.module.ts",
|
||||
"9": "PetProfile.tsx",
|
||||
"10": "DoctorsService",
|
||||
"11": "useSettingsStore",
|
||||
"12": "adminRoutes.tsx",
|
||||
"13": "PrismaService",
|
||||
"14": "videos.controller.ts",
|
||||
"14": "BlogsController",
|
||||
"15": "ProductsService",
|
||||
"16": "lib/services/api.ts",
|
||||
"17": "CreateVideoDto",
|
||||
"18": "src/services/api.ts",
|
||||
"19": "LoginDto",
|
||||
"19": "B2BService",
|
||||
"20": "BE-001",
|
||||
"21": "Roles",
|
||||
"22": "FE-001",
|
||||
@ -34,7 +34,7 @@
|
||||
"32": "ZibalService",
|
||||
"33": "راهنمای تست سیستم (Software Testing)",
|
||||
"34": "CategoriesController",
|
||||
"35": "B2BService",
|
||||
"35": "B2BController",
|
||||
"36": "What You Must Do When Invoked",
|
||||
"37": "userStore.ts",
|
||||
"38": "UsersService",
|
||||
@ -42,13 +42,13 @@
|
||||
"40": "SslController",
|
||||
"41": "PodcastPlayerModal.tsx",
|
||||
"42": "IngredientsService",
|
||||
"43": "AuthService",
|
||||
"43": "RedisService",
|
||||
"44": "MediaController",
|
||||
"45": "Pagination.tsx",
|
||||
"46": "SmsService",
|
||||
"47": "OrdersController",
|
||||
"48": "PrescriptionsService",
|
||||
"49": "SmartAdvisorService",
|
||||
"48": "PrescriptionsController",
|
||||
"49": "SmartAdvisorController",
|
||||
"50": "TestimonialsService",
|
||||
"51": "Role & Core Objective",
|
||||
"52": "ContactService",
|
||||
@ -56,20 +56,20 @@
|
||||
"54": "compilerOptions",
|
||||
"55": "Media.tsx",
|
||||
"56": "compilerOptions",
|
||||
"57": "admin.module.ts",
|
||||
"57": "PetsController",
|
||||
"58": "PaginationDto",
|
||||
"59": "dependencies",
|
||||
"60": "compilerOptions",
|
||||
"61": "HomeClient.tsx",
|
||||
"62": "BlogsController",
|
||||
"63": "AuthController",
|
||||
"64": "BannersService",
|
||||
"64": "prescriptions.controller.ts",
|
||||
"65": "Required Review Group Closures",
|
||||
"66": "Coupons.tsx",
|
||||
"67": "Operational Rules & Boundaries",
|
||||
"68": "Operational Rules & Boundaries",
|
||||
"69": "WikiController",
|
||||
"70": "ApiOperation",
|
||||
"70": "AdminQueryDto",
|
||||
"71": "PetsController",
|
||||
"72": "seo.module.ts",
|
||||
"73": "admin.service.ts",
|
||||
@ -101,17 +101,16 @@
|
||||
"99": "Comprehensive Change Log",
|
||||
"100": "Operational Rules & Boundaries",
|
||||
"101": "CreateOrderDto",
|
||||
"102": "eslint",
|
||||
"103": ".handleZibalCallback",
|
||||
"102": "@types/passport-jwt",
|
||||
"103": "@types/supertest",
|
||||
"104": "auth.service.ts",
|
||||
"105": "1. Summary of Integrity Repairs Performed",
|
||||
"106": "eslint-config-prettier",
|
||||
"106": "typescript",
|
||||
"107": "Operational Rules & Boundaries",
|
||||
"108": "Operational Rules & Boundaries",
|
||||
"109": "Operational Rules & Boundaries",
|
||||
"110": "AppService",
|
||||
"111": "AdminLoginDto",
|
||||
"112": "@types/react-dom",
|
||||
"112": "eslint-plugin-prettier",
|
||||
"113": "Vazirmatn Changelog",
|
||||
"114": "Vazirmatn Font فونت وزیرمتن",
|
||||
"115": "Operational Rules & Boundaries",
|
||||
@ -136,8 +135,8 @@
|
||||
"134": "ErrorBoundary",
|
||||
"135": "application/package.json",
|
||||
"136": "generate-openapi.js",
|
||||
"137": "AdminTransactionFilterDto",
|
||||
"138": "InitiatePaymentDto",
|
||||
"137": "payment.module.ts",
|
||||
"138": "payment.controller.ts",
|
||||
"139": "System Discovery",
|
||||
"140": "Product Requirement Document (PRD)",
|
||||
"141": "WikiController",
|
||||
@ -173,7 +172,6 @@
|
||||
"171": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"172": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"173": "@types/node",
|
||||
"174": "Body",
|
||||
"175": "seed-ui-texts.ts",
|
||||
"176": "seed-wiki.ts",
|
||||
"177": "update-blog.dto.ts",
|
||||
@ -211,9 +209,7 @@
|
||||
"209": "sync_honest_manifest.js",
|
||||
"210": "sync_manifest.js",
|
||||
"211": "@types/multer",
|
||||
"212": "ProductDto",
|
||||
"214": "RedisService",
|
||||
"215": "WikiService",
|
||||
"213": "@testing-library/jest-dom",
|
||||
"216": "FormField.tsx",
|
||||
"217": "Input.tsx",
|
||||
"218": "Textarea.tsx",
|
||||
@ -234,11 +230,7 @@
|
||||
"234": "@types/react",
|
||||
"235": "typescript",
|
||||
"236": "vitest",
|
||||
"237": "axios",
|
||||
"238": "tailwindcss",
|
||||
"239": "RegisterDto",
|
||||
"240": "ts-loader",
|
||||
"241": "AdminService",
|
||||
"242": "@types/bcrypt",
|
||||
"243": "MetricsController",
|
||||
"244": "blog.entity.ts",
|
||||
@ -287,25 +279,6 @@
|
||||
"287": "Production Docker Compose",
|
||||
"288": "Staging Docker Compose",
|
||||
"291": "NetworkBanner.tsx",
|
||||
"292": "bcryptjs",
|
||||
"293": "helmet",
|
||||
"294": "js-yaml",
|
||||
"295": "@nestjs/core",
|
||||
"296": "@nestjs/jwt",
|
||||
"297": "@nestjs/swagger",
|
||||
"298": "@nestjs/throttler",
|
||||
"299": "passport-jwt",
|
||||
"300": "@prisma/client",
|
||||
"301": "swagger-ui-express",
|
||||
"302": "@eslint/eslintrc",
|
||||
"303": "@eslint/js",
|
||||
"304": "jest",
|
||||
"305": "@nestjs/schematics",
|
||||
"306": "@nestjs/testing",
|
||||
"307": "source-map-support",
|
||||
"308": "ts-jest",
|
||||
"309": "tsconfig-paths",
|
||||
"310": "@types/bcryptjs",
|
||||
"311": "typescript-eslint",
|
||||
"312": "tailwindcss"
|
||||
}
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
# Graph Report - canina (2026-08-18)
|
||||
|
||||
## Corpus Check
|
||||
- 511 files · ~734,435 words
|
||||
- 511 files · ~734,460 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 3635 nodes · 6167 edges · 309 communities (192 shown, 117 thin omitted)
|
||||
- 3633 nodes · 6163 edges · 282 communities (184 shown, 98 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 228 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `0c2d104c`
|
||||
- Built from commit: `16c1ecdf`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
- AdminController
|
||||
- AdminService
|
||||
- productService.ts
|
||||
- CmsController
|
||||
- app.module.ts
|
||||
@ -23,18 +23,18 @@
|
||||
- tickets.controller.ts
|
||||
- UserDashboard.tsx
|
||||
- MediaSelector.tsx
|
||||
- ReportsController
|
||||
- admin.module.ts
|
||||
- PetProfile.tsx
|
||||
- DoctorsService
|
||||
- useSettingsStore
|
||||
- adminRoutes.tsx
|
||||
- PrismaService
|
||||
- videos.controller.ts
|
||||
- BlogsController
|
||||
- ProductsService
|
||||
- lib/services/api.ts
|
||||
- CreateVideoDto
|
||||
- src/services/api.ts
|
||||
- LoginDto
|
||||
- B2BService
|
||||
- BE-001
|
||||
- Roles
|
||||
- FE-001
|
||||
@ -50,7 +50,7 @@
|
||||
- ZibalService
|
||||
- راهنمای تست سیستم (Software Testing)
|
||||
- CategoriesController
|
||||
- B2BService
|
||||
- B2BController
|
||||
- What You Must Do When Invoked
|
||||
- userStore.ts
|
||||
- UsersService
|
||||
@ -58,13 +58,13 @@
|
||||
- SslController
|
||||
- PodcastPlayerModal.tsx
|
||||
- IngredientsService
|
||||
- AuthService
|
||||
- RedisService
|
||||
- MediaController
|
||||
- Pagination.tsx
|
||||
- SmsService
|
||||
- OrdersController
|
||||
- PrescriptionsService
|
||||
- SmartAdvisorService
|
||||
- PrescriptionsController
|
||||
- SmartAdvisorController
|
||||
- TestimonialsService
|
||||
- Role & Core Objective
|
||||
- ContactService
|
||||
@ -72,20 +72,20 @@
|
||||
- compilerOptions
|
||||
- Media.tsx
|
||||
- compilerOptions
|
||||
- admin.module.ts
|
||||
- PetsController
|
||||
- PaginationDto
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- HomeClient.tsx
|
||||
- BlogsController
|
||||
- AuthController
|
||||
- BannersService
|
||||
- prescriptions.controller.ts
|
||||
- Required Review Group Closures
|
||||
- Coupons.tsx
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- ApiOperation
|
||||
- AdminQueryDto
|
||||
- PetsController
|
||||
- seo.module.ts
|
||||
- admin.service.ts
|
||||
@ -117,17 +117,16 @@
|
||||
- Comprehensive Change Log
|
||||
- Operational Rules & Boundaries
|
||||
- CreateOrderDto
|
||||
- eslint
|
||||
- .handleZibalCallback
|
||||
- @types/passport-jwt
|
||||
- @types/supertest
|
||||
- auth.service.ts
|
||||
- 1. Summary of Integrity Repairs Performed
|
||||
- eslint-config-prettier
|
||||
- typescript
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- AppService
|
||||
- AdminLoginDto
|
||||
- @types/react-dom
|
||||
- eslint-plugin-prettier
|
||||
- Vazirmatn Changelog
|
||||
- Vazirmatn Font فونت وزیرمتن
|
||||
- Operational Rules & Boundaries
|
||||
@ -152,8 +151,8 @@
|
||||
- ErrorBoundary
|
||||
- application/package.json
|
||||
- generate-openapi.js
|
||||
- AdminTransactionFilterDto
|
||||
- InitiatePaymentDto
|
||||
- payment.module.ts
|
||||
- payment.controller.ts
|
||||
- System Discovery
|
||||
- Product Requirement Document (PRD)
|
||||
- WikiController
|
||||
@ -189,7 +188,6 @@
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- @types/node
|
||||
- Body
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -227,9 +225,7 @@
|
||||
- sync_honest_manifest.js
|
||||
- sync_manifest.js
|
||||
- @types/multer
|
||||
- ProductDto
|
||||
- RedisService
|
||||
- WikiService
|
||||
- @testing-library/jest-dom
|
||||
- FormField.tsx
|
||||
- Input.tsx
|
||||
- Textarea.tsx
|
||||
@ -250,9 +246,7 @@
|
||||
- @types/react
|
||||
- typescript
|
||||
- vitest
|
||||
- RegisterDto
|
||||
- ts-loader
|
||||
- AdminService
|
||||
- @types/bcrypt
|
||||
- MetricsController
|
||||
- blog.entity.ts
|
||||
@ -288,26 +282,7 @@
|
||||
- Production Docker Compose
|
||||
- Staging Docker Compose
|
||||
- NetworkBanner.tsx
|
||||
- bcryptjs
|
||||
- helmet
|
||||
- js-yaml
|
||||
- @nestjs/core
|
||||
- @nestjs/jwt
|
||||
- @nestjs/swagger
|
||||
- @nestjs/throttler
|
||||
- passport-jwt
|
||||
- @prisma/client
|
||||
- swagger-ui-express
|
||||
- @eslint/eslintrc
|
||||
- @eslint/js
|
||||
- jest
|
||||
- @nestjs/schematics
|
||||
- @nestjs/testing
|
||||
- source-map-support
|
||||
- ts-jest
|
||||
- tsconfig-paths
|
||||
- @types/bcryptjs
|
||||
- typescript-eslint
|
||||
- tailwindcss
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
@ -316,7 +291,7 @@
|
||||
3. `useSettingsStore` - 47 edges
|
||||
4. `SmsService` - 41 edges
|
||||
5. `PaginationDto` - 39 edges
|
||||
6. `api` - 38 edges
|
||||
6. `api` - 37 edges
|
||||
7. `AdminService` - 34 edges
|
||||
8. `AdminController` - 33 edges
|
||||
9. `JwtAuthGuard` - 32 edges
|
||||
@ -325,29 +300,29 @@
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `User Profile Photo` --conceptually_related_to--> `User Roles and Capabilities` [INFERRED]
|
||||
backend/uploads/1781288429353-508765350.jpg → docs/02-user-guide.md
|
||||
- `WikiController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/wiki/wiki.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
- `ProductsController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/products/products.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
- `AuthController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/auth/auth.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
- `BlogsController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/blogs/blogs.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
- `HomeController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/home/home.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
- `OrdersController` --references--> `ApiResponse` [EXTRACTED]
|
||||
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
|
||||
## Import Cycles
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
||||
|
||||
## Hyperedges (group relationships)
|
||||
- **Rastikerdar Font Ecosystem** — frontend_application_public_fonts_shabnam_font_v5_0_1_readme, frontend_application_public_fonts_vazirmatn_v33_003_readme, vazir_font [EXTRACTED 0.95]
|
||||
- **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00]
|
||||
|
||||
## Communities (309 total, 117 thin omitted)
|
||||
## Communities (282 total, 98 thin omitted)
|
||||
|
||||
### Community 0 - "AdminController"
|
||||
Cohesion: 0.13
|
||||
Nodes (8): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, Put, UseGuards
|
||||
### Community 0 - "AdminService"
|
||||
Cohesion: 0.09
|
||||
Nodes (14): AdminController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Param (+6 more)
|
||||
|
||||
### Community 1 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
@ -359,7 +334,7 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
|
||||
|
||||
### Community 3 - "app.module.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (34): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+26 more)
|
||||
Nodes (29): BannersModule, Module, CmsModule, Module, SmsModule, Global, Module, ContactModule (+21 more)
|
||||
|
||||
### Community 4 - "CreateReviewDto"
|
||||
Cohesion: 0.07
|
||||
@ -367,7 +342,7 @@ Nodes (29): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsStrin
|
||||
|
||||
### Community 5 - "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 6 - "UserDashboard.tsx"
|
||||
Cohesion: 0.09
|
||||
@ -377,9 +352,9 @@ Nodes (28): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), Ba
|
||||
Cohesion: 0.08
|
||||
Nodes (25): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, BlogPost, Category (+17 more)
|
||||
|
||||
### Community 8 - "ReportsController"
|
||||
Cohesion: 0.17
|
||||
Nodes (9): ReportsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Get, UseGuards, ReportsService (+1 more)
|
||||
### Community 8 - "admin.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (19): AdminModule, Module, BlogsService, Injectable, ReportsController, ApiBearerAuth, ApiOperation, ApiTags (+11 more)
|
||||
|
||||
### Community 9 - "PetProfile.tsx"
|
||||
Cohesion: 0.14
|
||||
@ -398,12 +373,12 @@ Cohesion: 0.10
|
||||
Nodes (14): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, Ticket, TicketMessage, WholesaleRequest (+6 more)
|
||||
|
||||
### Community 13 - "PrismaService"
|
||||
Cohesion: 0.09
|
||||
Nodes (14): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto, DoctorQuery (+6 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (18): BlogQuery, WikiQuery, BannersService, Injectable, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig (+10 more)
|
||||
|
||||
### Community 14 - "videos.controller.ts"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): GetVideosQueryDto, ApiPropertyOptional, IsBoolean, IsOptional, Module, VideosModule, Transform
|
||||
### Community 14 - "BlogsController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+1 more)
|
||||
|
||||
### Community 15 - "ProductsService"
|
||||
Cohesion: 0.09
|
||||
@ -421,17 +396,17 @@ Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEm
|
||||
Cohesion: 0.10
|
||||
Nodes (23): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, SystemSettingsPage (+15 more)
|
||||
|
||||
### Community 19 - "LoginDto"
|
||||
### Community 19 - "B2BService"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength
|
||||
Nodes (5): B2BModule, Module, B2BService, B2BWholesaleOrderItem, Injectable
|
||||
|
||||
### Community 20 - "BE-001"
|
||||
Cohesion: 0.06
|
||||
Nodes (32): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, BE-001, Category, Completion Statement, Confidence (+24 more)
|
||||
|
||||
### Community 21 - "Roles"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): Roles(), SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type (+17 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (38): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+30 more)
|
||||
|
||||
### Community 22 - "FE-001"
|
||||
Cohesion: 0.06
|
||||
@ -470,8 +445,8 @@ Cohesion: 0.11
|
||||
Nodes (11): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable (+3 more)
|
||||
|
||||
### Community 31 - "JwtAuthGuard"
|
||||
Cohesion: 0.15
|
||||
Nodes (8): JwtAuthGuard, Injectable, B2BWholesaleOrderItem, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
Cohesion: 0.19
|
||||
Nodes (6): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable
|
||||
|
||||
### Community 32 - "ZibalService"
|
||||
Cohesion: 0.14
|
||||
@ -485,9 +460,9 @@ Nodes (25): اجرای بکاند, اجرای فرانتاند, اجرای
|
||||
Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
|
||||
### Community 35 - "B2BService"
|
||||
### Community 35 - "B2BController"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
|
||||
Nodes (12): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+4 more)
|
||||
|
||||
### Community 36 - "What You Must Do When Invoked"
|
||||
Cohesion: 0.07
|
||||
@ -517,9 +492,9 @@ Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps
|
||||
Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 43 - "AuthService"
|
||||
Cohesion: 0.20
|
||||
Nodes (3): AuthService, Injectable, normalizeMobile()
|
||||
### Community 43 - "RedisService"
|
||||
Cohesion: 0.10
|
||||
Nodes (5): AuthService, Injectable, normalizeMobile(), RedisService, Injectable
|
||||
|
||||
### Community 44 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
@ -533,13 +508,13 @@ Nodes (11): Pagination(), PaginationProps, Pet, GatewayHealth, Stats, Transactio
|
||||
Cohesion: 0.13
|
||||
Nodes (16): OrdersController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+8 more)
|
||||
|
||||
### Community 48 - "PrescriptionsService"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
|
||||
### Community 48 - "PrescriptionsController"
|
||||
Cohesion: 0.15
|
||||
Nodes (12): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+4 more)
|
||||
|
||||
### Community 49 - "SmartAdvisorService"
|
||||
Cohesion: 0.13
|
||||
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
### Community 49 - "SmartAdvisorController"
|
||||
Cohesion: 0.14
|
||||
Nodes (12): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more)
|
||||
|
||||
### Community 50 - "TestimonialsService"
|
||||
Cohesion: 0.13
|
||||
@ -554,8 +529,8 @@ Cohesion: 0.13
|
||||
Nodes (11): ContactController, Body, Controller, Get, Param, Post, Put, Query (+3 more)
|
||||
|
||||
### Community 53 - "PaymentController"
|
||||
Cohesion: 0.25
|
||||
Nodes (13): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (17): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+9 more)
|
||||
|
||||
### Community 54 - "compilerOptions"
|
||||
Cohesion: 0.06
|
||||
@ -569,17 +544,17 @@ Nodes (20): Badge(), BadgeProps, BadgeVariant, variantStyles, ImagePreviewModal(
|
||||
Cohesion: 0.08
|
||||
Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more)
|
||||
|
||||
### Community 57 - "admin.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (23): AdminModule, Module, BlogQuery, BlogsService, Injectable, PetsController, ApiBearerAuth, ApiOperation (+15 more)
|
||||
### Community 57 - "PetsController"
|
||||
Cohesion: 0.10
|
||||
Nodes (14): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 58 - "PaginationDto"
|
||||
Cohesion: 0.06
|
||||
Nodes (32): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+24 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (24): BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+16 more)
|
||||
|
||||
### Community 59 - "dependencies"
|
||||
Cohesion: 0.10
|
||||
Nodes (21): dependencies, bcrypt, class-transformer, class-validator, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+13 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (41): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, helmet, ioredis, js-yaml (+33 more)
|
||||
|
||||
### Community 60 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
@ -597,9 +572,9 @@ Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Bod
|
||||
Cohesion: 0.27
|
||||
Nodes (12): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+4 more)
|
||||
|
||||
### Community 64 - "BannersService"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
|
||||
### Community 64 - "prescriptions.controller.ts"
|
||||
Cohesion: 0.31
|
||||
Nodes (5): UserReqPayload, PrescriptionsModule, Module, PrescriptionsService, Injectable
|
||||
|
||||
### Community 65 - "Required Review Group Closures"
|
||||
Cohesion: 0.10
|
||||
@ -621,9 +596,9 @@ Nodes (18): 1. Framework-Aware Analysis, 2. DOM & Semantic Structure Analysis, 3
|
||||
Cohesion: 0.13
|
||||
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 70 - "ApiOperation"
|
||||
Cohesion: 0.14
|
||||
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
### Community 70 - "AdminQueryDto"
|
||||
Cohesion: 0.18
|
||||
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 71 - "PetsController"
|
||||
Cohesion: 0.05
|
||||
@ -634,8 +609,8 @@ Cohesion: 0.16
|
||||
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
|
||||
|
||||
### Community 73 - "admin.service.ts"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber (+5 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (20): CouponTargetInput, PaginationQuery, ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional (+12 more)
|
||||
|
||||
### Community 74 - "🏢 AI Software Agency — Master Orchestration Protocol v3"
|
||||
Cohesion: 0.11
|
||||
@ -667,14 +642,14 @@ Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRe
|
||||
|
||||
### Community 81 - "devDependencies"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): devDependencies, eslint, jsdom, tailwindcss, @tailwindcss/postcss, @testing-library/jest-dom, @types/node, @vitejs/plugin-react (+7 more)
|
||||
Nodes (15): devDependencies, eslint, jsdom, tailwindcss, @tailwindcss/postcss, @types/node, @types/react-dom, @vitejs/plugin-react (+7 more)
|
||||
|
||||
### Community 82 - "api"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): Layout(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, api
|
||||
|
||||
### Community 83 - "Orders.tsx"
|
||||
Cohesion: 0.14
|
||||
Cohesion: 0.13
|
||||
Nodes (13): Skeleton(), getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderItem, Orders(), PaymentTx, toPersianDigits() (+5 more)
|
||||
|
||||
### Community 84 - "devDependencies"
|
||||
@ -745,13 +720,9 @@ Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (
|
||||
Cohesion: 0.22
|
||||
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
|
||||
|
||||
### Community 103 - ".handleZibalCallback"
|
||||
Cohesion: 0.24
|
||||
Nodes (8): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, Query, Res, Headers, Ip
|
||||
|
||||
### Community 104 - "auth.service.ts"
|
||||
Cohesion: 0.15
|
||||
Nodes (14): AdminLoginInput, LoginInput, RegisterInput, SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches (+6 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (33): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+25 more)
|
||||
|
||||
### Community 105 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -773,10 +744,6 @@ Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment St
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
|
||||
### Community 111 - "AdminLoginDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
|
||||
|
||||
### Community 113 - "Vazirmatn Changelog"
|
||||
Cohesion: 0.18
|
||||
Nodes (10): 32.0.0, 32.1, 32.101, 32.102, 33.000, 33.001, 33.002, 33.003 (+2 more)
|
||||
@ -802,8 +769,8 @@ Cohesion: 0.20
|
||||
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
|
||||
|
||||
### Community 119 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (23): devDependencies, eslint, eslint-config-prettier, @eslint/js, jest, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more)
|
||||
|
||||
### Community 120 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -869,13 +836,13 @@ Nodes (8): name, private, scripts, build, dev, lint, start, version
|
||||
Cohesion: 0.25
|
||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||
|
||||
### Community 137 - "AdminTransactionFilterDto"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||
### Community 137 - "payment.module.ts"
|
||||
Cohesion: 0.15
|
||||
Nodes (10): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type, PaymentModule (+2 more)
|
||||
|
||||
### Community 138 - "InitiatePaymentDto"
|
||||
Cohesion: 0.43
|
||||
Nodes (7): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
|
||||
### Community 138 - "payment.controller.ts"
|
||||
Cohesion: 0.23
|
||||
Nodes (11): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+3 more)
|
||||
|
||||
### Community 139 - "System Discovery"
|
||||
Cohesion: 0.25
|
||||
@ -886,8 +853,8 @@ Cohesion: 0.29
|
||||
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
|
||||
|
||||
### Community 141 - "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 144 - "Baseline Command Plan & Reconciled Command History"
|
||||
Cohesion: 0.29
|
||||
@ -989,10 +956,6 @@ 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 174 - "Body"
|
||||
Cohesion: 0.24
|
||||
Nodes (3): Body, Post, CouponInput
|
||||
|
||||
### Community 180 - "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
|
||||
@ -1033,44 +996,32 @@ 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 212 - "ProductDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 215 - "WikiService"
|
||||
Cohesion: 0.22
|
||||
Nodes (3): Injectable, WikiQuery, WikiService
|
||||
|
||||
### Community 223 - "Shabnam Font README"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 239 - "RegisterDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 243 - "MetricsController"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
|
||||
## Knowledge Gaps
|
||||
- **1240 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1235 more)
|
||||
- **1240 isolated node(s):** `OrderItem`, `PaymentTx`, `Order`, `ORDER_STATUS_MAP`, `BlogPost` (+1235 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **117 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **98 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `CreateReviewDto`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PaymentController`, `WholesaleApplyDto`, `JwtAuthGuard`?**
|
||||
_High betweenness centrality (0.048) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `WikiController`, `OrdersController`, `HomeController`, `ProductsService`, `PaginationDto`, `AuthController`?**
|
||||
_High betweenness centrality (0.037) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `CmsController`, `app.module.ts`, `CreateReviewDto`, `tickets.controller.ts`, `ReportsController`, `DoctorsService`, `ProductsService`, `CreateVideoDto`, `Roles`, `WholesaleApplyDto`, `JwtAuthGuard`, `ZibalService`, `CategoriesController`, `B2BService`, `UsersService`, `IngredientsService`, `AuthService`, `MediaController`, `SmsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `admin.module.ts`, `PaginationDto`, `BannersService`, `PetsController`, `seo.module.ts`, `admin.service.ts`, `HomeController`, `zibal.service.ts`, `RedisService`, `WikiService`, `OrdersService`, `auth.service.ts`, `AdminService`, `MetricsController`?**
|
||||
_High betweenness centrality (0.024) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
- **Why does `Roles()` connect `Roles` to `prescriptions.controller.ts`, `CmsController`, `B2BController`, `CreateReviewDto`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `payment.controller.ts`, `ProductsService`, `PrescriptionsController`, `SmartAdvisorController`, `TestimonialsService`, `B2BService`, `ContactService`, `PaymentController`, `WholesaleApplyDto`, `JwtAuthGuard`?**
|
||||
_High betweenness centrality (0.061) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `WikiController`, `BlogsController`, `HomeController`, `OrdersController`, `ProductsService`, `AuthController`?**
|
||||
_High betweenness centrality (0.055) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `CmsController`, `app.module.ts`, `CreateReviewDto`, `tickets.controller.ts`, `admin.module.ts`, `payment.module.ts`, `DoctorsService`, `WikiController`, `ProductsService`, `CreateVideoDto`, `B2BService`, `Roles`, `WholesaleApplyDto`, `JwtAuthGuard`, `ZibalService`, `CategoriesController`, `UsersService`, `IngredientsService`, `RedisService`, `MediaController`, `SmsService`, `TestimonialsService`, `ContactService`, `PetsController`, `PaginationDto`, `prescriptions.controller.ts`, `PetsController`, `seo.module.ts`, `admin.service.ts`, `HomeController`, `zibal.service.ts`, `OrdersService`, `auth.service.ts`, `MetricsController`?**
|
||||
_High betweenness centrality (0.042) - this node is a cross-community bridge._
|
||||
- **What connects `OrderItem`, `PaymentTx`, `Order` to the rest of the system?**
|
||||
_1240 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `AdminController` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.13043478260869565 - nodes in this community are weakly interconnected._
|
||||
- **Should `AdminService` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.08821548821548822 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05888376856118792 - nodes in this community are weakly interconnected._
|
||||
- **Should `CmsController` be split into smaller, more focused modules?**
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,40 +1,40 @@
|
||||
# Graph Report - canina (2026-08-18)
|
||||
|
||||
## Corpus Check
|
||||
- 511 files · ~734,446 words
|
||||
- 511 files · ~734,987 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 3635 nodes · 6167 edges · 309 communities (192 shown, 117 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 228 edges (avg confidence: 0.79)
|
||||
- 3638 nodes · 6178 edges · 306 communities (192 shown, 114 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 230 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `6977f1d6`
|
||||
- Built from commit: `16c1ecdf`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
- AdminController
|
||||
- ApiOperation
|
||||
- productService.ts
|
||||
- CmsController
|
||||
- app.module.ts
|
||||
- CreateReviewDto
|
||||
- reviews.controller.ts
|
||||
- tickets.controller.ts
|
||||
- UserDashboard.tsx
|
||||
- MediaSelector.tsx
|
||||
- ReportsController
|
||||
- admin.module.ts
|
||||
- PetProfile.tsx
|
||||
- DoctorsService
|
||||
- useSettingsStore
|
||||
- adminRoutes.tsx
|
||||
- PrismaService
|
||||
- videos.controller.ts
|
||||
- BlogsController
|
||||
- ProductsService
|
||||
- lib/services/api.ts
|
||||
- CreateVideoDto
|
||||
- src/services/api.ts
|
||||
- LoginDto
|
||||
- pets/pets.controller.ts
|
||||
- BE-001
|
||||
- Roles
|
||||
- FE-001
|
||||
@ -44,7 +44,7 @@
|
||||
- TEST-001
|
||||
- DEVOPS-001
|
||||
- DOC-001
|
||||
- WholesaleApplyDto
|
||||
- WholesaleService
|
||||
- main.ts
|
||||
- JwtAuthGuard
|
||||
- ZibalService
|
||||
@ -58,11 +58,11 @@
|
||||
- SslController
|
||||
- PodcastPlayerModal.tsx
|
||||
- IngredientsService
|
||||
- AuthService
|
||||
- RedisService
|
||||
- MediaController
|
||||
- Pagination.tsx
|
||||
- SmsService
|
||||
- OrdersController
|
||||
- OrdersService
|
||||
- PrescriptionsService
|
||||
- SmartAdvisorService
|
||||
- TestimonialsService
|
||||
@ -72,20 +72,20 @@
|
||||
- compilerOptions
|
||||
- Media.tsx
|
||||
- compilerOptions
|
||||
- admin.module.ts
|
||||
- PetsController
|
||||
- PaginationDto
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- HomeClient.tsx
|
||||
- BlogsController
|
||||
- AuthController
|
||||
- SettingsService
|
||||
- BannersService
|
||||
- Required Review Group Closures
|
||||
- Coupons.tsx
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- ApiOperation
|
||||
- AdminQueryDto
|
||||
- PetsController
|
||||
- seo.module.ts
|
||||
- admin.service.ts
|
||||
@ -113,28 +113,28 @@
|
||||
- Operational Rules & Boundaries
|
||||
- exclude
|
||||
- jest
|
||||
- OrdersService
|
||||
- AdminController
|
||||
- Comprehensive Change Log
|
||||
- Operational Rules & Boundaries
|
||||
- CreateOrderDto
|
||||
- eslint
|
||||
- .handleZibalCallback
|
||||
- auth.service.ts
|
||||
- AdminService
|
||||
- devDependencies
|
||||
- ProductDto
|
||||
- auth.controller.ts
|
||||
- 1. Summary of Integrity Repairs Performed
|
||||
- reflect-metadata
|
||||
- BlogsService
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- AppService
|
||||
- AdminLoginDto
|
||||
- eslint-plugin-prettier
|
||||
- SmsLogQueryDto
|
||||
- WholesaleApplyDto
|
||||
- Vazirmatn Changelog
|
||||
- Vazirmatn Font فونت وزیرمتن
|
||||
- Operational Rules & Boundaries
|
||||
- compilerOptions
|
||||
- compilerOptions
|
||||
- backend/README.md
|
||||
- devDependencies
|
||||
- eslint
|
||||
- Repository Map
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
@ -189,7 +189,7 @@
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- @types/node
|
||||
- Body
|
||||
- ZibalCallbackQueryDto
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -227,10 +227,10 @@
|
||||
- sync_honest_manifest.js
|
||||
- sync_manifest.js
|
||||
- @types/multer
|
||||
- ProductDto
|
||||
- bcryptjs
|
||||
- @testing-library/jest-dom
|
||||
- RedisService
|
||||
- WikiService
|
||||
- helmet
|
||||
- js-yaml
|
||||
- FormField.tsx
|
||||
- Input.tsx
|
||||
- Textarea.tsx
|
||||
@ -247,13 +247,16 @@
|
||||
- eslint-plugin-react-refresh
|
||||
- @tailwindcss/postcss
|
||||
- typescript
|
||||
- @nestjs/core
|
||||
- @testing-library/react
|
||||
- @types/react
|
||||
- typescript
|
||||
- vitest
|
||||
- RegisterDto
|
||||
- @nestjs/jwt
|
||||
- @nestjs/swagger
|
||||
- @nestjs/throttler
|
||||
- ts-loader
|
||||
- AdminService
|
||||
- passport-jwt
|
||||
- @types/bcrypt
|
||||
- MetricsController
|
||||
- blog.entity.ts
|
||||
@ -288,17 +291,10 @@
|
||||
- Shabnam Font Sample
|
||||
- Production Docker Compose
|
||||
- Staging Docker Compose
|
||||
- NetworkBanner.tsx
|
||||
- bcryptjs
|
||||
- helmet
|
||||
- js-yaml
|
||||
- @nestjs/jwt
|
||||
- @nestjs/swagger
|
||||
- @nestjs/throttler
|
||||
- passport-jwt
|
||||
- @prisma/client
|
||||
- swagger-ui-express
|
||||
- @eslint/eslintrc
|
||||
- NetworkBanner.tsx
|
||||
- eslint-config-prettier
|
||||
- @eslint/js
|
||||
- jest
|
||||
- @nestjs/schematics
|
||||
@ -308,13 +304,14 @@
|
||||
- tsconfig-paths
|
||||
- @types/bcryptjs
|
||||
- typescript-eslint
|
||||
- @eslint/eslintrc
|
||||
- tailwindcss
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `PrismaService` - 81 edges
|
||||
2. `Roles()` - 74 edges
|
||||
2. `Roles()` - 75 edges
|
||||
3. `useSettingsStore` - 47 edges
|
||||
4. `SmsService` - 41 edges
|
||||
4. `SmsService` - 42 edges
|
||||
5. `PaginationDto` - 39 edges
|
||||
6. `api` - 38 edges
|
||||
7. `AdminService` - 34 edges
|
||||
@ -343,11 +340,11 @@
|
||||
- **Rastikerdar Font Ecosystem** — frontend_application_public_fonts_shabnam_font_v5_0_1_readme, frontend_application_public_fonts_vazirmatn_v33_003_readme, vazir_font [EXTRACTED 0.95]
|
||||
- **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00]
|
||||
|
||||
## Communities (309 total, 117 thin omitted)
|
||||
## Communities (306 total, 114 thin omitted)
|
||||
|
||||
### Community 0 - "AdminController"
|
||||
Cohesion: 0.13
|
||||
Nodes (8): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, Put, UseGuards
|
||||
### Community 0 - "ApiOperation"
|
||||
Cohesion: 0.16
|
||||
Nodes (3): ApiOperation, Body, Put
|
||||
|
||||
### Community 1 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
@ -359,11 +356,11 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
|
||||
|
||||
### Community 3 - "app.module.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (34): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+26 more)
|
||||
Nodes (32): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+24 more)
|
||||
|
||||
### Community 4 - "CreateReviewDto"
|
||||
### Community 4 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+21 more)
|
||||
Nodes (31): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+23 more)
|
||||
|
||||
### Community 5 - "tickets.controller.ts"
|
||||
Cohesion: 0.09
|
||||
@ -377,17 +374,17 @@ Nodes (28): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), Ba
|
||||
Cohesion: 0.08
|
||||
Nodes (25): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, BlogPost, Category (+17 more)
|
||||
|
||||
### Community 8 - "ReportsController"
|
||||
Cohesion: 0.17
|
||||
Nodes (9): ReportsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Get, UseGuards, ReportsService (+1 more)
|
||||
### Community 8 - "admin.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (21): AdminModule, Module, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth, ApiOperation (+13 more)
|
||||
|
||||
### Community 9 - "PetProfile.tsx"
|
||||
Cohesion: 0.14
|
||||
Nodes (12): FeaturedProducts(), OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps, mockProducts, HealthLog (+4 more)
|
||||
|
||||
### Community 10 - "DoctorsService"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (16): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||
|
||||
### Community 11 - "useSettingsStore"
|
||||
Cohesion: 0.14
|
||||
@ -398,12 +395,12 @@ Cohesion: 0.10
|
||||
Nodes (14): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, Ticket, TicketMessage, WholesaleRequest (+6 more)
|
||||
|
||||
### Community 13 - "PrismaService"
|
||||
Cohesion: 0.09
|
||||
Nodes (14): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto, DoctorQuery (+6 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (17): AdminLoginInput, LoginInput, RegisterInput, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto (+9 more)
|
||||
|
||||
### Community 14 - "videos.controller.ts"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): GetVideosQueryDto, ApiPropertyOptional, IsBoolean, IsOptional, Module, VideosModule, Transform
|
||||
### Community 14 - "BlogsController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+1 more)
|
||||
|
||||
### Community 15 - "ProductsService"
|
||||
Cohesion: 0.09
|
||||
@ -414,24 +411,24 @@ Cohesion: 0.06
|
||||
Nodes (18): metadata, ContactFormClient(), ContactInfoItem, Testimonial, TestimonialsSection(), api, ApiErrorPayload, BASE_DOMAIN (+10 more)
|
||||
|
||||
### Community 17 - "CreateVideoDto"
|
||||
Cohesion: 0.09
|
||||
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more)
|
||||
|
||||
### Community 18 - "src/services/api.ts"
|
||||
Cohesion: 0.10
|
||||
Nodes (23): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, SystemSettingsPage (+15 more)
|
||||
|
||||
### Community 19 - "LoginDto"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength
|
||||
### Community 19 - "pets/pets.controller.ts"
|
||||
Cohesion: 0.12
|
||||
Nodes (15): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+7 more)
|
||||
|
||||
### Community 20 - "BE-001"
|
||||
Cohesion: 0.06
|
||||
Nodes (32): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, BE-001, Category, Completion Statement, Confidence (+24 more)
|
||||
|
||||
### Community 21 - "Roles"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): Roles(), SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type (+17 more)
|
||||
Cohesion: 0.21
|
||||
Nodes (15): Roles(), SettingsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete (+7 more)
|
||||
|
||||
### Community 22 - "FE-001"
|
||||
Cohesion: 0.06
|
||||
@ -461,17 +458,17 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati
|
||||
Cohesion: 0.06
|
||||
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
||||
|
||||
### Community 29 - "WholesaleApplyDto"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
|
||||
### Community 29 - "WholesaleService"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param, Post (+6 more)
|
||||
|
||||
### Community 30 - "main.ts"
|
||||
Cohesion: 0.11
|
||||
Nodes (11): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable (+3 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (9): CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable, ApiErrorResponse, ErrorDetailField (+1 more)
|
||||
|
||||
### Community 31 - "JwtAuthGuard"
|
||||
Cohesion: 0.15
|
||||
Nodes (8): JwtAuthGuard, Injectable, B2BWholesaleOrderItem, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
Cohesion: 0.20
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 32 - "ZibalService"
|
||||
Cohesion: 0.14
|
||||
@ -486,8 +483,8 @@ Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
|
||||
### Community 35 - "B2BService"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more)
|
||||
|
||||
### Community 36 - "What You Must Do When Invoked"
|
||||
Cohesion: 0.07
|
||||
@ -499,7 +496,7 @@ Nodes (32): ClientLayout(), ArchiveProductCard(), AuthModal(), AuthModalProps, e
|
||||
|
||||
### Community 38 - "UsersService"
|
||||
Cohesion: 0.06
|
||||
Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
|
||||
Nodes (41): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+33 more)
|
||||
|
||||
### Community 39 - "What You Must Do When Invoked"
|
||||
Cohesion: 0.07
|
||||
@ -517,9 +514,9 @@ Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps
|
||||
Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 43 - "AuthService"
|
||||
Cohesion: 0.20
|
||||
Nodes (3): AuthService, Injectable, normalizeMobile()
|
||||
### Community 43 - "RedisService"
|
||||
Cohesion: 0.09
|
||||
Nodes (7): AppModule, Module, AuthService, Injectable, normalizeMobile(), RedisService, Injectable
|
||||
|
||||
### Community 44 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
@ -529,9 +526,9 @@ Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Control
|
||||
Cohesion: 0.13
|
||||
Nodes (11): Pagination(), PaginationProps, Pet, GatewayHealth, Stats, Transaction, ProductItem, WikiTerm (+3 more)
|
||||
|
||||
### Community 47 - "OrdersController"
|
||||
Cohesion: 0.13
|
||||
Nodes (16): OrdersController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+8 more)
|
||||
### Community 47 - "OrdersService"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||
|
||||
### Community 48 - "PrescriptionsService"
|
||||
Cohesion: 0.14
|
||||
@ -554,8 +551,8 @@ Cohesion: 0.13
|
||||
Nodes (11): ContactController, Body, Controller, Get, Param, Post, Put, Query (+3 more)
|
||||
|
||||
### Community 53 - "PaymentController"
|
||||
Cohesion: 0.25
|
||||
Nodes (13): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (17): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+9 more)
|
||||
|
||||
### Community 54 - "compilerOptions"
|
||||
Cohesion: 0.06
|
||||
@ -569,17 +566,17 @@ Nodes (20): Badge(), BadgeProps, BadgeVariant, variantStyles, ImagePreviewModal(
|
||||
Cohesion: 0.08
|
||||
Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+15 more)
|
||||
|
||||
### Community 57 - "admin.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (23): AdminModule, Module, BlogQuery, BlogsService, Injectable, PetsController, ApiBearerAuth, ApiOperation (+15 more)
|
||||
### Community 57 - "PetsController"
|
||||
Cohesion: 0.15
|
||||
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
|
||||
|
||||
### Community 58 - "PaginationDto"
|
||||
Cohesion: 0.06
|
||||
Nodes (32): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+24 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (19): BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+11 more)
|
||||
|
||||
### Community 59 - "dependencies"
|
||||
Cohesion: 0.10
|
||||
Nodes (21): dependencies, bcrypt, class-transformer, class-validator, ioredis, @nestjs/common, @nestjs/core, @nestjs/passport (+13 more)
|
||||
Nodes (21): dependencies, bcrypt, class-transformer, class-validator, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+13 more)
|
||||
|
||||
### Community 60 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
@ -593,9 +590,9 @@ Nodes (20): HomeClient(), HomeClientProps, getHomeData(), Home(), metadata, meta
|
||||
Cohesion: 0.13
|
||||
Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+7 more)
|
||||
|
||||
### Community 63 - "AuthController"
|
||||
Cohesion: 0.27
|
||||
Nodes (12): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+4 more)
|
||||
### Community 63 - "SettingsService"
|
||||
Cohesion: 0.09
|
||||
Nodes (4): SmsLogQuery, ApiOkResponse, SettingsService, Injectable
|
||||
|
||||
### Community 64 - "BannersService"
|
||||
Cohesion: 0.13
|
||||
@ -621,21 +618,21 @@ Nodes (18): 1. Framework-Aware Analysis, 2. DOM & Semantic Structure Analysis, 3
|
||||
Cohesion: 0.13
|
||||
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 70 - "ApiOperation"
|
||||
Cohesion: 0.14
|
||||
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
### Community 70 - "AdminQueryDto"
|
||||
Cohesion: 0.16
|
||||
Nodes (7): ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 71 - "PetsController"
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (32): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreateReminderDto, ApiProperty (+24 more)
|
||||
|
||||
### Community 72 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
|
||||
|
||||
### Community 73 - "admin.service.ts"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber (+5 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (13): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+5 more)
|
||||
|
||||
### Community 74 - "🏢 AI Software Agency — Master Orchestration Protocol v3"
|
||||
Cohesion: 0.11
|
||||
@ -733,6 +730,10 @@ Nodes (8): exclude, extends, dist, node_modules, prisma, **/*spec.ts, test, ./ts
|
||||
Cohesion: 0.15
|
||||
Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more)
|
||||
|
||||
### Community 98 - "AdminController"
|
||||
Cohesion: 0.17
|
||||
Nodes (7): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, UseGuards
|
||||
|
||||
### Community 99 - "Comprehensive Change Log"
|
||||
Cohesion: 0.15
|
||||
Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TASK-SEC-003`, 4. `TASK-FIN-001`, 5. `TASK-BUILD-001`, 6. `TASK-AUTH-001`, 7. `TASK-FE-001` (+4 more)
|
||||
@ -741,22 +742,30 @@ Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TAS
|
||||
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 101 - "CreateOrderDto"
|
||||
### Community 101 - "AdminService"
|
||||
Cohesion: 0.22
|
||||
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
|
||||
Nodes (3): Post, AdminService, Injectable
|
||||
|
||||
### Community 103 - ".handleZibalCallback"
|
||||
Cohesion: 0.24
|
||||
Nodes (8): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, Query, Res, Headers, Ip
|
||||
### Community 102 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more)
|
||||
|
||||
### Community 104 - "auth.service.ts"
|
||||
Cohesion: 0.15
|
||||
Nodes (14): AdminLoginInput, LoginInput, RegisterInput, SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches (+6 more)
|
||||
### Community 103 - "ProductDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 104 - "auth.controller.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (42): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+34 more)
|
||||
|
||||
### Community 105 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
Nodes (11): 1.1 Authoritative Source File Inventory Rebuilt, 1.2 Raw Finding Dispositions Reconciled, 1.3 Finding Identifier Normalization, 1.4 Rejected Finding Cleanup, 1. Summary of Integrity Repairs Performed, 2. Final Verified Finding Metrics, 3. Reference and Compiler Integrity Results, 4. Quality Gate Conclusion (+3 more)
|
||||
|
||||
### Community 106 - "BlogsService"
|
||||
Cohesion: 0.22
|
||||
Nodes (3): BlogQuery, BlogsService, Injectable
|
||||
|
||||
### Community 107 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.18
|
||||
Nodes (10): 1. Detect Tech Stack First (Universal), 2. Explicit Scoring Methodology (Universal), 3. Code Coverage Ratio Rule, 4. Deep Directory Scanning, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
|
||||
@ -773,9 +782,13 @@ Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment St
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
|
||||
### Community 111 - "AdminLoginDto"
|
||||
### Community 111 - "SmsLogQueryDto"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||
|
||||
### Community 112 - "WholesaleApplyDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
|
||||
Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto
|
||||
|
||||
### Community 113 - "Vazirmatn Changelog"
|
||||
Cohesion: 0.18
|
||||
@ -801,10 +814,6 @@ 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 119 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint-config-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-config-prettier, @types/passport-jwt (+1 more)
|
||||
|
||||
### Community 120 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
Nodes (9): 1. Active Customer Storefront: React 19 + Vite Application, 2. Active Backend Service: NestJS Application, 3. Excluded Placeholder / Non-Auditable Directories, Active Applications & Non-Auditable Scopes, Documentation Governance, Important Configuration & Infrastructure Files, Mandatory Global Audit Exclusions, Repository Map (+1 more)
|
||||
@ -870,7 +879,7 @@ Cohesion: 0.25
|
||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||
|
||||
### Community 137 - "AdminTransactionFilterDto"
|
||||
Cohesion: 0.25
|
||||
Cohesion: 0.22
|
||||
Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
|
||||
|
||||
### Community 138 - "InitiatePaymentDto"
|
||||
@ -886,8 +895,8 @@ Cohesion: 0.29
|
||||
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
|
||||
|
||||
### Community 141 - "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 144 - "Baseline Command Plan & Reconciled Command History"
|
||||
Cohesion: 0.29
|
||||
@ -989,9 +998,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 174 - "Body"
|
||||
Cohesion: 0.24
|
||||
Nodes (3): Body, Post, CouponInput
|
||||
### Community 174 - "ZibalCallbackQueryDto"
|
||||
Cohesion: 0.40
|
||||
Nodes (4): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto
|
||||
|
||||
### Community 180 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
@ -1033,22 +1042,10 @@ 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 212 - "ProductDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 215 - "WikiService"
|
||||
Cohesion: 0.22
|
||||
Nodes (3): Injectable, WikiQuery, WikiService
|
||||
|
||||
### Community 223 - "Shabnam Font README"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 239 - "RegisterDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 243 - "MetricsController"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
@ -1056,22 +1053,22 @@ Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
## Knowledge Gaps
|
||||
- **1240 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1235 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **117 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **114 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `CreateReviewDto`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PaymentController`, `WholesaleApplyDto`, `JwtAuthGuard`?**
|
||||
_High betweenness centrality (0.048) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `WikiController`, `OrdersController`, `HomeController`, `ProductsService`, `PaginationDto`, `AuthController`?**
|
||||
_High betweenness centrality (0.037) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `CmsController`, `app.module.ts`, `CreateReviewDto`, `tickets.controller.ts`, `ReportsController`, `DoctorsService`, `ProductsService`, `CreateVideoDto`, `Roles`, `WholesaleApplyDto`, `JwtAuthGuard`, `ZibalService`, `CategoriesController`, `B2BService`, `UsersService`, `IngredientsService`, `AuthService`, `MediaController`, `SmsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `admin.module.ts`, `PaginationDto`, `BannersService`, `PetsController`, `seo.module.ts`, `admin.service.ts`, `HomeController`, `zibal.service.ts`, `RedisService`, `WikiService`, `OrdersService`, `auth.service.ts`, `AdminService`, `MetricsController`?**
|
||||
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PaymentController`, `WholesaleService`, `JwtAuthGuard`?**
|
||||
_High betweenness centrality (0.051) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `auth.controller.ts`, `WikiController`, `BlogsController`, `OrdersService`, `HomeController`, `ProductsService`?**
|
||||
_High betweenness centrality (0.038) - this node is a cross-community bridge._
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `CmsController`, `reviews.controller.ts`, `tickets.controller.ts`, `UsersService`, `admin.module.ts`, `admin.service.ts`, `BlogsService`, `auth.controller.ts`, `DoctorsService`, `CreateVideoDto`, `pets/pets.controller.ts`, `PaginationDto`?**
|
||||
_High betweenness centrality (0.024) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_1240 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `AdminController` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.13043478260869565 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05888376856118792 - nodes in this community are weakly interconnected._
|
||||
- **Should `CmsController` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.0899854862119013 - nodes in this community are weakly interconnected._
|
||||
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.0797872340425532 - 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