Spaces:
Sleeping
Sleeping
Dhruva P Gowda
Deploy ShockMap MVP: High-fidelity UI overhaul, animated graph particles, live GDELT ingestion, and production scaffolding
f59a149 Download frontend/src/lib/mockData.js from shield137/shockmap-api: direct link, hf CLI and curl.
- Browser
- Download file 8.36 kB
-
https://huggingface.co/spaces/shield137/shockmap-api/resolve/main/frontend/src/lib/mockData.js
- Command line
-
hf download hf://spaces/shield137/shockmap-api/frontend/src/lib/mockData.js
-
curl -L -o mockData.js https://huggingface.co/spaces/shield137/shockmap-api/resolve/main/frontend/src/lib/mockData.js
8.36 kB
| // frontend/src/lib/mockData.js | |
| // Realistic offline mock data for all endpoints | |
| export const MOCK_SHOCKS = [ | |
| { | |
| id: "shock_001", | |
| title: "Hebei Analgesic Stress — Factory Shutdown", | |
| event_type: "factory_shutdown", | |
| severity: "CRITICAL", | |
| province: "Hebei", | |
| sector: "pharma", | |
| affected_entities: ["paracetamol", "ceftriaxone", "amoxicillin"], | |
| risk_score: 87, | |
| days_to_stockout: 18, | |
| exposure_crore: 2340, | |
| created_at: new Date(Date.now() - 3 * 60 * 60 * 1000).toISOString(), | |
| description: "Major Hebei pharmaceutical manufacturing cluster shut down following environmental compliance enforcement. 3 key API factories offline.", | |
| }, | |
| { | |
| id: "shock_002", | |
| title: "Inner Mongolia Rare Earth Export Ban", | |
| event_type: "export_ban", | |
| severity: "CRITICAL", | |
| province: "Inner Mongolia", | |
| sector: "rare_earth", | |
| affected_entities: ["neodymium", "dysprosium", "cerium"], | |
| risk_score: 79, | |
| days_to_stockout: 24, | |
| exposure_crore: 1840, | |
| created_at: new Date(Date.now() - 6 * 60 * 60 * 1000).toISOString(), | |
| description: "Chinese customs suspended neodymium and dysprosium export declarations pending strategic quota review.", | |
| }, | |
| { | |
| id: "shock_003", | |
| title: "Shandong Port Closure — Yellow Sea Storm", | |
| event_type: "port_closure", | |
| severity: "HIGH", | |
| province: "Shandong", | |
| sector: "pharma", | |
| affected_entities: ["ciprofloxacin", "metformin"], | |
| risk_score: 61, | |
| days_to_stockout: 31, | |
| exposure_crore: 780, | |
| created_at: new Date(Date.now() - 12 * 60 * 60 * 1000).toISOString(), | |
| description: "Qingdao and Rizhao ports suspended operations due to Typhoon Khanun. Estimated 4-day delay on API shipments.", | |
| }, | |
| { | |
| id: "shock_004", | |
| title: "Jiangsu API Contamination Alert", | |
| event_type: "contamination", | |
| severity: "HIGH", | |
| province: "Jiangsu", | |
| sector: "pharma", | |
| affected_entities: ["losartan", "amlodipine"], | |
| risk_score: 58, | |
| days_to_stockout: 40, | |
| exposure_crore: 540, | |
| created_at: new Date(Date.now() - 18 * 60 * 60 * 1000).toISOString(), | |
| description: "NDMA impurity detected in losartan API batch. Voluntary recall initiated by 2 manufacturers.", | |
| }, | |
| { | |
| id: "shock_005", | |
| title: "Liaoning Steel-Pharma Corridor Disruption", | |
| event_type: "factory_shutdown", | |
| severity: "MEDIUM", | |
| province: "Liaoning", | |
| sector: "pharma", | |
| affected_entities: ["gentamicin", "amikacin"], | |
| risk_score: 38, | |
| days_to_stockout: 55, | |
| exposure_crore: 210, | |
| created_at: new Date(Date.now() - 36 * 60 * 60 * 1000).toISOString(), | |
| description: "Northeast pharma logistics corridor impacted by industrial accident near Shenyang.", | |
| }, | |
| ]; | |
| export const MOCK_GRAPH = { | |
| nodes: [ | |
| { id: "hebei", label: "Hebei Province", type: "province", attributes: { current_risk: 95, buffer_days: 12, monthly_import_tonnes: 4200, strategic_priority: "TIER_1" } }, | |
| { id: "inner_mongolia", label: "Inner Mongolia", type: "province", attributes: { current_risk: 79, buffer_days: 20, monthly_import_tonnes: 1800, strategic_priority: "TIER_1" } }, | |
| { id: "shandong", label: "Shandong Province", type: "province", attributes: { current_risk: 61, buffer_days: 28, monthly_import_tonnes: 2900, strategic_priority: "TIER_2" } }, | |
| { id: "pap", label: "Para-Aminophenol", type: "ksm", attributes: { current_risk: 88, buffer_days: 8, substitutability: 0.15 } }, | |
| { id: "6apa", label: "6-APA", type: "ksm", attributes: { current_risk: 72, buffer_days: 14, substitutability: 0.22 } }, | |
| { id: "neodymium", label: "Neodymium Oxide", type: "ksm", attributes: { current_risk: 76, buffer_days: 18, substitutability: 0.08 } }, | |
| { id: "paracetamol_api", label: "Paracetamol API", type: "api", attributes: { current_risk: 85, buffer_days: 6, substitutability: 0.18 } }, | |
| { id: "amoxicillin_api", label: "Amoxicillin API", type: "api", attributes: { current_risk: 68, buffer_days: 16, substitutability: 0.31 } }, | |
| { id: "cipro_api", label: "Ciprofloxacin API", type: "api", attributes: { current_risk: 40, buffer_days: 35, substitutability: 0.45 } }, | |
| { id: "paracetamol", label: "Paracetamol", type: "drug", attributes: { current_risk: 82, buffer_days: 7, patient_population_estimate: 85000000, nlem_tier: "TIER_1" } }, | |
| { id: "ceftriaxone", label: "Ceftriaxone", type: "drug", attributes: { current_risk: 74, buffer_days: 10, patient_population_estimate: 12000000, nlem_tier: "TIER_1" } }, | |
| { id: "amoxicillin", label: "Amoxicillin", type: "drug", attributes: { current_risk: 65, buffer_days: 18, patient_population_estimate: 42000000, nlem_tier: "TIER_2" } }, | |
| { id: "ciprofloxacin", label: "Ciprofloxacin", type: "drug", attributes: { current_risk: 38, buffer_days: 40, patient_population_estimate: 18000000, nlem_tier: "TIER_2" } }, | |
| ], | |
| edges: [ | |
| { source: "hebei", target: "pap", weight: 0.90 }, | |
| { source: "hebei", target: "6apa", weight: 0.70 }, | |
| { source: "inner_mongolia", target: "neodymium", weight: 0.85 }, | |
| { source: "pap", target: "paracetamol_api", weight: 0.85 }, | |
| { source: "6apa", target: "amoxicillin_api", weight: 0.68 }, | |
| { source: "paracetamol_api", target: "paracetamol", weight: 0.82 }, | |
| { source: "paracetamol_api", target: "ceftriaxone", weight: 0.60 }, | |
| { source: "amoxicillin_api", target: "amoxicillin", weight: 0.65 }, | |
| { source: "shandong", target: "cipro_api", weight: 0.40 }, | |
| { source: "cipro_api", target: "ciprofloxacin", weight: 0.38 }, | |
| ], | |
| state_risk_aggregates: [ | |
| { state_id: "MH", state_name: "Maharashtra", risk_score: 74 }, | |
| { state_id: "GJ", state_name: "Gujarat", risk_score: 68 }, | |
| { state_id: "TS", state_name: "Telangana", risk_score: 61 }, | |
| { state_id: "DL", state_name: "Delhi", risk_score: 58 }, | |
| { state_id: "KA", state_name: "Karnataka", risk_score: 52 }, | |
| ], | |
| }; | |
| export const MOCK_QUERY_RESPONSE = { | |
| answer: "Based on current shock telemetry, **Paracetamol** and **Ceftriaxone** face highest downstream risk from the Hebei factory shutdown. Para-Aminophenol (PAP) is the critical bottleneck — India sources 73% from Hebei corridor.\n\nRecommended actions within 72 hours:\n• Activate DGFT strategic buffer release for Tier-1 APIs\n• Issue advance purchase order: 18 MT PAP from SE Asia spot market\n• Trigger substitution protocol for Amoxicillin (31% substitutability)\n\nEstimated exposure: ₹2,340 Cr across 85M patient population.", | |
| confidence: 0.87, | |
| response_mode: "demo", | |
| citations: [ | |
| { source: "DGFT Circular 2024-API-09", snippet: "Buffer stock norms mandate 45-day API reserve for Schedule H medicines under supply chain stress.", url: "" }, | |
| { source: "Hebei EPA Enforcement Notice", snippet: "12 pharmaceutical manufacturing units in Shijiazhuang suspended pending environmental compliance verification.", url: "" }, | |
| { source: "IPC Supply Intelligence Brief", snippet: "Para-Aminophenol import concentration from Hebei: 73.4% of total Indian API procurement.", url: "" }, | |
| ], | |
| suggested_drugs_to_inspect: ["paracetamol", "ceftriaxone", "amoxicillin"], | |
| matched_scenarios: ["Hebei analgesic stress", "API buffer depletion"], | |
| }; | |
| export const MOCK_CORRIDORS = [ | |
| { id: "c1", from: [39.9, 116.4], to: [28.7, 77.1], label: "Hebei → Delhi NCR", volume: 0.9, disrupted: true, province: "Hebei", state: "Delhi" }, | |
| { id: "c2", from: [36.7, 117.0], to: [19.1, 72.9], label: "Shandong → Mumbai", volume: 0.7, disrupted: false, province: "Shandong", state: "Maharashtra" }, | |
| { id: "c3", from: [41.8, 123.4], to: [12.9, 77.6], label: "Liaoning → Bangalore", volume: 0.5, disrupted: false, province: "Liaoning", state: "Karnataka" }, | |
| { id: "c4", from: [40.8, 111.7], to: [22.6, 88.4], label: "Inner Mongolia → Kolkata",volume: 0.6, disrupted: true, province: "Inner Mongolia",state: "West Bengal" }, | |
| { id: "c5", from: [32.1, 118.8], to: [17.4, 78.5], label: "Jiangsu → Hyderabad", volume: 0.65,disrupted: false, province: "Jiangsu", state: "Telangana" }, | |
| ]; | |