fix(admin-panel): import missing Thermometer, AlertTriangle, and Sparkles icons in Products.tsx
Some checks failed
Deploy Canina / deploy (push) Successful in 34s
E2E Playwright Tests / Run Full E2E & Security Suites (push) Failing after 6s

This commit is contained in:
parsa aghaei 2026-09-02 11:58:29 +03:30
parent 9744aa814f
commit 68840fbdf2
12 changed files with 3919 additions and 3912 deletions

View File

@ -30,6 +30,9 @@ import {
Compass,
Maximize2,
ExternalLink,
Thermometer,
AlertTriangle,
Sparkles,
} from 'lucide-react';
import { toast } from 'react-hot-toast';
import api, { BASE_DOMAIN } from '../services/api';

View File

@ -300,7 +300,7 @@
"298": ".initiateOrderPayment",
"299": "@tailwindcss/postcss",
"300": "typescript",
"301": "@nestjs/jwt",
"301": "bcrypt",
"302": "typescript-eslint",
"303": "@nestjs/throttler",
"304": "passport",
@ -330,5 +330,5 @@
"328": "@types/supertest",
"329": "typescript-eslint",
"330": "@nestjs/swagger",
"331": "eslint-config-next"
"331": "tailwindcss"
}

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
"1": "app.module.ts",
"2": "AdminTransactionFilterDto",
"3": "productService.ts",
"4": "api",
"4": "PetProfile.tsx",
"5": "CmsController",
"6": "TicketsService",
"7": "SmsSettingsPage.tsx",
@ -13,7 +13,7 @@
"11": "WikiController",
"12": "index.ts",
"13": "app-audit-verification.e2e-spec.js",
"14": "UserDashboard.tsx",
"14": "toPersian",
"15": "src/services/api.ts",
"16": "DoctorQueryDto",
"17": "schema.ts",
@ -57,7 +57,7 @@
"55": "UITexts.tsx",
"56": "Orders.tsx",
"57": "Role & Core Objective",
"58": "components/Skeleton.tsx",
"58": "UserDashboard.tsx",
"59": "compilerOptions",
"60": "CreateUserDto",
"61": "ProductPage.tsx",
@ -89,10 +89,10 @@
"87": "dependencies",
"88": "payment.controller.ts",
"89": "seed-products.ts",
"90": "useCartStore",
"90": "OrderService",
"91": "Reconciled Audit Roles & Assignments",
"92": "OrdersService",
"93": "HomeClient.tsx",
"93": "ArchivePage.tsx",
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
"95": "wiki/[slug]/page.tsx",
"96": "compilerOptions",
@ -144,7 +144,7 @@
"142": "start-dev.js",
"143": "generate-openapi.js",
"144": "SafeImage.tsx",
"145": "ConfirmModal.tsx",
"145": "AuthService",
"146": "System Discovery",
"147": "HomeController",
"148": "track/page.tsx",
@ -184,7 +184,7 @@
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
"184": "MetricsController",
"185": "bcrypt",
"185": "RouteErrorBoundary",
"186": "seed-ui-texts.ts",
"187": "seed-wiki.ts",
"188": "update-blog.dto.ts",
@ -196,7 +196,7 @@
"194": "Raw Finding Verification & Disposition Report",
"195": "React + TypeScript + Vite",
"196": "Select.tsx",
"197": "lib/services/api.ts",
"197": "userStore.ts",
"198": "@tailwindcss/postcss",
"199": "SmsLogQueryDto",
"200": "application/README.md",
@ -232,7 +232,7 @@
"230": "instructions.md",
"231": "@nestjs/schematics",
"232": "prisma",
"233": "tailwindcss",
"233": "Reviews.tsx",
"234": "source-map-support",
"235": "ts-loader",
"236": "ts-node",
@ -328,5 +328,7 @@
"326": "@types/js-yaml",
"327": "eslint-plugin-react-refresh",
"328": "@types/supertest",
"329": "typescript-eslint"
"329": "typescript-eslint",
"330": "@nestjs/swagger",
"331": "eslint-config-next"
}

View File

