File size: 5,126 Bytes
9d2d895
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
// Configuration exports
// For variant-specific builds, set VITE_VARIANT environment variable
// VITE_VARIANT=tech β†’ tech.worldmonitor.app (tech-focused)
// VITE_VARIANT=full β†’ worldmonitor.app (geopolitical)
// VITE_VARIANT=finance β†’ finance.worldmonitor.app (markets/trading)

export { SITE_VARIANT } from './variant';

// Shared base configuration (always included)
export {
  IDLE_PAUSE_MS,
  REFRESH_INTERVALS,
  MONITOR_COLORS,
  STORAGE_KEYS,
  DEFAULT_MAP_MODE,
  type MapModePreference,
} from './variants/base';

// Market data (shared)
export { SECTORS, COMMODITIES, MARKET_SYMBOLS, CRYPTO_MAP } from './markets';

// Geo data (shared base). UNDERSEA_CABLES + MAP_URLS moved to the lazy geo-map
// chunk (#4404) β€” import them directly from '@/config/geo-map', not via this barrel.

// AI Datacenters: NOT re-exported on the eager @/config barrel β€” the ~86KB table
// is dragged onto the critical path via this re-export. Consumers (map/globe/
// search) import directly from '@/config/ai-datacenters'; related-assets lazy-
// loads it. (#4404)

// Feeds configuration (shared functions, variant-specific data)
export {
  SOURCE_TIERS,
  getSourceTier,
  SOURCE_TYPES,
  getSourceType,
  getSourcePropagandaRisk,
  getSourceTierBadgeTitle,
  describePropagandaBadge,
  hasDeclaredPropagandaRisk,
  hasDeclaredSourceType,
  hasReviewedPropagandaRisk,
  hasReviewedSourceType,
  listConfiguredFeedNames,
  getFeedProvenanceState,
  UNREVIEWED_SOURCE_RISK,
  ALERT_KEYWORDS,
  ALERT_EXCLUSIONS,
  type SourceRiskProfile,
  type SourceType,
} from './feeds';

// Panel configuration - imported from panels.ts
export {
  DEFAULT_PANELS,
  DEFAULT_MAP_LAYERS,
  MOBILE_DEFAULT_MAP_LAYERS,
  LAYER_TO_SOURCE,
  ALL_PANELS,
  VARIANT_DEFAULTS,
  VARIANT_PANEL_OVERRIDES,
  getEffectivePanelConfig,
  isPanelInVariantDefaults,
  isPanelEntitled,
  enforceFreePanelLimit,
  countFreePanelCapUsage,
  isFreePanelCapCounted,
  restoreFreeMapPanelAccess,
  FREE_MAX_PANELS,
  FREE_MAX_SOURCES,
} from './panels';

// ============================================
// VARIANT-SPECIFIC EXPORTS
// Only import what's needed for each variant
// ============================================

// Full variant (geopolitical) - only included in full builds
// These are large data files that should be tree-shaken in tech builds
export {
  FEEDS,
  INTEL_SOURCES,
} from './feeds';

// CANONICAL_FEEDS is the union of every variant's feed map β€” by design it
// references all *_FEEDS consts, so unlike FEEDS it is NOT tree-shaken per
// variant (~10KB gz). Required so a panel customized in from another variant
// can resolve its feeds. See src/config/feed-resolution.ts.
export { CANONICAL_FEEDS } from './feeds';

// MILITARY_BASES moved to the lazy military-bases chunk (#4478) β€” import it
// directly from '@/config/military-bases', not via this barrel, so the ~48KB
// bases-expanded table stays off the eager boot graph.
export {
  INTEL_HOTSPOTS,
  CONFLICT_ZONES,
  STRATEGIC_WATERWAYS,
} from './geo';

export { APT_GROUPS } from './apt-groups';
export { GAMMA_IRRADIATORS } from './irradiators';
export { PIPELINES, PIPELINE_COLORS } from './pipelines';
export { PORTS } from './ports';
// MONITORED_AIRPORTS/FAA_AIRPORTS are NOT re-exported on the eager @/config
// barrel β€” that pulls the airports table onto the critical path. The only
// consumer (AviationCommandBar, lazy) imports directly from '@/config/airports'. (#4404)
export {
  ENTITY_REGISTRY,
  getEntityById,
  type EntityType,
  type EntityEntry,
} from './entities';

// Tech variant - these are included in tech builds
export { TECH_COMPANIES } from './tech-companies';
export { AI_RESEARCH_LABS } from './ai-research-labs';
export { STARTUP_ECOSYSTEMS } from './startup-ecosystems';
export {
  AI_REGULATIONS,
  REGULATORY_ACTIONS,
  COUNTRY_REGULATION_PROFILES,
  getUpcomingDeadlines,
  getRecentActions,
} from './ai-regulations';
// Value re-exports of the tech-geo tables are intentionally NOT on the eager
// @/config barrel β€” they pull the ~62KB tech-geo chunk onto the dashboard
// critical path. Every consumer (search/map/globe/tech-hub services) imports
// directly from '@/config/tech-geo'. Type re-exports are erased, no edge. (#4404)
export {
  type StartupHub,
  type Accelerator,
  type TechHQ,
  type CloudRegion,
} from './tech-geo';

// Finance variant - these are included in finance builds
export {
  STOCK_EXCHANGES,
  FINANCIAL_CENTERS,
  CENTRAL_BANKS,
  COMMODITY_HUBS,
  type StockExchange,
  type FinancialCenter,
  type CentralBank,
  type CommodityHub,
} from './finance-geo';

// Gulf FDI investment database
export { GULF_INVESTMENTS } from './gulf-fdi';

// Commodity variant - these are included in commodity builds
export {
  COMMODITY_PRICES,
  COMMODITY_MARKET_SYMBOLS,
} from './commodity-markets';

export {
  MINING_SITES,
  PROCESSING_PLANTS,
  COMMODITY_PORTS,
} from './commodity-geo';

// COMMODITY_MINERS: 30+ mining company HQs β€” not yet rendered on map.
// Uncomment when a miners layer is added to DeckGLMap.ts.
// export { COMMODITY_MINERS, type CommodityMiner } from './commodity-miners';