fix(sms): define toPersianDigits helper function in SmsSettingsPage to fix white screen
All checks were successful
Deploy Canina / deploy (push) Successful in 49s

This commit is contained in:
parsa aghaei 2026-08-18 18:21:38 +03:30
parent c1d380c765
commit 856ac4c8f1
12 changed files with 4238 additions and 4245 deletions

View File

@ -81,6 +81,12 @@ interface SmsLogStats {
successRate: number; successRate: number;
} }
const toPersianDigits = (n: string | number | null | undefined): string => {
if (n === null || n === undefined) return '';
const farsiDigits = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
return n.toString().replace(/\d/g, (x) => farsiDigits[parseInt(x, 10)]);
};
export default function SmsSettingsPage() { export default function SmsSettingsPage() {
const [activeTab, setActiveTab] = useState<'settings' | 'patterns' | 'logs'>('settings'); const [activeTab, setActiveTab] = useState<'settings' | 'patterns' | 'logs'>('settings');

View File

@ -13,7 +13,7 @@
"11": "useSettingsStore", "11": "useSettingsStore",
"12": "adminRoutes.tsx", "12": "adminRoutes.tsx",
"13": "PrismaService", "13": "PrismaService",
"14": "BlogsController", "14": "pets/pets.controller.ts",
"15": "ProductsService", "15": "ProductsService",
"16": "lib/services/api.ts", "16": "lib/services/api.ts",
"17": "CreateVideoDto", "17": "CreateVideoDto",
@ -46,9 +46,9 @@
"44": "MediaController", "44": "MediaController",
"45": "Transactions.tsx", "45": "Transactions.tsx",
"46": "SmsService", "46": "SmsService",
"47": "OrdersController", "47": "PetsService",
"48": "PrescriptionsController", "48": "PrescriptionsService",
"49": "SmartAdvisorController", "49": "SmartAdvisorService",
"50": "TestimonialsService", "50": "TestimonialsService",
"51": "Role & Core Objective", "51": "Role & Core Objective",
"52": "ContactService", "52": "ContactService",
@ -97,28 +97,28 @@
"95": "Operational Rules & Boundaries", "95": "Operational Rules & Boundaries",
"96": "exclude", "96": "exclude",
"97": "jest", "97": "jest",
"98": "AdminService", "98": "AdminController",
"99": "Comprehensive Change Log", "99": "Comprehensive Change Log",
"100": "Operational Rules & Boundaries", "100": "Operational Rules & Boundaries",
"101": "Body", "101": "Body",
"102": "devDependencies", "102": "eslint-plugin-prettier",
"103": "ProductDto", "103": "ProductDto",
"104": ".adminLogin", "104": "AuthController",
"105": "1. Summary of Integrity Repairs Performed", "105": "1. Summary of Integrity Repairs Performed",
"106": "@nestjs/core", "106": "AdminService",
"107": "Operational Rules & Boundaries", "107": "Operational Rules & Boundaries",
"108": "Operational Rules & Boundaries", "108": "Operational Rules & Boundaries",
"109": "Operational Rules & Boundaries", "109": "Operational Rules & Boundaries",
"110": "AppService", "110": "AppService",
"111": "SmsLogQueryDto", "111": "SmsLogQueryDto",
"112": "WholesaleApplyDto", "112": "wholesale.controller.ts",
"113": "Vazirmatn Changelog", "113": "Vazirmatn Changelog",
"114": "Vazirmatn Font فونت وزیرمتن", "114": "Vazirmatn Font فونت وزیرمتن",
"115": "Operational Rules & Boundaries", "115": "Operational Rules & Boundaries",
"116": "compilerOptions", "116": "compilerOptions",
"117": "compilerOptions", "117": "compilerOptions",
"118": "backend/README.md", "118": "backend/README.md",
"119": "eslint", "119": "devDependencies",
"120": "Repository Map", "120": "Repository Map",
"121": "validate_integrity.js", "121": "validate_integrity.js",
"122": "admin-panel/package.json", "122": "admin-panel/package.json",
@ -128,7 +128,7 @@
"126": "Role & Core Objective", "126": "Role & Core Objective",
"127": "orchestrate.py", "127": "orchestrate.py",
"128": "backend/package.json", "128": "backend/package.json",
"129": "@types/react-dom", "129": "BlogsService",
"130": "graphify reference: extra exports and benchmark", "130": "graphify reference: extra exports and benchmark",
"131": "Phase 2 Final Quality Gate Summary Report", "131": "Phase 2 Final Quality Gate Summary Report",
"132": "Task Modifications Log", "132": "Task Modifications Log",
@ -211,10 +211,10 @@
"209": "sync_honest_manifest.js", "209": "sync_honest_manifest.js",
"210": "sync_manifest.js", "210": "sync_manifest.js",
"211": "@types/multer", "211": "@types/multer",
"212": "bcryptjs", "212": "CreateHealthLogDto",
"213": "@testing-library/jest-dom", "213": "@testing-library/jest-dom",
"214": "helmet", "214": "LoginDto",
"215": "js-yaml", "215": "Reviews.tsx",
"216": "FormField.tsx", "216": "FormField.tsx",
"217": "Input.tsx", "217": "Input.tsx",
"218": "Textarea.tsx", "218": "Textarea.tsx",
@ -236,11 +236,11 @@
"234": "@types/react", "234": "@types/react",
"235": "typescript", "235": "typescript",
"236": "vitest", "236": "vitest",
"237": "@nestjs/jwt", "237": ".addPattern",
"238": "@nestjs/swagger", "238": "@types/passport-jwt",
"239": "@nestjs/throttler", "239": "@types/supertest",
"240": "ts-loader", "240": "ts-loader",
"241": "passport-jwt", "241": "typescript",
"242": "@types/bcrypt", "242": "@types/bcrypt",
"243": "RedisService", "243": "RedisService",
"244": "blog.entity.ts", "244": "blog.entity.ts",
@ -288,29 +288,12 @@
"286": "Shabnam Font Sample", "286": "Shabnam Font Sample",
"287": "Production Docker Compose", "287": "Production Docker Compose",
"288": "Staging Docker Compose", "288": "Staging Docker Compose",
"290": "swagger-ui-express", "289": "eslint-config-next",
"291": "NetworkBanner.tsx", "291": "NetworkBanner.tsx",
"292": "eslint-config-prettier", "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": "axios", "303": "axios",
"304": "tailwindcss", "304": "tailwindcss",
"305": "RouteErrorBoundary", "305": "RouteErrorBoundary",
"306": ".findAll",
"307": "AdminLoginDto", "307": "AdminLoginDto",
"308": "VerifyOtpDto", "312": "tailwindcss"
"309": ".deleteScientificTerm",
"310": "PetsService",
"311": "AuthController",
"312": "tailwindcss",
"313": "ValidateCouponDto",
"314": "reflect-metadata"
} }

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@
"11": "useSettingsStore", "11": "useSettingsStore",
"12": "adminRoutes.tsx", "12": "adminRoutes.tsx",
"13": "PrismaService", "13": "PrismaService",
"14": ".findAll", "14": "BlogsController",
"15": "ProductsService", "15": "ProductsService",
"16": "lib/services/api.ts", "16": "lib/services/api.ts",
"17": "CreateVideoDto", "17": "CreateVideoDto",
@ -57,7 +57,7 @@
"55": "Media.tsx", "55": "Media.tsx",
"56": "compilerOptions", "56": "compilerOptions",
"57": "PetsController", "57": "PetsController",
"58": "BlogsController", "58": "PaginationDto",
"59": "dependencies", "59": "dependencies",
"60": "compilerOptions", "60": "compilerOptions",
"61": "HomeClient.tsx", "61": "HomeClient.tsx",
@ -105,7 +105,7 @@
"103": "ProductDto", "103": "ProductDto",
"104": ".adminLogin", "104": ".adminLogin",
"105": "1. Summary of Integrity Repairs Performed", "105": "1. Summary of Integrity Repairs Performed",
"106": "PaginationDto", "106": "@nestjs/core",
"107": "Operational Rules & Boundaries", "107": "Operational Rules & Boundaries",
"108": "Operational Rules & Boundaries", "108": "Operational Rules & Boundaries",
"109": "Operational Rules & Boundaries", "109": "Operational Rules & Boundaries",
@ -128,7 +128,7 @@
"126": "Role & Core Objective", "126": "Role & Core Objective",
"127": "orchestrate.py", "127": "orchestrate.py",
"128": "backend/package.json", "128": "backend/package.json",
"129": "eslint-config-next", "129": "@types/react-dom",
"130": "graphify reference: extra exports and benchmark", "130": "graphify reference: extra exports and benchmark",
"131": "Phase 2 Final Quality Gate Summary Report", "131": "Phase 2 Final Quality Gate Summary Report",
"132": "Task Modifications Log", "132": "Task Modifications Log",
@ -140,7 +140,7 @@
"138": "InitiatePaymentDto", "138": "InitiatePaymentDto",
"139": "System Discovery", "139": "System Discovery",
"140": "Product Requirement Document (PRD)", "140": "Product Requirement Document (PRD)",
"141": "pagination.dto.ts", "141": "WikiController",
"142": "globals", "142": "globals",
"143": "@nestjs/cli", "143": "@nestjs/cli",
"144": "Baseline Command Plan & Reconciled Command History", "144": "Baseline Command Plan & Reconciled Command History",
@ -288,7 +288,6 @@
"286": "Shabnam Font Sample", "286": "Shabnam Font Sample",
"287": "Production Docker Compose", "287": "Production Docker Compose",
"288": "Staging Docker Compose", "288": "Staging Docker Compose",
"289": "@prisma/client",
"290": "swagger-ui-express", "290": "swagger-ui-express",
"291": "NetworkBanner.tsx", "291": "NetworkBanner.tsx",
"292": "eslint-config-prettier", "292": "eslint-config-prettier",