@ -1,16 +1,16 @@
# Graph Report - canina (2026-09-02)
## Corpus Check
- 599 files · ~1,082,850 words
- 599 files · ~1,082,383 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 4208 nodes · 7643 edges · 330 communities (212 shown, 118 thin omitted)
- 4208 nodes · 7643 edges · 332 communities (212 shown, 120 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 288 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `1fb5de76`
- Built from commit: `f0457b57`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@ -19,7 +19,7 @@
- app.module.ts
- AdminTransactionFilterDto
- productService.ts
- api
- PetProfile.tsx
- CmsController
- TicketsService
- SmsSettingsPage.tsx
@ -29,7 +29,7 @@
- WikiController
- index.ts
- app-audit-verification.e2e-spec.js
- UserDashboard.tsx
- toPersian
- src/services/api.ts
- DoctorQueryDto
- schema.ts
@ -72,7 +72,7 @@
- UITexts.tsx
- Orders.tsx
- Role & Core Objective
- components/Skeleton.tsx
- UserDashboard.tsx
- compilerOptions
- CreateUserDto
- ProductPage.tsx
@ -104,10 +104,10 @@
- dependencies
- payment.controller.ts
- seed-products.ts
- useCartStore
- OrderService
- Reconciled Audit Roles & Assignments
- OrdersService
- HomeClient.tsx
- ArchivePage.tsx
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
- wiki/[slug]/page.tsx
- compilerOptions
@ -159,7 +159,7 @@
- start-dev.js
- generate-openapi.js
- SafeImage.tsx
- ConfirmModal.tsx
- AuthService
- System Discovery
- HomeController
- track/page.tsx
@ -198,7 +198,7 @@
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
- 🚀 SEO & Content Strategy Review (12_seo_content)
- MetricsController
- bcrypt
- RouteErrorBoundary
- seed-ui-texts.ts
- seed-wiki.ts
- update-blog.dto.ts
@ -210,7 +210,7 @@
- Raw Finding Verification & Disposition Report
- React + TypeScript + Vite
- Select.tsx
- lib/services/api.ts
- userStore.ts
- @tailwindcss/postcss
- SmsLogQueryDto
- application/README.md
@ -246,7 +246,7 @@
- instructions.md
- @nestjs/schematics
- prisma
- tailwindcss
- Reviews.tsx
- source-map-support
- ts-loader
- ts-node
@ -324,6 +324,8 @@
- eslint-plugin-react-refresh
- @types/supertest
- typescript-eslint
- @nestjs/swagger
- eslint-config-next
## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges
@ -354,7 +356,7 @@
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Communities (330 total, 118 thin omitted)
## Communities (332 total, 120 thin omitted)
### Community 0 - "Roles"
Cohesion: 0.24
@ -370,15 +372,15 @@ Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOpt
### Community 3 - "productService.ts"
Cohesion: 0.06
Nodes (38): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, dynamic, GET(), revalidate (+30 more)
Nodes (39): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, dynamic, GET(), revalidate (+31 more)
### Community 4 - "api"
Cohesion: 0.13
Nodes (14): metadata, ContactInfoItem, OrderDetailsModal(), OrderDetailsModalProps, CURRENT_SYMPTOMS, MEDICAL_HISTORIES, SmartAdvisor(), SmartAdvisorProps (+6 more)
### Community 4 - "PetProfile.tsx"
Cohesion: 0.12
Nodes (18): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PetProfile(), SearchResultsPage(), CURRENT_SYMPTOMS, MEDICAL_HISTORIES (+10 more)
### Community 5 - "CmsController"
Cohesion: 0.10
Nodes (14): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
Cohesion: 0.12
Nodes (12): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Delete, Get, Param (+4 more)
### Community 6 - "TicketsService"
Cohesion: 0.09
@ -401,8 +403,8 @@ Cohesion: 0.07
Nodes (30): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+22 more)
### Community 11 - "WikiController"
Cohesion: 0.13
Nodes (13): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+5 more)
Cohesion: 0.21
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
### Community 12 - "index.ts"
Cohesion: 0.06
@ -412,13 +414,13 @@ Nodes (24): backend, frontend, playwright.config.ts, @playwright/test, tests/**/
Cohesion: 0.06
Nodes (28): AppModule, Module, EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(), CustomHttpExceptionFilter (+20 more)
### Community 14 - "UserDashboard.tsx"
Cohesion: 0.13
Nodes (28): VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), AuthModal(), AuthModalProps (+20 more)
### Community 14 - "toPersian"
Cohesion: 0.17
Nodes (20): HomeClient(), VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), CheckoutPage() (+12 more)
### Community 15 - "src/services/api.ts"
Cohesion: 0.06
Nodes (38): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+30 more)
Nodes (36): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+28 more)
### Community 16 - "DoctorQueryDto"
Cohesion: 0.09
@ -478,7 +480,7 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati
### Community 32 - "adminRoutes.tsx"
Cohesion: 0.07
Nodes (16): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, SslStatus, AdminRouteConfig (+8 more)
Nodes (21): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, SslStatus, Ticket, TicketMessage (+13 more)
### Community 33 - "WholesaleApplyDto"
Cohesion: 0.10
@ -550,7 +552,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
### Community 50 - "devDependencies"
Cohesion: 0.12
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
### Community 51 - "BlogsController"
Cohesion: 0.07
@ -565,8 +567,8 @@ Cohesion: 0.13
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 54 - "Button.tsx"
Cohesion: 0.07
Nodes (24): ButtonProps, ButtonSize, ButtonVariant, maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission (+16 more)
Cohesion: 0.10
Nodes (16): ButtonProps, ButtonSize, ButtonVariant, ConfirmModal(), ConfirmModalProps, HeroBanner, VetTestimonial, FAQ (+8 more)
### Community 55 - "UITexts.tsx"
Cohesion: 0.07
@ -580,9 +582,9 @@ Nodes (15): Badge(), BadgeProps, BadgeVariant, variantStyles, Skeleton(), Monito
Cohesion: 0.09
Nodes (22): CREATE MODE — Normal Operation, Expected JSON Output Schema, File Scope Boundary, Forbidden Actions, MODE 1: REVIEW (called during Review Phase), MODE 2: CONTENT CREATION (standalone task from backlog), Operating Modes, Operational Rules & Boundaries (+14 more)
### Community 58 - "components/Skeleton.tsx"
Cohesion: 0.24
Nodes (4): OrderRowSkeleton(), PetProfileSkeleton(), Skeleton(), SkeletonProps
### Community 58 - "UserDashboard.tsx"
Cohesion: 0.12
Nodes (11): DeleteConfirmModal(), DeleteConfirmModalProps, OrderDetailsModal(), OrderRowSkeleton(), PetProfileSkeleton(), Skeleton(), SkeletonProps, CreateTicketPayload (+3 more)
### Community 59 - "compilerOptions"
Cohesion: 0.06
@ -593,12 +595,12 @@ Cohesion: 0.23
Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more)
### Community 61 - "ProductPage.tsx"
Cohesion: 0.09
Nodes (20): PodcastInlinePlayer(), ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage() (+12 more)
Cohesion: 0.10
Nodes (19): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_MAP, isVideoUrl(), ProductImageZoomModal, ProductPage(), ProductReviews (+11 more)
### Community 63 - "dependencies"
Cohesion: 0.09
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+15 more)
Nodes (23): dependencies, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more)
### Community 64 - "compilerOptions"
Cohesion: 0.10
@ -617,8 +619,8 @@ Cohesion: 0.14
Nodes (11): ReportsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Get, Query (+3 more)
### Community 68 - "useSettingsStore"
Cohesion: 0.10
Nodes (22): AuthModal, B2BPortal, CartDrawer, ClientLayout(), B2BLandingClient(), BrandLogo(), BrandLogoProps, FAQItem (+14 more)
Cohesion: 0.08
Nodes (29): HomeClientProps, B2BLandingClient(), BlogPost, BlogPreviewSection(), BrandLogo(), BrandLogoProps, ContactInfoItem, FAQItem (+21 more)
### Community 69 - "Required Review Group Closures"
Cohesion: 0.10
@ -704,10 +706,6 @@ Nodes (19): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty
Cohesion: 0.17
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
### Community 90 - "useCartStore"
Cohesion: 0.07
Nodes (27): ArchivePage(), ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, FeaturedProducts() (+19 more)
### Community 91 - "Reconciled Audit Roles & Assignments"
Cohesion: 0.12
Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. React / Vite Storefront Auditor, 3. NestJS Backend Auditor, 4. Admin Features Auditor, 5. Database & Data Integrity Auditor, 6. Security Auditor, 7. TypeScript & Code Quality Auditor (+7 more)
@ -716,9 +714,9 @@ Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. Rea
Cohesion: 0.07
Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more)
### Community 93 - "HomeClient.tsx"
Cohesion: 0.12
Nodes (17): HomeClient(), HomeClientProps, BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), Hero(), StatCounter(), TestimonialsSection() (+9 more)
### Community 93 - "ArchivePage.tsx"
Cohesion: 0.13
Nodes (15): ArchivePage(), ArchiveProductCard(), CATEGORY_MAP, ICON_MAP, BannerPlacement(), BannerPlacementProps, ProductCardSkeleton(), B2BInquiry (+7 more)
### Community 94 - "Phase 3.1 — Human Review Preparation and Master Backlog Critique"
Cohesion: 0.13
@ -757,20 +755,20 @@ 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)
### Community 104 - "Products.tsx"
Cohesion: 0.09
Nodes (25): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+17 more)
Cohesion: 0.10
Nodes (24): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+16 more)
### Community 105 - "Operational Rules & Boundaries"
Cohesion: 0.17
Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (Mandatory), 3. Acceptance Criteria Verification, 4. Failure Routing Protocol, 5. Success Routing Protocol, 6. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries (+3 more)
### Community 106 - "cms.controller.ts"
Cohesion: 0.37
Nodes (10): CreateHeroBannerDto, CreateSmartAdvisorRuleDto, CreateVetTestimonialDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNumber, IsOptional (+2 more)
Cohesion: 0.21
Nodes (12): Body, Post, CreateHeroBannerDto, CreateSmartAdvisorRuleDto, CreateVetTestimonialDto, ApiProperty, ApiPropertyOptional, IsBoolean (+4 more)
### Community 107 - "PaginationDto"
Cohesion: 0.18
Nodes (11): AdminModule, Module, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional (+3 more)
Cohesion: 0.12
Nodes (15): AdminModule, Module, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional (+7 more)
### Community 108 - "PrismaService"
Cohesion: 0.06
@ -801,8 +799,8 @@ Cohesion: 0.29
Nodes (5): AppController, Controller, Get, AppService, Injectable
### Community 115 - "Spinner.tsx"
Cohesion: 0.10
Nodes (22): ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, Spinner(), Doctor (+14 more)
Cohesion: 0.07
Nodes (36): ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps, maxWidthClasses, Modal() (+28 more)
### Community 116 - "Vazirmatn Changelog"
Cohesion: 0.18
@ -913,12 +911,8 @@ Cohesion: 0.25
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
### Community 144 - "SafeImage.tsx"
Cohesion: 0.08
Nodes (23): BackButton(), BackButtonProps, BlogCategory, BlogPostItem, BlogPostClientProps, BlogPost, ProductDetailModalProps, PLAYBACK_RATES (+15 more)
### Community 145 - "ConfirmModal.tsx"
Cohesion: 0.10
Nodes (16): ConfirmModal(), ConfirmModalProps, Pagination(), PaginationProps, Category, Pet, DoctorOption, Video (+8 more)
Nodes (20): BackButton(), BackButtonProps, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, PLAYBACK_RATES, PodcastPlayerModal() (+12 more)
### Community 146 - "System Discovery"
Cohesion: 0.25
@ -1060,6 +1054,10 @@ Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO &
Cohesion: 0.25
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
### Community 185 - "RouteErrorBoundary"
Cohesion: 0.22
Nodes (3): Props, RouteErrorBoundary, State
### Community 191 - "graphify reference: add a URL and watch a folder"
Cohesion: 0.50
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
@ -1084,9 +1082,9 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip
Cohesion: 0.50
Nodes (3): Select, SelectOption, SelectProps
### Community 197 - "lib/services/api.ts"
Cohesion: 0.09
Nodes (17): LoginModal, B2BPortal(), LoginModal(), LoginModalProps, PrescriptionUploadModal(), PrescriptionUploadModalProps, ApiErrorPayload, baseURL (+9 more)
### Community 197 - "userStore.ts"
Cohesion: 0.08
Nodes (37): AuthModal, B2BPortal, CartDrawer, ClientLayout(), LoginModal, AuthModal(), AuthModalProps, extractOtpFromText() (+29 more)
### Community 199 - "SmsLogQueryDto"
Cohesion: 0.25
@ -1112,6 +1110,10 @@ Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Managem
Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
### Community 233 - "Reviews.tsx"
Cohesion: 0.40
Nodes (5): BlogCommentItem, ProductReview, Reviews(), toPersianDigits(), Reviews
### Community 298 - ".initiateOrderPayment"
Cohesion: 0.21
Nodes (6): ApiBadRequestResponse, ApiOkResponse, Req, Res, Headers, Ip
@ -1123,7 +1125,7 @@ Nodes (3): GET(), handleRevalidate(), POST()
## Knowledge Gaps
- **1347 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1342 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **118 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **120 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
@ -1132,13 +1134,13 @@ _Questions this graph is uniquely positioned to answer:_
_High betweenness centrality (0.065) - this node is a cross-community bridge._
- **Why does `ApiResponse` connect `src/services/api.ts` to `BlogsController`, `PetsController`, `ProductsService`, `WikiController`, `auth.controller.ts`, `HomeController`, `UsersService`, `OrdersService`?**
_High betweenness centrality (0.057) - this node is a cross-community bridge._
- **Why does `PrismaService` connect `PrismaService` to `app.module.ts`, `CmsController`, `TicketsService`, `CreateReviewDto`, `WikiController`, `DoctorQueryDto`, `HomeController`, `CreateVideoDto`, `BlogsService`, `menu.module.ts`, `auth.service.ts`, `MenuService`, `B2BService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `SmartAdvisorService`, `MetricsController`, `WikiService`, `admin.service.ts`, `ReportsController`, `PetsController`, `zibal-ebank.service.ts`, `ProductsService`, `seo.module.ts`, `zibal.service.ts`, `OrdersService`, `BlogsController`, `cms.controller.ts`, `PaginationDto`, `PetsController`, `UsersService`?**
- **Why does `PrismaService` connect `PrismaService` to `app.module.ts`, `CmsController`, `TicketsService`, `CreateReviewDto`, `DoctorQueryDto`, `HomeController`, `CreateVideoDto`, `BlogsService`, `menu.module.ts`, `auth.service.ts`, `MenuService`, `B2BService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `SmartAdvisorService`, `MetricsController`, `WikiService`, `admin.service.ts`, `ReportsController`, `PetsController`, `zibal-ebank.service.ts`, `ProductsService`, `seo.module.ts`, `zibal.service.ts`, `OrdersService`, `BlogsController`, `cms.controller.ts`, `PaginationDto`, `PetsController`, `UsersService`?**
_High betweenness centrality (0.029) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1347 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `app.module.ts` be split into smaller, more focused modules?**
_Cohesion score 0.06170598911070781 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.06299603174603174 - nodes in this community are weakly interconnected._
- **Should `api` be split into smaller, more focused modules?**
_Cohesion score 0.12648221343873517 - nodes in this community are weakly interconnected._
_Cohesion score 0.05780885780885781 - nodes in this community are weakly interconnected._
- **Should `PetProfile.tsx` be split into smaller, more focused modules?**
_Cohesion score 0.11822660098522167 - nodes in this community are weakly interconnected._

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# Graph Report - canina (2026-09-02)
## Corpus Check
- 599 files · ~1,082,383 words
- 599 files · ~1,082,386 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
@ -10,7 +10,7 @@
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `f0457b57`
- Built from commit: `9744aa81`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@ -299,7 +299,7 @@
- .initiateOrderPayment
- @tailwindcss/postcss
- typescript
- @nestjs/jwt
- bcrypt
- typescript-eslint
- @nestjs/throttler
- passport
@ -325,7 +325,7 @@
- @types/supertest
- typescript-eslint
- @nestjs/swagger
- eslint-config-next
- tailwindcss
## God Nodes (most connected - your core abstractions)
1. `Roles()` - 106 edges
@ -352,8 +352,8 @@
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/services/authService.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Communities (332 total, 120 thin omitted)
@ -379,8 +379,8 @@ Cohesion: 0.12
Nodes (18): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PetProfile(), SearchResultsPage(), CURRENT_SYMPTOMS, MEDICAL_HISTORIES (+10 more)
### Community 5 - "CmsController"
Cohesion: 0.12
Nodes (12): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Delete, Get, Param (+4 more)
Cohesion: 0.10
Nodes (14): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 6 - "TicketsService"
Cohesion: 0.09
@ -552,7 +552,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
### Community 50 - "devDependencies"
Cohesion: 0.12
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
### Community 51 - "BlogsController"
Cohesion: 0.07
@ -600,7 +600,7 @@ Nodes (19): ProductImageZoomModalProps, CalculatorState, GalleryMediaItem, ICON_
### Community 63 - "dependencies"
Cohesion: 0.09
Nodes (23): dependencies, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more)
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/jwt, @nestjs/passport (+15 more)
### Community 64 - "compilerOptions"
Cohesion: 0.10
@ -763,8 +763,8 @@ Cohesion: 0.17
Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (Mandatory), 3. Acceptance Criteria Verification, 4. Failure Routing Protocol, 5. Success Routing Protocol, 6. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries (+3 more)
### Community 106 - "cms.controller.ts"
Cohesion: 0.21
Nodes (12): Body, Post, CreateHeroBannerDto, CreateSmartAdvisorRuleDto, CreateVetTestimonialDto, ApiProperty, ApiPropertyOptional, IsBoolean (+4 more)
Cohesion: 0.37
Nodes (10): CreateHeroBannerDto, CreateSmartAdvisorRuleDto, CreateVetTestimonialDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNumber, IsOptional (+2 more)
### Community 107 - "PaginationDto"
Cohesion: 0.12

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -384,7 +384,7 @@
"label": "Category",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L51",
"source_location": "L54",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
@ -397,7 +397,7 @@
"label": "Product",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L58",
"source_location": "L61",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
@ -6188,7 +6188,7 @@
"label": "Products()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L120",
"source_location": "L123",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_products_products",
@ -6220,78 +6220,6 @@
"community_name": "Products.tsx",
"norm_label": "calculatesellingprice()"
},
{
"label": ".createHeroBanner()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L39",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createherobanner",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createherobanner()"
},
{
"label": ".createSmartAdvisorRule()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L95",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createsmartadvisorrule",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createsmartadvisorrule()"
},
{
"label": ".createVetTestimonial()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L67",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createvettestimonial",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createvettestimonial()"
},
{
"label": ".createHeroBanner()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L20",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createherobanner",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createherobanner()"
},
{
"label": ".createSmartAdvisorRule()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L67",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createsmartadvisorrule",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createsmartadvisorrule()"
},
{
"label": ".createVetTestimonial()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L41",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createvettestimonial",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": ".createvettestimonial()"
},
{
"label": ".constructor()",
"file_type": "code",
@ -13504,6 +13432,42 @@
"community_name": "CmsController",
"norm_label": ".constructor()"
},
{
"label": ".createHeroBanner()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L39",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createherobanner",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createherobanner()"
},
{
"label": ".createSmartAdvisorRule()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L95",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createsmartadvisorrule",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createsmartadvisorrule()"
},
{
"label": ".createVetTestimonial()",
"file_type": "code",
"source_file": "backend/src/cms/cms.controller.ts",
"source_location": "L67",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_controller_cmscontroller_createvettestimonial",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createvettestimonial()"
},
{
"label": ".deleteHeroBanner()",
"file_type": "code",
@ -13624,6 +13588,42 @@
"community_name": "CmsController",
"norm_label": ".constructor()"
},
{
"label": ".createHeroBanner()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L20",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createherobanner",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createherobanner()"
},
{
"label": ".createSmartAdvisorRule()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L67",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createsmartadvisorrule",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createsmartadvisorrule()"
},
{
"label": ".createVetTestimonial()",
"file_type": "code",
"source_file": "backend/src/cms/cms.service.ts",
"source_location": "L41",
"_callable": true,
"_origin": "ast",
"id": "backend_src_cms_cms_service_cmsservice_createvettestimonial",
"community": 5,
"community_name": "CmsController",
"norm_label": ".createvettestimonial()"
},
{
"label": ".deleteHeroBanner()",
"file_type": "code",
@ -19504,28 +19504,6 @@
"community_name": "cms.controller.ts",
"norm_label": "cms.controller.ts"
},
{
"label": "Body",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_cms_cms_controller_ts_body",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": "body"
},
{
"label": "Post",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_cms_cms_controller_ts_post",
"community": 106,
"community_name": "cms.controller.ts",
"norm_label": "post"
},
{
"label": "cms.service.ts",
"file_type": "code",
@ -33854,26 +33832,26 @@
"norm_label": "typescript"
},
{
"label": "@nestjs/jwt",
"label": "bcrypt",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L27",
"source_location": "L33",
"_origin": "ast",
"id": "backend_package_dependencies_nestjs_jwt",
"id": "backend_package_dependencies_bcrypt",
"community": 301,
"community_name": "@nestjs/jwt",
"norm_label": "@nestjs/jwt"
"community_name": "bcrypt",
"norm_label": "bcrypt"
},
{
"label": "@nestjs/jwt",
"label": "bcrypt",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L27",
"source_location": "L33",
"_origin": "ast",
"id": "nestjs_jwt",
"id": "bcrypt",
"community": 301,
"community_name": "@nestjs/jwt",
"norm_label": "@nestjs/jwt"
"community_name": "bcrypt",
"norm_label": "bcrypt"
},
{
"label": "typescript-eslint",
@ -35251,26 +35229,26 @@
"norm_label": "@nestjs/swagger"
},
{
"label": "eslint-config-next",
"label": "tailwindcss",
"file_type": "code",
"source_file": "frontend/application/package.json",
"source_location": "L31",
"source_location": "L33",
"_origin": "ast",
"id": "frontend_application_package_devdependencies_eslint_config_next",
"id": "frontend_application_package_devdependencies_tailwindcss",
"community": 331,
"community_name": "eslint-config-next",
"norm_label": "eslint-config-next"
"community_name": "tailwindcss",
"norm_label": "tailwindcss"
},
{
"label": "eslint-config-next",
"label": "tailwindcss",
"file_type": "concept",
"source_file": "frontend/application/package.json",
"source_location": "L31",
"source_location": "L33",
"_origin": "ast",
"id": "eslint_config_next",
"id": "frontend_application_package_json_tailwindcss",
"community": 331,
"community_name": "eslint-config-next",
"norm_label": "eslint-config-next"
"community_name": "tailwindcss",
"norm_label": "tailwindcss"
},
{
"label": "ApiBearerAuth",
@ -38561,6 +38539,17 @@
"community_name": "CmsController",
"norm_label": "apitags"
},
{
"label": "Body",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_cms_cms_controller_ts_body",
"community": 5,
"community_name": "CmsController",
"norm_label": "body"
},
{
"label": "Controller",
"file_type": "code",
@ -38605,6 +38594,17 @@
"community_name": "CmsController",
"norm_label": "param"
},
{
"label": "Post",
"file_type": "code",
"source_file": "",
"source_location": "",
"_origin": "ast",
"id": "backend_src_cms_cms_controller_ts_post",
"community": 5,
"community_name": "CmsController",
"norm_label": "post"
},
{
"label": "Put",
"file_type": "code",
@ -38660,6 +38660,17 @@
"community_name": "devDependencies",
"norm_label": "eslint"
},
{
"label": "eslint-config-next",
"file_type": "code",
"source_file": "frontend/application/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "frontend_application_package_devdependencies_eslint_config_next",
"community": 50,
"community_name": "devDependencies",
"norm_label": "eslint-config-next"
},
{
"label": "jsdom",
"file_type": "code",
@ -38671,17 +38682,6 @@
"community_name": "devDependencies",
"norm_label": "jsdom"
},
{
"label": "tailwindcss",
"file_type": "code",
"source_file": "frontend/application/package.json",
"source_location": "L33",
"_origin": "ast",
"id": "frontend_application_package_devdependencies_tailwindcss",
"community": 50,
"community_name": "devDependencies",
"norm_label": "tailwindcss"
},
{
"label": "@testing-library/jest-dom",
"file_type": "code",
@ -38737,6 +38737,17 @@
"community_name": "devDependencies",
"norm_label": "vitest"
},
{
"label": "eslint-config-next",
"file_type": "concept",
"source_file": "frontend/application/package.json",
"source_location": "L31",
"_origin": "ast",
"id": "eslint_config_next",
"community": 50,
"community_name": "devDependencies",
"norm_label": "eslint-config-next"
},
{
"label": "eslint",
"file_type": "concept",
@ -38748,17 +38759,6 @@
"community_name": "devDependencies",
"norm_label": "eslint"
},
{
"label": "tailwindcss",
"file_type": "concept",
"source_file": "frontend/application/package.json",
"source_location": "L33",
"_origin": "ast",
"id": "frontend_application_package_json_tailwindcss",
"community": 50,
"community_name": "devDependencies",
"norm_label": "tailwindcss"
},
{
"label": "@types/node",
"file_type": "concept",
@ -40882,17 +40882,6 @@
"community_name": "dependencies",
"norm_label": "dependencies"
},
{
"label": "bcrypt",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L33",
"_origin": "ast",
"id": "backend_package_dependencies_bcrypt",
"community": 63,
"community_name": "dependencies",
"norm_label": "bcrypt"
},
{
"label": "bcryptjs",
"file_type": "code",
@ -40948,6 +40937,17 @@
"community_name": "dependencies",
"norm_label": "@nestjs/common"
},
{
"label": "@nestjs/jwt",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L27",
"_origin": "ast",
"id": "backend_package_dependencies_nestjs_jwt",
"community": 63,
"community_name": "dependencies",
"norm_label": "@nestjs/jwt"
},
{
"label": "@nestjs/passport",
"file_type": "code",
@ -41003,17 +41003,6 @@
"community_name": "dependencies",
"norm_label": "rxjs"
},
{
"label": "bcrypt",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L33",
"_origin": "ast",
"id": "bcrypt",
"community": 63,
"community_name": "dependencies",
"norm_label": "bcrypt"
},
{
"label": "bcryptjs",
"file_type": "concept",
@ -41069,6 +41058,17 @@
"community_name": "dependencies",
"norm_label": "@nestjs/common"
},
{
"label": "@nestjs/jwt",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L27",
"_origin": "ast",
"id": "nestjs_jwt",
"community": 63,
"community_name": "dependencies",
"norm_label": "@nestjs/jwt"
},
{
"label": "@nestjs/passport",
"file_type": "concept",
@ -50293,7 +50293,7 @@
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L1775",
"source_location": "L1778",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products_products",
@ -81637,7 +81637,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L35",
"source_location": "L38",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81649,7 +81649,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L35",
"source_location": "L38",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81661,7 +81661,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L36",
"source_location": "L39",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81673,7 +81673,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L37",
"source_location": "L40",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81685,7 +81685,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L38",
"source_location": "L41",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81697,7 +81697,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L39",
"source_location": "L42",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81709,7 +81709,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L40",
"source_location": "L43",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81721,7 +81721,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L41",
"source_location": "L44",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81733,7 +81733,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L42",
"source_location": "L45",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81745,7 +81745,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L43",
"source_location": "L46",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81757,7 +81757,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L44",
"source_location": "L47",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81769,7 +81769,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L45",
"source_location": "L48",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81781,7 +81781,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L45",
"source_location": "L48",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -81793,7 +81793,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L45",
"source_location": "L48",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94705,7 +94705,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L35",
"source_location": "L38",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94717,7 +94717,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L36",
"source_location": "L39",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94729,7 +94729,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L37",
"source_location": "L40",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94741,7 +94741,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L38",
"source_location": "L41",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94753,7 +94753,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L39",
"source_location": "L42",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94765,7 +94765,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L40",
"source_location": "L43",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94777,7 +94777,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L41",
"source_location": "L44",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94789,7 +94789,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L42",
"source_location": "L45",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94801,7 +94801,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L43",
"source_location": "L46",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94813,7 +94813,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L44",
"source_location": "L47",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -94825,7 +94825,7 @@
"context": "import",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L45",
"source_location": "L48",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -118097,7 +118097,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L120",
"source_location": "L123",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -118108,7 +118108,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L51",
"source_location": "L54",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -118119,7 +118119,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L58",
"source_location": "L61",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -137022,5 +137022,5 @@
}
],
"hyperedges": [],
"built_at_commit": "f0457b57484a35308f030c1760128a55245c389f"
"built_at_commit": "9744aa814f71b8e124acff84ce0c3384e993a60f"
}

File diff suppressed because it is too large Load Diff