fix(prescription): raise modal z-index above header, add backdrop dismiss, and show upload button on mobile header and drawer
This commit is contained in:
parent
63e10449ad
commit
6cacfd447b
@ -238,13 +238,15 @@ export default function Header({
|
||||
|
||||
{/* Left Action Buttons */}
|
||||
<div className="flex items-center gap-1.5 sm:gap-3 shrink-0">
|
||||
{/* Prescription Upload Button */}
|
||||
{/* Prescription Upload Button (Desktop & Mobile) */}
|
||||
<button
|
||||
onClick={() => setIsPrescriptionModalOpen(true)}
|
||||
className="hidden sm:flex items-center gap-1.5 px-3 py-2 bg-emerald-50 text-emerald-700 border border-emerald-200 hover:bg-emerald-100 rounded-xl text-xs font-black transition-all shadow-xs"
|
||||
className="flex items-center gap-1.5 px-2.5 sm:px-3 py-2 bg-emerald-50 text-emerald-700 border border-emerald-200 hover:bg-emerald-100 rounded-xl text-[11px] sm:text-xs font-black transition-all shadow-xs cursor-pointer"
|
||||
title="ثبت نسخه دامپزشک"
|
||||
>
|
||||
<FileHeart className="w-4 h-4 text-emerald-600" />
|
||||
<span>ثبت نسخه دامپزشک</span>
|
||||
<FileHeart className="w-3.5 h-3.5 sm:w-4 sm:h-4 text-emerald-600 shrink-0" />
|
||||
<span className="hidden xs:inline sm:inline">ثبت نسخه دامپزشک</span>
|
||||
<span className="inline xs:hidden sm:hidden">ثبت نسخه</span>
|
||||
</button>
|
||||
|
||||
{/* User Account Button with Dropdown & Pets List */}
|
||||
@ -520,11 +522,32 @@ export default function Header({
|
||||
placeholder="جستجو در محصولات..."
|
||||
value={searchQuery}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl py-2.5 pr-10 pl-4 text-xs font-bold focus:ring-2 focus:ring-canina-blue/20 outline-none"
|
||||
className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-xl py-2.5 pr-10 pl-4 text-xs font-bold focus:ring-2 focus:ring-canina-blue/20 outline-none font-vazir placeholder:font-vazir"
|
||||
/>
|
||||
<Search className="w-4 h-4 text-medical-gray-400 absolute right-3 top-1/2 -translate-y-1/2" />
|
||||
</form>
|
||||
|
||||
{/* Direct Prescription CTA in Mobile Drawer */}
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => {
|
||||
setIsMobileMenuOpen(false);
|
||||
setIsPrescriptionModalOpen(true);
|
||||
}}
|
||||
className="w-full flex items-center justify-between p-3.5 bg-gradient-to-r from-emerald-500 to-teal-600 text-white rounded-2xl font-black text-xs shadow-md shadow-emerald-500/20 hover:brightness-105 transition-all cursor-pointer font-vazir"
|
||||
>
|
||||
<div className="flex items-center gap-2.5">
|
||||
<div className="p-1.5 bg-white/20 rounded-xl">
|
||||
<FileHeart className="w-4 h-4 text-white" />
|
||||
</div>
|
||||
<div className="text-right">
|
||||
<div className="text-xs font-black">ثبت و استعلام نسخه دامپزشک</div>
|
||||
<div className="text-[10px] text-emerald-100 font-medium">تامین فوری دارو و مکملهای اورجینال</div>
|
||||
</div>
|
||||
</div>
|
||||
<span className="text-lg">←</span>
|
||||
</button>
|
||||
|
||||
{/* Dynamic Menu Groups in Mobile Drawer */}
|
||||
{headerNavItems.map((navGroup) => {
|
||||
const hasChildren = Array.isArray(navGroup.children) && navGroup.children.length > 0;
|
||||
|
||||
@ -149,18 +149,28 @@ export default function PrescriptionUploadModal({ isOpen, onClose }: Prescriptio
|
||||
|
||||
return (
|
||||
<AnimatePresence>
|
||||
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm font-vazir" dir="rtl">
|
||||
<div
|
||||
className="fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm font-vazir"
|
||||
dir="rtl"
|
||||
onClick={(e) => {
|
||||
if (e.target === e.currentTarget) {
|
||||
handleClose();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<motion.div
|
||||
initial={{ opacity: 0, scale: 0.95 }}
|
||||
animate={{ opacity: 1, scale: 1 }}
|
||||
exit={{ opacity: 0, scale: 0.95 }}
|
||||
className="bg-white rounded-3xl max-w-lg w-full max-h-[90vh] overflow-y-auto shadow-2xl border border-medical-gray-200 flex flex-col"
|
||||
initial={{ opacity: 0, scale: 0.95, y: 15 }}
|
||||
animate={{ opacity: 1, scale: 1, y: 0 }}
|
||||
exit={{ opacity: 0, scale: 0.95, y: 15 }}
|
||||
className="bg-white rounded-3xl max-w-lg w-full max-h-[90vh] overflow-y-auto shadow-2xl border border-medical-gray-200 flex flex-col z-10 my-auto"
|
||||
>
|
||||
{/* Header */}
|
||||
<div className="bg-canina-blue text-white p-6 relative shrink-0">
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleClose}
|
||||
className="absolute left-5 top-5 text-white/80 hover:text-white bg-white/10 p-1.5 rounded-full transition-colors cursor-pointer"
|
||||
className="absolute left-5 top-5 text-white/90 hover:text-white bg-white/20 hover:bg-white/30 p-2 rounded-full transition-all cursor-pointer z-20"
|
||||
aria-label="بستن پنجره"
|
||||
>
|
||||
<X className="w-5 h-5" />
|
||||
</button>
|
||||
|
||||
@ -184,7 +184,7 @@
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"184": "RedisService",
|
||||
"185": "RegisterDto",
|
||||
"185": "@eslint/eslintrc",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -318,8 +318,7 @@
|
||||
"316": "prettier",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@types/react-dom",
|
||||
"320": "eslint",
|
||||
"319": "eslint-config-next",
|
||||
"324": "catalog/page.tsx",
|
||||
"327": "eslint-plugin-react-refresh"
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -184,7 +184,7 @@
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"184": "RedisService",
|
||||
"185": "@nestjs/swagger",
|
||||
"185": "RegisterDto",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -231,7 +231,7 @@
|
||||
"229": ".agents/workflows/graphify.md",
|
||||
"230": "instructions.md",
|
||||
"231": "eslint-config-prettier",
|
||||
"232": "@eslint/eslintrc",
|
||||
"232": "helmet",
|
||||
"233": "tailwindcss",
|
||||
"234": "@nestjs/schematics",
|
||||
"235": "@nestjs/testing",
|
||||
@ -319,6 +319,7 @@
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@types/react-dom",
|
||||
"320": "eslint",
|
||||
"324": "catalog/page.tsx",
|
||||
"327": "eslint-plugin-react-refresh"
|
||||
}
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-08-26)
|
||||
|
||||
## Corpus Check
|
||||
- 587 files · ~1,333,406 words
|
||||
- 587 files · ~1,333,485 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4110 nodes · 7412 edges · 322 communities (205 shown, 117 thin omitted)
|
||||
- 4110 nodes · 7412 edges · 323 communities (206 shown, 117 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `9294e897`
|
||||
- Built from commit: `6e23269a`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -199,7 +199,7 @@
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- RedisService
|
||||
- @nestjs/swagger
|
||||
- RegisterDto
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -246,7 +246,7 @@
|
||||
- .agents/workflows/graphify.md
|
||||
- instructions.md
|
||||
- eslint-config-prettier
|
||||
- @eslint/eslintrc
|
||||
- helmet
|
||||
- tailwindcss
|
||||
- @nestjs/schematics
|
||||
- @nestjs/testing
|
||||
@ -317,6 +317,7 @@
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @types/react-dom
|
||||
- eslint
|
||||
- catalog/page.tsx
|
||||
- eslint-plugin-react-refresh
|
||||
|
||||
@ -345,11 +346,11 @@
|
||||
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 (322 total, 117 thin omitted)
|
||||
## Communities (323 total, 117 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
@ -389,7 +390,7 @@ Nodes (13): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty,
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||
Nodes (9): devDependencies, @eslint/eslintrc, @types/bcryptjs, @types/node, typescript, @types/node, typescript, @eslint/eslintrc (+1 more)
|
||||
|
||||
### Community 10 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
@ -601,7 +602,7 @@ Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOpti
|
||||
|
||||
### Community 63 - "dependencies"
|
||||
Cohesion: 0.09
|
||||
Nodes (23): dependencies, bcryptjs, class-validator, compression, helmet, ioredis, @nestjs/common, @nestjs/passport (+15 more)
|
||||
Nodes (23): dependencies, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+15 more)
|
||||
|
||||
### Community 64 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
@ -856,8 +857,8 @@ Cohesion: 0.20
|
||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||
|
||||
### Community 129 - "auth.service.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (33): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+25 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (25): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+17 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
@ -1043,6 +1044,10 @@ Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO &
|
||||
Cohesion: 0.08
|
||||
Nodes (12): ApiExcludeController, AppModule, Module, MetricsController, Controller, Get, Res, RedisModule (+4 more)
|
||||
|
||||
### Community 185 - "RegisterDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
|
||||
@ -1088,7 +1093,7 @@ Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 298 - ".initiateOrderPayment"
|
||||
Cohesion: 0.32
|
||||
Cohesion: 0.21
|
||||
Nodes (6): ApiBadRequestResponse, ApiOkResponse, Req, Res, Headers, Ip
|
||||
|
||||
### Community 313 - "Modal.tsx"
|
||||
|
||||
@ -1108,19 +1108,6 @@
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "logindto"
|
||||
},
|
||||
{
|
||||
"label": "RegisterDto",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L10",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_registerdto",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "registerdto"
|
||||
},
|
||||
{
|
||||
"label": "SendOtpDto",
|
||||
"file_type": "code",
|
||||
@ -2018,6 +2005,19 @@
|
||||
"community_name": "RedisService",
|
||||
"norm_label": "redisservice"
|
||||
},
|
||||
{
|
||||
"label": "RegisterDto",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L10",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_registerdto",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "registerdto"
|
||||
},
|
||||
{
|
||||
"label": "CreateBlogDto",
|
||||
"file_type": "code",
|
||||
@ -10264,30 +10264,6 @@
|
||||
"community_name": "robots.ts",
|
||||
"norm_label": "robots()"
|
||||
},
|
||||
{
|
||||
"label": ".initiateOrderPayment()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L31",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_initiateorderpayment",
|
||||
"community": 294,
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".initiateorderpayment()"
|
||||
},
|
||||
{
|
||||
"label": ".initiateWalletTopup()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L139",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_initiatewallettopup",
|
||||
"community": 294,
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".initiatewallettopup()"
|
||||
},
|
||||
{
|
||||
"label": ".apiRequest()",
|
||||
"file_type": "code",
|
||||
@ -10372,18 +10348,6 @@
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getaccesstoken()"
|
||||
},
|
||||
{
|
||||
"label": ".getBackendUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L130",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getbackendurl",
|
||||
"community": 294,
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getbackendurl()"
|
||||
},
|
||||
{
|
||||
"label": ".getCheckoutQueueReport()",
|
||||
"file_type": "code",
|
||||
@ -10408,18 +10372,6 @@
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getcheckoutreport()"
|
||||
},
|
||||
{
|
||||
"label": ".getFrontendUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L111",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getfrontendurl",
|
||||
"community": 294,
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getfrontendurl()"
|
||||
},
|
||||
{
|
||||
"label": ".getGatewayName()",
|
||||
"file_type": "code",
|
||||
@ -10468,18 +10420,6 @@
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getrefundlist()"
|
||||
},
|
||||
{
|
||||
"label": ".getStartUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L211",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getstarturl",
|
||||
"community": 294,
|
||||
"community_name": "ZibalService",
|
||||
"norm_label": ".getstarturl()"
|
||||
},
|
||||
{
|
||||
"label": ".getSubMerchantList()",
|
||||
"file_type": "code",
|
||||
@ -10840,6 +10780,66 @@
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".verifypaymentdirect()"
|
||||
},
|
||||
{
|
||||
"label": ".initiateOrderPayment()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L31",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_initiateorderpayment",
|
||||
"community": 298,
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".initiateorderpayment()"
|
||||
},
|
||||
{
|
||||
"label": ".initiateWalletTopup()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L139",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_initiatewallettopup",
|
||||
"community": 298,
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".initiatewallettopup()"
|
||||
},
|
||||
{
|
||||
"label": ".getBackendUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L130",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getbackendurl",
|
||||
"community": 298,
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".getbackendurl()"
|
||||
},
|
||||
{
|
||||
"label": ".getFrontendUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L111",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getfrontendurl",
|
||||
"community": 298,
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".getfrontendurl()"
|
||||
},
|
||||
{
|
||||
"label": ".getStartUrl()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/zibal.service.ts",
|
||||
"source_location": "L211",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_zibal_service_zibalservice_getstarturl",
|
||||
"community": 298,
|
||||
"community_name": ".initiateOrderPayment",
|
||||
"norm_label": ".getstarturl()"
|
||||
},
|
||||
{
|
||||
"label": "GET()",
|
||||
"file_type": "code",
|
||||
@ -22329,94 +22329,6 @@
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "minlength"
|
||||
},
|
||||
{
|
||||
"label": "register.dto.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "register.dto.ts"
|
||||
},
|
||||
{
|
||||
"label": "ApiProperty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apiproperty",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "apiproperty"
|
||||
},
|
||||
{
|
||||
"label": "ApiPropertyOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "apipropertyoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsEmail",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isemail",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isemail"
|
||||
},
|
||||
{
|
||||
"label": "IsNotEmpty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isnotempty",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isnotempty"
|
||||
},
|
||||
{
|
||||
"label": "IsOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isoptional",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsString",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isstring",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isstring"
|
||||
},
|
||||
{
|
||||
"label": "MinLength",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_minlength",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "minlength"
|
||||
},
|
||||
{
|
||||
"label": "send-otp.dto.ts",
|
||||
"file_type": "code",
|
||||
@ -27022,26 +26934,92 @@
|
||||
"norm_label": "app.e2e-spec.ts"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/swagger",
|
||||
"label": "register.dto.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L30",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_dependencies_nestjs_swagger",
|
||||
"id": "backend_src_auth_dto_register_dto",
|
||||
"community": 185,
|
||||
"community_name": "@nestjs/swagger",
|
||||
"norm_label": "@nestjs/swagger"
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "register.dto.ts"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/swagger",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L30",
|
||||
"label": "ApiProperty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "nestjs_swagger",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apiproperty",
|
||||
"community": 185,
|
||||
"community_name": "@nestjs/swagger",
|
||||
"norm_label": "@nestjs/swagger"
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "apiproperty"
|
||||
},
|
||||
{
|
||||
"label": "ApiPropertyOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "apipropertyoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsEmail",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isemail",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isemail"
|
||||
},
|
||||
{
|
||||
"label": "IsNotEmpty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isnotempty",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isnotempty"
|
||||
},
|
||||
{
|
||||
"label": "IsOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isoptional",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsString",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isstring",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isstring"
|
||||
},
|
||||
{
|
||||
"label": "MinLength",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_minlength",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "minlength"
|
||||
},
|
||||
{
|
||||
"label": "seed-ui-texts.ts",
|
||||
@ -29579,26 +29557,26 @@
|
||||
"norm_label": "eslint-config-prettier"
|
||||
},
|
||||
{
|
||||
"label": "@eslint/eslintrc",
|
||||
"label": "helmet",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"source_location": "L38",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint_eslintrc",
|
||||
"id": "backend_package_dependencies_helmet",
|
||||
"community": 232,
|
||||
"community_name": "@eslint/eslintrc",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
"community_name": "helmet",
|
||||
"norm_label": "helmet"
|
||||
},
|
||||
{
|
||||
"label": "@eslint/eslintrc",
|
||||
"label": "helmet",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"source_location": "L38",
|
||||
"_origin": "ast",
|
||||
"id": "eslint_eslintrc",
|
||||
"id": "helmet",
|
||||
"community": 232,
|
||||
"community_name": "@eslint/eslintrc",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
"community_name": "helmet",
|
||||
"norm_label": "helmet"
|
||||
},
|
||||
{
|
||||
"label": "tailwindcss",
|
||||
@ -34236,6 +34214,28 @@
|
||||
"community_name": "adminRoutes.tsx",
|
||||
"norm_label": "lazywithretry.ts"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"community": 320,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 320,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "catalog/page.tsx",
|
||||
"file_type": "code",
|
||||
@ -39703,17 +39703,6 @@
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "compression"
|
||||
},
|
||||
{
|
||||
"label": "helmet",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L38",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_dependencies_helmet",
|
||||
"community": 63,
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "helmet"
|
||||
},
|
||||
{
|
||||
"label": "ioredis",
|
||||
"file_type": "code",
|
||||
@ -39758,6 +39747,17 @@
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "@nestjs/platform-express"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/swagger",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L30",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_dependencies_nestjs_swagger",
|
||||
"community": 63,
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "@nestjs/swagger"
|
||||
},
|
||||
{
|
||||
"label": "passport-jwt",
|
||||
"file_type": "code",
|
||||
@ -39824,17 +39824,6 @@
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "compression"
|
||||
},
|
||||
{
|
||||
"label": "helmet",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L38",
|
||||
"_origin": "ast",
|
||||
"id": "helmet",
|
||||
"community": 63,
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "helmet"
|
||||
},
|
||||
{
|
||||
"label": "ioredis",
|
||||
"file_type": "concept",
|
||||
@ -39879,6 +39868,17 @@
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "@nestjs/platform-express"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/swagger",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L30",
|
||||
"_origin": "ast",
|
||||
"id": "nestjs_swagger",
|
||||
"community": 63,
|
||||
"community_name": "dependencies",
|
||||
"norm_label": "@nestjs/swagger"
|
||||
},
|
||||
{
|
||||
"label": "passport-jwt",
|
||||
"file_type": "concept",
|
||||
@ -44808,15 +44808,15 @@
|
||||
"norm_label": "devdependencies"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"label": "@eslint/eslintrc",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"source_location": "L48",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"id": "backend_package_devdependencies_eslint_eslintrc",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint"
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
@ -44851,17 +44851,6 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "@types/node",
|
||||
"file_type": "concept",
|
||||
@ -44884,6 +44873,17 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "@eslint/eslintrc",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"_origin": "ast",
|
||||
"id": "eslint_eslintrc",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
"file_type": "concept",
|
||||
@ -49890,7 +49890,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/AuthModal.tsx",
|
||||
"source_location": "L441",
|
||||
"source_location": "L442",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_authmodal_authmodal",
|
||||
@ -49926,7 +49926,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/AuthModal.tsx",
|
||||
"source_location": "L759",
|
||||
"source_location": "L760",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_authmodal_authmodal",
|
||||
@ -133200,5 +133200,5 @@
|
||||
}
|
||||
],
|
||||
"hyperedges": [],
|
||||
"built_at_commit": "9294e897124e68262b098d4536df989db5769f22"
|
||||
"built_at_commit": "6e23269a5c23f29938cec91683f22a16c26991c6"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-08-26)
|
||||
|
||||
## Corpus Check
|
||||
- 587 files · ~1,333,485 words
|
||||
- 587 files · ~1,333,603 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4110 nodes · 7412 edges · 323 communities (206 shown, 117 thin omitted)
|
||||
- 4110 nodes · 7412 edges · 322 communities (205 shown, 117 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 281 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `6e23269a`
|
||||
- Built from commit: `63e10449`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -199,7 +199,7 @@
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- RedisService
|
||||
- RegisterDto
|
||||
- @eslint/eslintrc
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -316,8 +316,7 @@
|
||||
- prettier
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @types/react-dom
|
||||
- eslint
|
||||
- eslint-config-next
|
||||
- catalog/page.tsx
|
||||
- eslint-plugin-react-refresh
|
||||
|
||||
@ -346,11 +345,11 @@
|
||||
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
|
||||
|
||||
## Import Cycles
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
|
||||
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
|
||||
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
|
||||
|
||||
## Communities (323 total, 117 thin omitted)
|
||||
## Communities (322 total, 117 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
@ -390,7 +389,7 @@ Nodes (13): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty,
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, @eslint/eslintrc, @types/bcryptjs, @types/node, typescript, @types/node, typescript, @eslint/eslintrc (+1 more)
|
||||
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||
|
||||
### Community 10 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
@ -554,7 +553,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
||||
|
||||
### Community 50 - "devDependencies"
|
||||
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 51 - "BlogsController"
|
||||
Cohesion: 0.14
|
||||
@ -773,12 +772,12 @@ 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 107 - "PaginationDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (23): BlogFilterDto, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional, IsString (+15 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (24): CategoryQuery, BlogFilterDto, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional (+16 more)
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.08
|
||||
Nodes (17): CategoryQuery, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto (+9 more)
|
||||
Nodes (16): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto, MenuType (+8 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -857,8 +856,8 @@ Cohesion: 0.20
|
||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||
|
||||
### Community 129 - "auth.service.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+17 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (33): AdminLoginInput, LoginInput, RegisterInput, AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString (+25 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
@ -1044,10 +1043,6 @@ Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO &
|
||||
Cohesion: 0.08
|
||||
Nodes (12): ApiExcludeController, AppModule, Module, MetricsController, Controller, Get, Res, RedisModule (+4 more)
|
||||
|
||||
### Community 185 - "RegisterDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
|
||||
|
||||
2
graphify-out/cache/stat-index.json
vendored
2
graphify-out/cache/stat-index.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -393,6 +393,19 @@
|
||||
"community_name": "UsersService",
|
||||
"norm_label": "usersservice"
|
||||
},
|
||||
{
|
||||
"label": "CategoryQuery",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.service.ts",
|
||||
"source_location": "L5",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_service_categoryquery",
|
||||
"community": 107,
|
||||
"community_name": "PaginationDto",
|
||||
"norm_label": "categoryquery"
|
||||
},
|
||||
{
|
||||
"label": "BlogFilterDto",
|
||||
"file_type": "code",
|
||||
@ -471,19 +484,6 @@
|
||||
"community_name": "PaginationDto",
|
||||
"norm_label": "wikiservice"
|
||||
},
|
||||
{
|
||||
"label": "CategoryQuery",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.service.ts",
|
||||
"source_location": "L5",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_service_categoryquery",
|
||||
"community": 108,
|
||||
"community_name": "PrismaService",
|
||||
"norm_label": "categoryquery"
|
||||
},
|
||||
{
|
||||
"label": "MeliPayamakPattern",
|
||||
"file_type": "code",
|
||||
@ -1108,6 +1108,19 @@
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "logindto"
|
||||
},
|
||||
{
|
||||
"label": "RegisterDto",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L10",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_registerdto",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "registerdto"
|
||||
},
|
||||
{
|
||||
"label": "SendOtpDto",
|
||||
"file_type": "code",
|
||||
@ -2005,19 +2018,6 @@
|
||||
"community_name": "RedisService",
|
||||
"norm_label": "redisservice"
|
||||
},
|
||||
{
|
||||
"label": "RegisterDto",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L10",
|
||||
"_callable": true,
|
||||
"_callable_class": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_registerdto",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "registerdto"
|
||||
},
|
||||
{
|
||||
"label": "CreateBlogDto",
|
||||
"file_type": "code",
|
||||
@ -18919,6 +18919,28 @@
|
||||
"community_name": "PaginationDto",
|
||||
"norm_label": "admin/blogs.service.ts"
|
||||
},
|
||||
{
|
||||
"label": "categories.controller.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.controller.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_controller",
|
||||
"community": 107,
|
||||
"community_name": "PaginationDto",
|
||||
"norm_label": "categories.controller.ts"
|
||||
},
|
||||
{
|
||||
"label": "categories.service.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.service.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_service",
|
||||
"community": 107,
|
||||
"community_name": "PaginationDto",
|
||||
"norm_label": "categories.service.ts"
|
||||
},
|
||||
{
|
||||
"label": "blogs/blogs.controller.ts",
|
||||
"file_type": "code",
|
||||
@ -19184,15 +19206,15 @@
|
||||
"norm_label": "admin.service.spec.ts"
|
||||
},
|
||||
{
|
||||
"label": "categories.service.ts",
|
||||
"label": "media.service.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.service.ts",
|
||||
"source_file": "backend/src/admin/media.service.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_service",
|
||||
"id": "backend_src_admin_media_service",
|
||||
"community": 108,
|
||||
"community_name": "PrismaService",
|
||||
"norm_label": "categories.service.ts"
|
||||
"norm_label": "media.service.ts"
|
||||
},
|
||||
{
|
||||
"label": "auth.service.spec.ts",
|
||||
@ -22329,6 +22351,94 @@
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "minlength"
|
||||
},
|
||||
{
|
||||
"label": "register.dto.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "register.dto.ts"
|
||||
},
|
||||
{
|
||||
"label": "ApiProperty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apiproperty",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "apiproperty"
|
||||
},
|
||||
{
|
||||
"label": "ApiPropertyOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "apipropertyoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsEmail",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isemail",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isemail"
|
||||
},
|
||||
{
|
||||
"label": "IsNotEmpty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isnotempty",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isnotempty"
|
||||
},
|
||||
{
|
||||
"label": "IsOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isoptional",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsString",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isstring",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "isstring"
|
||||
},
|
||||
{
|
||||
"label": "MinLength",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_minlength",
|
||||
"community": 129,
|
||||
"community_name": "auth.service.ts",
|
||||
"norm_label": "minlength"
|
||||
},
|
||||
{
|
||||
"label": "send-otp.dto.ts",
|
||||
"file_type": "code",
|
||||
@ -26296,15 +26406,15 @@
|
||||
"norm_label": "@nestjs/jwt"
|
||||
},
|
||||
{
|
||||
"label": "categories.controller.ts",
|
||||
"label": "media.controller.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/categories.controller.ts",
|
||||
"source_file": "backend/src/admin/media.controller.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_categories_controller",
|
||||
"id": "backend_src_admin_media_controller",
|
||||
"community": 18,
|
||||
"community_name": "JwtAuthGuard",
|
||||
"norm_label": "categories.controller.ts"
|
||||
"norm_label": "media.controller.ts"
|
||||
},
|
||||
{
|
||||
"label": "ssl.controller.ts",
|
||||
@ -26934,92 +27044,26 @@
|
||||
"norm_label": "app.e2e-spec.ts"
|
||||
},
|
||||
{
|
||||
"label": "register.dto.ts",
|
||||
"label": "@eslint/eslintrc",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/auth/dto/register.dto.ts",
|
||||
"source_location": "L1",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto",
|
||||
"id": "backend_package_devdependencies_eslint_eslintrc",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "register.dto.ts"
|
||||
"community_name": "@eslint/eslintrc",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
},
|
||||
{
|
||||
"label": "ApiProperty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"label": "@eslint/eslintrc",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apiproperty",
|
||||
"id": "eslint_eslintrc",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "apiproperty"
|
||||
},
|
||||
{
|
||||
"label": "ApiPropertyOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "apipropertyoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsEmail",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isemail",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isemail"
|
||||
},
|
||||
{
|
||||
"label": "IsNotEmpty",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isnotempty",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isnotempty"
|
||||
},
|
||||
{
|
||||
"label": "IsOptional",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isoptional",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isoptional"
|
||||
},
|
||||
{
|
||||
"label": "IsString",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_isstring",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "isstring"
|
||||
},
|
||||
{
|
||||
"label": "MinLength",
|
||||
"file_type": "code",
|
||||
"source_file": "",
|
||||
"source_location": "",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_auth_dto_register_dto_ts_minlength",
|
||||
"community": 185,
|
||||
"community_name": "RegisterDto",
|
||||
"norm_label": "minlength"
|
||||
"community_name": "@eslint/eslintrc",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
},
|
||||
{
|
||||
"label": "seed-ui-texts.ts",
|
||||
@ -28588,28 +28632,6 @@
|
||||
"community_name": "admin.module.ts",
|
||||
"norm_label": "module"
|
||||
},
|
||||
{
|
||||
"label": "media.controller.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/media.controller.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_media_controller",
|
||||
"community": 21,
|
||||
"community_name": "admin.module.ts",
|
||||
"norm_label": "media.controller.ts"
|
||||
},
|
||||
{
|
||||
"label": "media.service.ts",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/admin/media.service.ts",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_admin_media_service",
|
||||
"community": 21,
|
||||
"community_name": "admin.module.ts",
|
||||
"norm_label": "media.service.ts"
|
||||
},
|
||||
{
|
||||
"label": "reports.controller.ts",
|
||||
"file_type": "code",
|
||||
@ -33995,26 +34017,26 @@
|
||||
"norm_label": "maskablefield.tsx"
|
||||
},
|
||||
{
|
||||
"label": "@types/react-dom",
|
||||
"label": "eslint-config-next",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/application/package.json",
|
||||
"source_location": "L27",
|
||||
"source_location": "L30",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_application_package_devdependencies_types_react_dom",
|
||||
"id": "frontend_application_package_devdependencies_eslint_config_next",
|
||||
"community": 319,
|
||||
"community_name": "@types/react-dom",
|
||||
"norm_label": "@types/react-dom"
|
||||
"community_name": "eslint-config-next",
|
||||
"norm_label": "eslint-config-next"
|
||||
},
|
||||
{
|
||||
"label": "@types/react-dom",
|
||||
"label": "eslint-config-next",
|
||||
"file_type": "concept",
|
||||
"source_file": "frontend/application/package.json",
|
||||
"source_location": "L27",
|
||||
"source_location": "L30",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_application_package_json_types_react_dom",
|
||||
"id": "eslint_config_next",
|
||||
"community": 319,
|
||||
"community_name": "@types/react-dom",
|
||||
"norm_label": "@types/react-dom"
|
||||
"community_name": "eslint-config-next",
|
||||
"norm_label": "eslint-config-next"
|
||||
},
|
||||
{
|
||||
"label": "App.tsx",
|
||||
@ -34214,28 +34236,6 @@
|
||||
"community_name": "adminRoutes.tsx",
|
||||
"norm_label": "lazywithretry.ts"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"community": 320,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 320,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "catalog/page.tsx",
|
||||
"file_type": "code",
|
||||
@ -37591,17 +37591,6 @@
|
||||
"community_name": "devDependencies",
|
||||
"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": 50,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint-config-next"
|
||||
},
|
||||
{
|
||||
"label": "jsdom",
|
||||
"file_type": "code",
|
||||
@ -37646,6 +37635,17 @@
|
||||
"community_name": "devDependencies",
|
||||
"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": 50,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@types/react-dom"
|
||||
},
|
||||
{
|
||||
"label": "@vitejs/plugin-react",
|
||||
"file_type": "code",
|
||||
@ -37657,17 +37657,6 @@
|
||||
"community_name": "devDependencies",
|
||||
"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": 50,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint-config-next"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
@ -37712,6 +37701,17 @@
|
||||
"community_name": "devDependencies",
|
||||
"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": 50,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@types/react-dom"
|
||||
},
|
||||
{
|
||||
"label": "@vitejs/plugin-react",
|
||||
"file_type": "concept",
|
||||
@ -44808,15 +44808,15 @@
|
||||
"norm_label": "devdependencies"
|
||||
},
|
||||
{
|
||||
"label": "@eslint/eslintrc",
|
||||
"label": "eslint",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint_eslintrc",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
@ -44851,6 +44851,17 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "@types/node",
|
||||
"file_type": "concept",
|
||||
@ -44873,17 +44884,6 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "@eslint/eslintrc",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L48",
|
||||
"_origin": "ast",
|
||||
"id": "eslint_eslintrc",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@eslint/eslintrc"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
"file_type": "concept",
|
||||
@ -50358,7 +50358,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/Header.tsx",
|
||||
"source_location": "L259",
|
||||
"source_location": "L261",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_header_header",
|
||||
@ -133200,5 +133200,5 @@
|
||||
}
|
||||
],
|
||||
"hyperedges": [],
|
||||
"built_at_commit": "6e23269a5c23f29938cec91683f22a16c26991c6"
|
||||
"built_at_commit": "63e10449ad26c4468ba61be6d6202ac36477191f"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user