View File

@ -1,16 +1,16 @@
# Graph Report - canina (2026-08-18) # Graph Report - canina (2026-08-18)
## Corpus Check ## Corpus Check
- 513 files · ~735,468 words - 513 files · ~735,558 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 3649 nodes · 6191 edges · 315 communities (197 shown, 118 thin omitted) - 3649 nodes · 6191 edges · 314 communities (196 shown, 118 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 230 edges (avg confidence: 0.79) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 230 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `f430c493` - Built from commit: `f306b95f`
- Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost). - Run `graphify update .` after code changes (no API cost).
@ -29,7 +29,7 @@
- useSettingsStore - useSettingsStore
- adminRoutes.tsx - adminRoutes.tsx
- PrismaService - PrismaService
- .findAll - BlogsController
- ProductsService - ProductsService
- lib/services/api.ts - lib/services/api.ts
- CreateVideoDto - CreateVideoDto
@ -73,7 +73,7 @@
- Media.tsx - Media.tsx
- compilerOptions - compilerOptions
- PetsController - PetsController
- BlogsController - PaginationDto
- dependencies - dependencies
- compilerOptions - compilerOptions
- HomeClient.tsx - HomeClient.tsx
@ -121,7 +121,7 @@
- ProductDto - ProductDto
- .adminLogin - .adminLogin
- 1. Summary of Integrity Repairs Performed - 1. Summary of Integrity Repairs Performed
- PaginationDto - @nestjs/core
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
@ -144,7 +144,7 @@
- Role & Core Objective - Role & Core Objective
- orchestrate.py - orchestrate.py
- backend/package.json - backend/package.json
- eslint-config-next - @types/react-dom
- graphify reference: extra exports and benchmark - graphify reference: extra exports and benchmark
- Phase 2 Final Quality Gate Summary Report - Phase 2 Final Quality Gate Summary Report
- Task Modifications Log - Task Modifications Log
@ -156,7 +156,7 @@
- InitiatePaymentDto - InitiatePaymentDto
- System Discovery - System Discovery
- Product Requirement Document (PRD) - Product Requirement Document (PRD)
- pagination.dto.ts - WikiController
- globals - globals
- @nestjs/cli - @nestjs/cli
- Baseline Command Plan & Reconciled Command History - Baseline Command Plan & Reconciled Command History
@ -291,7 +291,6 @@
- Shabnam Font Sample - Shabnam Font Sample
- Production Docker Compose - Production Docker Compose
- Staging Docker Compose - Staging Docker Compose
- @prisma/client
- swagger-ui-express - swagger-ui-express
- NetworkBanner.tsx - NetworkBanner.tsx
- eslint-config-prettier - eslint-config-prettier
@ -349,7 +348,7 @@
- **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] - **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] - **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00]
## Communities (315 total, 118 thin omitted) ## Communities (314 total, 118 thin omitted)
### Community 0 - "OrdersService" ### Community 0 - "OrdersService"
Cohesion: 0.12 Cohesion: 0.12
@ -407,9 +406,9 @@ Nodes (25): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardDa
Cohesion: 0.07 Cohesion: 0.07
Nodes (20): PetQuery, WikiQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto (+12 more) Nodes (20): PetQuery, WikiQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto (+12 more)
### Community 14 - ".findAll" ### Community 14 - "BlogsController"
Cohesion: 0.32 Cohesion: 0.21
Nodes (6): ApiNotFoundResponse, ApiOkResponse, ApiOperation, Get, Param, Query Nodes (9): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+1 more)
### Community 15 - "ProductsService" ### Community 15 - "ProductsService"
Cohesion: 0.09 Cohesion: 0.09
@ -575,13 +574,13 @@ Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx
Cohesion: 0.15 Cohesion: 0.15
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more) Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
### Community 58 - "BlogsController" ### Community 58 - "PaginationDto"
Cohesion: 0.20 Cohesion: 0.12
Nodes (7): BlogsController, ApiTags, Controller, BlogsModule, Module, BlogsService, Injectable Nodes (13): BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+5 more)
### Community 59 - "dependencies" ### Community 59 - "dependencies"
Cohesion: 0.10 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" ### Community 60 - "compilerOptions"
Cohesion: 0.10 Cohesion: 0.10
@ -669,7 +668,7 @@ Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRe
### Community 81 - "devDependencies" ### Community 81 - "devDependencies"
Cohesion: 0.13 Cohesion: 0.13
Nodes (15): devDependencies, eslint, jsdom, tailwindcss, @tailwindcss/postcss, @types/node, @types/react-dom, @vitejs/plugin-react (+7 more) Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, tailwindcss, @tailwindcss/postcss, @types/node (+7 more)
### Community 82 - "api" ### Community 82 - "api"
Cohesion: 0.12 Cohesion: 0.12
@ -763,10 +762,6 @@ Nodes (9): ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, Bo
Cohesion: 0.17 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) 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 - "PaginationDto"
Cohesion: 0.20
Nodes (8): PaginationDto, ApiPropertyOptional, IsEnum, IsInt, IsOptional, IsString, Min, Type
### Community 107 - "Operational Rules & Boundaries" ### Community 107 - "Operational Rules & Boundaries"
Cohesion: 0.18 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) 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)
@ -895,9 +890,9 @@ Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status
Cohesion: 0.29 Cohesion: 0.29
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD) Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
### Community 141 - "pagination.dto.ts" ### Community 141 - "WikiController"
Cohesion: 0.17 Cohesion: 0.20
Nodes (8): SortOrder, ApiTags, Controller, WikiController, Module, WikiModule, Injectable, WikiService Nodes (7): ApiTags, Controller, WikiController, Module, WikiModule, Injectable, WikiService
### Community 144 - "Baseline Command Plan & Reconciled Command History" ### Community 144 - "Baseline Command Plan & Reconciled Command History"
Cohesion: 0.29 Cohesion: 0.29
@ -1089,7 +1084,7 @@ _Questions this graph is uniquely positioned to answer:_
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsController`, `SmartAdvisorController`, `TestimonialsService`, `ContactService`, `PaymentController`, `.deleteScientificTerm`, `WholesaleService`, `JwtAuthGuard`?** - **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsController`, `SmartAdvisorController`, `TestimonialsService`, `ContactService`, `PaymentController`, `.deleteScientificTerm`, `WholesaleService`, `JwtAuthGuard`?**
_High betweenness centrality (0.051) - this node is a cross-community bridge._ _High betweenness centrality (0.051) - this node is a cross-community bridge._
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `pagination.dto.ts`, `OrdersController`, `HomeController`, `ProductsService`, `AuthController`, `BlogsController`?** - **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `WikiController`, `BlogsController`, `HomeController`, `OrdersController`, `ProductsService`, `AuthController`?**
_High betweenness centrality (0.039) - this node is a cross-community bridge._ _High betweenness centrality (0.039) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `OrdersService`, `CategoriesController`, `CmsController`, `app.module.ts`, `reviews.controller.ts`, `tickets.controller.ts`, `PetsController`, `admin.module.ts`, `admin.service.ts`, `UsersService`, `MediaController`, `ProductsService`, `CreateVideoDto`, `auth.service.ts`?** - **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `OrdersService`, `CategoriesController`, `CmsController`, `app.module.ts`, `reviews.controller.ts`, `tickets.controller.ts`, `PetsController`, `admin.module.ts`, `admin.service.ts`, `UsersService`, `MediaController`, `ProductsService`, `CreateVideoDto`, `auth.service.ts`?**
_High betweenness centrality (0.024) - this node is a cross-community bridge._ _High betweenness centrality (0.024) - this node is a cross-community bridge._

