From f0989e03e30f92e56bbca1f9e919388e77da0822 Mon Sep 17 00:00:00 2001 From: adonis Date: Wed, 21 Oct 2026 11:13:32 +0330 Subject: [PATCH] added chart plugin in khanegi superadmin --- graphify-out/.graphify_labels.json | 11 +- graphify-out/.graphify_labels.json.sig | 2 +- graphify-out/2026-10-21/.graphify_labels.json | 11 + graphify-out/2026-10-21/GRAPH_REPORT.md | 80 + graphify-out/2026-10-21/graph.json | 1523 +++++++++++++++++ graphify-out/2026-10-21/manifest.json | 962 +++++++++++ graphify-out/GRAPH_REPORT.md | 71 +- graphify-out/cache/stat-index.json | 2 +- graphify-out/graph.html | 8 +- graphify-out/graph.json | 934 ++++++++-- graphify-out/manifest.json | 48 +- 11 files changed, 3460 insertions(+), 192 deletions(-) create mode 100644 graphify-out/2026-10-21/.graphify_labels.json create mode 100644 graphify-out/2026-10-21/GRAPH_REPORT.md create mode 100644 graphify-out/2026-10-21/graph.json create mode 100644 graphify-out/2026-10-21/manifest.json diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index b901415..5c53002 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -2,10 +2,9 @@ "0": "deploy-setting-catalog-keys.ts", "1": "get-user.service.ts", "2": "GetUserService", - "3": "mergeKhanegiLayoutVariants", - "4": ".resolveByHost", - "5": "khanegi-layout-variants.ts", - "6": "createDefaultKhanegiLayoutVariants", - "7": ".buildSubscriptionAlerts", - "8": ".normalizeKhanegiAppNode" + "3": "khanegi-layout-variants.ts", + "4": "sync-superadmin-setting-template.mjs", + "5": "plugin-catalog.seed.ts", + "6": "applyCanEdit", + "7": "jsonOut" } diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index ac185f1..8bc93dd 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "f48f5874db6771b2", "1": "aa286b9e540af232", "2": "916631bde7b95f5b", "3": "85ef40094261b908", "4": "9b6412b987fc33aa", "5": "14fba649fa4f239d", "6": "8faa2723be1c5206", "7": "dd6ed4bd5e3ce0bd", "8": "f33424777c65cb7d"} \ No newline at end of file +{"0": "f48f5874db6771b2", "1": "aa286b9e540af232", "2": "34b4e8f042defe89", "3": "6b88523390fd9244", "4": "5cdc5483b3e40a59", "5": "019fc0bc4509f0e5", "6": "5aa66eb1b3af6069", "7": "041381ea7cd48698"} \ No newline at end of file diff --git a/graphify-out/2026-10-21/.graphify_labels.json b/graphify-out/2026-10-21/.graphify_labels.json new file mode 100644 index 0000000..b901415 --- /dev/null +++ b/graphify-out/2026-10-21/.graphify_labels.json @@ -0,0 +1,11 @@ +{ + "0": "deploy-setting-catalog-keys.ts", + "1": "get-user.service.ts", + "2": "GetUserService", + "3": "mergeKhanegiLayoutVariants", + "4": ".resolveByHost", + "5": "khanegi-layout-variants.ts", + "6": "createDefaultKhanegiLayoutVariants", + "7": ".buildSubscriptionAlerts", + "8": ".normalizeKhanegiAppNode" +} diff --git a/graphify-out/2026-10-21/GRAPH_REPORT.md b/graphify-out/2026-10-21/GRAPH_REPORT.md new file mode 100644 index 0000000..fb181dd --- /dev/null +++ b/graphify-out/2026-10-21/GRAPH_REPORT.md @@ -0,0 +1,80 @@ +# Graph Report - controlpanel_server (2026-10-13) + +## Corpus Check +- 160 files · ~67,810 words +- Verdict: corpus is large enough that graph structure adds value. +- Unclassified: 9 file(s) not represented in the graph (top: (none) 3, .example 2, .toml 2) + +## Summary +- 53 nodes · 77 edges · 9 communities (4 shown, 5 thin omitted) +- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `421415fc` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- deploy-setting-catalog-keys.ts +- get-user.service.ts +- GetUserService +- mergeKhanegiLayoutVariants +- khanegi-layout-variants.ts +- createDefaultKhanegiLayoutVariants + +## God Nodes (most connected - your core abstractions) +1. `GetUserService` - 15 edges +2. `mergeKhanegiLayoutVariants()` - 6 edges +3. `mergeLayoutThemes()` - 5 edges +4. `mergeLayoutElement()` - 5 edges +5. `isRecord()` - 4 edges +6. `createDefaultKhanegiLayoutVariants()` - 4 edges +7. `applyKhanegiLayoutVariants()` - 4 edges +8. `isLayoutVariantId()` - 3 edges +9. `defaultThemes()` - 3 edges +10. `element()` - 3 edges + +## Surprising Connections (you probably didn't know these) +- `mergeLayoutThemes()` --calls--> `defaultThemes()` [EXTRACTED] + src/get-user/khanegi-layout-variants.ts → src/get-user/khanegi-layout-variants.ts _Bridges community 6 → community 3_ + +## Import Cycles +- None detected. + +## Communities (9 total, 5 thin omitted) + +### Community 1 - "get-user.service.ts" +Cohesion: 0.10 +Nodes (20): ref_nestjs_common, src_auth_tenant_host_util, src_auth_tenant_host_util_findtenantforhost, src_auth_tenant_host_util_normalizetenanthost, src_common_iran_time_util, src_common_iran_time_util_irandaysuntil, SubscriptionAlertItem, SubscriptionAlerts (+12 more) + +### Community 3 - "mergeKhanegiLayoutVariants" +Cohesion: 0.53 +Nodes (6): applyKhanegiLayoutVariants(), isLayoutVariantId(), isRecord(), mergeKhanegiLayoutVariants(), mergeLayoutElement(), mergeLayoutThemes() + +### Community 5 - "khanegi-layout-variants.ts" +Cohesion: 0.40 +Nodes (4): KhanegiLayoutVariants, LAYOUT_VARIANT_ID, LayoutElementConfig, LayoutThemeDef + +### Community 6 - "createDefaultKhanegiLayoutVariants" +Cohesion: 0.67 +Nodes (3): createDefaultKhanegiLayoutVariants(), defaultThemes(), element() + +## Knowledge Gaps +- **10 isolated node(s):** `UiSetting`, `SubscriptionAlertStatus`, `SubscriptionAlertItem`, `SubscriptionAlerts`, `LAYOUT_VARIANT_ID` (+5 more) + These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 28 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) +- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `GetUserService` connect `GetUserService` to `.normalizeKhanegiAppNode`, `get-user.service.ts`, `.resolveByHost`, `.buildSubscriptionAlerts`?** + _High betweenness centrality (0.395) - this node is a cross-community bridge._ +- **Why does `applyKhanegiLayoutVariants()` connect `mergeKhanegiLayoutVariants` to `.normalizeKhanegiAppNode`, `get-user.service.ts`, `khanegi-layout-variants.ts`?** + _High betweenness centrality (0.038) - this node is a cross-community bridge._ +- **Why does `mergeKhanegiLayoutVariants()` connect `mergeKhanegiLayoutVariants` to `khanegi-layout-variants.ts`, `createDefaultKhanegiLayoutVariants`?** + _High betweenness centrality (0.005) - this node is a cross-community bridge._ +- **What connects `UiSetting`, `SubscriptionAlertStatus`, `SubscriptionAlertItem` to the rest of the system?** + _10 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `get-user.service.ts` be split into smaller, more focused modules?** + _Cohesion score 0.09523809523809523 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/2026-10-21/graph.json b/graphify-out/2026-10-21/graph.json new file mode 100644 index 0000000..f5bad06 --- /dev/null +++ b/graphify-out/2026-10-21/graph.json @@ -0,0 +1,1523 @@ +{ + "directed": false, + "multigraph": false, + "graph": {}, + "nodes": [ + { + "id": "src_get_user_get_user_service_subscriptionalertitem", + "label": "SubscriptionAlertItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "get-user.service.ts", + "file_type": "code", + "norm_label": "subscriptionalertitem", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L18" + }, + { + "id": "src_get_user_get_user_service_subscriptionalerts", + "label": "SubscriptionAlerts", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "get-user.service.ts", + "file_type": "code", + "norm_label": "subscriptionalerts", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L26" + }, + { + "id": "src_get_user_get_user_service_subscriptionalertstatus", + "label": "SubscriptionAlertStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "get-user.service.ts", + "file_type": "code", + "norm_label": "subscriptionalertstatus", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L16" + }, + { + "id": "src_get_user_get_user_service_uisetting", + "label": "UiSetting", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "get-user.service.ts", + "file_type": "code", + "norm_label": "uisetting", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L14" + }, + { + "id": "src_get_user_get_user_service_getuserservice", + "label": "GetUserService", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": "getuserservice", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L33" + }, + { + "id": "src_get_user_khanegi_layout_variants_khanegilayoutvariants", + "label": "KhanegiLayoutVariants", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "khanegi-layout-variants.ts", + "file_type": "code", + "norm_label": "khanegilayoutvariants", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L20" + }, + { + "id": "src_get_user_khanegi_layout_variants_layoutelementconfig", + "label": "LayoutElementConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "khanegi-layout-variants.ts", + "file_type": "code", + "norm_label": "layoutelementconfig", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L14" + }, + { + "id": "src_get_user_khanegi_layout_variants_layoutthemedef", + "label": "LayoutThemeDef", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "khanegi-layout-variants.ts", + "file_type": "code", + "norm_label": "layoutthemedef", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L9" + }, + { + "id": "src_get_user_get_user_service_getuserservice_constructor", + "label": ".constructor()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": ".constructor()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L34" + }, + { + "id": "src_get_user_get_user_service_getuserservice_guessimagemime", + "label": ".guessImageMime()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": ".guessimagemime()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L314" + }, + { + "id": "src_get_user_get_user_service_getuserservice_resolvemanifestbyhost", + "label": ".resolveManifestByHost()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": ".resolvemanifestbyhost()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L259" + }, + { + "id": "src_get_user_get_user_service_getuserservice_toabsoluteiconurl", + "label": ".toAbsoluteIconUrl()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": ".toabsoluteiconurl()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L296" + }, + { + "id": "src_get_user_khanegi_layout_variants_applykhanegilayoutvariants", + "label": "applyKhanegiLayoutVariants()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "applykhanegilayoutvariants()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L128" + }, + { + "id": "src_get_user_khanegi_layout_variants_islayoutvariantid", + "label": "isLayoutVariantId()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "islayoutvariantid()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L33" + }, + { + "id": "src_get_user_khanegi_layout_variants_isrecord", + "label": "isRecord()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "isrecord()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L29" + }, + { + "id": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "label": "mergeKhanegiLayoutVariants()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "mergekhanegilayoutvariants()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L98" + }, + { + "id": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "label": "mergeLayoutElement()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "mergelayoutelement()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L85" + }, + { + "id": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "label": "mergeLayoutThemes()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "mergeKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "mergelayoutthemes()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L48" + }, + { + "id": "src_get_user_get_user_service_getuserservice_buildhamkaruisettings", + "label": ".buildHamkarUiSettings()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": ".resolveByHost", + "file_type": "code", + "norm_label": ".buildhamkaruisettings()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L377" + }, + { + "id": "src_get_user_get_user_service_getuserservice_findtenantforhost", + "label": ".findTenantForHost()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": ".resolveByHost", + "file_type": "code", + "norm_label": ".findtenantforhost()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L393" + }, + { + "id": "src_get_user_get_user_service_getuserservice_ispluginstoreenabled", + "label": ".isPluginStoreEnabled()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": ".resolveByHost", + "file_type": "code", + "norm_label": ".ispluginstoreenabled()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L139" + }, + { + "id": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "label": ".resolveByHost()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": ".resolveByHost", + "file_type": "code", + "norm_label": ".resolvebyhost()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L39" + }, + { + "id": "src_get_user_get_user_service_getuserservice_stripkhanegisameta", + "label": ".stripKhanegiSaMeta()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": ".resolveByHost", + "file_type": "code", + "norm_label": ".stripkhanegisameta()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L322" + }, + { + "id": "src_get_user_khanegi_layout_variants_createdefaultkhanegilayoutvariants", + "label": "createDefaultKhanegiLayoutVariants()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "createDefaultKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "createdefaultkhanegilayoutvariants()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L69" + }, + { + "id": "src_get_user_khanegi_layout_variants_defaultthemes", + "label": "defaultThemes()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "createDefaultKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "defaultthemes()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L37" + }, + { + "id": "src_get_user_khanegi_layout_variants_element", + "label": "element()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "createDefaultKhanegiLayoutVariants", + "file_type": "code", + "norm_label": "element()", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L44" + }, + { + "id": "src_get_user_get_user_service_getuserservice_buildsubscriptionalerts", + "label": ".buildSubscriptionAlerts()", + "_callable": true, + "_origin": "ast", + "community": 7, + "community_name": ".buildSubscriptionAlerts", + "file_type": "code", + "norm_label": ".buildsubscriptionalerts()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L151" + }, + { + "id": "src_get_user_get_user_service_getuserservice_toalertitem", + "label": ".toAlertItem()", + "_callable": true, + "_origin": "ast", + "community": 7, + "community_name": ".buildSubscriptionAlerts", + "file_type": "code", + "norm_label": ".toalertitem()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L228" + }, + { + "id": "src_get_user_get_user_service_getuserservice_normalizekhanegiappnode", + "label": ".normalizeKhanegiAppNode()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": ".normalizeKhanegiAppNode", + "file_type": "code", + "norm_label": ".normalizekhanegiappnode()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L340" + }, + { + "id": "src_get_user_get_user_service_getuserservice_normalizekhanegiuiconfig", + "label": ".normalizeKhanegiUiConfig()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": ".normalizeKhanegiAppNode", + "file_type": "code", + "norm_label": ".normalizekhanegiuiconfig()", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L332" + }, + { + "id": "src_program_settings_deploy_setting_catalog_keys", + "label": "deploy-setting-catalog-keys.ts", + "_origin": "ast", + "community": 0, + "community_name": "deploy-setting-catalog-keys.ts", + "file_type": "code", + "norm_label": "deploy-setting-catalog-keys.ts", + "source_file": "src/program-settings/deploy-setting-catalog-keys.ts", + "source_location": "L1" + }, + { + "id": "src_program_settings_deploy_setting_catalog_keys_deploy_setting_catalog_keys", + "label": "DEPLOY_SETTING_CATALOG_KEYS", + "_origin": "ast", + "community": 0, + "community_name": "deploy-setting-catalog-keys.ts", + "file_type": "code", + "norm_label": "deploy_setting_catalog_keys", + "source_file": "src/program-settings/deploy-setting-catalog-keys.ts", + "source_location": "L5" + }, + { + "id": "src_program_settings_deploy_setting_catalog_keys_deploy_setting_editable_keys", + "label": "DEPLOY_SETTING_EDITABLE_KEYS", + "_origin": "ast", + "community": 0, + "community_name": "deploy-setting-catalog-keys.ts", + "file_type": "code", + "norm_label": "deploy_setting_editable_keys", + "source_file": "src/program-settings/deploy-setting-catalog-keys.ts", + "source_location": "L28" + }, + { + "id": "src_get_user_get_user_service", + "label": "get-user.service.ts", + "_origin": "ast", + "community": 1, + "community_name": "get-user.service.ts", + "file_type": "code", + "norm_label": "get-user.service.ts", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L1" + }, + { + "id": "injectable", + "label": "Injectable", + "_origin": "ast", + "community": 2, + "community_name": "GetUserService", + "file_type": "code", + "norm_label": "injectable", + "source_file": "", + "source_location": "" + }, + { + "id": "src_get_user_khanegi_layout_variants", + "label": "khanegi-layout-variants.ts", + "_origin": "ast", + "community": 5, + "community_name": "khanegi-layout-variants.ts", + "file_type": "code", + "norm_label": "khanegi-layout-variants.ts", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L1" + }, + { + "id": "src_get_user_khanegi_layout_variants_layout_variant_id", + "label": "LAYOUT_VARIANT_ID", + "_origin": "ast", + "community": 5, + "community_name": "khanegi-layout-variants.ts", + "file_type": "code", + "norm_label": "layout_variant_id", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L7" + }, + { + "id": "ref_nestjs_common", + "label": "ref_nestjs_common", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "ref_nestjs_common", + "source_file": "", + "type": "external" + }, + { + "id": "src_auth_tenant_host_util", + "label": "src_auth_tenant_host_util", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_auth_tenant_host_util", + "source_file": "", + "type": "external" + }, + { + "id": "src_auth_tenant_host_util_findtenantforhost", + "label": "src_auth_tenant_host_util_findtenantforhost", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_auth_tenant_host_util_findtenantforhost", + "source_file": "", + "type": "external" + }, + { + "id": "src_auth_tenant_host_util_normalizetenanthost", + "label": "src_auth_tenant_host_util_normalizetenanthost", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_auth_tenant_host_util_normalizetenanthost", + "source_file": "", + "type": "external" + }, + { + "id": "src_common_iran_time_util", + "label": "src_common_iran_time_util", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_common_iran_time_util", + "source_file": "", + "type": "external" + }, + { + "id": "src_common_iran_time_util_irandaysuntil", + "label": "src_common_iran_time_util_irandaysuntil", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_common_iran_time_util_irandaysuntil", + "source_file": "", + "type": "external" + }, + { + "id": "src_get_user_khanegi_nav_sample", + "label": "src_get_user_khanegi_nav_sample", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_get_user_khanegi_nav_sample", + "source_file": "", + "type": "external" + }, + { + "id": "src_get_user_khanegi_nav_sample_applykhaneginavsample", + "label": "src_get_user_khanegi_nav_sample_applykhaneginavsample", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_get_user_khanegi_nav_sample_applykhaneginavsample", + "source_file": "", + "type": "external" + }, + { + "id": "src_notifications_runtime_settings_service", + "label": "src_notifications_runtime_settings_service", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_notifications_runtime_settings_service", + "source_file": "", + "type": "external" + }, + { + "id": "src_notifications_runtime_settings_service_runtimesettingsservice", + "label": "src_notifications_runtime_settings_service_runtimesettingsservice", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_notifications_runtime_settings_service_runtimesettingsservice", + "source_file": "", + "type": "external" + }, + { + "id": "src_prisma_prisma_service", + "label": "src_prisma_prisma_service", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_prisma_prisma_service", + "source_file": "", + "type": "external" + }, + { + "id": "src_prisma_prisma_service_prismaservice", + "label": "src_prisma_prisma_service_prismaservice", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_prisma_prisma_service_prismaservice", + "source_file": "", + "type": "external" + }, + { + "id": "src_program_settings_runtime_setting_keys", + "label": "src_program_settings_runtime_setting_keys", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_program_settings_runtime_setting_keys", + "source_file": "", + "type": "external" + }, + { + "id": "src_program_settings_runtime_setting_keys_plugin_store_setting_key", + "label": "src_program_settings_runtime_setting_keys_plugin_store_setting_key", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_program_settings_runtime_setting_keys_plugin_store_setting_key", + "source_file": "", + "type": "external" + }, + { + "id": "src_uploads_uploads_util", + "label": "src_uploads_uploads_util", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_uploads_uploads_util", + "source_file": "", + "type": "external" + }, + { + "id": "src_uploads_uploads_util_rewritelegacyuploadurl", + "label": "src_uploads_uploads_util_rewritelegacyuploadurl", + "community": 1, + "community_name": "get-user.service.ts", + "external": true, + "file_type": "concept", + "norm_label": "src_uploads_uploads_util_rewritelegacyuploadurl", + "source_file": "", + "type": "external" + } + ], + "links": [ + { + "source": "src_get_user_get_user_service_getuserservice_buildsubscriptionalerts", + "target": "src_get_user_get_user_service_getuserservice_toalertitem", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_normalizekhanegiappnode", + "target": "src_get_user_khanegi_layout_variants_applykhanegilayoutvariants", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L350", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_normalizekhanegiuiconfig", + "target": "src_get_user_get_user_service_getuserservice_normalizekhanegiappnode", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_normalizekhanegiuiconfig", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_stripkhanegisameta", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_ispluginstoreenabled", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_findtenantforhost", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_buildsubscriptionalerts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "target": "src_get_user_get_user_service_getuserservice_buildhamkaruisettings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvemanifestbyhost", + "target": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvemanifestbyhost", + "target": "src_get_user_get_user_service_getuserservice_toabsoluteiconurl", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L267", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice_resolvemanifestbyhost", + "target": "src_get_user_get_user_service_getuserservice_guessimagemime", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_applykhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L130", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_createdefaultkhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_defaultthemes", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_createdefaultkhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_element", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_isrecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "target": "src_get_user_khanegi_layout_variants_createdefaultkhanegilayoutvariants", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "target": "src_get_user_khanegi_layout_variants_element", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "target": "src_get_user_khanegi_layout_variants_isrecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "target": "src_get_user_khanegi_layout_variants_islayoutvariantid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "target": "src_get_user_khanegi_layout_variants_islayoutvariantid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "target": "src_get_user_khanegi_layout_variants_isrecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "target": "src_get_user_khanegi_layout_variants_defaultthemes", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "injectable", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_common_iran_time_util_irandaysuntil", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_prisma_prisma_service_prismaservice", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_khanegi_nav_sample_applykhaneginavsample", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_khanegi_layout_variants_applykhanegilayoutvariants", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_uploads_uploads_util_rewritelegacyuploadurl", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_program_settings_runtime_setting_keys_plugin_store_setting_key", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_notifications_runtime_settings_service_runtimesettingsservice", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_auth_tenant_host_util_findtenantforhost", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_auth_tenant_host_util_normalizetenanthost", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "ref_nestjs_common", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_common_iran_time_util", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_prisma_prisma_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_khanegi_nav_sample", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_khanegi_layout_variants", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_uploads_uploads_util", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_program_settings_runtime_setting_keys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_notifications_runtime_settings_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_auth_tenant_host_util", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_get_user_service_uisetting", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_get_user_service_subscriptionalertstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_get_user_service_subscriptionalertitem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_get_user_service_subscriptionalerts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service", + "target": "src_get_user_get_user_service_getuserservice", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_applykhanegilayoutvariants", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_layoutelementconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_khanegilayoutvariants", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_isrecord", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_islayoutvariantid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_defaultthemes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_element", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_mergelayoutthemes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_createdefaultkhanegilayoutvariants", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_layout_variant_id", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_mergelayoutelement", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_layoutthemedef", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_get_user_khanegi_layout_variants", + "target": "src_get_user_khanegi_layout_variants_mergekhanegilayoutvariants", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/khanegi-layout-variants.ts", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "src_program_settings_deploy_setting_catalog_keys", + "target": "src_program_settings_deploy_setting_catalog_keys_deploy_setting_editable_keys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/program-settings/deploy-setting-catalog-keys.ts", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "src_program_settings_deploy_setting_catalog_keys", + "target": "src_program_settings_deploy_setting_catalog_keys_deploy_setting_catalog_keys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/program-settings/deploy-setting-catalog-keys.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_ispluginstoreenabled", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L139", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_buildsubscriptionalerts", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_toalertitem", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L228", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_resolvemanifestbyhost", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L259", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_toabsoluteiconurl", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L296", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_guessimagemime", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L314", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_stripkhanegisameta", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L322", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_normalizekhanegiuiconfig", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L332", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_constructor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_normalizekhanegiappnode", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L340", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_buildhamkaruisettings", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L377", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_resolvebyhost", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "src_get_user_get_user_service_getuserservice", + "target": "src_get_user_get_user_service_getuserservice_findtenantforhost", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/get-user/get-user.service.ts", + "source_location": "L393", + "weight": 1.0 + } + ], + "hyperedges": [], + "built_at_commit": "421415fc30e6cb2dedf744b1574302261e21b7bf" +} \ No newline at end of file diff --git a/graphify-out/2026-10-21/manifest.json b/graphify-out/2026-10-21/manifest.json new file mode 100644 index 0000000..6d98b42 --- /dev/null +++ b/graphify-out/2026-10-21/manifest.json @@ -0,0 +1,962 @@ +{ + "deploy/ecosystem.config.cjs": { + "mtime": 1786352929.4852936, + "seen": 1791133976.7242782, + "ast_hash": "10c25b0909c8d6ab6251d83357d48a43", + "semantic_hash": "" + }, + "deploy/khanegi-sms-enable-remote.sh": { + "mtime": 1786352929.4853961, + "seen": 1791133976.7242827, + "ast_hash": "d790ac65204dfc5864184a605c846eac", + "semantic_hash": "" + }, + "deploy/khanegi-sms-import-one.sh": { + "mtime": 1786352929.4854975, + "seen": 1791133976.7242846, + "ast_hash": "d4ec0fc6ae00036ac8c89030007164f0", + "semantic_hash": "" + }, + "deploy/run-khanegi-sms-inventory.sh": { + "mtime": 1786352929.4857686, + "seen": 1791133976.7242856, + "ast_hash": "9364b0a5e0e1cd15f02ba6b0bc667d50", + "semantic_hash": "" + }, + "deploy/sync-replica-data.sh": { + "mtime": 1788879455.3665333, + "seen": 1791133976.7242866, + "ast_hash": "85392d739d29788527f50b0f17bf07ad", + "semantic_hash": "" + }, + "deploy/sync-replica-schema.sh": { + "mtime": 1787055322.4637306, + "seen": 1791133976.724287, + "ast_hash": "1af077a2248ee28056f0f72fd69fcf53", + "semantic_hash": "" + }, + "eslint.config.mjs": { + "mtime": 1786352929.4858541, + "seen": 1791133976.7242877, + "ast_hash": "d7647004fcd6fc51a724065fc878a559", + "semantic_hash": "" + }, + "nest-cli.json": { + "mtime": 1786352929.485933, + "seen": 1791133976.7242885, + "ast_hash": "b6c9c4b64b7092bea720263a47b574cf", + "semantic_hash": "" + }, + "package.json": { + "mtime": 1787844546.0921357, + "seen": 1791133976.7242892, + "ast_hash": "7538e329a01b88238e01d27bb74a8d82", + "semantic_hash": "" + }, + "prisma/backfill-app-version.js": { + "mtime": 1786352929.4881291, + "seen": 1791133976.7242901, + "ast_hash": "9d2cefe9722941c568818eb973ea38dc", + "semantic_hash": "" + }, + "prisma/backfill-appearance-from-registry.ts": { + "mtime": 1786352929.4882898, + "seen": 1791133976.7242908, + "ast_hash": "7d48fc3d8613a284c6196eed257e2f40", + "semantic_hash": "" + }, + "prisma/bulk-khanegi-modular-brand.ts": { + "mtime": 1786470929.6370435, + "seen": 1791133976.7242916, + "ast_hash": "a1697f2d8a668cc4305a949a8a835b22", + "semantic_hash": "" + }, + "prisma/bulk-khanegi-sms-defaults.ts": { + "mtime": 1786352929.4886072, + "seen": 1791133976.724292, + "ast_hash": "48e0739b3f983b8c3581f2cdaee0bf99", + "semantic_hash": "" + }, + "prisma/copy-sms-between-tenants.ts": { + "mtime": 1786352929.4888642, + "seen": 1791133976.7242928, + "ast_hash": "9b68dc066eea8f7710f05ab0f1ca9bdd", + "semantic_hash": "" + }, + "prisma/data/users.json": { + "mtime": 1786352929.4898038, + "seen": 1791133976.7242935, + "ast_hash": "04420d6a6acfa9b042157624adf61044", + "semantic_hash": "" + }, + "prisma/ensure-pilot-sms-tokens.ts": { + "mtime": 1786352929.4899447, + "seen": 1791133976.7242942, + "ast_hash": "bf65e0b46cc3636e4085e2ca02e386b7", + "semantic_hash": "" + }, + "prisma/import-sms-batch.ts": { + "mtime": 1786352929.4901161, + "seen": 1791133976.7242947, + "ast_hash": "8a5e17915b70cfafd5eb760a00e84fd7", + "semantic_hash": "" + }, + "prisma/import-sms-from-product.ts": { + "mtime": 1786352929.4903257, + "seen": 1791133976.7242954, + "ast_hash": "68ff697558dd1434668728c49a5a947d", + "semantic_hash": "" + }, + "prisma/import-users.ts": { + "mtime": 1791450551.8298612, + "seen": 1791907126.0669043, + "ast_hash": "89faf5b4ad4e282cb7d6265620c56348", + "semantic_hash": "" + }, + "prisma/inventory-khanegi-sms.ts": { + "mtime": 1786352929.4906397, + "seen": 1791133976.7242968, + "ast_hash": "999317e722a80b72ff1801058a4207df", + "semantic_hash": "" + }, + "prisma/khanegi-sms-targets.example.json": { + "mtime": 1786352929.490761, + "seen": 1791133976.7242975, + "ast_hash": "498756448f378207a4c400e141833949", + "semantic_hash": "" + }, + "prisma/khanegi-variant-locks.ts": { + "mtime": 1786470929.637339, + "seen": 1791133976.7242982, + "ast_hash": "dbea9f602463233281145b5b810718c0", + "semantic_hash": "" + }, + "prisma/lib/appearance-builders.ts": { + "mtime": 1786352929.4909744, + "seen": 1791133976.724299, + "ast_hash": "4a606ff7722ecf0029ed396c59eff48a", + "semantic_hash": "" + }, + "prisma/list-tenants.ts": { + "mtime": 1786352929.4910982, + "seen": 1791133976.7242997, + "ast_hash": "f1c6714ed67af16fb6660409a35e80e9", + "semantic_hash": "" + }, + "prisma/migrations/20260730180000_init_postgres/migration.sql": { + "mtime": 1786352929.4914, + "seen": 1791133976.7243009, + "ast_hash": "275efa650a270bad0e3a92e9b71921d5", + "semantic_hash": "" + }, + "prisma/migrations/20260806190000_multi_server_accounts/migration.sql": { + "mtime": 1786352929.4915934, + "seen": 1791133976.7243013, + "ast_hash": "fcbbedfc4408e49cee7d2d9f15deb620", + "semantic_hash": "" + }, + "prisma/migrations/20260808110000_support_subscriptions/migration.sql": { + "mtime": 1786352929.4918096, + "seen": 1791133976.724302, + "ast_hash": "8be18536c519b5749325cb921497919b", + "semantic_hash": "" + }, + "prisma/migrations/20260808140000_sms_auto_block_below/migration.sql": { + "mtime": 1786352929.49202, + "seen": 1791133976.7243025, + "ast_hash": "6cc8a653a35704ca39c65e335916e467", + "semantic_hash": "" + }, + "prisma/migrations/20260809120000_khanegi_ui_variant/migration.sql": { + "mtime": 1786352929.4922168, + "seen": 1791133976.7243032, + "ast_hash": "3dfdebc10c23fbe3f90c8fbb2dca275b", + "semantic_hash": "" + }, + "prisma/migrations/20260810150000_admin_permissions/migration.sql": { + "mtime": 1786377085.7571647, + "seen": 1791133976.7243042, + "ast_hash": "5469fe4f672274ecbdfe074061f281fe", + "semantic_hash": "" + }, + "prisma/migrations/20260811120000_server_access_blocked/migration.sql": { + "mtime": 1786470929.63757, + "seen": 1791133976.724305, + "ast_hash": "2080adc2aee237c12b06e9d39008899a", + "semantic_hash": "" + }, + "prisma/migrations/20260817120000_tenant_setting/migration.sql": { + "mtime": 1786965988.335908, + "seen": 1791133976.7243056, + "ast_hash": "e389362f92b0fc7966ebfe06b3fba292", + "semantic_hash": "" + }, + "prisma/migrations/20260817190000_settings_tables/migration.sql": { + "mtime": 1786984016.106289, + "seen": 1791133976.724306, + "ast_hash": "06dd42882c75732d55163ec7783d9372", + "semantic_hash": "" + }, + "prisma/migrations/20260908110000_plugin_store_catalog_tables/migration.sql": { + "mtime": 1788879455.2852135, + "seen": 1791133976.724307, + "ast_hash": "4c318ac97d208a60d8994f22dcfc95c9", + "semantic_hash": "" + }, + "prisma/migrations/20260908120000_plugin_store_images_receipt/migration.sql": { + "mtime": 1788860316.9214523, + "seen": 1791133976.7243078, + "ast_hash": "2c24139cbca1d6aa8ebf5cc14772544b", + "semantic_hash": "" + }, + "prisma/migrations/20260910120000_plugin_subscription_catalog_key/migration.sql": { + "mtime": 1789026291.061192, + "seen": 1791133976.7243085, + "ast_hash": "08d8653b5cc57d519883d13b68670a57", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260722125821_init/migration.sql": { + "mtime": 1786352929.4926655, + "seen": 1791133976.724309, + "ast_hash": "f372e809847596ce2fe1d9415bf3d498", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260722152640_add_app_ui_config/migration.sql": { + "mtime": 1786352929.492852, + "seen": 1791133976.7243094, + "ast_hash": "6f2798cd063294603bfc698df5f1d059", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260723073638_sms_settings_cache/migration.sql": { + "mtime": 1786352929.4930475, + "seen": 1791133976.7243102, + "ast_hash": "565ac7450b117a3bcd57234a7f114f1d", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260723143623_sms_accounts_owned/migration.sql": { + "mtime": 1786352929.4932685, + "seen": 1791133976.724311, + "ast_hash": "cf76c033f7d3efc9ba6d552782ec11eb", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260727120000_product_releases/migration.sql": { + "mtime": 1786352929.4934802, + "seen": 1791133976.7243116, + "ast_hash": "d4ec3980f695de7e8fa6685de0503811", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260727140000_tenant_app_version/migration.sql": { + "mtime": 1786352929.4937072, + "seen": 1791133976.7243123, + "ast_hash": "e148a415acb7e83fd5991c244b936268", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260727150000_users_mobile_admins/migration.sql": { + "mtime": 1786352929.493925, + "seen": 1791133976.724313, + "ast_hash": "2e74c178d9b67ed5b38d571edc7bc58e", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260727160000_server_accounts/migration.sql": { + "mtime": 1786352929.4941335, + "seen": 1791133976.7243142, + "ast_hash": "cbacdd42965ae8d5749bbfde5506230b", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260728120000_plugin_subscriptions/migration.sql": { + "mtime": 1786352929.4943483, + "seen": 1791133976.724315, + "ast_hash": "6a83006e82a3431da32f89256cb6f51a", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/20260729150000_sms_panel_parity/migration.sql": { + "mtime": 1786352929.494557, + "seen": 1791133976.7243154, + "ast_hash": "eefafec6339e9bb1eeeac74d8edc9936", + "semantic_hash": "" + }, + "prisma/repair-khanegi-ui-config.ts": { + "mtime": 1786352929.4949555, + "seen": 1791133976.7243161, + "ast_hash": "9d174565a402435b259ea2cb01c3eebe", + "semantic_hash": "" + }, + "prisma/seed-hamkar-default-snapshots.ts": { + "mtime": 1786352929.495282, + "seen": 1791133976.7243168, + "ast_hash": "1d0e317b51948ad90f93f818fc189a2a", + "semantic_hash": "" + }, + "prisma/seed-khanegi-default-snapshots.ts": { + "mtime": 1786352929.4954495, + "seen": 1791133976.7243176, + "ast_hash": "4c22852c81dbbb79685d944258a25052", + "semantic_hash": "" + }, + "prisma/seed.ts": { + "mtime": 1786352929.4955816, + "seen": 1791133976.7243183, + "ast_hash": "e39daba03d995220b90f6e5fa8a24971", + "semantic_hash": "" + }, + "prisma/setting-templates-from-deploy.json": { + "mtime": 1788614868.19252, + "seen": 1791133976.724319, + "ast_hash": "bd57e444959915a85f0377310f6ddbea", + "semantic_hash": "" + }, + "scripts/fix-gholaktala-to-khanegi-newtheme.mjs": { + "mtime": 1786470929.6759033, + "seen": 1791133976.7243195, + "ast_hash": "2ad3b9c50ed2d7e776a3677d74600dd1", + "semantic_hash": "" + }, + "scripts/sync-superadmin-setting-template.mjs": { + "mtime": 1788614867.008285, + "seen": 1791133976.7243202, + "ast_hash": "ad1d928bad39f8c81634c96523879cf4", + "semantic_hash": "" + }, + "src/admins/admins.controller.ts": { + "mtime": 1786377085.7580488, + "seen": 1791133976.7243207, + "ast_hash": "c3abc6a2fadc1377d840546e7714e880", + "semantic_hash": "" + }, + "src/admins/admins.module.ts": { + "mtime": 1786377085.7582588, + "seen": 1791133976.7243216, + "ast_hash": "c89a0fc99a3740bb0ff266002d6774d1", + "semantic_hash": "" + }, + "src/admins/admins.service.ts": { + "mtime": 1786377085.7585385, + "seen": 1791133976.724322, + "ast_hash": "7a5fd7495a34e69a34725fc8957e2df2", + "semantic_hash": "" + }, + "src/admins/dto/admin.dto.ts": { + "mtime": 1786377085.7588398, + "seen": 1791133976.7243228, + "ast_hash": "c1023e9a63ea2035870d67ab3db8a1ef", + "semantic_hash": "" + }, + "src/app.module.ts": { + "mtime": 1787043263.5524516, + "seen": 1791133976.7243233, + "ast_hash": "0b7a1bafc219199f18769f0b48a62304", + "semantic_hash": "" + }, + "src/audit/audit.controller.ts": { + "mtime": 1786377085.7591932, + "seen": 1791133976.724324, + "ast_hash": "b0d5f36d4dcaab8e02a5340d4fb966b6", + "semantic_hash": "" + }, + "src/audit/audit.module.ts": { + "mtime": 1786377085.7594087, + "seen": 1791133976.7243247, + "ast_hash": "c925a966f664bae7458065969f22ec80", + "semantic_hash": "" + }, + "src/audit/audit.service.ts": { + "mtime": 1786352929.4970534, + "seen": 1791133976.7243254, + "ast_hash": "de5da4f46971a8e04a42cfdb94675685", + "semantic_hash": "" + }, + "src/auth/auth.controller.ts": { + "mtime": 1786352929.4972322, + "seen": 1791133976.724326, + "ast_hash": "419014e60b71d28626a008d8a93d606f", + "semantic_hash": "" + }, + "src/auth/auth.module.ts": { + "mtime": 1786377085.7596831, + "seen": 1791133976.7243266, + "ast_hash": "6e56586bd55e23acf0aef42154db0500", + "semantic_hash": "" + }, + "src/auth/auth.service.ts": { + "mtime": 1786377085.7599285, + "seen": 1791133976.724327, + "ast_hash": "7b66be1855b722223e37b2cbed13208c", + "semantic_hash": "" + }, + "src/auth/current-user.decorator.ts": { + "mtime": 1786352929.497619, + "seen": 1791133976.724328, + "ast_hash": "ff483a679757121f803160ca7fc8651a", + "semantic_hash": "" + }, + "src/auth/dto/login.dto.ts": { + "mtime": 1786352929.4978468, + "seen": 1791133976.7243285, + "ast_hash": "babc6b307bbef2e1140182ef040d60dd", + "semantic_hash": "" + }, + "src/auth/jwt-auth.guard.ts": { + "mtime": 1786352929.4979775, + "seen": 1791133976.7243292, + "ast_hash": "184c5bd056e5657c27ecdd69e1e40701", + "semantic_hash": "" + }, + "src/auth/jwt.strategy.ts": { + "mtime": 1786377085.7601564, + "seen": 1791133976.7243297, + "ast_hash": "8ae03f0635a702f2feb5df5c6826c858", + "semantic_hash": "" + }, + "src/auth/permissions.decorator.ts": { + "mtime": 1786377085.760331, + "seen": 1791133976.7243304, + "ast_hash": "b3faa4eb2e916682233a071435fedbf3", + "semantic_hash": "" + }, + "src/auth/permissions.guard.ts": { + "mtime": 1786377085.7605183, + "seen": 1791133976.724331, + "ast_hash": "7cacb1789db0ef61c574a23ca333fd01", + "semantic_hash": "" + }, + "src/auth/permissions.ts": { + "mtime": 1791450551.8308334, + "seen": 1791907126.066976, + "ast_hash": "57dc61304d9aee552a0f3f017b7a2457", + "semantic_hash": "" + }, + "src/auth/remote-sms-auth.guard.ts": { + "mtime": 1791450551.8310528, + "seen": 1791907126.0669773, + "ast_hash": "b4fe2f5de42f79c01c2c90b2e213f3ac", + "semantic_hash": "" + }, + "src/auth/remote-tenant.decorator.ts": { + "mtime": 1786352929.4983776, + "seen": 1791133976.724333, + "ast_hash": "54016eeaa77366db530cb02e67d54aa6", + "semantic_hash": "" + }, + "src/auth/remote-token.guard.ts": { + "mtime": 1791450551.8312287, + "seen": 1791907126.06698, + "ast_hash": "4126ddefa8bc9a7c3b41c9daae848f4e", + "semantic_hash": "" + }, + "src/auth/tenant-host.util.spec.ts": { + "mtime": 1789026291.0614831, + "seen": 1791133976.7243342, + "ast_hash": "d8706ae40f721b9069320cee916dcf5f", + "semantic_hash": "" + }, + "src/auth/tenant-host.util.ts": { + "mtime": 1788979280.957051, + "seen": 1791133976.7243352, + "ast_hash": "3bd76516c638d2584671449f30d14c13", + "semantic_hash": "" + }, + "src/common/iran-time.util.ts": { + "mtime": 1789638651.7054584, + "seen": 1791133976.7243357, + "ast_hash": "ba3c8d3697e93e27e405aa7539d70eb6", + "semantic_hash": "" + }, + "src/common/mobile.util.ts": { + "mtime": 1786352929.4988315, + "seen": 1791133976.7243364, + "ast_hash": "e527c82bde84ec1175e17c0f04e89cd0", + "semantic_hash": "" + }, + "src/get-manifest/get-manifest.controller.ts": { + "mtime": 1786352929.499016, + "seen": 1791133976.724337, + "ast_hash": "a73321b2f0d0e2e7dc8ace460239e916", + "semantic_hash": "" + }, + "src/get-manifest/get-manifest.module.ts": { + "mtime": 1786352929.499144, + "seen": 1791133976.7243378, + "ast_hash": "22a64f7c0e7f4aa1173a0cda3d3b31cf", + "semantic_hash": "" + }, + "src/get-user/get-user.controller.ts": { + "mtime": 1786352929.4993262, + "seen": 1791133976.7243388, + "ast_hash": "27209235a7040181e41fc66baa86ec3b", + "semantic_hash": "" + }, + "src/get-user/get-user.module.ts": { + "mtime": 1788876478.0709732, + "seen": 1791133976.7243392, + "ast_hash": "54e66c015b6fc817e24054745174f631", + "semantic_hash": "" + }, + "src/get-user/get-user.service.ts": { + "mtime": 1791887927.843936, + "seen": 1791907126.0669918, + "ast_hash": "677f68a2419bd068566a6bce791fc5f6", + "semantic_hash": "" + }, + "src/get-user/khanegi-nav-sample.ts": { + "mtime": 1787560898.4858353, + "seen": 1791133976.7243407, + "ast_hash": "28e0abbbc21cb644cf3155ba5863286b", + "semantic_hash": "" + }, + "src/get-version/get-version.controller.ts": { + "mtime": 1787032970.921446, + "seen": 1791133976.7243412, + "ast_hash": "0dd9cfaa890e518803d6a59fdfdd6fee", + "semantic_hash": "" + }, + "src/get-version/get-version.module.ts": { + "mtime": 1786352929.499936, + "seen": 1791133976.724342, + "ast_hash": "d39e7cb813c7703050db1172fc2f057b", + "semantic_hash": "" + }, + "src/get-version/get-version.service.ts": { + "mtime": 1791450551.8318257, + "seen": 1791907126.0669987, + "ast_hash": "520090c40149e44fbdb7177b5fde74c2", + "semantic_hash": "" + }, + "src/health.controller.ts": { + "mtime": 1786352929.5001915, + "seen": 1791133976.724344, + "ast_hash": "603611b1b0db4ab49ca209d1bfee01ae", + "semantic_hash": "" + }, + "src/main.ts": { + "mtime": 1786973744.513951, + "seen": 1791133976.7243445, + "ast_hash": "b4237a90e4d1341fffde0fa2a71c5c68", + "semantic_hash": "" + }, + "src/notifications/admin-notify.service.ts": { + "mtime": 1786352929.50051, + "seen": 1791133976.724345, + "ast_hash": "44675af58747de193e4cbaf208ecc174", + "semantic_hash": "" + }, + "src/notifications/central-sms.service.ts": { + "mtime": 1786352929.5006545, + "seen": 1791133976.724346, + "ast_hash": "704e0b969952c7318fc8bc78dda57a57", + "semantic_hash": "" + }, + "src/notifications/dto/update-admin-sms.dto.ts": { + "mtime": 1786352929.5008552, + "seen": 1791133976.7243466, + "ast_hash": "e705366ede0ee514d2cbc00d57b2e0cf", + "semantic_hash": "" + }, + "src/notifications/dto/update-khanegi-deposit.dto.ts": { + "mtime": 1788876474.050021, + "seen": 1791133976.724347, + "ast_hash": "c6d3cc559afe80e7228505a710149b3e", + "semantic_hash": "" + }, + "src/notifications/notifications.module.ts": { + "mtime": 1786377085.7610135, + "seen": 1791133976.7243478, + "ast_hash": "a25c856f6847f056e7f3ad1f34b6f91d", + "semantic_hash": "" + }, + "src/notifications/runtime-settings.controller.ts": { + "mtime": 1790177785.509505, + "seen": 1791133976.7243488, + "ast_hash": "569bc4ce0fc3e5f95835d3c89adabbdb", + "semantic_hash": "" + }, + "src/notifications/runtime-settings.service.ts": { + "mtime": 1790177846.0557916, + "seen": 1791133976.7243493, + "ast_hash": "7027b99e26bd72c545ef59f550120c1e", + "semantic_hash": "" + }, + "src/plugins/dto/plugin-store.dto.ts": { + "mtime": 1788860335.4903193, + "seen": 1791133976.72435, + "ast_hash": "6d7cb02df7228eca0bf189c5841238f4", + "semantic_hash": "" + }, + "src/plugins/dto/plugin.dto.ts": { + "mtime": 1789550923.6182344, + "seen": 1791133976.7243505, + "ast_hash": "b2d7135faf106ad0db716a7c6df3fb4c", + "semantic_hash": "" + }, + "src/plugins/plugin-catalog.seed.ts": { + "mtime": 1788972183.2738802, + "seen": 1791133976.7243512, + "ast_hash": "d4cfaf85fbdfe645239c112b0057434c", + "semantic_hash": "" + }, + "src/plugins/plugin-store.controller.ts": { + "mtime": 1788860395.1242146, + "seen": 1791133976.7243516, + "ast_hash": "1bc6670edcd79a4121da7f1316c857bd", + "semantic_hash": "" + }, + "src/plugins/plugin-store.service.ts": { + "mtime": 1791450551.8322303, + "seen": 1791907126.0670176, + "ast_hash": "576dff15cd206abf903e8e71f0f98de3", + "semantic_hash": "" + }, + "src/plugins/plugins.controller.ts": { + "mtime": 1788797873.9723158, + "seen": 1791133976.724353, + "ast_hash": "00c61c672d104513ff8d12a99846e193", + "semantic_hash": "" + }, + "src/plugins/plugins.module.ts": { + "mtime": 1789026291.06219, + "seen": 1791133976.7243536, + "ast_hash": "f59a7190d98612d9425acc900377d295", + "semantic_hash": "" + }, + "src/plugins/plugins.service.ts": { + "mtime": 1789550948.3455684, + "seen": 1791133976.7243543, + "ast_hash": "88f715edbbcb160fd61aaef7766bdde2", + "semantic_hash": "" + }, + "src/plugins/public-plugin-store.controller.ts": { + "mtime": 1789026291.0623066, + "seen": 1791133976.724355, + "ast_hash": "d0d0715347bd82a7caf08ce5890eb1e6", + "semantic_hash": "" + }, + "src/plugins/remote-plugins.controller.ts": { + "mtime": 1788860395.3522294, + "seen": 1791133976.724356, + "ast_hash": "4dcdd66eae8154ca77de42dcf35f9216", + "semantic_hash": "" + }, + "src/prisma/prisma.module.ts": { + "mtime": 1786352929.5021794, + "seen": 1791133976.7243564, + "ast_hash": "3505a1831c78f0a9475e4ce0f0092410", + "semantic_hash": "" + }, + "src/prisma/prisma.service.ts": { + "mtime": 1786352929.5023031, + "seen": 1791133976.7243571, + "ast_hash": "f3eee7e045708ad54099bf275985a1a3", + "semantic_hash": "" + }, + "src/program-settings/api-public-program-settings.controller.ts": { + "mtime": 1787032965.2339754, + "seen": 1791133976.7243576, + "ast_hash": "e182e1c4853a6269c095ae45c42087fc", + "semantic_hash": "" + }, + "src/program-settings/deploy-setting-catalog-keys.ts": { + "mtime": 1791015836.6535373, + "seen": 1791133976.7243583, + "ast_hash": "ef59f064b91cfccec54feb3f6d206122", + "semantic_hash": "" + }, + "src/program-settings/dto/import-program-settings.dto.ts": { + "mtime": 1786984107.672335, + "seen": 1791133976.7243588, + "ast_hash": "a5637d5a12c73341540266ac5bba5eac", + "semantic_hash": "" + }, + "src/program-settings/dto/setting-keys.dto.ts": { + "mtime": 1786984110.4226904, + "seen": 1791133976.7243598, + "ast_hash": "355da6c8da5c8d67551cf51a8cd54b80", + "semantic_hash": "" + }, + "src/program-settings/dto/update-program-settings.dto.ts": { + "mtime": 1786973213.6280973, + "seen": 1791133976.7243605, + "ast_hash": "6045563f1b7d5ac850013ba5da1b72de", + "semantic_hash": "" + }, + "src/program-settings/program-settings.controller.ts": { + "mtime": 1791450551.8324213, + "seen": 1791907126.0670352, + "ast_hash": "4fe8b22c9e170c12db6617d8e2aa86fe", + "semantic_hash": "" + }, + "src/program-settings/program-settings.module.ts": { + "mtime": 1786984123.3401637, + "seen": 1791133976.7243617, + "ast_hash": "0e78f36441a8de899dc592c2a3f78f79", + "semantic_hash": "" + }, + "src/program-settings/program-settings.service.ts": { + "mtime": 1788787102.8801534, + "seen": 1791133976.7243621, + "ast_hash": "8f492c8d5951c4eb490b12d5fa1ff816", + "semantic_hash": "" + }, + "src/program-settings/public-program-settings.controller.ts": { + "mtime": 1787032967.526884, + "seen": 1791133976.724363, + "ast_hash": "f5df48bfed125159a88f0868288522fd", + "semantic_hash": "" + }, + "src/program-settings/remote-program-settings.controller.ts": { + "mtime": 1786973213.6318178, + "seen": 1791133976.7243638, + "ast_hash": "b716e880d70daea681059e9b6f93a5d7", + "semantic_hash": "" + }, + "src/program-settings/runtime-setting-keys.ts": { + "mtime": 1788797820.5022392, + "seen": 1791133976.7243645, + "ast_hash": "828b87f0a867ef4dd747b69c80a70b67", + "semantic_hash": "" + }, + "src/program-settings/secret-setting-keys.ts": { + "mtime": 1787510943.5991995, + "seen": 1791133976.7243652, + "ast_hash": "85dfd8ba4f7918c71e58c1cb0c0a9a8c", + "semantic_hash": "" + }, + "src/program-settings/setting-templates.controller.ts": { + "mtime": 1791450551.8326106, + "seen": 1791907126.0670443, + "ast_hash": "895736f56888302e6f068f754021a10a", + "semantic_hash": "" + }, + "src/replica-watch/replica-watch.module.ts": { + "mtime": 1787043253.521665, + "seen": 1791133976.7243667, + "ast_hash": "bc5c25a86cebd075cd6c0e60ab160a86", + "semantic_hash": "" + }, + "src/replica-watch/replica-watch.service.ts": { + "mtime": 1787043253.2335062, + "seen": 1791133976.7243674, + "ast_hash": "bf0b53c4012875abffe9be35524ddc2e", + "semantic_hash": "" + }, + "src/servers/dto/server-account.dto.ts": { + "mtime": 1786470929.681465, + "seen": 1791133976.7243679, + "ast_hash": "60f01f052a8c40cfe2ab7990ae285977", + "semantic_hash": "" + }, + "src/servers/servers.controller.ts": { + "mtime": 1786470929.682539, + "seen": 1791133976.7243686, + "ast_hash": "abd01dba0f237c26a51a25d9d14cb2b7", + "semantic_hash": "" + }, + "src/servers/servers.module.ts": { + "mtime": 1786470929.6832016, + "seen": 1791133976.7243695, + "ast_hash": "981b415b56a905d452f831550fa56718", + "semantic_hash": "" + }, + "src/servers/servers.service.ts": { + "mtime": 1787587777.9340675, + "seen": 1791133976.72437, + "ast_hash": "71a99a066a9e0be059244082b05b7809", + "semantic_hash": "" + }, + "src/settings-proxy/settings-proxy.controller.ts": { + "mtime": 1786377085.7621837, + "seen": 1791133976.7243707, + "ast_hash": "8ed77b55a73c1c768fc6688f339f8b99", + "semantic_hash": "" + }, + "src/settings-proxy/settings-proxy.module.ts": { + "mtime": 1786470929.6853492, + "seen": 1791133976.7243714, + "ast_hash": "5dd08690cb81c98c40895edf4f8dcf16", + "semantic_hash": "" + }, + "src/settings-proxy/settings-proxy.service.ts": { + "mtime": 1791450551.8328865, + "seen": 1791907126.067056, + "ast_hash": "59deb503aaac614ddaaaf8d7ae4e3f67", + "semantic_hash": "" + }, + "src/sms/dto/sms-account.dto.ts": { + "mtime": 1786352929.5037386, + "seen": 1791133976.7243726, + "ast_hash": "ad86dfe2fc6d9a616ebe072c7afa6efc", + "semantic_hash": "" + }, + "src/sms/remote-sms.controller.ts": { + "mtime": 1786352929.5038674, + "seen": 1791133976.7243736, + "ast_hash": "47c5e084e92cacd2b2b22b331f0ee7f5", + "semantic_hash": "" + }, + "src/sms/sms-keys.ts": { + "mtime": 1790177846.0579102, + "seen": 1791133976.7243743, + "ast_hash": "6411ce9cadfa509fa572e922a6b390c7", + "semantic_hash": "" + }, + "src/sms/sms.controller.ts": { + "mtime": 1786377085.762577, + "seen": 1791133976.7243748, + "ast_hash": "bf0c9a43ae2c99deeca01d1560892218", + "semantic_hash": "" + }, + "src/sms/sms.module.ts": { + "mtime": 1786973249.326113, + "seen": 1791133976.7243755, + "ast_hash": "bfa1c5941c8cba331bceec77b19c044e", + "semantic_hash": "" + }, + "src/sms/sms.service.ts": { + "mtime": 1788876746.0936482, + "seen": 1791133976.7243762, + "ast_hash": "610dfcdd434ca19f2d9167f1d039a818", + "semantic_hash": "" + }, + "src/support/dto/support.dto.ts": { + "mtime": 1786352929.5047445, + "seen": 1791133976.724377, + "ast_hash": "76700d6fd242e01fef820e3a0f92a5b1", + "semantic_hash": "" + }, + "src/support/support.controller.ts": { + "mtime": 1786377085.7629156, + "seen": 1791133976.7243776, + "ast_hash": "b65ae44ea47c434b53510dac6f5b8508", + "semantic_hash": "" + }, + "src/support/support.module.ts": { + "mtime": 1786377085.7630632, + "seen": 1791133976.7243783, + "ast_hash": "51ffff6c80edbe7557becfa75d4a29b0", + "semantic_hash": "" + }, + "src/support/support.service.ts": { + "mtime": 1787587777.9345336, + "seen": 1791133976.724379, + "ast_hash": "045ec95870de072105f30dcf25376c51", + "semantic_hash": "" + }, + "src/tenants/dto/create-tenant.dto.ts": { + "mtime": 1791450551.8331747, + "seen": 1791907126.0670705, + "ast_hash": "c718db9fba52b8e74b062d3243b08351", + "semantic_hash": "" + }, + "src/tenants/dto/update-tenant.dto.ts": { + "mtime": 1786352929.5055187, + "seen": 1791133976.7243807, + "ast_hash": "3f47f9a37e156dddf1081f9fc3a1cd94", + "semantic_hash": "" + }, + "src/tenants/tenants.controller.ts": { + "mtime": 1791450551.8333807, + "seen": 1791907126.067073, + "ast_hash": "4d19cc2168383dbc2c592ba45a2d5bee", + "semantic_hash": "" + }, + "src/tenants/tenants.module.ts": { + "mtime": 1786984135.8400395, + "seen": 1791133976.724382, + "ast_hash": "feb0ab3bd0c3a2cea0350b65ac1ed71f", + "semantic_hash": "" + }, + "src/tenants/tenants.service.ts": { + "mtime": 1791450551.833684, + "seen": 1791907126.0670755, + "ast_hash": "5e80b3b2c60fb70125088ca6a416f8a0", + "semantic_hash": "" + }, + "src/types/jalaali-js.d.ts": { + "mtime": 1787844546.0994003, + "seen": 1791133976.724383, + "ast_hash": "f16002ff3968351f5d07bf7305799100", + "semantic_hash": "" + }, + "src/uploads/uploads.util.ts": { + "mtime": 1788860317.3664668, + "seen": 1791133976.724384, + "ast_hash": "3b026f16b17bf01e9a57dd03988b972a", + "semantic_hash": "" + }, + "test/app.e2e-spec.ts": { + "mtime": 1786352929.5062904, + "seen": 1791133976.7243848, + "ast_hash": "9e728a6e18b08b2df8899646d18553d8", + "semantic_hash": "" + }, + "test/jest-e2e.json": { + "mtime": 1786352929.5064073, + "seen": 1791133976.7243853, + "ast_hash": "9f2f5b0e1da31d7b04e205c944e85e8d", + "semantic_hash": "" + }, + "tsconfig.build.json": { + "mtime": 1786352929.506525, + "seen": 1791133976.724386, + "ast_hash": "4d717fbe39407b1dd8139ff31d080a97", + "semantic_hash": "" + }, + "tsconfig.json": { + "mtime": 1786352929.5066385, + "seen": 1791133976.724387, + "ast_hash": "fb7208f309746355edd966c8a0588b52", + "semantic_hash": "" + }, + "AGENTS.md": { + "mtime": 1786361643.0923526, + "seen": 1791133976.7243876, + "ast_hash": "f0b8930067827e683732bd4d7143920b", + "semantic_hash": "" + }, + "README.md": { + "mtime": 1786352929.484881, + "seen": 1791133976.7243884, + "ast_hash": "f9b30a57e215bc0b63868065fc71a1ac", + "semantic_hash": "" + }, + "deploy/DEPLOY.md": { + "mtime": 1787055325.1046598, + "seen": 1791133976.7243888, + "ast_hash": "fa12790fa281c14da62bd0599b297cfe", + "semantic_hash": "" + }, + "deploy/SMS-MIGRATION-STEPS.md": { + "mtime": 1786352929.4851882, + "seen": 1791133976.7243896, + "ast_hash": "0212017272c04d35905676f7c9a79603", + "semantic_hash": "" + }, + "deploy/khanegi-sms-rollout-tracker.md": { + "mtime": 1786352929.4855921, + "seen": 1791133976.72439, + "ast_hash": "096f3c01c4d60b93610d12d47e4e72ea", + "semantic_hash": "" + }, + "prisma/migrations_sqlite_archive/README.md": { + "mtime": 1786352929.4946783, + "seen": 1791133976.7243946, + "ast_hash": "2523a27a473d1bffd1d82a124d794d79", + "semantic_hash": "" + }, + "prisma/migrations/20261007120000_product_type_other/migration.sql": { + "mtime": 1791450551.830091, + "seen": 1791907126.0669296, + "ast_hash": "378e0cacad99eec8abbec6a89ee09d06", + "semantic_hash": "" + }, + "prisma/migrations/20261007180000_granular_product_permissions/migration.sql": { + "mtime": 1791450551.83028, + "seen": 1791907126.0669317, + "ast_hash": "37f956471d54e2c1d4ea408e5d230e24", + "semantic_hash": "" + }, + "src/get-user/khanegi-layout-variants.ts": { + "mtime": 1791889020.0880902, + "seen": 1791907126.0669932, + "ast_hash": "b8d7aeb78ed72e1a51dc96493f0e666b", + "semantic_hash": "" + } +} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index fb181dd..4b8fbec 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,17 +1,17 @@ -# Graph Report - controlpanel_server (2026-10-13) +# Graph Report - controlpanel_server (2026-10-21) ## Corpus Check -- 160 files · ~67,810 words +- 160 files · ~68,019 words - Verdict: corpus is large enough that graph structure adds value. - Unclassified: 9 file(s) not represented in the graph (top: (none) 3, .example 2, .toml 2) ## Summary -- 53 nodes · 77 edges · 9 communities (4 shown, 5 thin omitted) +- 83 nodes · 107 edges · 8 communities (4 shown, 4 thin omitted) - Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `421415fc` +- Built from commit: `47d210bd` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -19,62 +19,63 @@ - deploy-setting-catalog-keys.ts - get-user.service.ts - GetUserService -- mergeKhanegiLayoutVariants - khanegi-layout-variants.ts -- createDefaultKhanegiLayoutVariants +- sync-superadmin-setting-template.mjs +- plugin-catalog.seed.ts +- applyCanEdit +- jsonOut ## God Nodes (most connected - your core abstractions) 1. `GetUserService` - 15 edges 2. `mergeKhanegiLayoutVariants()` - 6 edges -3. `mergeLayoutThemes()` - 5 edges -4. `mergeLayoutElement()` - 5 edges -5. `isRecord()` - 4 edges -6. `createDefaultKhanegiLayoutVariants()` - 4 edges -7. `applyKhanegiLayoutVariants()` - 4 edges +3. `mergeLayoutElement()` - 5 edges +4. `mergeLayoutThemes()` - 5 edges +5. `applyKhanegiLayoutVariants()` - 4 edges +6. `isRecord()` - 4 edges +7. `createDefaultKhanegiLayoutVariants()` - 4 edges 8. `isLayoutVariantId()` - 3 edges 9. `defaultThemes()` - 3 edges 10. `element()` - 3 edges ## Surprising Connections (you probably didn't know these) -- `mergeLayoutThemes()` --calls--> `defaultThemes()` [EXTRACTED] - src/get-user/khanegi-layout-variants.ts → src/get-user/khanegi-layout-variants.ts _Bridges community 6 → community 3_ +- None detected - all connections are within the same source files. ## Import Cycles - None detected. -## Communities (9 total, 5 thin omitted) +## Communities (8 total, 4 thin omitted) ### Community 1 - "get-user.service.ts" Cohesion: 0.10 Nodes (20): ref_nestjs_common, src_auth_tenant_host_util, src_auth_tenant_host_util_findtenantforhost, src_auth_tenant_host_util_normalizetenanthost, src_common_iran_time_util, src_common_iran_time_util_irandaysuntil, SubscriptionAlertItem, SubscriptionAlerts (+12 more) -### Community 3 - "mergeKhanegiLayoutVariants" -Cohesion: 0.53 -Nodes (6): applyKhanegiLayoutVariants(), isLayoutVariantId(), isRecord(), mergeKhanegiLayoutVariants(), mergeLayoutElement(), mergeLayoutThemes() +### Community 3 - "khanegi-layout-variants.ts" +Cohesion: 0.29 +Nodes (13): applyKhanegiLayoutVariants(), createDefaultKhanegiLayoutVariants(), defaultThemes(), element(), isLayoutVariantId(), isRecord(), KhanegiLayoutVariants, LAYOUT_VARIANT_ID (+5 more) -### Community 5 - "khanegi-layout-variants.ts" -Cohesion: 0.40 -Nodes (4): KhanegiLayoutVariants, LAYOUT_VARIANT_ID, LayoutElementConfig, LayoutThemeDef +### Community 4 - "sync-superadmin-setting-template.mjs" +Cohesion: 0.11 +Nodes (15): ref_fs, ref_path, ref_url, __dirname, editableRows, EMPTY_TEMPLATE_VALUE_KEYS, EXTRA_EDITABLE, mustNot (+7 more) -### Community 6 - "createDefaultKhanegiLayoutVariants" -Cohesion: 0.67 -Nodes (3): createDefaultKhanegiLayoutVariants(), defaultThemes(), element() +### Community 5 - "plugin-catalog.seed.ts" +Cohesion: 0.29 +Nodes (3): PLUGIN_CATALOG_SEED, PLUGIN_STORE_DURATIONS, PluginStoreDuration ## Knowledge Gaps -- **10 isolated node(s):** `UiSetting`, `SubscriptionAlertStatus`, `SubscriptionAlertItem`, `SubscriptionAlerts`, `LAYOUT_VARIANT_ID` (+5 more) - These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 28 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) -- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **25 isolated node(s):** `__dirname`, `root`, `sqlPath`, `sql`, `rows` (+20 more) + These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 52 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) +- **4 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `GetUserService` connect `GetUserService` to `.normalizeKhanegiAppNode`, `get-user.service.ts`, `.resolveByHost`, `.buildSubscriptionAlerts`?** - _High betweenness centrality (0.395) - this node is a cross-community bridge._ -- **Why does `applyKhanegiLayoutVariants()` connect `mergeKhanegiLayoutVariants` to `.normalizeKhanegiAppNode`, `get-user.service.ts`, `khanegi-layout-variants.ts`?** - _High betweenness centrality (0.038) - this node is a cross-community bridge._ -- **Why does `mergeKhanegiLayoutVariants()` connect `mergeKhanegiLayoutVariants` to `khanegi-layout-variants.ts`, `createDefaultKhanegiLayoutVariants`?** - _High betweenness centrality (0.005) - this node is a cross-community bridge._ -- **What connects `UiSetting`, `SubscriptionAlertStatus`, `SubscriptionAlertItem` to the rest of the system?** - _10 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Why does `GetUserService` connect `GetUserService` to `get-user.service.ts`?** + _High betweenness centrality (0.158) - this node is a cross-community bridge._ +- **Why does `applyKhanegiLayoutVariants()` connect `khanegi-layout-variants.ts` to `get-user.service.ts`, `GetUserService`?** + _High betweenness centrality (0.015) - this node is a cross-community bridge._ +- **What connects `__dirname`, `root`, `sqlPath` to the rest of the system?** + _25 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `get-user.service.ts` be split into smaller, more focused modules?** - _Cohesion score 0.09523809523809523 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.09523809523809523 - nodes in this community are weakly interconnected._ +- **Should `sync-superadmin-setting-template.mjs` be split into smaller, more focused modules?** + _Cohesion score 0.10526315789473684 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json index bca0d57..0ed5d44 100644 --- a/graphify-out/cache/stat-index.json +++ b/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{"AGENTS.md":{"size":11352,"mtime_ns":1786361643092352600,"indexed_at_ns":1790064370519022823,"word_count":1204},"README.md":{"size":5028,"mtime_ns":1786352929484880900,"indexed_at_ns":1790064370520008010,"word_count":472},"deploy/DEPLOY.md":{"size":6591,"mtime_ns":1787055325104659800,"indexed_at_ns":1790064370521073194,"word_count":828},"deploy/SMS-MIGRATION-STEPS.md":{"size":6820,"mtime_ns":1786352929485188200,"indexed_at_ns":1790064370522072890,"word_count":706},"deploy/ecosystem.config.cjs":{"size":600,"mtime_ns":1786352929485293700,"indexed_at_ns":1790064370522605507,"word_count":70},"deploy/khanegi-sms-enable-remote.sh":{"size":1602,"mtime_ns":1786352929485396200,"indexed_at_ns":1790064370523264209,"word_count":170},"deploy/khanegi-sms-import-one.sh":{"size":1315,"mtime_ns":1786352929485497500,"indexed_at_ns":1790064370523913090,"word_count":143},"deploy/khanegi-sms-rollout-tracker.md":{"size":1091,"mtime_ns":1786352929485592200,"indexed_at_ns":1790064370524823535,"word_count":165},"deploy/run-khanegi-sms-inventory.sh":{"size":322,"mtime_ns":1786352929485768500,"indexed_at_ns":1790064370525859174,"word_count":28},"deploy/sync-replica-data.sh":{"size":12223,"mtime_ns":1788879455366533200,"indexed_at_ns":1790064370526331631,"word_count":1487},"deploy/sync-replica-schema.sh":{"size":6637,"mtime_ns":1787055322463730500,"indexed_at_ns":1790064370526915962,"word_count":872},"eslint.config.mjs":{"size":899,"mtime_ns":1786352929485854200,"indexed_at_ns":1790064370527591149,"word_count":65},"nest-cli.json":{"size":171,"mtime_ns":1786352929485933000,"indexed_at_ns":1790064370528065901,"word_count":13},"package.json":{"size":4568,"mtime_ns":1787844546092135700,"indexed_at_ns":1790064370528484301,"word_count":297},"prisma/backfill-app-version.js":{"size":758,"mtime_ns":1786352929488129200,"indexed_at_ns":1790064370529056687,"word_count":92},"prisma/backfill-appearance-from-registry.ts":{"size":7970,"mtime_ns":1786352929488289900,"indexed_at_ns":1790064370529631294,"word_count":854},"prisma/bulk-khanegi-modular-brand.ts":{"size":6171,"mtime_ns":1786470929637043500,"indexed_at_ns":1790064370530208416,"word_count":588},"prisma/bulk-khanegi-sms-defaults.ts":{"size":4784,"mtime_ns":1786352929488607100,"indexed_at_ns":1790064370530763958,"word_count":492},"prisma/copy-sms-between-tenants.ts":{"size":10639,"mtime_ns":1786352929488864100,"indexed_at_ns":1790064370531298566,"word_count":1024},"prisma/data/users.json":{"size":178916,"mtime_ns":1786352929489803900,"indexed_at_ns":1790064370531976159,"word_count":11614},"prisma/ensure-pilot-sms-tokens.ts":{"size":1987,"mtime_ns":1786352929489944800,"indexed_at_ns":1790064370537951449,"word_count":221},"prisma/import-sms-batch.ts":{"size":3824,"mtime_ns":1786352929490116200,"indexed_at_ns":1790064370538666278,"word_count":418},"prisma/import-sms-from-product.ts":{"size":12705,"mtime_ns":1786352929490325600,"indexed_at_ns":1790064370539367015,"word_count":1360},"prisma/import-users.ts":{"size":10212,"mtime_ns":1791450551829861200,"indexed_at_ns":1791907125900041294,"word_count":1103},"prisma/inventory-khanegi-sms.ts":{"size":5155,"mtime_ns":1786352929490639600,"indexed_at_ns":1790064370540788756,"word_count":512},"prisma/khanegi-sms-targets.example.json":{"size":651,"mtime_ns":1786352929490761100,"indexed_at_ns":1790064370541553492,"word_count":67},"prisma/khanegi-variant-locks.ts":{"size":1616,"mtime_ns":1786470929637339200,"indexed_at_ns":1790064370542200661,"word_count":187},"prisma/lib/appearance-builders.ts":{"size":6867,"mtime_ns":1786352929490974500,"indexed_at_ns":1790064370542803456,"word_count":705},"prisma/list-tenants.ts":{"size":1692,"mtime_ns":1786352929491098200,"indexed_at_ns":1790064370543423199,"word_count":165},"prisma/migrations/20260730180000_init_postgres/migration.sql":{"size":10684,"mtime_ns":1786352929491399900,"indexed_at_ns":1790064370544187012,"word_count":1011},"prisma/migrations/20260806190000_multi_server_accounts/migration.sql":{"size":228,"mtime_ns":1786352929491593300,"indexed_at_ns":1790064370544963457,"word_count":22},"prisma/migrations/20260808110000_support_subscriptions/migration.sql":{"size":2180,"mtime_ns":1786352929491809500,"indexed_at_ns":1790064370545721759,"word_count":190},"prisma/migrations/20260808140000_sms_auto_block_below/migration.sql":{"size":86,"mtime_ns":1786352929492019800,"indexed_at_ns":1790064370546569673,"word_count":9},"prisma/migrations/20260809120000_khanegi_ui_variant/migration.sql":{"size":424,"mtime_ns":1786352929492216800,"indexed_at_ns":1790064370547299634,"word_count":52},"prisma/migrations/20260810150000_admin_permissions/migration.sql":{"size":732,"mtime_ns":1786377085757164700,"indexed_at_ns":1790064370547910336,"word_count":92},"prisma/migrations/20260811120000_server_access_blocked/migration.sql":{"size":274,"mtime_ns":1786470929637569800,"indexed_at_ns":1790064370548491287,"word_count":35},"prisma/migrations/20260817120000_tenant_setting/migration.sql":{"size":136,"mtime_ns":1786965988335908000,"indexed_at_ns":1790064370549097287,"word_count":20},"prisma/migrations/20260817190000_settings_tables/migration.sql":{"size":1715,"mtime_ns":1786984016106288900,"indexed_at_ns":1790064370549723554,"word_count":181},"prisma/migrations/20260908110000_plugin_store_catalog_tables/migration.sql":{"size":3336,"mtime_ns":1788879455285213500,"indexed_at_ns":1790064370550348055,"word_count":337},"prisma/migrations/20260908120000_plugin_store_images_receipt/migration.sql":{"size":160,"mtime_ns":1788860316921452400,"indexed_at_ns":1790064370550947740,"word_count":20},"prisma/migrations/20260910120000_plugin_subscription_catalog_key/migration.sql":{"size":611,"mtime_ns":1789026291061192100,"indexed_at_ns":1790064370551550167,"word_count":74},"prisma/migrations_sqlite_archive/20260722125821_init/migration.sql":{"size":2217,"mtime_ns":1786352929492665500,"indexed_at_ns":1790064370552732122,"word_count":246},"prisma/migrations_sqlite_archive/20260722152640_add_app_ui_config/migration.sql":{"size":70,"mtime_ns":1786352929492852000,"indexed_at_ns":1790064370553367021,"word_count":9},"prisma/migrations_sqlite_archive/20260723073638_sms_settings_cache/migration.sql":{"size":134,"mtime_ns":1786352929493047400,"indexed_at_ns":1790064370553961218,"word_count":16},"prisma/migrations_sqlite_archive/20260723143623_sms_accounts_owned/migration.sql":{"size":1881,"mtime_ns":1786352929493268500,"indexed_at_ns":1790064370554556215,"word_count":196},"prisma/migrations_sqlite_archive/20260727120000_product_releases/migration.sql":{"size":361,"mtime_ns":1786352929493480100,"indexed_at_ns":1790064370555144034,"word_count":41},"prisma/migrations_sqlite_archive/20260727140000_tenant_app_version/migration.sql":{"size":143,"mtime_ns":1786352929493707100,"indexed_at_ns":1790064370555735304,"word_count":20},"prisma/migrations_sqlite_archive/20260727150000_users_mobile_admins/migration.sql":{"size":1327,"mtime_ns":1786352929493925100,"indexed_at_ns":1790064370556320622,"word_count":156},"prisma/migrations_sqlite_archive/20260727160000_server_accounts/migration.sql":{"size":1708,"mtime_ns":1786352929494133500,"indexed_at_ns":1790064370556916758,"word_count":162},"prisma/migrations_sqlite_archive/20260728120000_plugin_subscriptions/migration.sql":{"size":1698,"mtime_ns":1786352929494348400,"indexed_at_ns":1790064370557507050,"word_count":163},"prisma/migrations_sqlite_archive/20260729150000_sms_panel_parity/migration.sql":{"size":1308,"mtime_ns":1786352929494557000,"indexed_at_ns":1790064370558092203,"word_count":136},"prisma/migrations_sqlite_archive/README.md":{"size":175,"mtime_ns":1786352929494678300,"indexed_at_ns":1790064370558679781,"word_count":22},"prisma/repair-khanegi-ui-config.ts":{"size":6112,"mtime_ns":1786352929494955600,"indexed_at_ns":1790064370559410241,"word_count":653},"prisma/seed-hamkar-default-snapshots.ts":{"size":7167,"mtime_ns":1786352929495281900,"indexed_at_ns":1790064370560141001,"word_count":676},"prisma/seed-khanegi-default-snapshots.ts":{"size":6379,"mtime_ns":1786352929495449600,"indexed_at_ns":1790064370560606359,"word_count":628},"prisma/seed.ts":{"size":1483,"mtime_ns":1786352929495581600,"indexed_at_ns":1790064370561053156,"word_count":144},"prisma/setting-templates-from-deploy.json":{"size":6079,"mtime_ns":1788614868192519900,"indexed_at_ns":1790064370561486125,"word_count":599},"scripts/fix-gholaktala-to-khanegi-newtheme.mjs":{"size":3141,"mtime_ns":1786470929675903400,"indexed_at_ns":1790064370562078923,"word_count":321},"scripts/sync-superadmin-setting-template.mjs":{"size":11345,"mtime_ns":1788614867008285100,"indexed_at_ns":1790064370562552048,"word_count":1148},"src/admins/admins.controller.ts":{"size":1683,"mtime_ns":1786377085758048700,"indexed_at_ns":1790064370563163905,"word_count":154},"src/admins/admins.module.ts":{"size":456,"mtime_ns":1786377085758258900,"indexed_at_ns":1790064370563684515,"word_count":45},"src/admins/admins.service.ts":{"size":9783,"mtime_ns":1786377085758538400,"indexed_at_ns":1790064370564190450,"word_count":900},"src/admins/dto/admin.dto.ts":{"size":1414,"mtime_ns":1786377085758839800,"indexed_at_ns":1790064370564814999,"word_count":122},"src/app.module.ts":{"size":1611,"mtime_ns":1787043263552451600,"indexed_at_ns":1790064370565261800,"word_count":145},"src/audit/audit.controller.ts":{"size":762,"mtime_ns":1786377085759193100,"indexed_at_ns":1790064370565768908,"word_count":69},"src/audit/audit.module.ts":{"size":368,"mtime_ns":1786377085759408700,"indexed_at_ns":1790064370566275113,"word_count":40},"src/audit/audit.service.ts":{"size":2086,"mtime_ns":1786352929497053300,"indexed_at_ns":1790064370566770693,"word_count":210},"src/auth/auth.controller.ts":{"size":606,"mtime_ns":1786352929497232300,"indexed_at_ns":1790064370567296361,"word_count":65},"src/auth/auth.module.ts":{"size":973,"mtime_ns":1786377085759683200,"indexed_at_ns":1790064370567789520,"word_count":101},"src/auth/auth.service.ts":{"size":2356,"mtime_ns":1786377085759928400,"indexed_at_ns":1790064370568290471,"word_count":228},"src/auth/current-user.decorator.ts":{"size":261,"mtime_ns":1786352929497619000,"indexed_at_ns":1790064370568796227,"word_count":26},"src/auth/dto/login.dto.ts":{"size":184,"mtime_ns":1786352929497846900,"indexed_at_ns":1790064370569371045,"word_count":20},"src/auth/jwt-auth.guard.ts":{"size":160,"mtime_ns":1786352929497977600,"indexed_at_ns":1790064370569893786,"word_count":19},"src/auth/jwt.strategy.ts":{"size":1225,"mtime_ns":1786377085760156300,"indexed_at_ns":1790064370570400687,"word_count":124},"src/auth/permissions.decorator.ts":{"size":659,"mtime_ns":1786377085760330800,"indexed_at_ns":1790064370570910120,"word_count":94},"src/auth/permissions.guard.ts":{"size":1224,"mtime_ns":1786377085760518300,"indexed_at_ns":1790064370571410063,"word_count":114},"src/auth/permissions.ts":{"size":5122,"mtime_ns":1791450551830833500,"indexed_at_ns":1791907125927017630,"word_count":539},"src/auth/remote-sms-auth.guard.ts":{"size":5109,"mtime_ns":1791450551831052700,"indexed_at_ns":1791907125927576475,"word_count":505},"src/auth/remote-tenant.decorator.ts":{"size":257,"mtime_ns":1786352929498377500,"indexed_at_ns":1790064370572972223,"word_count":26},"src/auth/remote-token.guard.ts":{"size":1175,"mtime_ns":1791450551831228700,"indexed_at_ns":1791907125928576435,"word_count":112},"src/auth/tenant-host.util.spec.ts":{"size":2377,"mtime_ns":1789026291061483100,"indexed_at_ns":1790064370573970780,"word_count":228},"src/auth/tenant-host.util.ts":{"size":3714,"mtime_ns":1788979280957051100,"indexed_at_ns":1790064370574474788,"word_count":436},"src/common/iran-time.util.ts":{"size":3188,"mtime_ns":1789638651705458500,"indexed_at_ns":1790064370575003682,"word_count":410},"src/common/mobile.util.ts":{"size":609,"mtime_ns":1786352929498831600,"indexed_at_ns":1790064370575517379,"word_count":74},"src/get-manifest/get-manifest.controller.ts":{"size":672,"mtime_ns":1786352929499016100,"indexed_at_ns":1790064370576014327,"word_count":56},"src/get-manifest/get-manifest.module.ts":{"size":285,"mtime_ns":1786352929499144100,"indexed_at_ns":1790064370576506392,"word_count":28},"src/get-user/get-user.controller.ts":{"size":513,"mtime_ns":1786352929499326200,"indexed_at_ns":1790064370576999891,"word_count":49},"src/get-user/get-user.module.ts":{"size":404,"mtime_ns":1788876478070973200,"indexed_at_ns":1790064370577485553,"word_count":38},"src/get-user/get-user.service.ts":{"size":12683,"mtime_ns":1791887927843936000,"indexed_at_ns":1791907125932665650,"word_count":1247},"src/get-user/khanegi-nav-sample.ts":{"size":5363,"mtime_ns":1787560898485835300,"indexed_at_ns":1790064370578553207,"word_count":612},"src/get-version/get-version.controller.ts":{"size":584,"mtime_ns":1787032970921446100,"indexed_at_ns":1790064370579137718,"word_count":52},"src/get-version/get-version.module.ts":{"size":285,"mtime_ns":1786352929499936200,"indexed_at_ns":1790064370579657465,"word_count":28},"src/get-version/get-version.service.ts":{"size":2334,"mtime_ns":1791450551831825800,"indexed_at_ns":1791907125935236440,"word_count":246},"src/health.controller.ts":{"size":240,"mtime_ns":1786352929500191400,"indexed_at_ns":1790064370582573697,"word_count":27},"src/main.ts":{"size":2778,"mtime_ns":1786973744513951000,"indexed_at_ns":1790064370583046844,"word_count":240},"src/notifications/admin-notify.service.ts":{"size":1517,"mtime_ns":1786352929500510000,"indexed_at_ns":1790064370583589484,"word_count":175},"src/notifications/central-sms.service.ts":{"size":2547,"mtime_ns":1786352929500654400,"indexed_at_ns":1790064370584113083,"word_count":269},"src/notifications/dto/update-admin-sms.dto.ts":{"size":117,"mtime_ns":1786352929500855100,"indexed_at_ns":1790064370584718619,"word_count":14},"src/notifications/dto/update-khanegi-deposit.dto.ts":{"size":514,"mtime_ns":1788876474050021000,"indexed_at_ns":1790064370585300122,"word_count":38},"src/notifications/notifications.module.ts":{"size":628,"mtime_ns":1786377085761013600,"indexed_at_ns":1790064370585811757,"word_count":54},"src/notifications/runtime-settings.controller.ts":{"size":1292,"mtime_ns":1790177785509505100,"indexed_at_ns":1791133976641445311,"word_count":92},"src/notifications/runtime-settings.service.ts":{"size":4512,"mtime_ns":1790177846055791500,"indexed_at_ns":1791133976642229482,"word_count":406},"src/plugins/dto/plugin-store.dto.ts":{"size":1769,"mtime_ns":1788860335490319200,"indexed_at_ns":1790064370587469732,"word_count":161},"src/plugins/dto/plugin.dto.ts":{"size":2401,"mtime_ns":1789550923618234300,"indexed_at_ns":1790064370588060645,"word_count":226},"src/plugins/plugin-catalog.seed.ts":{"size":4714,"mtime_ns":1788972183273880200,"indexed_at_ns":1790064370588576209,"word_count":458},"src/plugins/plugin-store.controller.ts":{"size":3423,"mtime_ns":1788860395124214700,"indexed_at_ns":1790064370589110499,"word_count":294},"src/plugins/plugin-store.service.ts":{"size":36364,"mtime_ns":1791450551832230400,"indexed_at_ns":1791907125941665393,"word_count":3332},"src/plugins/plugins.controller.ts":{"size":2613,"mtime_ns":1788797873972315800,"indexed_at_ns":1790064370590381021,"word_count":206},"src/plugins/plugins.module.ts":{"size":989,"mtime_ns":1789026291062190000,"indexed_at_ns":1790064370590897204,"word_count":83},"src/plugins/plugins.service.ts":{"size":23062,"mtime_ns":1789550948345568500,"indexed_at_ns":1790064370591390333,"word_count":2120},"src/plugins/public-plugin-store.controller.ts":{"size":2925,"mtime_ns":1789026291062306700,"indexed_at_ns":1790064370592018184,"word_count":252},"src/plugins/remote-plugins.controller.ts":{"size":2993,"mtime_ns":1788860395352229300,"indexed_at_ns":1790064370592547461,"word_count":257},"src/prisma/prisma.module.ts":{"size":210,"mtime_ns":1786352929502179500,"indexed_at_ns":1790064370593098791,"word_count":24},"src/prisma/prisma.service.ts":{"size":354,"mtime_ns":1786352929502303100,"indexed_at_ns":1790064370593595524,"word_count":37},"src/program-settings/api-public-program-settings.controller.ts":{"size":605,"mtime_ns":1787032965233975500,"indexed_at_ns":1790064370594129507,"word_count":50},"src/program-settings/deploy-setting-catalog-keys.ts":{"size":5799,"mtime_ns":1791015836653537300,"indexed_at_ns":1791133976649960995,"word_count":278},"src/program-settings/dto/import-program-settings.dto.ts":{"size":747,"mtime_ns":1786984107672334800,"indexed_at_ns":1790064370595261438,"word_count":75},"src/program-settings/dto/setting-keys.dto.ts":{"size":297,"mtime_ns":1786984110422690400,"indexed_at_ns":1790064370595848521,"word_count":31},"src/program-settings/dto/update-program-settings.dto.ts":{"size":159,"mtime_ns":1786973213628097300,"indexed_at_ns":1790064370596434667,"word_count":17},"src/program-settings/program-settings.controller.ts":{"size":2211,"mtime_ns":1791450551832421400,"indexed_at_ns":1791907125947897434,"word_count":180},"src/program-settings/program-settings.module.ts":{"size":993,"mtime_ns":1786984123340163800,"indexed_at_ns":1790064370597501377,"word_count":75},"src/program-settings/program-settings.service.ts":{"size":40132,"mtime_ns":1788787102880153300,"indexed_at_ns":1790064370598007543,"word_count":3960},"src/program-settings/public-program-settings.controller.ts":{"size":591,"mtime_ns":1787032967526884100,"indexed_at_ns":1790064370598768443,"word_count":50},"src/program-settings/remote-program-settings.controller.ts":{"size":585,"mtime_ns":1786973213631817900,"indexed_at_ns":1790064370599299226,"word_count":53},"src/program-settings/runtime-setting-keys.ts":{"size":733,"mtime_ns":1788797820502239300,"indexed_at_ns":1790064370599834172,"word_count":54},"src/program-settings/secret-setting-keys.ts":{"size":1048,"mtime_ns":1787510943599199500,"indexed_at_ns":1790064370600370895,"word_count":77},"src/program-settings/setting-templates.controller.ts":{"size":1783,"mtime_ns":1791450551832610600,"indexed_at_ns":1791907125951061171,"word_count":148},"src/replica-watch/replica-watch.module.ts":{"size":241,"mtime_ns":1787043253521665200,"indexed_at_ns":1790064370601414191,"word_count":24},"src/replica-watch/replica-watch.service.ts":{"size":2670,"mtime_ns":1787043253233506300,"indexed_at_ns":1790064370601926644,"word_count":287},"src/servers/dto/server-account.dto.ts":{"size":1342,"mtime_ns":1786470929681464900,"indexed_at_ns":1790064370602545395,"word_count":142},"src/servers/servers.controller.ts":{"size":3623,"mtime_ns":1786470929682539000,"indexed_at_ns":1790064370603071974,"word_count":277},"src/servers/servers.module.ts":{"size":564,"mtime_ns":1786470929683201600,"indexed_at_ns":1790064370603576107,"word_count":52},"src/servers/servers.service.ts":{"size":23359,"mtime_ns":1787587777934067400,"indexed_at_ns":1790064370604067413,"word_count":2139},"src/settings-proxy/settings-proxy.controller.ts":{"size":1087,"mtime_ns":1786377085762183600,"indexed_at_ns":1790064370604694726,"word_count":96},"src/settings-proxy/settings-proxy.module.ts":{"size":416,"mtime_ns":1786470929685349200,"indexed_at_ns":1790064370605203320,"word_count":38},"src/settings-proxy/settings-proxy.service.ts":{"size":8701,"mtime_ns":1791450551832886500,"indexed_at_ns":1791907125955036708,"word_count":873},"src/sms/dto/sms-account.dto.ts":{"size":3641,"mtime_ns":1786352929503738600,"indexed_at_ns":1790064370606347614,"word_count":392},"src/sms/remote-sms.controller.ts":{"size":4951,"mtime_ns":1786352929503867500,"indexed_at_ns":1790064370606876734,"word_count":437},"src/sms/sms-keys.ts":{"size":3158,"mtime_ns":1790177846057910100,"indexed_at_ns":1791133976661164195,"word_count":315},"src/sms/sms.controller.ts":{"size":3389,"mtime_ns":1786377085762577000,"indexed_at_ns":1790064370607915711,"word_count":266},"src/sms/sms.module.ts":{"size":624,"mtime_ns":1786973249326113100,"indexed_at_ns":1790064370608420405,"word_count":60},"src/sms/sms.service.ts":{"size":30742,"mtime_ns":1788876746093648100,"indexed_at_ns":1790064370608915799,"word_count":2787},"src/support/dto/support.dto.ts":{"size":2042,"mtime_ns":1786352929504744500,"indexed_at_ns":1790064370609667506,"word_count":196},"src/support/support.controller.ts":{"size":2271,"mtime_ns":1786377085762915500,"indexed_at_ns":1790064370610198917,"word_count":183},"src/support/support.module.ts":{"size":464,"mtime_ns":1786377085763063100,"indexed_at_ns":1790064370610701781,"word_count":45},"src/support/support.service.ts":{"size":18021,"mtime_ns":1787587777934533600,"indexed_at_ns":1790064370611200725,"word_count":1657},"src/tenants/dto/create-tenant.dto.ts":{"size":1926,"mtime_ns":1791450551833174700,"indexed_at_ns":1791907125960222824,"word_count":172},"src/tenants/dto/update-tenant.dto.ts":{"size":177,"mtime_ns":1786352929505518600,"indexed_at_ns":1790064370612517079,"word_count":18},"src/tenants/tenants.controller.ts":{"size":6506,"mtime_ns":1791450551833380800,"indexed_at_ns":1791907125961466073,"word_count":584},"src/tenants/tenants.module.ts":{"size":602,"mtime_ns":1786984135840039400,"indexed_at_ns":1790064370613568115,"word_count":55},"src/tenants/tenants.service.ts":{"size":16115,"mtime_ns":1791450551833683900,"indexed_at_ns":1791907125962509186,"word_count":1474},"src/types/jalaali-js.d.ts":{"size":488,"mtime_ns":1787844546099400200,"indexed_at_ns":1790064370614647850,"word_count":62},"src/uploads/uploads.util.ts":{"size":1653,"mtime_ns":1788860317366466700,"indexed_at_ns":1790064370615148436,"word_count":181},"test/app.e2e-spec.ts":{"size":700,"mtime_ns":1786352929506290400,"indexed_at_ns":1790064370615599884,"word_count":72},"test/jest-e2e.json":{"size":183,"mtime_ns":1786352929506407200,"indexed_at_ns":1790064370616030743,"word_count":17},"tsconfig.build.json":{"size":124,"mtime_ns":1786352929506525100,"indexed_at_ns":1790064370616393089,"word_count":11},"tsconfig.json":{"size":653,"mtime_ns":1786352929506638500,"indexed_at_ns":1790064370616745032,"word_count":45},"prisma/migrations/20261007120000_product_type_other/migration.sql":{"size":80,"mtime_ns":1791450551830091100,"indexed_at_ns":1791907125909060484,"word_count":11},"prisma/migrations/20261007180000_granular_product_permissions/migration.sql":{"size":1353,"mtime_ns":1791450551830280100,"indexed_at_ns":1791907125909682619,"word_count":131},"src/get-user/khanegi-layout-variants.ts":{"size":4079,"mtime_ns":1791889020088090100,"indexed_at_ns":1791907125933319516,"word_count":435}} \ No newline at end of file +{"AGENTS.md":{"size":11352,"mtime_ns":1786361643092352600,"indexed_at_ns":1790064370519022823,"word_count":1204},"README.md":{"size":5028,"mtime_ns":1786352929484880900,"indexed_at_ns":1790064370520008010,"word_count":472},"deploy/DEPLOY.md":{"size":6591,"mtime_ns":1787055325104659800,"indexed_at_ns":1790064370521073194,"word_count":828},"deploy/SMS-MIGRATION-STEPS.md":{"size":6820,"mtime_ns":1786352929485188200,"indexed_at_ns":1790064370522072890,"word_count":706},"deploy/ecosystem.config.cjs":{"size":600,"mtime_ns":1786352929485293700,"indexed_at_ns":1790064370522605507,"word_count":70},"deploy/khanegi-sms-enable-remote.sh":{"size":1602,"mtime_ns":1786352929485396200,"indexed_at_ns":1790064370523264209,"word_count":170},"deploy/khanegi-sms-import-one.sh":{"size":1315,"mtime_ns":1786352929485497500,"indexed_at_ns":1790064370523913090,"word_count":143},"deploy/khanegi-sms-rollout-tracker.md":{"size":1091,"mtime_ns":1786352929485592200,"indexed_at_ns":1790064370524823535,"word_count":165},"deploy/run-khanegi-sms-inventory.sh":{"size":322,"mtime_ns":1786352929485768500,"indexed_at_ns":1790064370525859174,"word_count":28},"deploy/sync-replica-data.sh":{"size":12223,"mtime_ns":1788879455366533200,"indexed_at_ns":1790064370526331631,"word_count":1487},"deploy/sync-replica-schema.sh":{"size":6637,"mtime_ns":1787055322463730500,"indexed_at_ns":1790064370526915962,"word_count":872},"eslint.config.mjs":{"size":899,"mtime_ns":1786352929485854200,"indexed_at_ns":1790064370527591149,"word_count":65},"nest-cli.json":{"size":171,"mtime_ns":1786352929485933000,"indexed_at_ns":1790064370528065901,"word_count":13},"package.json":{"size":4568,"mtime_ns":1787844546092135700,"indexed_at_ns":1790064370528484301,"word_count":297},"prisma/backfill-app-version.js":{"size":758,"mtime_ns":1786352929488129200,"indexed_at_ns":1790064370529056687,"word_count":92},"prisma/backfill-appearance-from-registry.ts":{"size":8228,"mtime_ns":1791996910923145400,"indexed_at_ns":1792568605222271658,"word_count":873},"prisma/bulk-khanegi-modular-brand.ts":{"size":6171,"mtime_ns":1786470929637043500,"indexed_at_ns":1790064370530208416,"word_count":588},"prisma/bulk-khanegi-sms-defaults.ts":{"size":4784,"mtime_ns":1786352929488607100,"indexed_at_ns":1790064370530763958,"word_count":492},"prisma/copy-sms-between-tenants.ts":{"size":10639,"mtime_ns":1786352929488864100,"indexed_at_ns":1790064370531298566,"word_count":1024},"prisma/data/users.json":{"size":178916,"mtime_ns":1786352929489803900,"indexed_at_ns":1790064370531976159,"word_count":11614},"prisma/ensure-pilot-sms-tokens.ts":{"size":1987,"mtime_ns":1786352929489944800,"indexed_at_ns":1790064370537951449,"word_count":221},"prisma/import-sms-batch.ts":{"size":3824,"mtime_ns":1786352929490116200,"indexed_at_ns":1790064370538666278,"word_count":418},"prisma/import-sms-from-product.ts":{"size":12705,"mtime_ns":1786352929490325600,"indexed_at_ns":1790064370539367015,"word_count":1360},"prisma/import-users.ts":{"size":10212,"mtime_ns":1791450551829861200,"indexed_at_ns":1791907125900041294,"word_count":1103},"prisma/inventory-khanegi-sms.ts":{"size":5155,"mtime_ns":1786352929490639600,"indexed_at_ns":1790064370540788756,"word_count":512},"prisma/khanegi-sms-targets.example.json":{"size":651,"mtime_ns":1786352929490761100,"indexed_at_ns":1790064370541553492,"word_count":67},"prisma/khanegi-variant-locks.ts":{"size":1616,"mtime_ns":1786470929637339200,"indexed_at_ns":1790064370542200661,"word_count":187},"prisma/lib/appearance-builders.ts":{"size":7361,"mtime_ns":1791996910923784300,"indexed_at_ns":1792568605229926890,"word_count":741},"prisma/list-tenants.ts":{"size":1692,"mtime_ns":1786352929491098200,"indexed_at_ns":1790064370543423199,"word_count":165},"prisma/migrations/20260730180000_init_postgres/migration.sql":{"size":10684,"mtime_ns":1786352929491399900,"indexed_at_ns":1790064370544187012,"word_count":1011},"prisma/migrations/20260806190000_multi_server_accounts/migration.sql":{"size":228,"mtime_ns":1786352929491593300,"indexed_at_ns":1790064370544963457,"word_count":22},"prisma/migrations/20260808110000_support_subscriptions/migration.sql":{"size":2180,"mtime_ns":1786352929491809500,"indexed_at_ns":1790064370545721759,"word_count":190},"prisma/migrations/20260808140000_sms_auto_block_below/migration.sql":{"size":86,"mtime_ns":1786352929492019800,"indexed_at_ns":1790064370546569673,"word_count":9},"prisma/migrations/20260809120000_khanegi_ui_variant/migration.sql":{"size":424,"mtime_ns":1786352929492216800,"indexed_at_ns":1790064370547299634,"word_count":52},"prisma/migrations/20260810150000_admin_permissions/migration.sql":{"size":732,"mtime_ns":1786377085757164700,"indexed_at_ns":1790064370547910336,"word_count":92},"prisma/migrations/20260811120000_server_access_blocked/migration.sql":{"size":274,"mtime_ns":1786470929637569800,"indexed_at_ns":1790064370548491287,"word_count":35},"prisma/migrations/20260817120000_tenant_setting/migration.sql":{"size":136,"mtime_ns":1786965988335908000,"indexed_at_ns":1790064370549097287,"word_count":20},"prisma/migrations/20260817190000_settings_tables/migration.sql":{"size":1715,"mtime_ns":1786984016106288900,"indexed_at_ns":1790064370549723554,"word_count":181},"prisma/migrations/20260908110000_plugin_store_catalog_tables/migration.sql":{"size":3336,"mtime_ns":1788879455285213500,"indexed_at_ns":1790064370550348055,"word_count":337},"prisma/migrations/20260908120000_plugin_store_images_receipt/migration.sql":{"size":160,"mtime_ns":1788860316921452400,"indexed_at_ns":1790064370550947740,"word_count":20},"prisma/migrations/20260910120000_plugin_subscription_catalog_key/migration.sql":{"size":611,"mtime_ns":1789026291061192100,"indexed_at_ns":1790064370551550167,"word_count":74},"prisma/migrations_sqlite_archive/20260722125821_init/migration.sql":{"size":2217,"mtime_ns":1786352929492665500,"indexed_at_ns":1790064370552732122,"word_count":246},"prisma/migrations_sqlite_archive/20260722152640_add_app_ui_config/migration.sql":{"size":70,"mtime_ns":1786352929492852000,"indexed_at_ns":1790064370553367021,"word_count":9},"prisma/migrations_sqlite_archive/20260723073638_sms_settings_cache/migration.sql":{"size":134,"mtime_ns":1786352929493047400,"indexed_at_ns":1790064370553961218,"word_count":16},"prisma/migrations_sqlite_archive/20260723143623_sms_accounts_owned/migration.sql":{"size":1881,"mtime_ns":1786352929493268500,"indexed_at_ns":1790064370554556215,"word_count":196},"prisma/migrations_sqlite_archive/20260727120000_product_releases/migration.sql":{"size":361,"mtime_ns":1786352929493480100,"indexed_at_ns":1790064370555144034,"word_count":41},"prisma/migrations_sqlite_archive/20260727140000_tenant_app_version/migration.sql":{"size":143,"mtime_ns":1786352929493707100,"indexed_at_ns":1790064370555735304,"word_count":20},"prisma/migrations_sqlite_archive/20260727150000_users_mobile_admins/migration.sql":{"size":1327,"mtime_ns":1786352929493925100,"indexed_at_ns":1790064370556320622,"word_count":156},"prisma/migrations_sqlite_archive/20260727160000_server_accounts/migration.sql":{"size":1708,"mtime_ns":1786352929494133500,"indexed_at_ns":1790064370556916758,"word_count":162},"prisma/migrations_sqlite_archive/20260728120000_plugin_subscriptions/migration.sql":{"size":1698,"mtime_ns":1786352929494348400,"indexed_at_ns":1790064370557507050,"word_count":163},"prisma/migrations_sqlite_archive/20260729150000_sms_panel_parity/migration.sql":{"size":1308,"mtime_ns":1786352929494557000,"indexed_at_ns":1790064370558092203,"word_count":136},"prisma/migrations_sqlite_archive/README.md":{"size":175,"mtime_ns":1786352929494678300,"indexed_at_ns":1790064370558679781,"word_count":22},"prisma/repair-khanegi-ui-config.ts":{"size":6112,"mtime_ns":1786352929494955600,"indexed_at_ns":1790064370559410241,"word_count":653},"prisma/seed-hamkar-default-snapshots.ts":{"size":7484,"mtime_ns":1791996910924190700,"indexed_at_ns":1792568605246251617,"word_count":694},"prisma/seed-khanegi-default-snapshots.ts":{"size":6379,"mtime_ns":1786352929495449600,"indexed_at_ns":1790064370560606359,"word_count":628},"prisma/seed.ts":{"size":1483,"mtime_ns":1786352929495581600,"indexed_at_ns":1790064370561053156,"word_count":144},"prisma/setting-templates-from-deploy.json":{"size":6382,"mtime_ns":1792566255503735800,"indexed_at_ns":1792568605311055198,"word_count":625,"hashes":{"prisma/setting-templates-from-deploy.json":"b83220a5a7c8fdcd61fe70314e8f7495f02da4b9d14bed7f33fdba07605ff16d"}},"scripts/fix-gholaktala-to-khanegi-newtheme.mjs":{"size":3141,"mtime_ns":1786470929675903400,"indexed_at_ns":1790064370562078923,"word_count":321},"scripts/sync-superadmin-setting-template.mjs":{"size":11635,"mtime_ns":1792566233423137500,"indexed_at_ns":1792568605248449884,"word_count":1171},"src/admins/admins.controller.ts":{"size":1683,"mtime_ns":1786377085758048700,"indexed_at_ns":1790064370563163905,"word_count":154},"src/admins/admins.module.ts":{"size":456,"mtime_ns":1786377085758258900,"indexed_at_ns":1790064370563684515,"word_count":45},"src/admins/admins.service.ts":{"size":9783,"mtime_ns":1786377085758538400,"indexed_at_ns":1790064370564190450,"word_count":900},"src/admins/dto/admin.dto.ts":{"size":1414,"mtime_ns":1786377085758839800,"indexed_at_ns":1790064370564814999,"word_count":122},"src/app.module.ts":{"size":1611,"mtime_ns":1787043263552451600,"indexed_at_ns":1790064370565261800,"word_count":145},"src/audit/audit.controller.ts":{"size":762,"mtime_ns":1786377085759193100,"indexed_at_ns":1790064370565768908,"word_count":69},"src/audit/audit.module.ts":{"size":368,"mtime_ns":1786377085759408700,"indexed_at_ns":1790064370566275113,"word_count":40},"src/audit/audit.service.ts":{"size":2086,"mtime_ns":1786352929497053300,"indexed_at_ns":1790064370566770693,"word_count":210},"src/auth/auth.controller.ts":{"size":606,"mtime_ns":1786352929497232300,"indexed_at_ns":1790064370567296361,"word_count":65},"src/auth/auth.module.ts":{"size":973,"mtime_ns":1786377085759683200,"indexed_at_ns":1790064370567789520,"word_count":101},"src/auth/auth.service.ts":{"size":2356,"mtime_ns":1786377085759928400,"indexed_at_ns":1790064370568290471,"word_count":228},"src/auth/current-user.decorator.ts":{"size":261,"mtime_ns":1786352929497619000,"indexed_at_ns":1790064370568796227,"word_count":26},"src/auth/dto/login.dto.ts":{"size":184,"mtime_ns":1786352929497846900,"indexed_at_ns":1790064370569371045,"word_count":20},"src/auth/jwt-auth.guard.ts":{"size":160,"mtime_ns":1786352929497977600,"indexed_at_ns":1790064370569893786,"word_count":19},"src/auth/jwt.strategy.ts":{"size":1225,"mtime_ns":1786377085760156300,"indexed_at_ns":1790064370570400687,"word_count":124},"src/auth/permissions.decorator.ts":{"size":659,"mtime_ns":1786377085760330800,"indexed_at_ns":1790064370570910120,"word_count":94},"src/auth/permissions.guard.ts":{"size":1224,"mtime_ns":1786377085760518300,"indexed_at_ns":1790064370571410063,"word_count":114},"src/auth/permissions.ts":{"size":5122,"mtime_ns":1791450551830833500,"indexed_at_ns":1791907125927017630,"word_count":539},"src/auth/remote-sms-auth.guard.ts":{"size":5109,"mtime_ns":1791450551831052700,"indexed_at_ns":1791907125927576475,"word_count":505},"src/auth/remote-tenant.decorator.ts":{"size":257,"mtime_ns":1786352929498377500,"indexed_at_ns":1790064370572972223,"word_count":26},"src/auth/remote-token.guard.ts":{"size":1175,"mtime_ns":1791450551831228700,"indexed_at_ns":1791907125928576435,"word_count":112},"src/auth/tenant-host.util.spec.ts":{"size":2377,"mtime_ns":1789026291061483100,"indexed_at_ns":1790064370573970780,"word_count":228},"src/auth/tenant-host.util.ts":{"size":3714,"mtime_ns":1788979280957051100,"indexed_at_ns":1790064370574474788,"word_count":436},"src/common/iran-time.util.ts":{"size":3188,"mtime_ns":1789638651705458500,"indexed_at_ns":1790064370575003682,"word_count":410},"src/common/mobile.util.ts":{"size":609,"mtime_ns":1786352929498831600,"indexed_at_ns":1790064370575517379,"word_count":74},"src/get-manifest/get-manifest.controller.ts":{"size":672,"mtime_ns":1786352929499016100,"indexed_at_ns":1790064370576014327,"word_count":56},"src/get-manifest/get-manifest.module.ts":{"size":285,"mtime_ns":1786352929499144100,"indexed_at_ns":1790064370576506392,"word_count":28},"src/get-user/get-user.controller.ts":{"size":513,"mtime_ns":1786352929499326200,"indexed_at_ns":1790064370576999891,"word_count":49},"src/get-user/get-user.module.ts":{"size":404,"mtime_ns":1788876478070973200,"indexed_at_ns":1790064370577485553,"word_count":38},"src/get-user/get-user.service.ts":{"size":13349,"mtime_ns":1791996910924673900,"indexed_at_ns":1792568605261511868,"word_count":1318},"src/get-user/khanegi-nav-sample.ts":{"size":5363,"mtime_ns":1787560898485835300,"indexed_at_ns":1790064370578553207,"word_count":612},"src/get-version/get-version.controller.ts":{"size":584,"mtime_ns":1787032970921446100,"indexed_at_ns":1790064370579137718,"word_count":52},"src/get-version/get-version.module.ts":{"size":285,"mtime_ns":1786352929499936200,"indexed_at_ns":1790064370579657465,"word_count":28},"src/get-version/get-version.service.ts":{"size":2334,"mtime_ns":1791450551831825800,"indexed_at_ns":1791907125935236440,"word_count":246},"src/health.controller.ts":{"size":240,"mtime_ns":1786352929500191400,"indexed_at_ns":1790064370582573697,"word_count":27},"src/main.ts":{"size":2778,"mtime_ns":1786973744513951000,"indexed_at_ns":1790064370583046844,"word_count":240},"src/notifications/admin-notify.service.ts":{"size":1517,"mtime_ns":1786352929500510000,"indexed_at_ns":1790064370583589484,"word_count":175},"src/notifications/central-sms.service.ts":{"size":2547,"mtime_ns":1786352929500654400,"indexed_at_ns":1790064370584113083,"word_count":269},"src/notifications/dto/update-admin-sms.dto.ts":{"size":117,"mtime_ns":1786352929500855100,"indexed_at_ns":1790064370584718619,"word_count":14},"src/notifications/dto/update-khanegi-deposit.dto.ts":{"size":514,"mtime_ns":1788876474050021000,"indexed_at_ns":1790064370585300122,"word_count":38},"src/notifications/notifications.module.ts":{"size":628,"mtime_ns":1786377085761013600,"indexed_at_ns":1790064370585811757,"word_count":54},"src/notifications/runtime-settings.controller.ts":{"size":1292,"mtime_ns":1790177785509505100,"indexed_at_ns":1791133976641445311,"word_count":92},"src/notifications/runtime-settings.service.ts":{"size":4512,"mtime_ns":1790177846055791500,"indexed_at_ns":1791133976642229482,"word_count":406},"src/plugins/dto/plugin-store.dto.ts":{"size":1769,"mtime_ns":1788860335490319200,"indexed_at_ns":1790064370587469732,"word_count":161},"src/plugins/dto/plugin.dto.ts":{"size":2401,"mtime_ns":1789550923618234300,"indexed_at_ns":1790064370588060645,"word_count":226},"src/plugins/plugin-catalog.seed.ts":{"size":4916,"mtime_ns":1792566203852505400,"indexed_at_ns":1792568605269299953,"word_count":473},"src/plugins/plugin-store.controller.ts":{"size":3423,"mtime_ns":1788860395124214700,"indexed_at_ns":1790064370589110499,"word_count":294},"src/plugins/plugin-store.service.ts":{"size":36364,"mtime_ns":1791450551832230400,"indexed_at_ns":1791907125941665393,"word_count":3332},"src/plugins/plugins.controller.ts":{"size":2613,"mtime_ns":1788797873972315800,"indexed_at_ns":1790064370590381021,"word_count":206},"src/plugins/plugins.module.ts":{"size":989,"mtime_ns":1789026291062190000,"indexed_at_ns":1790064370590897204,"word_count":83},"src/plugins/plugins.service.ts":{"size":23062,"mtime_ns":1789550948345568500,"indexed_at_ns":1790064370591390333,"word_count":2120},"src/plugins/public-plugin-store.controller.ts":{"size":2925,"mtime_ns":1789026291062306700,"indexed_at_ns":1790064370592018184,"word_count":252},"src/plugins/remote-plugins.controller.ts":{"size":2993,"mtime_ns":1788860395352229300,"indexed_at_ns":1790064370592547461,"word_count":257},"src/prisma/prisma.module.ts":{"size":210,"mtime_ns":1786352929502179500,"indexed_at_ns":1790064370593098791,"word_count":24},"src/prisma/prisma.service.ts":{"size":354,"mtime_ns":1786352929502303100,"indexed_at_ns":1790064370593595524,"word_count":37},"src/program-settings/api-public-program-settings.controller.ts":{"size":605,"mtime_ns":1787032965233975500,"indexed_at_ns":1790064370594129507,"word_count":50},"src/program-settings/deploy-setting-catalog-keys.ts":{"size":5815,"mtime_ns":1792566216432357600,"indexed_at_ns":1792568605274121355,"word_count":279},"src/program-settings/dto/import-program-settings.dto.ts":{"size":747,"mtime_ns":1786984107672334800,"indexed_at_ns":1790064370595261438,"word_count":75},"src/program-settings/dto/setting-keys.dto.ts":{"size":297,"mtime_ns":1786984110422690400,"indexed_at_ns":1790064370595848521,"word_count":31},"src/program-settings/dto/update-program-settings.dto.ts":{"size":159,"mtime_ns":1786973213628097300,"indexed_at_ns":1790064370596434667,"word_count":17},"src/program-settings/program-settings.controller.ts":{"size":2211,"mtime_ns":1791450551832421400,"indexed_at_ns":1791907125947897434,"word_count":180},"src/program-settings/program-settings.module.ts":{"size":993,"mtime_ns":1786984123340163800,"indexed_at_ns":1790064370597501377,"word_count":75},"src/program-settings/program-settings.service.ts":{"size":40132,"mtime_ns":1788787102880153300,"indexed_at_ns":1790064370598007543,"word_count":3960},"src/program-settings/public-program-settings.controller.ts":{"size":591,"mtime_ns":1787032967526884100,"indexed_at_ns":1790064370598768443,"word_count":50},"src/program-settings/remote-program-settings.controller.ts":{"size":585,"mtime_ns":1786973213631817900,"indexed_at_ns":1790064370599299226,"word_count":53},"src/program-settings/runtime-setting-keys.ts":{"size":733,"mtime_ns":1788797820502239300,"indexed_at_ns":1790064370599834172,"word_count":54},"src/program-settings/secret-setting-keys.ts":{"size":1048,"mtime_ns":1787510943599199500,"indexed_at_ns":1790064370600370895,"word_count":77},"src/program-settings/setting-templates.controller.ts":{"size":1783,"mtime_ns":1791450551832610600,"indexed_at_ns":1791907125951061171,"word_count":148},"src/replica-watch/replica-watch.module.ts":{"size":241,"mtime_ns":1787043253521665200,"indexed_at_ns":1790064370601414191,"word_count":24},"src/replica-watch/replica-watch.service.ts":{"size":2670,"mtime_ns":1787043253233506300,"indexed_at_ns":1790064370601926644,"word_count":287},"src/servers/dto/server-account.dto.ts":{"size":1342,"mtime_ns":1786470929681464900,"indexed_at_ns":1790064370602545395,"word_count":142},"src/servers/servers.controller.ts":{"size":3623,"mtime_ns":1786470929682539000,"indexed_at_ns":1790064370603071974,"word_count":277},"src/servers/servers.module.ts":{"size":564,"mtime_ns":1786470929683201600,"indexed_at_ns":1790064370603576107,"word_count":52},"src/servers/servers.service.ts":{"size":23359,"mtime_ns":1787587777934067400,"indexed_at_ns":1790064370604067413,"word_count":2139},"src/settings-proxy/settings-proxy.controller.ts":{"size":1087,"mtime_ns":1786377085762183600,"indexed_at_ns":1790064370604694726,"word_count":96},"src/settings-proxy/settings-proxy.module.ts":{"size":416,"mtime_ns":1786470929685349200,"indexed_at_ns":1790064370605203320,"word_count":38},"src/settings-proxy/settings-proxy.service.ts":{"size":8701,"mtime_ns":1791450551832886500,"indexed_at_ns":1791907125955036708,"word_count":873},"src/sms/dto/sms-account.dto.ts":{"size":3641,"mtime_ns":1786352929503738600,"indexed_at_ns":1790064370606347614,"word_count":392},"src/sms/remote-sms.controller.ts":{"size":4951,"mtime_ns":1786352929503867500,"indexed_at_ns":1790064370606876734,"word_count":437},"src/sms/sms-keys.ts":{"size":3158,"mtime_ns":1790177846057910100,"indexed_at_ns":1791133976661164195,"word_count":315},"src/sms/sms.controller.ts":{"size":3389,"mtime_ns":1786377085762577000,"indexed_at_ns":1790064370607915711,"word_count":266},"src/sms/sms.module.ts":{"size":624,"mtime_ns":1786973249326113100,"indexed_at_ns":1790064370608420405,"word_count":60},"src/sms/sms.service.ts":{"size":30742,"mtime_ns":1788876746093648100,"indexed_at_ns":1790064370608915799,"word_count":2787},"src/support/dto/support.dto.ts":{"size":2042,"mtime_ns":1786352929504744500,"indexed_at_ns":1790064370609667506,"word_count":196},"src/support/support.controller.ts":{"size":2271,"mtime_ns":1786377085762915500,"indexed_at_ns":1790064370610198917,"word_count":183},"src/support/support.module.ts":{"size":464,"mtime_ns":1786377085763063100,"indexed_at_ns":1790064370610701781,"word_count":45},"src/support/support.service.ts":{"size":18021,"mtime_ns":1787587777934533600,"indexed_at_ns":1790064370611200725,"word_count":1657},"src/tenants/dto/create-tenant.dto.ts":{"size":1926,"mtime_ns":1791450551833174700,"indexed_at_ns":1791907125960222824,"word_count":172},"src/tenants/dto/update-tenant.dto.ts":{"size":177,"mtime_ns":1786352929505518600,"indexed_at_ns":1790064370612517079,"word_count":18},"src/tenants/tenants.controller.ts":{"size":6506,"mtime_ns":1791450551833380800,"indexed_at_ns":1791907125961466073,"word_count":584},"src/tenants/tenants.module.ts":{"size":602,"mtime_ns":1786984135840039400,"indexed_at_ns":1790064370613568115,"word_count":55},"src/tenants/tenants.service.ts":{"size":16115,"mtime_ns":1791450551833683900,"indexed_at_ns":1791907125962509186,"word_count":1474},"src/types/jalaali-js.d.ts":{"size":488,"mtime_ns":1787844546099400200,"indexed_at_ns":1790064370614647850,"word_count":62},"src/uploads/uploads.util.ts":{"size":1653,"mtime_ns":1788860317366466700,"indexed_at_ns":1790064370615148436,"word_count":181},"test/app.e2e-spec.ts":{"size":700,"mtime_ns":1786352929506290400,"indexed_at_ns":1790064370615599884,"word_count":72},"test/jest-e2e.json":{"size":183,"mtime_ns":1786352929506407200,"indexed_at_ns":1790064370616030743,"word_count":17},"tsconfig.build.json":{"size":124,"mtime_ns":1786352929506525100,"indexed_at_ns":1790064370616393089,"word_count":11},"tsconfig.json":{"size":653,"mtime_ns":1786352929506638500,"indexed_at_ns":1790064370616745032,"word_count":45},"prisma/migrations/20261007120000_product_type_other/migration.sql":{"size":80,"mtime_ns":1791450551830091100,"indexed_at_ns":1791907125909060484,"word_count":11},"prisma/migrations/20261007180000_granular_product_permissions/migration.sql":{"size":1353,"mtime_ns":1791450551830280100,"indexed_at_ns":1791907125909682619,"word_count":131},"src/get-user/khanegi-layout-variants.ts":{"size":4079,"mtime_ns":1791889020088090100,"indexed_at_ns":1791907125933319516,"word_count":435}} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index 5eec161..4a2b0b8 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-
53 nodes · 77 edges · 9 communities
+
83 nodes · 107 edges · 8 communities