View File

@ -304,19 +304,6 @@
"community_name": "ProductDto", "community_name": "ProductDto",
"norm_label": "productdto" "norm_label": "productdto"
}, },
{
"label": "PaginationDto",
"file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts",
"source_location": "L10",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_paginationdto",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "paginationdto"
},
{ {
"label": "BrandLogoProps", "label": "BrandLogoProps",
"file_type": "code", "file_type": "code",
@ -877,17 +864,17 @@
"norm_label": "initiatewallettopupdto" "norm_label": "initiatewallettopupdto"
}, },
{ {
"label": "SortOrder", "label": "BlogsController",
"file_type": "code", "file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts", "source_file": "backend/src/blogs/blogs.controller.ts",
"source_location": "L5", "source_location": "L18",
"_callable": true, "_callable": true,
"_callable_class": true, "_callable_class": true,
"_origin": "ast", "_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_sortorder", "id": "backend_src_blogs_blogs_controller_blogscontroller",
"community": 141, "community": 14,
"community_name": "pagination.dto.ts", "community_name": "BlogsController",
"norm_label": "sortorder" "norm_label": "blogscontroller"
}, },
{ {
"label": "WikiController", "label": "WikiController",
@ -899,7 +886,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_controller_wikicontroller", "id": "backend_src_wiki_wiki_controller_wikicontroller",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wikicontroller" "norm_label": "wikicontroller"
}, },
{ {
@ -912,7 +899,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_module_wikimodule", "id": "backend_src_wiki_wiki_module_wikimodule",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wikimodule" "norm_label": "wikimodule"
}, },
{ {
@ -925,7 +912,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service_wikiservice", "id": "backend_src_wiki_wiki_service_wikiservice",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wikiservice" "norm_label": "wikiservice"
}, },
{ {
@ -3255,19 +3242,6 @@
"community_name": "PetsController", "community_name": "PetsController",
"norm_label": "petscontroller" "norm_label": "petscontroller"
}, },
{
"label": "BlogsController",
"file_type": "code",
"source_file": "backend/src/blogs/blogs.controller.ts",
"source_location": "L18",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_blogscontroller",
"community": 58,
"community_name": "BlogsController",
"norm_label": "blogscontroller"
},
{ {
"label": "BlogsModule", "label": "BlogsModule",
"file_type": "code", "file_type": "code",
@ -3278,7 +3252,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_module_blogsmodule", "id": "backend_src_blogs_blogs_module_blogsmodule",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "blogsmodule" "norm_label": "blogsmodule"
}, },
{ {
@ -3291,9 +3265,35 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service_blogsservice", "id": "backend_src_blogs_blogs_service_blogsservice",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "blogsservice" "norm_label": "blogsservice"
}, },
{
"label": "PaginationDto",
"file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts",
"source_location": "L10",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_paginationdto",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "paginationdto"
},
{
"label": "SortOrder",
"file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts",
"source_location": "L5",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_sortorder",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "sortorder"
},
{ {
"label": "AddressModalProps", "label": "AddressModalProps",
"file_type": "code", "file_type": "code",
@ -5559,30 +5559,6 @@
"community_name": ".adminLogin", "community_name": ".adminLogin",
"norm_label": ".verifyotp()" "norm_label": ".verifyotp()"
}, },
{
"label": ".findAllAdmin()",
"file_type": "code",
"source_file": "backend/src/pets/pets.service.ts",
"source_location": "L49",
"_callable": true,
"_origin": "ast",
"id": "backend_src_pets_pets_service_petsservice_findalladmin",
"community": 106,
"community_name": "PaginationDto",
"norm_label": ".findalladmin()"
},
{
"label": ".findAllByUser()",
"file_type": "code",
"source_file": "backend/src/pets/pets.service.ts",
"source_location": "L109",
"_callable": true,
"_origin": "ast",
"id": "backend_src_pets_pets_service_petsservice_findallbyuser",
"community": 106,
"community_name": "PaginationDto",
"norm_label": ".findallbyuser()"
},
{ {
"label": "TrustSealsPage()", "label": "TrustSealsPage()",
"file_type": "code", "file_type": "code",
@ -6099,6 +6075,18 @@
"community_name": "AdminTransactionFilterDto", "community_name": "AdminTransactionFilterDto",
"norm_label": ".getadmintransactions()" "norm_label": ".getadmintransactions()"
}, },
{
"label": ".constructor()",
"file_type": "code",
"source_file": "backend/src/blogs/blogs.controller.ts",
"source_location": "L19",
"_callable": true,
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_blogscontroller_constructor",
"community": 14,
"community_name": "BlogsController",
"norm_label": ".constructor()"
},
{ {
"label": ".findAll()", "label": ".findAll()",
"file_type": "code", "file_type": "code",
@ -6108,7 +6096,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_blogscontroller_findall", "id": "backend_src_blogs_blogs_controller_blogscontroller_findall",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": ".findall()" "norm_label": ".findall()"
}, },
{ {
@ -6120,7 +6108,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_blogscontroller_findone", "id": "backend_src_blogs_blogs_controller_blogscontroller_findone",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": ".findone()" "norm_label": ".findone()"
}, },
{ {
@ -6132,7 +6120,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_controller_wikicontroller_constructor", "id": "backend_src_wiki_wiki_controller_wikicontroller_constructor",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": ".constructor()" "norm_label": ".constructor()"
}, },
{ {
@ -6144,7 +6132,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service_wikiservice_constructor", "id": "backend_src_wiki_wiki_service_wikiservice_constructor",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": ".constructor()" "norm_label": ".constructor()"
}, },
{ {
@ -6156,7 +6144,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service_wikiservice_findall", "id": "backend_src_wiki_wiki_service_wikiservice_findall",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": ".findall()" "norm_label": ".findall()"
}, },
{ {
@ -6168,7 +6156,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service_wikiservice_findonebykey", "id": "backend_src_wiki_wiki_service_wikiservice_findonebykey",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": ".findonebykey()" "norm_label": ".findonebykey()"
}, },
{ {
@ -11463,18 +11451,6 @@
"community_name": "PetsController", "community_name": "PetsController",
"norm_label": ".getpets()" "norm_label": ".getpets()"
}, },
{
"label": ".constructor()",
"file_type": "code",
"source_file": "backend/src/blogs/blogs.controller.ts",
"source_location": "L19",
"_callable": true,
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_blogscontroller_constructor",
"community": 58,
"community_name": "BlogsController",
"norm_label": ".constructor()"
},
{ {
"label": ".constructor()", "label": ".constructor()",
"file_type": "code", "file_type": "code",
@ -11484,7 +11460,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service_blogsservice_constructor", "id": "backend_src_blogs_blogs_service_blogsservice_constructor",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": ".constructor()" "norm_label": ".constructor()"
}, },
{ {
@ -11496,7 +11472,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service_blogsservice_findall", "id": "backend_src_blogs_blogs_service_blogsservice_findall",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": ".findall()" "norm_label": ".findall()"
}, },
{ {
@ -11508,9 +11484,33 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service_blogsservice_findonebyslug", "id": "backend_src_blogs_blogs_service_blogsservice_findonebyslug",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": ".findonebyslug()" "norm_label": ".findonebyslug()"
}, },
{
"label": ".findAllAdmin()",
"file_type": "code",
"source_file": "backend/src/pets/pets.service.ts",
"source_location": "L49",
"_callable": true,
"_origin": "ast",
"id": "backend_src_pets_pets_service_petsservice_findalladmin",
"community": 58,
"community_name": "PaginationDto",
"norm_label": ".findalladmin()"
},
{
"label": ".findAllByUser()",
"file_type": "code",
"source_file": "backend/src/pets/pets.service.ts",
"source_location": "L109",
"_callable": true,
"_origin": "ast",
"id": "backend_src_pets_pets_service_petsservice_findallbyuser",
"community": 58,
"community_name": "PaginationDto",
"norm_label": ".findallbyuser()"
},
{ {
"label": "Checkout()", "label": "Checkout()",
"file_type": "code", "file_type": "code",
@ -15237,81 +15237,26 @@
"norm_label": "phase 2.6 integrity repair & audit quality gate report" "norm_label": "phase 2.6 integrity repair & audit quality gate report"
}, },
{ {
"label": "ApiPropertyOptional", "label": "@nestjs/core",
"file_type": "code", "file_type": "code",
"source_file": "", "source_file": "backend/package.json",
"source_location": "", "source_location": "L25",
"_origin": "ast", "_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_apipropertyoptional", "id": "backend_package_dependencies_nestjs_core",
"community": 106, "community": 106,
"community_name": "PaginationDto", "community_name": "@nestjs/core",
"norm_label": "apipropertyoptional" "norm_label": "@nestjs/core"
}, },
{ {
"label": "IsEnum", "label": "@nestjs/core",
"file_type": "code", "file_type": "concept",
"source_file": "", "source_file": "backend/package.json",
"source_location": "", "source_location": "L25",
"_origin": "ast", "_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isenum", "id": "nestjs_core",
"community": 106, "community": 106,
"community_name": "PaginationDto", "community_name": "@nestjs/core",
"norm_label": "isenum" "norm_label": "@nestjs/core"
},
{
"label": "IsInt",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isint",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "isint"
},
{
"label": "IsOptional",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isoptional",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "isoptional"
},
{
"label": "IsString",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isstring",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "isstring"
},
{
"label": "Min",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_min",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "min"
},
{
"label": "Type",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_type",
"community": 106,
"community_name": "PaginationDto",
"norm_label": "type"
}, },
{ {
"label": "01_auditor.md", "label": "01_auditor.md",
@ -17800,26 +17745,26 @@
"norm_label": "version" "norm_label": "version"
}, },
{ {
"label": "eslint-config-next", "label": "@types/react-dom",
"file_type": "code", "file_type": "code",
"source_file": "frontend/application/package.json", "source_file": "frontend/application/package.json",
"source_location": "L30", "source_location": "L27",
"_origin": "ast", "_origin": "ast",
"id": "frontend_application_package_devdependencies_eslint_config_next", "id": "frontend_application_package_devdependencies_types_react_dom",
"community": 129, "community": 129,
"community_name": "eslint-config-next", "community_name": "@types/react-dom",
"norm_label": "eslint-config-next" "norm_label": "@types/react-dom"
}, },
{ {
"label": "eslint-config-next", "label": "@types/react-dom",
"file_type": "concept", "file_type": "concept",
"source_file": "frontend/application/package.json", "source_file": "frontend/application/package.json",
"source_location": "L30", "source_location": "L27",
"_origin": "ast", "_origin": "ast",
"id": "eslint_config_next", "id": "frontend_application_package_json_types_react_dom",
"community": 129, "community": 129,
"community_name": "eslint-config-next", "community_name": "@types/react-dom",
"norm_label": "eslint-config-next" "norm_label": "@types/react-dom"
}, },
{ {
"label": "admin/pets.service.ts", "label": "admin/pets.service.ts",
@ -18907,7 +18852,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_apinotfoundresponse", "id": "backend_src_blogs_blogs_controller_ts_apinotfoundresponse",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "apinotfoundresponse" "norm_label": "apinotfoundresponse"
}, },
{ {
@ -18918,7 +18863,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_apiokresponse", "id": "backend_src_blogs_blogs_controller_ts_apiokresponse",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "apiokresponse" "norm_label": "apiokresponse"
}, },
{ {
@ -18929,9 +18874,31 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_apioperation", "id": "backend_src_blogs_blogs_controller_ts_apioperation",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "apioperation" "norm_label": "apioperation"
}, },
{
"label": "ApiTags",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_apitags",
"community": 14,
"community_name": "BlogsController",
"norm_label": "apitags"
},
{
"label": "Controller",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_controller",
"community": 14,
"community_name": "BlogsController",
"norm_label": "controller"
},
{ {
"label": "Get", "label": "Get",
"file_type": "code", "file_type": "code",
@ -18940,7 +18907,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_get", "id": "backend_src_blogs_blogs_controller_ts_get",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "get" "norm_label": "get"
}, },
{ {
@ -18951,7 +18918,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_param", "id": "backend_src_blogs_blogs_controller_ts_param",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "param" "norm_label": "param"
}, },
{ {
@ -18962,7 +18929,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_query", "id": "backend_src_blogs_blogs_controller_ts_query",
"community": 14, "community": 14,
"community_name": ".findAll", "community_name": "BlogsController",
"norm_label": "query" "norm_label": "query"
}, },
{ {
@ -19042,17 +19009,6 @@
"community_name": "Product Requirement Document (PRD)", "community_name": "Product Requirement Document (PRD)",
"norm_label": "product requirement document (prd)" "norm_label": "product requirement document (prd)"
}, },
{
"label": "pagination.dto.ts",
"file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts",
"source_location": "L1",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto",
"community": 141,
"community_name": "pagination.dto.ts",
"norm_label": "pagination.dto.ts"
},
{ {
"label": "wiki/wiki.controller.ts", "label": "wiki/wiki.controller.ts",
"file_type": "code", "file_type": "code",
@ -19061,7 +19017,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_controller", "id": "backend_src_wiki_wiki_controller",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wiki/wiki.controller.ts" "norm_label": "wiki/wiki.controller.ts"
}, },
{ {
@ -19072,7 +19028,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_controller_ts_apitags", "id": "backend_src_wiki_wiki_controller_ts_apitags",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "apitags" "norm_label": "apitags"
}, },
{ {
@ -19083,7 +19039,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_controller_ts_controller", "id": "backend_src_wiki_wiki_controller_ts_controller",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "controller" "norm_label": "controller"
}, },
{ {
@ -19094,7 +19050,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_module", "id": "backend_src_wiki_wiki_module",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wiki.module.ts" "norm_label": "wiki.module.ts"
}, },
{ {
@ -19105,7 +19061,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_module_ts_module", "id": "backend_src_wiki_wiki_module_ts_module",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "module" "norm_label": "module"
}, },
{ {
@ -19116,7 +19072,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service", "id": "backend_src_wiki_wiki_service",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "wiki/wiki.service.ts" "norm_label": "wiki/wiki.service.ts"
}, },
{ {
@ -19127,7 +19083,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_wiki_wiki_service_ts_injectable", "id": "backend_src_wiki_wiki_service_ts_injectable",
"community": 141, "community": 141,
"community_name": "pagination.dto.ts", "community_name": "WikiController",
"norm_label": "injectable" "norm_label": "injectable"
}, },
{ {
@ -27253,28 +27209,6 @@
"community_name": "vitest.config.ts", "community_name": "vitest.config.ts",
"norm_label": "vitest.config.ts" "norm_label": "vitest.config.ts"
}, },
{
"label": "@prisma/client",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "backend_package_dependencies_prisma_client",
"community": 289,
"community_name": "@prisma/client",
"norm_label": "@prisma/client"
},
{
"label": "@prisma/client",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "prisma_client",
"community": 289,
"community_name": "@prisma/client",
"norm_label": "@prisma/client"
},
{ {
"label": "ApiBearerAuth", "label": "ApiBearerAuth",
"file_type": "code", "file_type": "code",
@ -33828,31 +33762,9 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_controller", "id": "backend_src_blogs_blogs_controller",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "blogs/blogs.controller.ts" "norm_label": "blogs/blogs.controller.ts"
}, },
{
"label": "ApiTags",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_apitags",
"community": 58,
"community_name": "BlogsController",
"norm_label": "apitags"
},
{
"label": "Controller",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_blogs_blogs_controller_ts_controller",
"community": 58,
"community_name": "BlogsController",
"norm_label": "controller"
},
{ {
"label": "blogs.module.ts", "label": "blogs.module.ts",
"file_type": "code", "file_type": "code",
@ -33861,7 +33773,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_module", "id": "backend_src_blogs_blogs_module",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "blogs.module.ts" "norm_label": "blogs.module.ts"
}, },
{ {
@ -33872,7 +33784,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_module_ts_module", "id": "backend_src_blogs_blogs_module_ts_module",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "module" "norm_label": "module"
}, },
{ {
@ -33883,7 +33795,7 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service", "id": "backend_src_blogs_blogs_service",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "blogs/blogs.service.ts" "norm_label": "blogs/blogs.service.ts"
}, },
{ {
@ -33894,9 +33806,97 @@
"_origin": "ast", "_origin": "ast",
"id": "backend_src_blogs_blogs_service_ts_injectable", "id": "backend_src_blogs_blogs_service_ts_injectable",
"community": 58, "community": 58,
"community_name": "BlogsController", "community_name": "PaginationDto",
"norm_label": "injectable" "norm_label": "injectable"
}, },
{
"label": "pagination.dto.ts",
"file_type": "code",
"source_file": "backend/src/common/dto/pagination.dto.ts",
"source_location": "L1",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "pagination.dto.ts"
},
{
"label": "ApiPropertyOptional",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_apipropertyoptional",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "apipropertyoptional"
},
{
"label": "IsEnum",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isenum",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "isenum"
},
{
"label": "IsInt",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isint",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "isint"
},
{
"label": "IsOptional",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isoptional",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "isoptional"
},
{
"label": "IsString",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_isstring",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "isstring"
},
{
"label": "Min",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_min",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "min"
},
{
"label": "Type",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_common_dto_pagination_dto_ts_type",
"community": 58,
"community_name": "PaginationDto",
"norm_label": "type"
},
{ {
"label": "dependencies", "label": "dependencies",
"file_type": "code", "file_type": "code",
@ -33963,17 +33963,6 @@
"community_name": "dependencies", "community_name": "dependencies",
"norm_label": "@nestjs/common" "norm_label": "@nestjs/common"
}, },
{
"label": "@nestjs/core",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L25",
"_origin": "ast",
"id": "backend_package_dependencies_nestjs_core",
"community": 59,
"community_name": "dependencies",
"norm_label": "@nestjs/core"
},
{ {
"label": "@nestjs/passport", "label": "@nestjs/passport",
"file_type": "code", "file_type": "code",
@ -34007,6 +33996,17 @@
"community_name": "dependencies", "community_name": "dependencies",
"norm_label": "passport" "norm_label": "passport"
}, },
{
"label": "@prisma/client",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "backend_package_dependencies_prisma_client",
"community": 59,
"community_name": "dependencies",
"norm_label": "@prisma/client"
},
{ {
"label": "rxjs", "label": "rxjs",
"file_type": "code", "file_type": "code",
@ -34073,17 +34073,6 @@
"community_name": "dependencies", "community_name": "dependencies",
"norm_label": "@nestjs/common" "norm_label": "@nestjs/common"
}, },
{
"label": "@nestjs/core",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L25",
"_origin": "ast",
"id": "nestjs_core",
"community": 59,
"community_name": "dependencies",
"norm_label": "@nestjs/core"
},
{ {
"label": "@nestjs/passport", "label": "@nestjs/passport",
"file_type": "concept", "file_type": "concept",
@ -34117,6 +34106,17 @@
"community_name": "dependencies", "community_name": "dependencies",
"norm_label": "passport" "norm_label": "passport"
}, },
{
"label": "@prisma/client",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "prisma_client",
"community": 59,
"community_name": "dependencies",
"norm_label": "@prisma/client"
},
{ {
"label": "rxjs", "label": "rxjs",
"file_type": "concept", "file_type": "concept",
@ -38231,6 +38231,17 @@
"community_name": "devDependencies", "community_name": "devDependencies",
"norm_label": "eslint" "norm_label": "eslint"
}, },
{
"label": "eslint-config-next",
"file_type": "code",
"source_file": "frontend/application/package.json",
"source_location": "L30",
"_origin": "ast",
"id": "frontend_application_package_devdependencies_eslint_config_next",
"community": 81,
"community_name": "devDependencies",
"norm_label": "eslint-config-next"
},
{ {
"label": "jsdom", "label": "jsdom",
"file_type": "code", "file_type": "code",
@ -38275,17 +38286,6 @@
"community_name": "devDependencies", "community_name": "devDependencies",
"norm_label": "@types/node" "norm_label": "@types/node"
}, },
{
"label": "@types/react-dom",
"file_type": "code",
"source_file": "frontend/application/package.json",
"source_location": "L27",
"_origin": "ast",
"id": "frontend_application_package_devdependencies_types_react_dom",
"community": 81,
"community_name": "devDependencies",
"norm_label": "@types/react-dom"
},
{ {
"label": "@vitejs/plugin-react", "label": "@vitejs/plugin-react",
"file_type": "code", "file_type": "code",
@ -38297,6 +38297,17 @@
"community_name": "devDependencies", "community_name": "devDependencies",
"norm_label": "@vitejs/plugin-react" "norm_label": "@vitejs/plugin-react"
}, },
{
"label": "eslint-config-next",
"file_type": "concept",
"source_file": "frontend/application/package.json",
"source_location": "L30",
"_origin": "ast",
"id": "eslint_config_next",
"community": 81,
"community_name": "devDependencies",
"norm_label": "eslint-config-next"
},
{ {
"label": "eslint", "label": "eslint",
"file_type": "concept", "file_type": "concept",
@ -38341,17 +38352,6 @@
"community_name": "devDependencies", "community_name": "devDependencies",
"norm_label": "@types/node" "norm_label": "@types/node"
}, },
{
"label": "@types/react-dom",
"file_type": "concept",
"source_file": "frontend/application/package.json",
"source_location": "L27",
"_origin": "ast",
"id": "frontend_application_package_json_types_react_dom",
"community": 81,
"community_name": "devDependencies",
"norm_label": "@types/react-dom"
},
{ {
"label": "@vitejs/plugin-react", "label": "@vitejs/plugin-react",
"file_type": "concept", "file_type": "concept",
@ -67045,7 +67045,7 @@
"context": "import", "context": "import",
"confidence": "EXTRACTED", "confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/main.tsx", "source_file": "frontend/admin-panel/src/main.tsx",
"source_location": "L3", "source_location": "L4",
"weight": 1.0, "weight": 1.0,
"_origin": "ast", "_origin": "ast",
"source": "frontend_admin_panel_src_main", "source": "frontend_admin_panel_src_main",
@ -77317,7 +77317,7 @@
"context": "import", "context": "import",
"confidence": "EXTRACTED", "confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/main.tsx", "source_file": "frontend/admin-panel/src/main.tsx",
"source_location": "L3", "source_location": "L4",
"weight": 1.0, "weight": 1.0,
"_origin": "ast", "_origin": "ast",
"source": "frontend_admin_panel_src_main", "source": "frontend_admin_panel_src_main",
@ -113544,5 +113544,5 @@
"source_file": "scripts/compose.prod.yml" "source_file": "scripts/compose.prod.yml"
} }
], ],
"built_at_commit": "f430c4931ff8cd6939c29c71204c49b30b615beb" "built_at_commit": "f306b95f622ec2f572cd8192536101a536dbe4d2"
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,16 @@
# Graph Report - canina (2026-08-18) # Graph Report - canina (2026-08-18)
## Corpus Check ## Corpus Check
- 513 files · ~735,558 words - 513 files · ~735,602 words
- Verdict: corpus is large enough that graph structure adds value. - Verdict: corpus is large enough that graph structure adds value.
## Summary ## Summary
- 3649 nodes · 6191 edges · 314 communities (196 shown, 118 thin omitted) - 3650 nodes · 6193 edges · 297 communities (194 shown, 103 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 230 edges (avg confidence: 0.79) - Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 230 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output - Token cost: 0 input · 0 output
## Graph Freshness ## Graph Freshness
- Built from commit: `f306b95f` - Built from commit: `c1d380c7`
- Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost). - Run `graphify update .` after code changes (no API cost).
@ -29,7 +29,7 @@
- useSettingsStore - useSettingsStore
- adminRoutes.tsx - adminRoutes.tsx
- PrismaService - PrismaService
- BlogsController - pets/pets.controller.ts
- ProductsService - ProductsService
- lib/services/api.ts - lib/services/api.ts
- CreateVideoDto - CreateVideoDto
@ -62,9 +62,9 @@
- MediaController - MediaController
- Transactions.tsx - Transactions.tsx
- SmsService - SmsService
- OrdersController - PetsService
- PrescriptionsController - PrescriptionsService
- SmartAdvisorController - SmartAdvisorService
- TestimonialsService - TestimonialsService
- Role & Core Objective - Role & Core Objective
- ContactService - ContactService
@ -113,28 +113,28 @@
- Operational Rules & Boundaries - Operational Rules & Boundaries
- exclude - exclude
- jest - jest
- AdminService - AdminController
- Comprehensive Change Log - Comprehensive Change Log
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Body - Body
- devDependencies - eslint-plugin-prettier
- ProductDto - ProductDto
- .adminLogin - AuthController
- 1. Summary of Integrity Repairs Performed - 1. Summary of Integrity Repairs Performed
- @nestjs/core - AdminService
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- Operational Rules & Boundaries - Operational Rules & Boundaries
- AppService - AppService
- SmsLogQueryDto - SmsLogQueryDto
- WholesaleApplyDto - wholesale.controller.ts
- Vazirmatn Changelog - Vazirmatn Changelog
- Vazirmatn Font فونت وزیرمتن - Vazirmatn Font فونت وزیرمتن
- Operational Rules & Boundaries - Operational Rules & Boundaries
- compilerOptions - compilerOptions
- compilerOptions - compilerOptions
- backend/README.md - backend/README.md
- eslint - devDependencies
- Repository Map - Repository Map
- validate_integrity.js - validate_integrity.js
- admin-panel/package.json - admin-panel/package.json
@ -144,7 +144,7 @@
- Role & Core Objective - Role & Core Objective
- orchestrate.py - orchestrate.py
- backend/package.json - backend/package.json
- @types/react-dom - BlogsService
- graphify reference: extra exports and benchmark - graphify reference: extra exports and benchmark
- Phase 2 Final Quality Gate Summary Report - Phase 2 Final Quality Gate Summary Report
- Task Modifications Log - Task Modifications Log
@ -227,10 +227,10 @@
- sync_honest_manifest.js - sync_honest_manifest.js
- sync_manifest.js - sync_manifest.js
- @types/multer - @types/multer
- bcryptjs - CreateHealthLogDto
- @testing-library/jest-dom - @testing-library/jest-dom
- helmet - LoginDto
- js-yaml - Reviews.tsx
- FormField.tsx - FormField.tsx
- Input.tsx - Input.tsx
- Textarea.tsx - Textarea.tsx
@ -252,11 +252,11 @@
- @types/react - @types/react
- typescript - typescript
- vitest - vitest
- @nestjs/jwt - .addPattern
- @nestjs/swagger - @types/passport-jwt
- @nestjs/throttler - @types/supertest
- ts-loader - ts-loader
- passport-jwt - typescript
- @types/bcrypt - @types/bcrypt
- RedisService - RedisService
- blog.entity.ts - blog.entity.ts
@ -291,29 +291,12 @@
- Shabnam Font Sample - Shabnam Font Sample
- Production Docker Compose - Production Docker Compose
- Staging Docker Compose - Staging Docker Compose
- swagger-ui-express - eslint-config-next
- NetworkBanner.tsx - NetworkBanner.tsx
- eslint-config-prettier - eslint-config-prettier
- @eslint/js
- jest
- @nestjs/schematics
- @nestjs/testing
- source-map-support
- ts-jest
- tsconfig-paths
- @types/bcryptjs
- typescript-eslint
- @eslint/eslintrc
- RouteErrorBoundary - RouteErrorBoundary
- .findAll
- AdminLoginDto - AdminLoginDto
- VerifyOtpDto
- .deleteScientificTerm
- PetsService
- AuthController
- tailwindcss - tailwindcss
- ValidateCouponDto
- reflect-metadata
## God Nodes (most connected - your core abstractions) ## God Nodes (most connected - your core abstractions)
1. `PrismaService` - 81 edges 1. `PrismaService` - 81 edges
@ -348,11 +331,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] - **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] - **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00]
## Communities (314 total, 118 thin omitted) ## Communities (297 total, 103 thin omitted)
### Community 0 - "OrdersService" ### Community 0 - "OrdersService"
Cohesion: 0.12 Cohesion: 0.06
Nodes (15): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+7 more) Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
### Community 1 - "productService.ts" ### Community 1 - "productService.ts"
Cohesion: 0.06 Cohesion: 0.06
@ -364,7 +347,7 @@ Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle
### Community 3 - "app.module.ts" ### Community 3 - "app.module.ts"
Cohesion: 0.08 Cohesion: 0.08
Nodes (31): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+23 more) Nodes (30): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+22 more)
### Community 4 - "reviews.controller.ts" ### Community 4 - "reviews.controller.ts"
Cohesion: 0.07 Cohesion: 0.07
@ -380,11 +363,11 @@ Nodes (28): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), Ba
### Community 7 - "Spinner.tsx" ### Community 7 - "Spinner.tsx"
Cohesion: 0.11 Cohesion: 0.11
Nodes (22): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, Pagination(), PaginationProps (+14 more) Nodes (21): ConfirmModal(), ConfirmModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, Pagination(), PaginationProps (+13 more)
### Community 8 - "admin.module.ts" ### Community 8 - "admin.module.ts"
Cohesion: 0.07 Cohesion: 0.06
Nodes (17): AdminModule, Module, BlogQuery, BlogsService, Injectable, ReportsController, ApiBearerAuth, ApiOperation (+9 more) Nodes (21): AdminModule, Module, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth, ApiOperation (+13 more)
### Community 9 - "PetProfile.tsx" ### Community 9 - "PetProfile.tsx"
Cohesion: 0.14 Cohesion: 0.14
@ -400,15 +383,15 @@ Nodes (14): metadata, BrandLogo(), BrandLogoProps, EnamadBadge(), Footer(), Hero
### Community 12 - "adminRoutes.tsx" ### Community 12 - "adminRoutes.tsx"
Cohesion: 0.06 Cohesion: 0.06
Nodes (25): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, SslStatus, Ticket, TicketMessage (+17 more) Nodes (26): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, SslStatus, Ticket, TicketMessage (+18 more)
### Community 13 - "PrismaService" ### Community 13 - "PrismaService"
Cohesion: 0.07 Cohesion: 0.07
Nodes (20): PetQuery, WikiQuery, B2BWholesaleOrderItem, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto (+12 more) Nodes (20): ApiExcludeController, BlogQuery, CategoryQuery, MetricsController, Controller, Get, Res, MeliPayamakPattern (+12 more)
### Community 14 - "BlogsController" ### Community 14 - "pets/pets.controller.ts"
Cohesion: 0.21 Cohesion: 0.11
Nodes (9): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+1 more) Nodes (19): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+11 more)
### Community 15 - "ProductsService" ### Community 15 - "ProductsService"
Cohesion: 0.09 Cohesion: 0.09
@ -423,12 +406,12 @@ Cohesion: 0.07
Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more) Nodes (32): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+24 more)
### Community 18 - "src/services/api.ts" ### Community 18 - "src/services/api.ts"
Cohesion: 0.08 Cohesion: 0.09
Nodes (28): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SeoSettingsPage, SmartAdvisorManager (+20 more) Nodes (25): ProtectedRoute(), Login(), B2BManager, SeoSettingsPage, SmartAdvisorManager, SystemSettingsPage, ApiErrorPayload, failedQueue (+17 more)
### Community 19 - "auth.service.ts" ### Community 19 - "auth.service.ts"
Cohesion: 0.14 Cohesion: 0.15
Nodes (13): AdminLoginInput, LoginInput, RegisterInput, LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength (+5 more) Nodes (14): AdminLoginInput, LoginInput, RegisterInput, SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches (+6 more)
### Community 20 - "BE-001" ### Community 20 - "BE-001"
Cohesion: 0.06 Cohesion: 0.06
@ -475,11 +458,11 @@ Cohesion: 0.11
Nodes (11): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable (+3 more) Nodes (11): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable (+3 more)
### Community 31 - "JwtAuthGuard" ### Community 31 - "JwtAuthGuard"
Cohesion: 0.19 Cohesion: 0.15
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload Nodes (9): JwtAuthGuard, Injectable, B2BWholesaleOrderItem, ROLES_KEY, SortOrder, RequestWithUser, RolesGuard, Injectable (+1 more)
### Community 32 - "ZibalService" ### Community 32 - "ZibalService"
Cohesion: 0.14 Cohesion: 0.15
Nodes (4): PaymentService, Injectable, Injectable, ZibalService Nodes (4): PaymentService, Injectable, Injectable, ZibalService
### Community 33 - "راهنمای تست سیستم (Software Testing)" ### Community 33 - "راهنمای تست سیستم (Software Testing)"
@ -487,8 +470,8 @@ Cohesion: 0.07
Nodes (25): اجرای بک‌اند, اجرای فرانت‌اند, اجرای پروژه در سرور با PM2, برای راه‌اندازی بک‌اند:, برای راه‌اندازی فرانت‌اند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسه‌ها تا پس از ری‌استارت سرور قطع نشوند:, راه‌اندازی و انتشار سیستم (Setup & Deployment) (+17 more) Nodes (25): اجرای بک‌اند, اجرای فرانت‌اند, اجرای پروژه در سرور با PM2, برای راه‌اندازی بک‌اند:, برای راه‌اندازی فرانت‌اند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسه‌ها تا پس از ری‌استارت سرور قطع نشوند:, راه‌اندازی و انتشار سیستم (Setup & Deployment) (+17 more)
### Community 34 - "CategoriesController" ### Community 34 - "CategoriesController"
Cohesion: 0.09 Cohesion: 0.10
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more) Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
### Community 35 - "B2BService" ### Community 35 - "B2BService"
Cohesion: 0.14 Cohesion: 0.14
@ -503,8 +486,8 @@ Cohesion: 0.09
Nodes (32): ClientLayout(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), CartDrawer(), CheckoutPage() (+24 more) Nodes (32): ClientLayout(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), CartDrawer(), CheckoutPage() (+24 more)
### Community 38 - "UsersService" ### Community 38 - "UsersService"
Cohesion: 0.06 Cohesion: 0.05
Nodes (41): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+33 more) Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
### Community 39 - "What You Must Do When Invoked" ### Community 39 - "What You Must Do When Invoked"
Cohesion: 0.07 Cohesion: 0.07
@ -519,9 +502,13 @@ Cohesion: 0.40
Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps
### Community 42 - "IngredientsService" ### Community 42 - "IngredientsService"
Cohesion: 0.12 Cohesion: 0.13
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 43 - "AuthService"
Cohesion: 0.22
Nodes (3): AuthService, Injectable, normalizeMobile()
### Community 44 - "MediaController" ### Community 44 - "MediaController"
Cohesion: 0.11 Cohesion: 0.11
Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more) Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
@ -530,17 +517,13 @@ Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Control
Cohesion: 0.33 Cohesion: 0.33
Nodes (4): GatewayHealth, Stats, Transaction, Transactions Nodes (4): GatewayHealth, Stats, Transaction, Transactions
### Community 47 - "OrdersController" ### Community 48 - "PrescriptionsService"
Cohesion: 0.13
Nodes (16): OrdersController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+8 more)
### Community 48 - "PrescriptionsController"
Cohesion: 0.16
Nodes (12): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+4 more)
### Community 49 - "SmartAdvisorController"
Cohesion: 0.14 Cohesion: 0.14
Nodes (12): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+4 more) Nodes (14): PrescriptionsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
### Community 49 - "SmartAdvisorService"
Cohesion: 0.13
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 50 - "TestimonialsService" ### Community 50 - "TestimonialsService"
Cohesion: 0.13 Cohesion: 0.13
@ -575,12 +558,12 @@ Cohesion: 0.15
Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more) Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more)
### Community 58 - "PaginationDto" ### Community 58 - "PaginationDto"
Cohesion: 0.12 Cohesion: 0.09
Nodes (13): BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+5 more) Nodes (21): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+13 more)
### Community 59 - "dependencies" ### Community 59 - "dependencies"
Cohesion: 0.10 Cohesion: 0.05
Nodes (21): dependencies, bcrypt, class-transformer, class-validator, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+13 more) Nodes (41): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, helmet, ioredis, js-yaml (+33 more)
### Community 60 - "compilerOptions" ### Community 60 - "compilerOptions"
Cohesion: 0.10 Cohesion: 0.10
@ -595,11 +578,11 @@ Cohesion: 0.13
Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+7 more) Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+7 more)
### Community 63 - "SettingsService" ### Community 63 - "SettingsService"
Cohesion: 0.11 Cohesion: 0.12
Nodes (3): SmsLogQuery, SettingsService, Injectable Nodes (3): SmsLogQuery, SettingsService, Injectable
### Community 64 - "BannersService" ### Community 64 - "BannersService"
Cohesion: 0.12 Cohesion: 0.13
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more) Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 65 - "Required Review Group Closures" ### Community 65 - "Required Review Group Closures"
@ -623,20 +606,20 @@ Cohesion: 0.13
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more) Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 70 - "ApiOperation" ### Community 70 - "ApiOperation"
Cohesion: 0.13 Cohesion: 0.14
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 71 - "PetsController" ### Community 71 - "PetsController"
Cohesion: 0.05 Cohesion: 0.14
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more) Nodes (20): PetsController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+12 more)
### Community 72 - "seo.module.ts" ### Community 72 - "seo.module.ts"
Cohesion: 0.16 Cohesion: 0.16
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more) Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
### Community 73 - "admin.service.ts" ### Community 73 - "admin.service.ts"
Cohesion: 0.17 Cohesion: 0.18
Nodes (14): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+6 more) Nodes (13): CouponInput, CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty (+5 more)
### Community 74 - "🏢 AI Software Agency — Master Orchestration Protocol v3" ### Community 74 - "🏢 AI Software Agency — Master Orchestration Protocol v3"
Cohesion: 0.11 Cohesion: 0.11
@ -668,11 +651,11 @@ Nodes (9): GatewayHealthResult, IPaymentGateway, PaymentInquiryResult, PaymentRe
### Community 81 - "devDependencies" ### Community 81 - "devDependencies"
Cohesion: 0.13 Cohesion: 0.13
Nodes (15): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, tailwindcss, @tailwindcss/postcss, @types/node (+7 more) Nodes (15): devDependencies, eslint, jsdom, tailwindcss, @tailwindcss/postcss, @types/node, @types/react-dom, @vitejs/plugin-react (+7 more)
### Community 82 - "api" ### Community 82 - "api"
Cohesion: 0.12 Cohesion: 0.14
Nodes (13): Layout(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, HeroBanner, VetTestimonial, ProductReview (+5 more) Nodes (12): Layout(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, SEARCHABLE_PAGES, Topbar(), TopbarProps (+4 more)
### Community 83 - "Orders.tsx" ### Community 83 - "Orders.tsx"
Cohesion: 0.14 Cohesion: 0.14
@ -734,9 +717,9 @@ Nodes (8): exclude, extends, dist, node_modules, prisma, **/*spec.ts, test, ./ts
Cohesion: 0.15 Cohesion: 0.15
Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more) Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more)
### Community 98 - "AdminService" ### Community 98 - "AdminController"
Cohesion: 0.12 Cohesion: 0.12
Nodes (10): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, Put, UseGuards (+2 more) Nodes (8): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, Put, UseGuards
### Community 99 - "Comprehensive Change Log" ### Community 99 - "Comprehensive Change Log"
Cohesion: 0.15 Cohesion: 0.15
@ -746,17 +729,13 @@ Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TAS
Cohesion: 0.17 Cohesion: 0.17
Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (Mandatory), 3. Acceptance Criteria Verification, 4. Failure Routing Protocol, 5. Success Routing Protocol, 6. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries (+3 more) Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (Mandatory), 3. Acceptance Criteria Verification, 4. Failure Routing Protocol, 5. Success Routing Protocol, 6. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries (+3 more)
### Community 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 103 - "ProductDto" ### Community 103 - "ProductDto"
Cohesion: 0.22 Cohesion: 0.22
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
### Community 104 - ".adminLogin" ### Community 104 - "AuthController"
Cohesion: 0.34 Cohesion: 0.27
Nodes (9): ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, Body, Post, Req, UseGuards (+1 more) Nodes (12): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+4 more)
### Community 105 - "1. Summary of Integrity Repairs Performed" ### Community 105 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17 Cohesion: 0.17
@ -782,8 +761,8 @@ Nodes (5): AppController, Controller, Get, AppService, Injectable
Cohesion: 0.25 Cohesion: 0.25
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 112 - "WholesaleApplyDto" ### Community 112 - "wholesale.controller.ts"
Cohesion: 0.29 Cohesion: 0.31
Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto
### Community 113 - "Vazirmatn Changelog" ### Community 113 - "Vazirmatn Changelog"
@ -810,6 +789,10 @@ Nodes (9): compilerOptions, esModuleInterop, module, moduleResolution, skipLibCh
Cohesion: 0.20 Cohesion: 0.20
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more) Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
### Community 119 - "devDependencies"
Cohesion: 0.09
Nodes (23): devDependencies, eslint, @eslint/eslintrc, @eslint/js, jest, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more)
### Community 120 - "Repository Map" ### Community 120 - "Repository Map"
Cohesion: 0.20 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) 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)
@ -891,8 +874,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) 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" ### Community 141 - "WikiController"
Cohesion: 0.20 Cohesion: 0.13
Nodes (7): ApiTags, Controller, WikiController, Module, WikiModule, Injectable, WikiService Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
### Community 144 - "Baseline Command Plan & Reconciled Command History" ### Community 144 - "Baseline Command Plan & Reconciled Command History"
Cohesion: 0.29 Cohesion: 0.29
@ -900,7 +883,7 @@ Nodes (6): Attempted Command Execution Log, Backend `backend/package.json` Scrip
### Community 145 - "SmsSettingsPage.tsx" ### Community 145 - "SmsSettingsPage.tsx"
Cohesion: 0.29 Cohesion: 0.29
Nodes (5): PatternItem, SmsConfigState, SmsLogItem, SmsLogStats, SmsSettingsPage Nodes (7): PatternItem, SmsConfigState, SmsLogItem, SmsLogStats, SmsSettingsPage(), toPersianDigits(), SmsSettingsPage
### Community 147 - "with-vpn.sh" ### Community 147 - "with-vpn.sh"
Cohesion: 0.62 Cohesion: 0.62
@ -1038,6 +1021,18 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
Cohesion: 0.67 Cohesion: 0.67
Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan
### Community 212 - "CreateHealthLogDto"
Cohesion: 0.29
Nodes (6): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
### Community 214 - "LoginDto"
Cohesion: 0.33
Nodes (5): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength
### Community 215 - "Reviews.tsx"
Cohesion: 0.50
Nodes (4): ProductReview, Reviews(), toPersianDigits(), Reviews
### Community 223 - "Shabnam Font README" ### Community 223 - "Shabnam Font README"
Cohesion: 0.67 Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
@ -1046,52 +1041,32 @@ Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
Cohesion: 0.22 Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 243 - "RedisService"
Cohesion: 0.10
Nodes (10): ApiExcludeController, MetricsController, Controller, Get, Res, RedisModule, Global, Module (+2 more)
### Community 305 - "RouteErrorBoundary" ### Community 305 - "RouteErrorBoundary"
Cohesion: 0.22 Cohesion: 0.22
Nodes (3): Props, RouteErrorBoundary, State Nodes (3): Props, RouteErrorBoundary, State
### Community 306 - ".findAll"
Cohesion: 0.32
Nodes (6): ApiNotFoundResponse, ApiOkResponse, ApiOperation, Get, Param, Query
### Community 307 - "AdminLoginDto" ### Community 307 - "AdminLoginDto"
Cohesion: 0.29 Cohesion: 0.29
Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength
### Community 308 - "VerifyOtpDto"
Cohesion: 0.33
Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length
### Community 311 - "AuthController"
Cohesion: 0.40
Nodes (3): AuthController, ApiTags, Controller
### Community 313 - "ValidateCouponDto"
Cohesion: 0.50
Nodes (4): IsNotEmpty, IsNumber, IsString, ValidateCouponDto
## Knowledge Gaps ## Knowledge Gaps
- **1242 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1237 more) - **1242 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1237 more)
These have ≤1 connection - possible missing edges or undocumented components. 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. - **103 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions ## Suggested Questions
_Questions this graph is uniquely positioned to answer:_ _Questions this graph is uniquely positioned to answer:_
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsController`, `SmartAdvisorController`, `TestimonialsService`, `ContactService`, `PaymentController`, `.deleteScientificTerm`, `WholesaleService`, `JwtAuthGuard`?** - **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `.addPattern`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `wholesale.controller.ts`, `ContactService`, `PaymentController`, `WholesaleService`, `JwtAuthGuard`?**
_High betweenness centrality (0.051) - this node is a cross-community bridge._ _High betweenness centrality (0.051) - this node is a cross-community bridge._
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `WikiController`, `BlogsController`, `HomeController`, `OrdersController`, `ProductsService`, `AuthController`?** - **Why does `ApiResponse` connect `src/services/api.ts` to `OrdersService`, `UsersService`, `PetsController`, `AuthController`, `WikiController`, `HomeController`, `ProductsService`, `PaginationDto`?**
_High betweenness centrality (0.039) - this node is a cross-community bridge._ _High betweenness centrality (0.040) - this node is a cross-community bridge._
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `OrdersService`, `CategoriesController`, `CmsController`, `app.module.ts`, `reviews.controller.ts`, `tickets.controller.ts`, `PetsController`, `admin.module.ts`, `admin.service.ts`, `UsersService`, `MediaController`, `ProductsService`, `CreateVideoDto`, `auth.service.ts`?** - **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `OrdersService`, `CmsController`, `reviews.controller.ts`, `tickets.controller.ts`, `UsersService`, `admin.module.ts`, `admin.service.ts`, `MediaController`, `PrismaService`, `pets/pets.controller.ts`, `ProductsService`, `wholesale.controller.ts`, `CreateVideoDto`, `auth.service.ts`?**
_High betweenness centrality (0.024) - this node is a cross-community bridge._ _High betweenness centrality (0.024) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?** - **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1242 weakly-connected nodes found - possible documentation gaps or missing edges._ _1242 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `OrdersService` be split into smaller, more focused modules?** - **Should `OrdersService` be split into smaller, more focused modules?**
_Cohesion score 0.12307692307692308 - nodes in this community are weakly interconnected._ _Cohesion score 0.06168831168831169 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?** - **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.05888376856118792 - nodes in this community are weakly interconnected._ _Cohesion score 0.05888376856118792 - nodes in this community are weakly interconnected._
- **Should `CmsController` be split into smaller, more focused modules?** - **Should `CmsController` be split into smaller, more focused modules?**

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