1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6554],{10241:(e,t,a)=>{a.d(t,{AC:()=>n,E0:()=>r,Sm:()=>i});let n=[{code:"EG",name:"Egypt"},{code:"SA",name:"Saudi Arabia"},{code:"AE",name:"United Arab Emirates"},{code:"BR",name:"Brazil"},{code:"MX",name:"Mexico"},{code:"NG",name:"Nigeria"},{code:"KE",name:"Kenya"},{code:"ZA",name:"South Africa"},{code:"DZ",name:"Algeria"},{code:"MA",name:"Morocco"},{code:"TN",name:"Tunisia"},{code:"US",name:"United States"},{code:"GB",name:"United Kingdom"},{code:"DE",name:"Germany"},{code:"FR",name:"France"},{code:"ES",name:"Spain"},{code:"IT",name:"Italy"},{code:"PL",name:"Poland"},{code:"TR",name:"Turkiye"},{code:"RU",name:"Russia"},{code:"IN",name:"India"},{code:"CN",name:"China"},{code:"JP",name:"Japan"},{code:"KR",name:"South Korea"},{code:"ID",name:"Indonesia"},{code:"MY",name:"Malaysia"},{code:"PH",name:"Philippines"},{code:"TH",name:"Thailand"},{code:"VN",name:"Vietnam"},{code:"BD",name:"Bangladesh"},{code:"PK",name:"Pakistan"},{code:"IQ",name:"Iraq"},{code:"JO",name:"Jordan"},{code:"KW",name:"Kuwait"},{code:"QA",name:"Qatar"},{code:"OM",name:"Oman"},{code:"BH",name:"Bahrain"},{code:"LB",name:"Lebanon"},{code:"AU",name:"Australia"},{code:"NZ",name:"New Zealand"},{code:"CA",name:"Canada"},{code:"AR",name:"Argentina"},{code:"CL",name:"Chile"},{code:"CO",name:"Colombia"},{code:"PE",name:"Peru"},{code:"ET",name:"Ethiopia"},{code:"TZ",name:"Tanzania"},{code:"GH",name:"Ghana"},{code:"UA",name:"Ukraine"}];function r(e){var t,a;let r=e.trim().toLowerCase();if(r)return null!=(a=null!=(t=n.find(e=>e.code.toLowerCase()===r))?t:n.find(e=>e.name.toLowerCase()===r))?a:n.find(e=>e.name.toLowerCase().startsWith(r))}let i=["US","GB","BR","IN","SA","CN","CA","AE"].map(e=>n.find(t=>t.code===e)).filter(Boolean)},60396:(e,t,a)=>{a.d(t,{P:()=>r});var n=a(71989);async function r(){let e=(0,n.c)();if(!e)return{};try{let{data:{session:t}}=await e.auth.getSession(),a=null==t?void 0:t.access_token;return a?{Authorization:"Bearer ".concat(a)}:{}}catch(e){return{}}}},71989:(e,t,a)=>{a.d(t,{c:()=>o});var n=a(73940),r=a(74173);let i=null;function o(){let e=(0,r.cQ)();return e?(i||(i=(0,n.createBrowserClient)(e.url,e.anonKey)),i):null}},74173:(e,t,a)=>{a.d(t,{$G:()=>i,Ex:()=>o,cQ:()=>r});var n=a(95704);function r(){let e="https://undsoelfdumxatbedsfd.supabase.co",t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVuZHNvZWxmZHVteGF0YmVkc2ZkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODM2Nzc0MTMsImV4cCI6MjA5OTI1MzQxM30.ARktR5sf6DQ0Jc631SyNbNKZymA3ii8QK3JMYiakv_w";return e&&t?{url:e,anonKey:t}:null}function i(){return null!==r()}function o(){return"supabase"===n.env.NEXT_PUBLIC_DATA_SOURCE&&i()?"supabase":"mock"}},96554:(e,t,a)=>{a.d(t,{ApiProvider:()=>es,g:()=>el});var n=a(95155),r=a(12115),i=a(60396);async function o(e){try{var t;let a=await e.json();if(null==a||null==(t=a.error)?void 0:t.code){let e=Error(a.error.code);return a.error.message&&(e.detail=a.error.message),e}}catch(e){}return Error("http_".concat(e.status))}async function s(e,t,a){let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",...await (0,i.P)()},body:JSON.stringify(t)});if(!n.ok)throw await o(n);if(!n.body)throw Error("stream_unavailable");let r=n.body.getReader(),s=new TextDecoder,l="";for(;;){let{done:e,value:t}=await r.read();if(e)break;let n=(l+=s.decode(t,{stream:!0})).indexOf("\n");for(;n>=0;){let e=l.slice(0,n).trim();l=l.slice(n+1),e&&a(JSON.parse(e)),n=l.indexOf("\n")}}let c=(l+=s.decode()).trim();c&&a(JSON.parse(c))}async function l(e){let t=await fetch(e,{cache:"no-store",headers:await (0,i.P)()});if(!t.ok)throw await o(t);return await t.json()}async function c(e,t,a){let n=await (0,i.P)(),r=await fetch(e,{method:t,...void 0!==a?{headers:{"Content-Type":"application/json",...n},body:JSON.stringify(a)}:{headers:n}});if(!r.ok)throw await o(r);return await r.json()}async function d(e,t){let a=await fetch(e,{method:t,headers:await (0,i.P)()});if(!a.ok)throw await o(a)}function u(e,t){let a=new URLSearchParams;for(let[e,n]of Object.entries(t))void 0!==n&&""!==n&&a.set(e,String(n));let n=a.toString();return"".concat(e).concat(n?"?".concat(n):"")}function m(e){return null===e||"object"!=typeof e||Array.isArray(e)?void 0:e}function p(e,t,a){return void 0!==e[t]?e[t]:e[a]}async function g(e){let t=await fetch(e,{cache:"no-store",headers:await (0,i.P)()});if(404===t.status)return null;if(!t.ok)throw await o(t);return await t.json()}let h="company-sun-pharma",y="mol-metformin",f=[{companyId:h,name:"Sun Pharmaceutical Industries",country:"IN",website:"https://sunpharma.com",plantCount:2,filingCount:184,filingRegulators:["fda_us","ema_eu","mhra_uk"],dmfCount:38,cepCount:14,personnelCount:412,complianceEventCount:5,latestComplianceDate:"2026-02-18",hasTrade:!0,tenderCount:27,moleculeCount:6,evidenceScore:10,gmpAccredited:!0,severeEventCount:1,stateOwned:!1,isCdmo:!0,apiPosture:"integrated",riskRegionPlants:0},{companyId:"company-dr-reddys",name:"Dr. Reddy's Laboratories",country:"IN",website:"https://www.drreddys.com",plantCount:12,filingCount:146,filingRegulators:["fda_us","ema_eu","tga_au"],dmfCount:29,cepCount:11,personnelCount:286,complianceEventCount:3,latestComplianceDate:"2025-09-03",hasTrade:!0,tenderCount:19,moleculeCount:42,evidenceScore:9,gmpAccredited:!0,severeEventCount:1,stateOwned:!1,isCdmo:!1,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-lonza",name:"Lonza Group",country:"CH",website:"https://www.lonza.com",plantCount:8,filingCount:68,filingRegulators:["ema_eu","fda_us"],dmfCount:8,cepCount:6,personnelCount:133,complianceEventCount:0,latestComplianceDate:null,hasTrade:!0,tenderCount:2,moleculeCount:24,evidenceScore:8,gmpAccredited:!0,severeEventCount:0,stateOwned:!1,isCdmo:!0,apiPosture:"pure_play",riskRegionPlants:0},{companyId:"company-teva",name:"Teva Pharmaceutical Industries",country:"IL",website:"https://www.tevapharm.com",plantCount:7,filingCount:129,filingRegulators:["fda_us","ema_eu","health_canada"],dmfCount:20,cepCount:9,personnelCount:304,complianceEventCount:4,latestComplianceDate:"2025-12-10",hasTrade:!0,tenderCount:31,moleculeCount:37,evidenceScore:8,gmpAccredited:!0,severeEventCount:1,stateOwned:!1,isCdmo:!1,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-boehringer",name:"Boehringer Ingelheim",country:"DE",website:"https://www.boehringer-ingelheim.com",plantCount:6,filingCount:95,filingRegulators:["ema_eu","fda_us"],dmfCount:3,cepCount:4,personnelCount:197,complianceEventCount:1,latestComplianceDate:"2024-06-21",hasTrade:!1,tenderCount:8,moleculeCount:18,evidenceScore:7,gmpAccredited:!0,severeEventCount:0,stateOwned:!1,isCdmo:!1,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-cipla",name:"Cipla",country:"IN",website:"https://www.cipla.com",plantCount:9,filingCount:117,filingRegulators:["fda_us","ema_eu","sahpra"],dmfCount:17,cepCount:7,personnelCount:221,complianceEventCount:2,latestComplianceDate:"2025-04-14",hasTrade:!0,tenderCount:44,moleculeCount:31,evidenceScore:7,gmpAccredited:!0,severeEventCount:0,stateOwned:!1,isCdmo:!1,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-catalent",name:"Catalent Pharma Solutions",country:"US",website:"https://www.catalent.com",plantCount:5,filingCount:34,filingRegulators:["fda_us","ema_eu"],dmfCount:0,cepCount:0,personnelCount:88,complianceEventCount:2,latestComplianceDate:"2026-01-07",hasTrade:!1,tenderCount:0,moleculeCount:8,evidenceScore:5,gmpAccredited:!0,severeEventCount:1,stateOwned:!1,isCdmo:!0,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-wuxi-apptec",name:"WuXi AppTec",country:"CN",website:"https://www.wuxiapptec.com",plantCount:4,filingCount:23,filingRegulators:["fda_us"],dmfCount:5,cepCount:0,personnelCount:74,complianceEventCount:0,latestComplianceDate:null,hasTrade:!0,tenderCount:1,moleculeCount:13,evidenceScore:4,gmpAccredited:!1,severeEventCount:0,stateOwned:!1,isCdmo:!0,apiPosture:"pure_play",riskRegionPlants:0},{companyId:"company-delpharm",name:"Delpharm",country:"FR",website:"https://www.delpharm.com",plantCount:3,filingCount:16,filingRegulators:["ema_eu"],dmfCount:0,cepCount:2,personnelCount:41,complianceEventCount:0,latestComplianceDate:null,hasTrade:!1,tenderCount:0,moleculeCount:5,evidenceScore:3,gmpAccredited:!0,severeEventCount:0,stateOwned:!1,isCdmo:!0,apiPosture:"unknown",riskRegionPlants:0},{companyId:"company-sinopharm",name:"Sinopharm Group",country:"CN",website:"https://www.sinopharm.com",plantCount:11,filingCount:52,filingRegulators:["nmpa_cn","fda_us"],dmfCount:6,cepCount:1,personnelCount:96,complianceEventCount:0,latestComplianceDate:null,hasTrade:!0,tenderCount:38,moleculeCount:29,evidenceScore:6,gmpAccredited:!0,severeEventCount:0,stateOwned:!0,isCdmo:!1,apiPosture:"unknown",riskRegionPlants:0}],v=[{moleculeId:y,name:"Metformin hydrochloride",inn:"metformin",atc:"A10BA02",supplierCount:6,dmfCount:4,cepCount:2,marketCount:4,patentCount:3,latestPatentExpiry:"2030-04-12",shortageCount:2,tenderCount:62,hasPrice:!0,evidenceScore:9,patentStatus:"in-force",minInforceExpiry:"2030-04-12",openShortageCount:1},{moleculeId:"mol-tirzepatide",name:"Tirzepatide",inn:"tirzepatide",atc:"A10BX16",supplierCount:5,dmfCount:3,cepCount:1,marketCount:3,patentCount:8,latestPatentExpiry:"2036-01-05",shortageCount:0,tenderCount:7,hasPrice:!0,evidenceScore:8,patentStatus:"in-force",minInforceExpiry:"2036-01-05",openShortageCount:0},{moleculeId:"mol-dapagliflozin",name:"Dapagliflozin",inn:"dapagliflozin",atc:"A10BK01",supplierCount:5,dmfCount:4,cepCount:1,marketCount:5,patentCount:6,latestPatentExpiry:"2030-10-04",shortageCount:1,tenderCount:0,hasPrice:!0,evidenceScore:8,patentStatus:"in-force",minInforceExpiry:"2030-10-04",openShortageCount:1}
1,{moleculeId:"mol-atorvastatin",name:"Atorvastatin calcium",inn:"atorvastatin",atc:"C10AA05",supplierCount:5,dmfCount:3,cepCount:2,marketCount:6,patentCount:2,latestPatentExpiry:"2024-07-08",shortageCount:0,tenderCount:31,hasPrice:!0,evidenceScore:8,patentStatus:"off-patent",minInforceExpiry:null,openShortageCount:0},{moleculeId:"mol-sitagliptin",name:"Sitagliptin phosphate",inn:"sitagliptin",atc:"A10BH01",supplierCount:4,dmfCount:3,cepCount:1,marketCount:4,patentCount:5,latestPatentExpiry:"2031-05-15",shortageCount:0,tenderCount:15,hasPrice:!0,evidenceScore:8,patentStatus:"in-force",minInforceExpiry:"2031-05-15",openShortageCount:0},{moleculeId:"mol-empagliflozin",name:"Empagliflozin",inn:"empagliflozin",atc:"A10BK03",supplierCount:3,dmfCount:2,cepCount:1,marketCount:4,patentCount:7,latestPatentExpiry:"2034-08-21",shortageCount:0,tenderCount:9,hasPrice:!0,evidenceScore:8,patentStatus:"in-force",minInforceExpiry:"2034-08-21",openShortageCount:0},{moleculeId:"mol-semaglutide",name:"Semaglutide",inn:"semaglutide",atc:"A10BJ06",supplierCount:2,dmfCount:2,cepCount:0,marketCount:3,patentCount:9,latestPatentExpiry:"2037-03-20",shortageCount:2,tenderCount:0,hasPrice:!0,evidenceScore:8,patentStatus:"in-force",minInforceExpiry:"2037-03-20",openShortageCount:2},{moleculeId:"mol-apixaban",name:"Apixaban",inn:"apixaban",atc:"B01AF02",supplierCount:3,dmfCount:2,cepCount:1,marketCount:4,patentCount:4,latestPatentExpiry:"2031-02-24",shortageCount:0,tenderCount:11,hasPrice:!1,evidenceScore:7,patentStatus:"in-force",minInforceExpiry:"2031-02-24",openShortageCount:0},{moleculeId:"mol-ruxolitinib",name:"Ruxolitinib",inn:"ruxolitinib",atc:"L01EJ01",supplierCount:1,dmfCount:1,cepCount:0,marketCount:2,patentCount:6,latestPatentExpiry:"2033-12-12",shortageCount:0,tenderCount:0,hasPrice:!1,evidenceScore:6,patentStatus:"in-force",minInforceExpiry:"2033-12-12",openShortageCount:0},{moleculeId:"mol-tildrakizumab",name:"Tildrakizumab",inn:"tildrakizumab",atc:"L04AC17",supplierCount:0,dmfCount:0,cepCount:0,marketCount:2,patentCount:0,latestPatentExpiry:null,shortageCount:0,tenderCount:0,hasPrice:!1,evidenceScore:1,patentStatus:"no-docket",minInforceExpiry:null,openShortageCount:0}],C=[{code:"fda_us",country:"US"},{code:"ema_eu",country:"DE"},{code:"mhra_uk",country:"GB"},{code:"anvisa_br",country:"BR"},{code:"cdsco_in",country:"IN"},{code:"tga_au",country:"AU"}],I=["active","pending","inactive","unknown","other"],b=["Tablet","Capsule","Comprim\xe9","æ³¨å°æ¶²"],w=["Marketing authorisation","ANDA","Product licence","Variation"],P=(Array.from({length:48},(e,t)=>{var a;let n=C[t%C.length],r=v[t%v.length],i=f[t%f.length],o=t%11!=0,s=t%7!=0,l=t%8!=0,c=I[t%I.length];return{filingId:"registration-".concat(String(t+1).padStart(3,"0")),regulator:n.code,regulatorCountry:n.country,moleculeId:o?r.moleculeId:null,moleculeName:o?r.name:null,brandName:t%6==0?null:"".concat(null!=(a=r.inn)?a:r.name," ").concat(t+1),holderCompanyId:s?i.companyId:null,holderName:s?i.name:null,holderCountry:s?i.country:null,manufacturerCompanyId:f[(t+3)%f.length].companyId,filingType:w[t%w.length],filingNumber:"".concat(n.code.toUpperCase(),"-").concat(2020+t%7,"-").concat(1e3+t),filingDate:l?"".concat(2020+t%7,"-").concat(String(t%12+1).padStart(2,"0"),"-").concat(String(t%27+1).padStart(2,"0")):null,approvalDate:l&&"active"===c?"".concat(2021+t%6,"-").concat(String(t%12+1).padStart(2,"0"),"-15"):null,status:c,statusRaw:"active"===c?"Marketed":"inactive"===c?"Withdrawn":"unknown"===c?null:c,dosageForm:b[t%b.length],strength:"".concat(5+t%10*5," mg"),sourceUrl:t%4==0?"https://example.test/registrations/".concat(t+1):null}}),["procurement","commercial","leadership","other"]),S=[{rank:0,label:"Executive"},{rank:1,label:"Vice President"},{rank:2,label:"Director"},{rank:3,label:"Manager"}],A=["IN","US","GB","DE","CH","CN"],k={procurement:["Head of Procurement","Strategic Sourcing Director"],commercial:["VP Commercial","Business Development Director"],leadership:["Chief Executive Officer","Managing Director"],other:["Quality Assurance Manager","Regulatory Affairs Director"]},D=["Aarav","Maya","Jonas","Priya","Lena","David","Mei","Omar"],N=["
1Shah","Chen","Muller","Patel","Williams","Rossi"],U=(Array.from({length:48},(e,t)=>{let a=P[t%P.length],n=S[t%S.length],r=f[t%f.length],i=t%9==0?null:A[t%A.length];return{personId:"person-".concat(String(t+1).padStart(3,"0")),fullName:"".concat(D[t%D.length]," ").concat(N[Math.floor(t/D.length)%N.length]," ").concat(t+1),jobTitle:k[a][t%2],bucket:a,seniority:n.rank,seniorityLabel:n.label,location:i?"".concat(i," office"):null,workCountry:i,companyId:r.companyId,companyName:r.name,companyCountry:r.country,startYear:t%10==0?null:2014+t%12,hasAbout:t%3!=0,isCdmo:r.isCdmo,gmpAccredited:r.gmpAccredited}}),{[h]:{plantCountries:["IN","US"],latestFilingDate:"2026-06-14",events3yCount:5,isListed:!0,hasFinancials:!0,tradeGrowing:!0,exportDestinations:["US","CH","DE"],lastTradeUsd:1842e5},"company-dr-reddys":{plantCountries:["IN","US"],latestFilingDate:"2026-05-20",events3yCount:3,isListed:!0,hasFinancials:!0,tradeGrowing:!0,exportDestinations:["US","DE","IL"],lastTradeUsd:142e6},"company-lonza":{plantCountries:["CH","US"],latestFilingDate:"2026-02-11",events3yCount:0,isListed:!0,hasFinancials:!0,tradeGrowing:!1,exportDestinations:["US","DE","FR"],lastTradeUsd:96e6},"company-teva":{plantCountries:["IL","US"],latestFilingDate:"2025-12-18",events3yCount:4,isListed:!0,hasFinancials:!0,tradeGrowing:!1,exportDestinations:["US","DE","IN"],lastTradeUsd:121e6},"company-boehringer":{plantCountries:["DE","US"],latestFilingDate:"2024-11-08",events3yCount:1,isListed:!1,hasFinancials:!0,tradeGrowing:!1,exportDestinations:["US","CH"],lastTradeUsd:0},"company-cipla":{plantCountries:["IN","US"],latestFilingDate:"2026-03-05",events3yCount:2,isListed:!0,hasFinancials:!0,tradeGrowing:!0,exportDestinations:["US","FR","CN"],lastTradeUsd:88e6},"company-catalent":{plantCountries:["US","DE"],latestFilingDate:"2025-08-17",events3yCount:2,isListed:!1,hasFinancials:!0,tradeGrowing:!1,exportDestinations:[],lastTradeUsd:0},"company-wuxi-apptec":{plantCountries:["CN","US"],latestFilingDate:"2025-10-09",events3yCount:0,isListed:!0,hasFinancials:!1,tradeGrowing:!0,exportDestinations:["US","DE"],lastTradeUsd:54e6},"company-delpharm":{plantCountries:["FR"],latestFilingDate:"2023-09-12",events3yCount:0,isListed:!1,hasFinancials:!1,tradeGrowing:!1,exportDestinations:[],lastTradeUsd:0},"company-sinopharm":{plantCountries:["CN"],latestFilingDate:"2026-01-29",events3yCount:0,isListed:!0,hasFinancials:!0,tradeGrowing:!0,exportDestinations:["IN","US"],lastTradeUsd:77e6}}),E={[y]:{registeredRegulators:["fda_us","ema_eu","mhra_uk","cdsco_in"],moleculeType:"salt",lastTradeYear:2026},"mol-tirzepatide":{registeredRegulators:["fda_us","ema_eu","pmda_jp"],moleculeType:"base",lastTradeYear:2026},"mol-dapagliflozin":{registeredRegulators:["fda_us","ema_eu","tga_au"],moleculeType:"base",lastTradeYear:2026},"mol-atorvastatin":{registeredRegulators:["fda_us","ema_eu","cdsco_in"],moleculeType:"salt",lastTradeYear:2026},"mol-sitagliptin":{registeredRegulators:["fda_us","ema_eu"],moleculeType:"salt",lastTradeYear:2025},"mol-empagliflozin":{registeredRegulators:["fda_us","ema_eu"],moleculeType:"base",lastTradeYear:2025},"mol-semaglutide":{registeredRegulators:["fda_us","ema_eu","tga_au"],moleculeType:"base",lastTradeYear:2026},"mol-apixaban":{registeredRegulators:["fda_us","ema_eu"],moleculeType:"base",lastTradeYear:2024},"mol-ruxolitinib":{registeredRegulators:["fda_us"],moleculeType:"base",lastTradeYear:2023},"mol-tildrakizumab":{registeredRegulators:["fda_us"],moleculeType:"base",lastTradeYear:null}},M={identity:{apiPosture:"integrated",maCount:4,companyId:h,name:"Sun Pharmaceutical Industries",shortName:"Sun Pharma",country:"IN",website:"https://sunpharma.com",ownershipType:"Public company",ticker:"SUNPHARMA",stockExchange:"NSE",foun
1dedYear:1983,industry:"Pharmaceutical manufacturing",businessCategory:"API and finished-dose manufacturer",description:"Indian multinational manufacturer spanning active ingredients, specialty medicines, generics, and complex dosage forms.",employeeRange:"41,000-45,000",revenueRangeUsdM:[5600,5900],aliases:["Sun Pharma","Sun Pharmaceutical","Sun Pharmaceutical Industries Ltd","Sun Pharma Industries","Sun Pharma Ltd","Sun Pharma Laboratories","SPIL"],legalEntities:[{legalName:"Sun Pharmaceutical Industries Limited",country:"IN",nationalId:"L24230GJ1993PLC019050",incorporationDate:"1993-03-01",status:"Active"},{legalName:"Sun Pharmaceutical Industries, Inc.",country:"US",nationalId:null,incorporationDate:null,status:"Active"}],stateOwned:{ownershipState:"Ministry of Chemicals and Fertilizers",entityStatus:"Privatized",yearPrivatized:2004,historicallyStateOwnedNowPrivate:!0},provenance:"Corporate registries, exchange disclosures, and company filings"},plants:{rows:[{plantId:"sun-plant-halol",name:"Halol Manufacturing Campus",city:"Halol, Gujarat",country:"IN",regionRisk:null,businessType:"API and finished-dose manufacturing",isManufacturing:!0,fdaFei:"3002949029",status:"Active",accreditations:[{regulator:"fda_us",certType:"FDA registered establishment",status:"Current",issuedDate:"2025-01-01",expiryDate:"2025-12-31"},{regulator:"who",certType:"WHO GMP",status:"Current",issuedDate:"2024-07-10",expiryDate:"2027-07-09"}],inspections:[{regulator:"fda_us",inspectionDate:"2025-11-14",classification:"VAI",outcome:"Voluntary action indicated"},{regulator:"mhra_uk",inspectionDate:"2024-04-22",classification:"Compliant",outcome:"GMP certificate maintained"}],environmental:[{authority:"Gujarat Pollution Control Board",clearanceType:"Consent to operate",status:"Current",validTo:"2027-03-31"}],pollutionNotices:[{board:"Gujarat Pollution Control Board",noticeDate:"2024-08-19",noticeType:"Show-cause notice",status:"Closed",summary:"Wastewater monitoring deviation; corrective action accepted."}]},{plantId:"sun-plant-panoli",name:"Panoli API Facility",city:"Panoli, Gujarat",regionRisk:null,country:"IN",businessType:"Active pharmaceutical ingredients",isManufacturing:!0,fdaFei:"3002806753",status:"Active",accreditations:[{regulator:"edqm",certType:"EU GMP",status:"Current",issuedDate:"2023-09-12",expiryDate:"2026-09-11"},{regulator:"tga_au",certType:"GMP clearance",status:"Current",issuedDate:"2024-02-18",expiryDate:"2027-02-17"}],inspections:[{regulator:"fda_us",inspectionDate:"2024-08-08",classification:"NAI",outcome:"No action indicated"}],environmental:[{authority:"Ministry of Environment, Forest and Climate Change",clearanceType:"Environmental clearance",status:"Current",validTo:"2028-09-30"}],pollutionNotices:[]}],provenance:"FDA establishment register, EudraGMDP, WHO, environmental clearances, and pollution-control notices"},compliance:{rows:[{eventType:"inspection",regulator:"fda_us",eventDate:"2026-02-18",endedDate:null,status:"Closed",severity:"low",summary:"Post-inspection response accepted for the Halol campus.",sourceUrl:"https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations"},{eventType:"warning_letter",regulator:"fda_us",eventDate:"2025-06-12",endedDate:null,status:"Open",severity:"high",summary:"Quality-system observations covering data integrity and laboratory controls.",sourceUrl:"https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/warning-letters"},{eventType:"form_483",regulator:"fda_us",eventDate:"2025-03-21",endedDate:"2025-04-04",status:"Response submitted",severity:"medium",summary:"Inspection observations issued following a two-week site inspection.",sourceUrl:"https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/inspection-references/fda-form-483-frequently-asked-questions"},{eventType:"gmp_notice",regulator:"mhra_uk",eventDate:"2024-04-22",endedDate:"2024-06-18",status:"Closed",severity:"low",summary:"Corrective actions verified and GMP certification retained.",sourceUrl:"https://www.gov.uk/guidance/good-manufacturing-practice-and-good-distribution-practice"},{eventType:"recall",regulator:"fda_us",eventDate:"2023-10-03",endedDate:"2024-01-12",status:"Terminated",severity:"medium",summary:"Voluntary lot recall completed after an out-of-specification stability result.",sourceUrl:"https://www.fda.gov/safety/recalls-market-withdrawals-safety-alerts"}],total:5,recentCount:5,recentYears:3,provenance:"FDA enforcement, inspection, recall, and international GMP notices"},regulatory:{filingsByRegulator:[{regulator:"fda_us",count:112,latestFilingDate:"2026-06-14",sampleBrands:["Levulan","Ilumya","Cequa"]},{regulator:"ema",count:43,latestFilingDate:"2026-04-09",sampleBrands:["Winlevi","Odomzo","Abetmy"]}
1,{regulator:"mhra_uk",count:29,latestFilingDate:"2025-12-18",sampleBrands:["Daxas","BromSite","Yonsa"]}],apiDocs:[{docType:"US DMF",regulator:"fda_us",docNumber:"DMF 032781",status:"Active",firstFiledDate:"2019-08-21",moleculeName:"Tirzepatide",moleculeId:"mol-tirzepatide",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs"},{docType:"CEP",regulator:"edqm",docNumber:"R1-CEP 2016-219-Rev 02",status:"Valid",firstFiledDate:"2016-11-03",moleculeName:"Metformin hydrochloride",moleculeId:y,sourceUrl:"https://extranet.edqm.eu/publications/recherches_CEP.shtml"},{docType:"US DMF",regulator:"fda_us",docNumber:"DMF 029441",status:"Active",firstFiledDate:"2017-02-14",moleculeName:"Dapagliflozin",moleculeId:"mol-dapagliflozin",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs"},{docType:"CEP",regulator:"edqm",docNumber:"R0-CEP 2021-187",status:"Valid",firstFiledDate:"2021-09-30",moleculeName:"Atorvastatin calcium",moleculeId:"mol-atorvastatin",sourceUrl:"https://extranet.edqm.eu/publications/recherches_CEP.shtml"}],activeDocCount:1,activeMoleculeCount:1,provenance:"FDA Drugs@FDA and DMF lists, EMA, MHRA, and EDQM CEP register"},molecules:{rows:[{moleculeId:"mol-tirzepatide",name:"Tirzepatide",viaApiDoc:!0,viaFiling:!0},{moleculeId:"mol-metformin",name:"Metformin hydrochloride",viaApiDoc:!0,viaFiling:!0},{moleculeId:"mol-dapagliflozin",name:"Dapagliflozin",viaApiDoc:!0,viaFiling:!0},{moleculeId:"mol-atorvastatin",name:"Atorvastatin calcium",viaApiDoc:!0,viaFiling:!0},{moleculeId:"mol-ruxolitinib",name:"Ruxolitinib",viaApiDoc:!1,viaFiling:!0},{moleculeId:"mol-tildrakizumab",name:"Tildrakizumab",viaApiDoc:!1,viaFiling:!0}],total:6,provenance:"Regulatory filing ingredient normalization and API document linkage"},cdmo:{matched:!0,companyTypes:["Contract development and manufacturing organisation","API manufacturer"],primaryActivities:["Process development","Commercial API manufacturing","Analytical services"],certifications:["US FDA registered","EU GMP","WHO GMP"],salesMarkets:["North America","Europe","Asia-Pacific"],categories:["Small molecules","Specialty pharmaceuticals"],modalities:["High-potency APIs","Complex generics"],products:[{name:"Metformin hydrochloride",inn:"metformin"},{name:"Atorvastatin calcium",inn:"atorvastatin"},{name:"Dapagliflozin",inn:"dapagliflozin"},{name:"Tirzepatide",inn:"tirzepatide"},{name:"Ruxolitinib",inn:"ruxolitinib"}],provenance:"CPHI CDMO directory and linked product listings"},partnerships:{rows:[{name:"Affordable Medicines Technology Transfer Programme",role:"private partner",program:"Local production capacity partnership",programCountry:"ZA",moleculeName:"Metformin hydrochloride",signedDate:"2023-06-14",status:"Active"},{name:"National API Resilience Partnership",role:"private partner",program:"Essential medicines security",programCountry:"IN",moleculeName:"Atorvastatin calcium",signedDate:"2021-11-02",status:"Completed"}],provenance:"Public technology-transfer announcements and programme registries"},trade:{yearly:[{year:2026,totalUsd:1842e5,nShipments:1240,nMolecules:47,nDestinations:63},{year:2025,totalUsd:3928e5,nShipments:2814,nMolecules:52,nDestinations:71},{year:2024,totalUsd:3416e5,nShipments:2498,nMolecules:49,nDestinations:68}],topMolecules:[{moleculeName:"Atorvastatin calcium",moleculeId:"mol-atorvastatin",totalUsd:724e5,lastYear:2026},{moleculeName:"Metformin hydrochloride",moleculeId:y,totalUsd:489e5,lastYear:2026},{moleculeName:"Dapagliflozin",moleculeId:"mol-dapagliflozin",totalUsd:371e5,lastYear:2026}],topDestinations:[{country:"US",totalUsd:1285e5,lastYear:2026},{country:"BR",totalUsd:613e5,lastYear:2026},{country:"ZA",totalUsd:347e5,lastYear:2026}],growth:[{year:2024,totalUsd:3416e5,yoyPct:8.6},{year:2025,totalUsd:3928e5,yoyPct:15},{year:2026,totalUsd:1842e5,yoyPct:null}],buyerConcentration:[{year:2024,nBuyers:218,topBuyerShare:.082},{year:2025,nBuyers:241,topBuyerShare:.074},{year:2026,nBuyers:166,topBuyerShare:.091}],provenance:"India export shipment data (2022-2026); not global trade"},tenders:{byCountry:[{country:"ZA",awards:16,totalUsd:284e5,latestDate:"2026-05-19"},{country:"BR",awards:11,totalUsd:198e5,latestDate:"2026-03-07"}],recent:[{awardDate:"2026-05-19",country:"ZA",innText:"Metformin hydrochloride 500 mg tablets",awardedValueUsd:324e4,unitPrice:.14,currency:"ZAR",sourceName:"South Africa National Treasury",moleculeId:y,sourceUrl:"https://www.etenders.gov.za/"},{awardDate:"2026-03-07",country:"BR",innText:"Atorvastatin calcium 20 mg tablets",awardedValueUsd:286e4,unitPrice:.22,currency:"BRL",sourceName:"Brazil Compras.gov.br",moleculeId:"mol-atorvastatin",sourceUrl:"https://www.gov.br/compras/pt-br"}],provenance:"National public procurement award portals"},shortages:{rows:[{country:"US",innText:"Amifostine injection",reportedDate:"2026-01-15",status:"Resolved",shortageReason:"Manufacturing delay",sourceUrl:"https://www.accessdata.fda.gov/scripts/drugshortages/"},{country:"CA",innText:"Diltiazem extended-release capsules",reportedDate:"2025-10-28",status:"Actual shortage",shortageReason:"Demand increase"}],provenance:"FDA and Health Canada drug shortage registers"},people:{total:412,titleMix:[{bucket:"procurement",count:92},{bucket:"commercial",count:118},{bucket:"leadership",count:64},{bucket:"other",count:138}],rows:[{fullName:"Neha Kulkarni",jobTitle:"Vice President, Global Procurement",location:"Mumbai, IN",tier:0},{fullName:"Arjun Mehta",jobTitle:"Director, API Sourcing",location:"Vadodara, IN",tier:0},{fullName:"Rina Shah",jobTitle:"Head of Commercial Strategy",location:"Mumbai, IN",tier:1},{fullName:"Michael Alvarez",jobTitle:"SVP, North America Commercial",location:"Princeton, US",tier:1},{fullName:"Aalok Shanghvi",jobTitle:"Executive Vice President",location:"Mumbai, IN",tier:2}],provenance:"Company disclosures and licensed professional profile data"},financials:{rows:[{fiscalYear:2026,revenue:583e7,ebitda:1732e6,netProfit:1248e6,rdSpend:412e6,employees:43200,source:"FY2026 annual results",currency:"USD"},{fiscalYear:2025,revenue:526e7,ebitda:1518e6,netProfit:1086e6,rdSpend:38
11e6,employees:41800,source:"FY2025 annual report",currency:"USD"},{fiscalYear:2024,revenue:478e7,ebitda:1311e6,netProfit:942e6,rdSpend:349e6,employees:40600,source:"FY2024 annual report",currency:"USD"}],provenance:"Audited annual reports; values in USD, absolute units"},governance:{directors:[{name:"Dilip Shanghvi",designation:"Chairman and Managing Director",appointedDate:"1993-03-01",isCurrent:!0},{name:"Sudhir Valia",designation:"Non-Executive Director",appointedDate:"1994-01-28",isCurrent:!0},{name:"Pawan Goenka",designation:"Independent Director",appointedDate:"2021-05-21",isCurrent:!0},{name:"Sailesh Desai",designation:"Former Whole-time Director",appointedDate:"2012-04-01",isCurrent:!1}],ownership:[{shareholderName:"Promoter and promoter group",shareholderType:"Promoter",stakePct:54.48,asOfDate:"2026-06-30"},{shareholderName:"Foreign institutional investors",shareholderType:"Institutional",stakePct:17.92,asOfDate:"2026-06-30"},{shareholderName:"Domestic institutions",shareholderType:"Institutional",stakePct:12.11,asOfDate:"2026-06-30"}],provenance:"Indian exchange shareholding disclosures and corporate registry filings"},summary:{headline:"Indian CDMO: 2 plants (2 with GMP accreditations), active API filings on 4 molecules, 2 compliance events in the last 3 years (latest 2025), exports to 3+ countries, 6 tender awards in 2 markets.",keyFacts:[{label:"Plants",value:"2",tone:"neutral"},{label:"Molecules",value:"6",tone:"neutral"},{label:"Active API credentials",value:"4",tone:"neutral"},{label:"DMF/CEP",value:"4",tone:"neutral"},{label:"Compliance",value:"2 recent",tone:"warn"},{label:"Export markets",value:"3+",tone:"neutral"},{label:"People",value:"412",tone:"neutral"}],provenance:"Synthesized from the registry blocks below by fixed rules (no model)"},risk:{litigation:[{caseNumber:"1:25-cv-00482",jurisdiction:"US District Court, District of Delaware",caseType:"Patent litigation",status:"Pending",filedDate:"2025-04-11",summary:"Abbreviated new drug application patent dispute concerning a specialty product."}],sanctions:[],recalls:[{recallClass:"Class II",reason:"Out-of-specification dissolution result observed during stability testing.",reasonCategory:"Product quality",country:"US",initiatedDate:"2023-10-03",terminatedDate:"2024-01-12",moleculeName:"Diltiazem hydrochloride"},{recallClass:"Class III",reason:"Incorrect expiry date printed on a limited batch.",reasonCategory:"Labelling",country:"CA",initiatedDate:"2022-07-18",terminatedDate:"2022-09-05",moleculeName:"Metformin hydrochloride"}],provenance:"Court dockets and consolidated international sanctions lists; product recall registers"}},_={8:"shandong",29:"hebei"};function R(e){return Object.entries(_).map(e=>{let[t,a]=e;return{index:Number(t),regionRisk:a}}).filter(t=>{let{index:a}=t;return a%17!=0&&f[a%f.length].companyId===e.companyId}).map(e=>{let{regionRisk:t}=e;return{regionRisk:t}})}let F=Object.fromEntries(f.map(e=>[e.companyId,e.companyId===h?M:function(e){var t;let a="PharmaDB linked public-source directory";return{summary:{headline:"".concat(null!=(t=e.country)?t:"Registered"," company: limited registry evidence in our sources."),keyFacts:[{label:"Plants",value:String(e.plantCount),tone:"neutral"},{label:"Molecules",value:String(e.moleculeCount),tone:"neutral"},{label:"Active API credentials",value:String(e.dmfCount+e.cepCount),tone:"neutral"},{label:"DMF/CEP",value:String(e.dmfCount+e.cepCount),tone:"neutral"},{label:"Compliance",value:e.complianceEventCount>0?"".concat(e.complianceEventCount," on record"):"Clean 3y",tone:e.complianceEventCount>0?"warn":"good"}],provenance:"Synthesized from the registry blocks below by fixed rules (no model)"},identity:{apiPosture:e.apiPosture,maCount:"integrated"===e.apiPosture?1+e.moleculeCount%5:0,companyId:e.companyId,name:e.name,shortName:e.name,country:e.country,website:e.website,ownershipType:e.stateOwned?"State-owned enterprise":null,ticker:null,stockExchange:null,foundedYear:null,industry:"Pharmaceutical manufacturing",businessCategory:null,description:null,employeeRange:null,revenueRangeUsdM:null,aliases:[],legalEntities:[],stateOwned:e.stateOwned?{ownershipState:e.country,entityStatus:"Current",
1yearPrivatized:null,historicallyStateOwnedNowPrivate:!1}:null,provenance:a},plants:{rows:Array.from({length:e.plantCount},(t,a)=>{var n,r;return{plantId:"plant-".concat(String(f.indexOf(e)+1+a*f.length).padStart(3,"0")),name:"".concat(e.name," manufacturing site ").concat(a+1),city:null,country:R(e)[a]?"CN":e.country,regionRisk:null!=(r=null==(n=R(e)[a])?void 0:n.regionRisk)?r:null,businessType:"Pharmaceutical manufacturing",isManufacturing:!0,fdaFei:null,status:"Active",accreditations:[],inspections:[],environmental:[],pollutionNotices:[]}}),provenance:a},compliance:{rows:[],total:0,recentCount:0,recentYears:3,provenance:a},regulatory:{filingsByRegulator:[],apiDocs:[],activeDocCount:0,activeMoleculeCount:0,provenance:a},molecules:{rows:[],total:0,provenance:a},cdmo:{matched:e.isCdmo,companyTypes:e.isCdmo?["Contract development and manufacturing organisation"]:[],primaryActivities:[],certifications:[],salesMarkets:[],categories:[],modalities:[],products:[],provenance:a},partnerships:{rows:[],provenance:a},trade:{yearly:[],topMolecules:[],topDestinations:[],growth:[],buyerConcentration:[],provenance:"India export shipment data (2022-2026); not global trade"},tenders:{byCountry:[],recent:[],provenance:a},shortages:{rows:[],provenance:a},people:{total:e.personnelCount,titleMix:[],rows:[],provenance:a},financials:{rows:[],provenance:a},governance:{directors:[],ownership:[],provenance:a},risk:{litigation:[],sanctions:[],recalls:[],provenance:a}}}(e)])),T={identity:{moleculeId:y,name:"Metformin hydrochloride",inn:"metformin",casNumber:"1115-70-4",moleculeType:"Small molecule",atcCodes:["A10BA02"],aliases:["Metformin HCl","Metformine hydrochloride","1,1-Dimethylbiguanide hydrochloride"],provenance:"PharmaDB molecule registry, WHO INN, CAS, and ATC indexes"},summary:{headline:"Metformin hydrochloride: 6 credentialed suppliers (4 DMF, 2 CEP), registered in 4 markets, earliest expiry 2027, latest 2031; 0 undated, 1 open shortage, API corridor $5â$12/kg.",keyFacts:[{label:"Suppliers",value:"6",tone:"neutral"},{label:"Markets",value:"4",tone:"neutral"},{label:"Patent status",value:"earliest expiry 2027, latest 2031; 0 undated",tone:"warn"},{label:"Shortages",value:"1 open",tone:"warn"},{label:"Corridor",value:"$5â$12/kg",tone:"neutral"}],provenance:"Synthesized from the registry blocks below by fixed rules (no model)"},suppliers:{rows:[{regulator:"fda_us",docType:"US DMF",docNumber:"DMF 029884",status:"active",firstFiledDate:"2016-04-18",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs",holder:"Sun Pharmaceutical Industries",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://sunpharma.com",companyId:h,moleculeName:"Metformin hydrochloride"},{regulator:"fda_us",docType:"US DMF",docNumber:"DMF 021617",status:"active",firstFiledDate:"2007-09-12",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs",holder:"Dr. Reddy's Laboratories",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://www.drreddys.com",companyId:"company-dr-reddys",moleculeName:"Metformin hydrochloride"},{regulator:"fda_us",docType:"US DMF",docNumber:"DMF 018402",status:"active",firstFiledDate:"2002-11-06",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs",holder:"Aarti Drugs Limited",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://www.aartidrugs.co.in",companyId:null,moleculeName:"Metformin hydrochloride"},{regulator:"fda_us",docType:"US DMF",docNumber:"DMF 017921",status:"active",firstFiledDate:"2001-07-23",sourceUrl:"https://www.fda.gov/drugs/drug-master-files-dmfs",holder:"USV Private Limited",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://www.usvindia.com",companyId:null,moleculeName:"Metformin hydrochloride"},{regulator:"edqm",docType:"CEP",docNumber:"R1-CEP 2016-219-Rev 02",status:"active",firstFiledDate:"2016-11-03",sourceUrl:"https://extranet.edqm.eu/publications/recherches_CEP.shtml",holder:"Ipca Laboratories Limited",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://www.ipca.com",companyId:null,moleculeName:"Metformin hydrochloride"},{regulator:"edqm",docType:"CEP",docNumber:"R0-CEP 2019-144",status:"active",firstFiledDate:"2019-08-27",sourceUrl:"https://extranet.edqm.eu/publications/recherches_CEP.shtml",holder:"Harman Finochem Limited",hqCountry:"IN",entityCountry:"IN",websiteUrl:"https://www.harmanfinochem.com",companyId:null,moleculeName:"Metformin hydrochloride"}],provenance:"FDA Drug Master File list and EDQM Certificate of Suitability register"},registrations:{rows:[{regulator:"fda_us",country:"US",count:214,latest:"2026-07-18"},{regulator:"ema",country:"NL",count:96,latest:"2026-06-04"},{regulator:"mhra_uk",country:"GB",count:73,latest:"2026-05-21"},{regulator:"tga_au",country:"AU",count:48,latest:"2026-02-11"}],provenance:"FDA, EMA, MHRA, and TGA product registration registers"},price:{band:{shipmentYear:2026,nShipmentsTrimmed:186,nExporters:18,p25UsdPerKg:5.2,medianUsdPerKg:7.8,p75UsdPerKg:11.6},trend:[{shipmentYear:2023,medianUsdPerKg:8.9,nShipments:421},{shipmentYear:2024,medianUsdPerKg:8.4,nShipments:463},{shipmentYear:2025,medianUsdPerKg:8.1,nShipments:512},{shipmentYear:2026,medianUsdPerKg:7.8,nShipments:186}],provenance:"India export shipment data â not global"},patents:{rows:[{patentNumber:"US7654321",jurisdiction:"US",expiry:"2028-09-17",status:"In force",type:"Process",grantDate:"2008-09-17",applicationDate:"2006-03-02",assigneeCompanyId:h,assigneeName:"Sun Pharmaceutical Industries",sourceUrl:"https://patents.google.com/patent/US7654321"},{patentNumber:"EP2345678",jurisdiction:"EP",expiry:"2030-04-12",status:"In force",type:"Formulation",grantDate:"2012-04-12",applicationDate:"2010-01-19",assigneeCompanyId:null,assigneeName:"Merck Sante SAS",sourceUrl:"https://patents.google.com/patent/EP2345678"},{patentNumber:"IN298765",jurisdiction:"IN",expiry:"2024-01-30",status:"Expired",type:"Process",grantDate:"2006-01-30",applicationDate:"2004-06-11",assigneeCompanyId:"company-cipla",assigneeName:"Cipla Limited",sourceUrl:null},{patentNumber:"US8123456",jurisdiction:"US",expiry:"2027-11-05",status:"In force",type:"Formulation",grantDate:"2009-11-05",applicationDate:"2007-08-22",assigneeCompanyId:h,assigneeName:"Sun Pharmaceutical Industries",sourceUrl:"https://patents.google.com/patent/US8123456"},{patentNumber:"EP1987654",jurisdiction:"EP",expiry:"2021-07-19",status:"Expired",type:"Process",grantDate:"2003-07-19",applicationDate:"2001-02-28",assigneeCompanyId:null,assigneeName:"Merck Sante SAS",sourceUrl:null},{patentNumber:"IN341122",jurisdiction:"IN",expiry:"2031-05-24",status:"In force",type:"Polymorph",grantDate:null,applicationDate:null,assigneeCompanyId:null,assigneeName:null,sourceUrl:null}],byJurisdiction:[{jurisdiction:"US",count:2,latestExpiry:"2028-09-17"},{jurisdiction:"EP",count:2,latestExpiry:"2030-04-12"},{jurisdiction:"IN",count:2,latestExpiry:"2031-05-24"}],provenance:"FDA Orange Book, Espacenet, and Indian Patent Office dockets"},shortages:{rows:[{country:"US",status:"Current",reportedDate:"2026-05-08",expectedResolutionDate:"2026-10-31",shortageReason:"Demand increase",innText:"Metformin hydrochloride extended-release tablets",sourceName:"FDA Drug Shortages",sourceUrl:"https://www.accessdata.fda.gov/scripts/drugshortages/"},{country:"CA",status:"Resolved",reportedDate:"2025-09-14",expectedResolutionDate:"2025-12-02",shortageReason:"Manufacturing disruption",innText:"Metformin hydrochloride 500 mg tablets",sourceName:"Drug Shortages Canada",sourceUrl:"https://www.drugshortagescanada.ca/"}],provenance:"FDA and Health Canada drug shortage registers"},tenders:{byCountry:[{country:"ZA",awards:38,totalUsd:187e5,latestDate:"2026-06-12"},{country:"BR",awards:24,totalUsd:113e5,latestDate:"2026-04-29"}],recent:[{awardDate:"2026-06-12",country:"ZA",winnerName:"Sun Pharmaceutical Industries",winnerCompanyId:h,awardedValueUsd:324e4,sourceUrl:"https://www.etenders.gov.za/"},{awardDate:"2026-04-29",country:"BR",winnerName:"Aarti Drugs Limited",winnerCompanyId:null,awardedValueUsd:186e4,sourceUrl:"https://www.gov.br/compras/pt-br"}],provenance:"South Africa National Treasury and Brazil Compras.gov.br award records"},trade:{yearly:[{year:2023,volumeKg:1842e4,valueUsd:1639e5,avgPriceUsdPerKg:8.9},{year:2024,volumeKg:2018e4,valueUsd:1695e5,avgPriceUsdPerKg:8.4},{year:2025,volumeKg:2274e4,valueUsd:1842e5,avgPriceUsdPerKg:8.1},{year:2026,volumeKg:891e4,valueUsd:695e5,avgPriceUsdPerKg:7.8}],topSuppliers:[{supplier:"Aarti Drugs Limited",volumeKg:482e4,valueUsd:381e5},{supplier:"USV Private Limited",volumeKg:394e4,valueUsd:315e5},{supplier:"Harman Finochem Limited",volumeKg:321e4,valueUsd:256e5}],topDestinations:[{destination:"US",volumeKg:564e4,valueUsd:483e5},{destination:"BR",volumeKg:387e4,valueUsd:294e5},{destination:"ZA",volumeKg:293e4,valueUsd:211e5}],provenance:"India export shipment data aggregated across at least five exporters"}},x=(Object.fromEntries(v.map(e=>[e.moleculeId,e.moleculeId===y?T:function(e){let t="PharmaDB linked public-source directory";return{identity:{moleculeId:e.moleculeId,name:e.name,inn:e.inn,casNumber:null,moleculeType:null,atcCodes:e.atc?[e.atc]:[],aliases:[],provenance:t},summary:{headline:"".concat(e.name,": ").concat(e.supplierCount," suppliers across ").concat(e.marketCount," registered markets in the mock directory."),keyFacts:[{label:"Suppliers",value:String(e.supplierCount),tone:"neutral"},{label:"Markets",value:String(e.marketCount),tone:"neutral"},{label:"Patent status",value:e.patentStatus.replaceAll("-"," "),tone:"in-force"===e.patentStatus?"warn":"neutral"},{label:"Shortages",value:e.openShortageCount?"".concat(e.openShortageCount," open"):"None open",tone:e.openShortageCount?"warn":"good"}],provenance:"Synthesized from the mock directory row by fixed rules (no model)"},suppliers:{rows:[],provenance:t},registrations:{rows:[],provenance:t},price:{band:null,trend:[],provenance:"No price series in the lightweight mock profile"},patents:{rows:[],byJurisdiction:[],provenance:t},shortages:{rows:[],provenance:t},tenders:{byCountry:[],recent:[],provenance:t},trade:{yearly:[],topSuppliers:[],topDestinations:[],provenance:t}}}(e)])),Object.fromEntries(Object.entries(F).map(e=>
1{let[t,a]=e;return[t,function(e){let{companyId:t,name:a,country:n,industry:r,website:i}=e.identity;return{identity:{companyId:t,name:a,country:n,industry:r,website:i},summary:e.summary}}(a)]})),["IN","BR","US","DE","GB","RO","PL","ZA","CN","AU","CA","MX"]),O=["cdsco_in","anvisa_br","fda_us","ema_eu","mhra_uk","tga_au"],G=Array.from({length:120},(e,t)=>{var a;let n=f[t%f.length],r=t%7==0?"OAI":t%3==0?"VAI":"NAI";return{plantId:"plant-".concat(String(t+1).padStart(3,"0")),name:"".concat(n.name.split(" ")[0]," ").concat(["API","Formulation","Biologics","Packaging"][t%4]," Site ").concat(t+1),city:["Ahmedabad","Hyderabad","S\xe3o Paulo","Boston","Dublin","Bucharest"][t%6],country:x[t%x.length],companyId:t%17==0?null:n.companyId,companyName:t%17==0?null:n.name,activeAccreditations:t%5==0?[]:[O[t%O.length],...t%4==0?["who_pq"]:[]],accreditationCount:t%5==0?0:1+ +(t%4==0),latestInspectionDate:t%9==0?null:"".concat(2021+t%6,"-").concat(String(t%12+1).padStart(2,"0"),"-15"),latestInspectionClassification:t%9==0?null:r,inspectionCount:t%9==0?0:1+t%6,oaiCount:+("OAI"===r),complianceScore:72*(0===t),severeEventCount:+(0===t),events3yCount:+(0===t),capabilityCodes:t%6==0?[]:[["api_manufacturing","sterile_fill_finish","oral_solids","cold_chain"][t%4]],moleculeCount:t%8,evidenceScore:2+t%8,lat:null,lon:null,regionRisk:null!=(a=_[t])?a:null}});for(let e of f)e.riskRegionPlants=G.filter(t=>t.companyId===e.companyId&&null!==t.regionRisk).length;Array.from({length:360},(e,t)=>{let a=["shortage","recall","compliance","inspection"][t%4],n=f[t%f.length],r=v[t%v.length],i=G[t%G.length],o="inspection"===a,s="compliance"===a,l="recall"===a,c="shortage"===a,d=o&&t%8==3||l&&t%12==1||s&&t%12==2;return{signalId:"signal-".concat(t+1),kind:a,eventDate:44===t?"0201-04-02":45===t?"2029-02-17":t>=48?"2026-0".concat(5+t%3,"-").concat(String(1+7*t%28).padStart(2,"0")):"".concat(2023+t%4,"-").concat(String(t%12+1).padStart(2,"0"),"-12"),endDate:o||t%3==0?null:"".concat(2024+t%3,"-12-20"),regulator:c?null:l?O[t%O.length]:O[(t+1)%O.length],country:x[t%x.length],moleculeId:s||o?null:r.moleculeId,moleculeName:s||o?null:r.name,companyId:n.companyId,companyName:n.name,plantId:c||l?null:i.plantId,plantName:c||l?null:i.name,severity:c?null:l?d?"Class I":"Class II":s?d?"high":"moderate":d?"OAI":t%3==0?"VAI":"NAI",category:l?null:o?["routine","for_cause"][t%2]:c?["supply_disruption","demand_increase"][t%2]:["warning_letter","import_alert"][t%2],title:c?"".concat(r.name," shortage"):l?"".concat(r.name," recall"):s?"Regulatory compliance event":"".concat(O[t%O.length].toUpperCase()," inspection"),summary:t%6==0?null:"Evidence summary for ".concat(a," signal ").concat(t+1,"."),status:o?null:t%3==0?"active":"closed",isOpen:o?null:t%3==0,isSevere:d,sourceUrl:t%5==0?null:"https://example.test/signals/".concat(t+1)}}),Array.from({length:48},(e,t)=>{let a=v[t%v.length],n=f[t%f.length],r=t%5!=0,i=t%4!=0,o=t%9==0?null:t%4==0?"source_published_date":"award_date";return{awardId:"award-".concat(t+1),country:x[t%x.length],destinationCountry:null,awardDate:o?"".concat(2021+t%6,"-").concat(String(t%12+1).padStart(2,"0"),"-20"):null,dateBasis:o,moleculeId:r?a.moleculeId:null,moleculeName:r?a.name:null,innText:r?a.inn:null,winnerCompanyId:i?n.companyId:null,winnerName:i?n.name:null,winnerCountry:i?n.country:null,valueUsd:t%3==0?null:5e4+17500*t,valueLocal:1e6+22e3*t,currency:t%2?"RON":"INR",qty:1e3+25*t,unit:"packs",unitPriceLocal:42+t,isDonorFunded:t%11==0,lotDescription:"".concat(a.name," tablets public hospital supply lot ").concat(t+1),sourceName:["SEAP","GeM","Compras.gov"][t%3],sourceUrl:t%6==0?null:"https://example.test/tenders/".concat(t+1)}});let L=[["BR","Brazil","latin_america"],["IN","India","south_asia"],["US","United States","north_america"],["DE","Germany","europe"],["GB","United Kingdom","europe"],["RO","Romania","europe"],["PL","Poland","europe"],["ZA","South Africa","africa"],["CN","China","east_asia"],["AU","Australia","oceania"],["CA","Canada","north_america"],["MX","Mexico","latin_america"],["JP","Japan","east_asia"],["KR","South Korea","east_asia"],["FR","France","europe"],["IT","Italy","europe"],["ES","Spain","europe"],["PT","Portugal","europe"],["CH","Switzerland","europe"],["AT","Austr
1ia","europe"],["BE","Belgium","europe"],["NL","Netherlands","europe"],["SE","Sweden","europe"],["NO","Norway","europe"],["DK","Denmark","europe"],["FI","Finland","europe"],["IE","Ireland","europe"],["SG","Singapore","southeast_asia"],["MY","Malaysia","southeast_asia"],["ID","Indonesia","southeast_asia"],["TH","Thailand","southeast_asia"],["VN","Vietnam","southeast_asia"],["PH","Philippines","southeast_asia"],["AR","Argentina","latin_america"],["CL","Chile","latin_america"],["CO","Colombia","latin_america"],["PE","Peru","latin_america"],["EG","Egypt","middle_east_africa"],["SA","Saudi Arabia","middle_east"],["AE","United Arab Emirates","middle_east"],["TR","T\xfcrkiye","middle_east"],["IL","Israel","middle_east"],["NZ","New Zealand","oceania"],["NG","Nigeria","africa"],["KE","Kenya","africa"],["GH","Ghana","africa"],["MA","Morocco","africa"],["DZ","Algeria","africa"]].map((e,t)=>{let[a,n,r]=e;return{countryCode:a,name:n,region:r,primaryRegulator:t<O.length?O[t]:null,regulatorCodes:t<O.length?[O[t]]:[],regulatorTier:t%5==0?String(t%3+1):null,picS:!1,registrationCount:t%7!=0||["BR","IN"].includes(a)?1200+431*t:0,registeredHolderCount:t%7!=0||["BR","IN"].includes(a)?80+9*t:0,registeredMoleculeCount:t%7!=0||["BR","IN"].includes(a)?140+4*t:0,latestFilingDate:t%7==0?null:"202".concat(t%7,"-06-15"),companyCount:10+3*t,plantCount:t%9==0?0:15+2*t,openShortageCount:t%4==0?0:3*t,recallCount1y:t%6,tenderCount:t%5!=0||["BR","IN"].includes(a)?700+101*t:0,tenderValueUsd:t%5==0?null:2e6+4e5*t,priceRefCount:t%6==0?0:20+t,importValueUsd:t%8==0?null:1e7+125e4*t,evidenceScore:t%9}});function B(e){let t=L.find(t=>t.countryCode===e),a="BR"===e?{code:"anvisa_br",name:"ANVISA",tier:"1",picS:!1,websiteUrl:"https://www.gov.br/anvisa/"}:{code:"cdsco_in",name:"CDSCO",tier:"1",picS:!1,websiteUrl:"https://cdsco.gov.in/"},n="".concat(t.name," graph aggregation");return{identity:{countryCode:e,name:t.name,iso3:"BR"===e?"BRA":"IND",region:t.region,currency:"BR"===e?"BRL":"INR",regulators:[a],primaryRegulator:a.code,provenance:n},registry:{registrationCount:t.registrationCount,holderCount:t.registeredHolderCount,moleculeCount:t.registeredMoleculeCount,latestFilingDate:"2026-06-18",dateCoveragePct:74,byStatus:[{code:"active",n:4200},{code:"pending",n:840}],byFilingType:[{code:"marketing_authorisation",n:3900},{code:"variation",n:1140}],topHolders:f.slice(0,12).map((e,t)=>({companyId:e.companyId,name:e.name,hqCountry:e.country,n:160-7*t})),topMolecules:v.slice(0,14).map((e,t)=>({moleculeId:e.moleculeId,name:e.name,n:120-5*t})),recentFilings:v.slice(0,6).map((t,a)=>({filingId:"".concat(e,"-filing-").concat(a),brandName:"".concat(t.name," Brand"),moleculeId:t.moleculeId,moleculeName:t.name,holderCompanyId:f[a%f.length].companyId,holderName:f[a%f.length].name,filingDate:"2026-0".concat(6-a,"-12"),status:"active",sourceUrl:"https://example.test/".concat(e,"/filing/").concat(a)})),provenance:n},supply:{companyCount:t.companyCount,plantCount:t.plantCount,accreditedPlantCount:Math.round(.4*t.plantCount),topCompanies:f.slice(0,12).map((e,t)=>({companyId:e.companyId,name:e.name,evidenceScore:e.evidenceScore,plantCount:14-t})),foreignHolderCountries:[{code:"BR"===e?"IN":"US",n:420},{code:"DE",n:210}],provenance:n},shortages:{open:t.openShortageCount,total:t.openShortageCount+40,latestReported:"2026-07-02",recent:v.slice(0,5).map((t,a)=>({shortageId:"".concat(e,"-shortage-").concat(a),moleculeId:t.moleculeId,moleculeName:t.name,innText:t.inn,reportedDate:"2026-0".concat(7-a,"-02"),status:a?"resolved":"open",reason:"Manufacturing disruption",sourceUrl:"https://example.test/".concat(e,"/shortage/").concat(a)})),provenance:n},recalls:{count1y:t.recallCount1y,total:t.recallCount1y+12,recent:v.slice(0,4).map((t,a)=>({recallId:"".concat(e,"-recall-").concat(a),innText:t.inn,moleculeId:t.moleculeId,recallClass:a?"Class II":"Class I",initiatedDate:"2026-0".concat(5-a,"-11"),reason:"Quality specification",sourceUrl:"https://example.test/".concat(e,"/recall/").concat(a)})),provenance:n},tenders:{count:t.tenderCount,valueUsd:t.tenderValueUsd,latestDate:"2026-07-15",moleculePct:54,byYear:[{year:2024,n:800,valueUsd:1e7},{year:2025,n:1050,valueUsd:135e5},{year:2026,n:620,valueUsd:84e5}],topWinners:f.slice(0,10).map((e,t)=>
1({companyId:e.companyId,name:e.name,n:110-7*t,valueUsd:2e6-9e4*t})),topMolecules:v.slice(0,10).map((e,t)=>({moleculeId:e.moleculeId,name:e.name,n:95-6*t})),provenance:n},prices:{refCount:t.priceRefCount,latestDate:"2026-05-20",basis:["public acquisition","reference price"],sampleMolecules:v.slice(0,8).map((e,t)=>({moleculeId:e.moleculeId,name:e.name,n:30-t})),provenance:n},trade:{importValueUsd:t.importValueUsd,importBasis:"company trade destinations",topOrigins:[{code:"BR"===e?"IN":"CN",valueUsd:8e6,share:.42},{code:"US",valueUsd:4e6,share:.21}],exportValueUsd:14e6,topDestinations:[{code:"US",valueUsd:5e6},{code:"DE",valueUsd:26e5}],topImportedMolecules:v.slice(0,7).map((e,t)=>({moleculeId:e.moleculeId,name:e.name,valueUsd:14e5-12e4*t})),provenance:n},compliance:{events3y:22,inspections:340,latestInspection:"2026-06-29",byEventType:[{code:"warning_letter",n:12},{code:"import_alert",n:10}],provenance:n},summary:{verdict:"".concat(t.name," â ").concat(a.name," (tier 1). ").concat(H(t.registrationCount)," registrations; ").concat(H(t.tenderCount)," tender awards; imports led by ").concat("BR"===e?"India":"China","."),keyFacts:[{label:"Regulator",value:a.name},{label:"Registrations",value:H(t.registrationCount)},{label:"Holders",value:H(t.registeredHolderCount)},{label:"Open shortages",value:String(t.openShortageCount)},{label:"Tenders",value:H(t.tenderCount)},{label:"Imports from",value:"BR"===e?"India":"China"}],provenance:n}}}function H(e){return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e)}Object.fromEntries(G.slice(0,2).map(e=>[e.plantId,function(e){var t;let a=null!=(t=f.find(t=>t.companyId===e.companyId))?t:f[0];return{identity:{plantId:e.plantId,name:e.name,address:"Industrial Estate, Phase II",city:e.city,state:"State district",country:e.country,lat:null,lon:null,status:"active",fdaFei:"FEI-".concat(e.plantId),companyId:a.c
1ompanyId,companyName:a.name,hqCountry:a.country,regionRisk:e.regionRisk,provenance:"Plant and corporate registries"},accreditations:{rows:[{regulator:"fda_us",certType:"gmp",scope:"API manufacture",certNumber:"GMP-1004",status:"active",issuedDate:"2024-03-01",expiryDate:"2027-03-01",sourceUrl:"https://example.test/accreditation"}],total:1,provenance:"Regulator accreditation registers"},inspections:{rows:[{regulator:"fda_us",date:"2025-05-14",type:"routine",classification:"plant-001"===e.plantId?"OAI":"NAI",outcome:"Inspection completed",durationDays:5,observationCount:2,eirUrl:"https://example.test/eir",sourceUrl:"https://example.test/inspection"}],total:1,provenance:"Regulator inspection records"},observations:{rows:[{inspectionDate:"2025-05-14",text:"Written procedures were not followed consistently.",severity:"moderate",closed:!0}],total:1,provenance:"Inspection observations"},compliance:{rows:"plant-001"===e.plantId?[{eventType:"warning_letter",date:"2025-08-10",regulator:"fda_us",severity:"high",status:"open",summary:"Corrective action response under review.",sourceUrl:"https://example.test/compliance"}]:[],total:+("plant-001"===e.plantId),severeCount:+("plant-001"===e.plantId),provenance:"Regulator compliance records"},molecules:{rows:v.slice(0,12).map((e,t)=>({moleculeId:e.moleculeId,name:e.name,source:t%2?"candidate":"dmf",confidence:t%2?.82:null})),total:12,provenance:"Facility assertions and DMF attestations"},capabilities:{rows:[{code:"api_manufacturing",present:!0,notes:"Commercial scale"},{code:"sterile_fill_finish",present:!0,notes:null}],provenance:"Site capability evidence"},environment:{clearances:[{authority:"State Pollution Control Board",type:"consent_to_operate",status:"active",validTo:"2027-12-31",sourceUrl:"https://example.test/clearance"}],notices:[{board:"State Pollution Control Board",date:"2023-06-02",type:"inspection_notice",status:"closed",summary:"Follow-up completed.",sourceUrl:"https://example.test/environment"}],provenance:"Environmental authorities"},summary:{verdict:"".concat(e.name,", ").concat(e.city,", ").concat(e.country," - ").concat(a.name,". One active accreditation; last inspected 2025-05-14 by US FDA."),keyFacts:[{label:"Accreditations",value:"1"},{label:"Last inspection",value:"2025-05-14"},{label:"Compliance 3y",value:"plant-001"===e.plantId?"1 event":"No events"},{label:"Molecules",value:"12"},{label:"Capabilities",value:"2"},{label:"Reach",value:"2 regulators"}],provenance:"Deterministic synthesis of linked evidence"}}}(e)])),B("BR"),B("IN");let V=[{id:"s1",kind:"registry",title:"EDQM Certification Database, CEP holders for Metformin hydrochloride",url:"https://extranet.edqm.eu/publications/recherches_CEP.shtml",accessedAt:"2026-07-01"},{id:"s2",kind:"registry",title:"US FDA Drug Master File list, Type II API, Metformin HCl",url:"https://www.fda.gov/drugs/forms-submission-requirements/drug-master-files-dmfs",accessedAt:"2026-07-01"},{id:"s3",kind:"trade_data",title:"Cross-border pharma trade aggregates, Metformin HCl API into EG, 2024 to 2026",accessedAt:"2026-07-01"},{id:"s4",kind:"trade_data",title:"Cross-border pharma trade aggregates, Metformin HCl API into GCC markets, 2024 to 2026",accessedAt:"2026-07-01"},{id:"s5",kind:"registry",title:"Egyptian Drug Authority, registered API sources for locally manufactured metformin products",accessedAt:"2026-06-30"},{id:"s6",kind:"registry",title:"Saudi Food and Drug Authority, registered drug list, metformin products",url:"https://www.sfda.gov.sa/en/drugs-list",accessedAt:"2026-06-30"},{id:"s7",kind:"web",title:"Vistin Pharma ASA, annual report 2025, metformin capacity expansion",url:"https://vistin.com",accessedAt:"2026-07-01"},{id:"s8",kind:"web",title:"Granules India, investor presentation Q4 FY26, PFI and API volumes",url:"https://granulesindia.com",accessedAt:"2026-07-01"},{id:"s9",kind:"filing",title:"WHO GMP certificate listings, CDSCO Maharashtra and Telangana zones",accessedAt:"2026-06-29"},{id:"s10",kind:"registry",title:"US FDA Import Alert list, active entries citing metformin HCl API sites",accessedAt:"2026-07-02"},{id:"s11",kind:"filing",title:"EU EudraGMDP database, certificate and inspection listings",accessedAt:"2026-06-28"},{id:"s12",kind:"filing",title:"FDA inspection classification database, metformin API sites",accessedAt:"2026-06-29"},{id:"s13",kind:"web",title:"EVA Pharma, contract manufacturing and tech transfer capabilities page",url:"https://evapharma.com",accessedAt:"2026-07-02"},{id:"s14",kind:"registry",title:"CDSCO Central Licence Approval register, home market registration status for Indian API sites",accessedAt:"2026-06-29"}],q=[{id:"sup-wanbury",name:"Wanbury Ltd",country:"IN",countryName:"India",bucket:"api_only",legalEntity:"Wanbury Limited",aliases:["Wanbury Limited"],tierPerMarket:{EG:"strong",SA:"strong",AE:"promising"}
1,regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2011-XXX-Rev03",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"usdmf",label:"USDMF",status:"available for reference",sourceId:"s2",identifier:"USDMF 021455",subject:"Metformin Hydrochloride USP",availableForReference:!0,firstFiledYear:2013,honestyClass:"verified",asOf:"2026-07-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"}],siteAddress:{value:"Plot W-46 to 49, MIDC Tarapur, Boisar, Maharashtra, India",honestyClass:"verified",sourceId:"s9",asOf:"2026-06-29"},capacity:{value:"Reported metformin HCl capacity of approximately 6,000 tonnes per year",honestyClass:"labeled_estimate",sourceId:"s9",asOf:"2026-06-29",note:"site reactor capacity, not molecule specific allocation"},inspection:{value:"NAI, 14 Mar 2024, FDA (FEI 3005541876)",honestyClass:"verified",sourceId:"s12",asOf:"2024-03-14"},ipRef:"4.5-01",backwardIntegration:{value:"Holds an intermediate DMF for a key metformin starting material, evidencing backward integration.",honestyClass:"verified",sourceId:"s2",asOf:"2026-06-01"},homeRegistration:{value:"Registered in India as an API source on approved metformin formulations.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],tradeEvidence:{value:"Sustained quarterly export volume into EG visible in trade aggregates through 2026.",honestyClass:"labeled_estimate",sourceId:"s3",asOf:"2026-07-01",note:"origin-level aggregate, not attributable to a single shipment"},nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public.","Firm price, minimum order quantity, and lead time require direct outreach."],summaryMd:"Among the largest merchant metformin HCl producers globally, with a long EG supply history and CEP and USDMF coverage that supports both target markets.",evidence:[{claim:"Registered API source on multiple EDA-approved metformin products",sourceId:"s5",date:"2026-06"},{claim:"CEP for metformin hydrochloride listed as valid",sourceId:"s1",date:"2026-07"}]},{id:"sup-usv",name:"USV Pvt Ltd",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{EG:"promising",SA:"promising",AE:"insufficient"},regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2015-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"}],siteAddress:{value:"MIDC Industrial Area, Mahad, Maharashtra, India",honestyClass:"self_reported",sourceId:"s9",asOf:"2026-06-29"},capacity:{value:"Not published; RFI item",honestyClass:"rfi_only"},homeRegistration:{value:"Registered in India as an API source on approved metformin formulations.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed; treated as an RFI item.","Private third-party audit reports are not public."],summaryMd:"Major metformin franchise holder with deep formulation knowledge of the molecule. Merchant API supply is selective; a direct conversation clarifies allocation.",evidence:[{claim:"CEP for metformin hydrochloride listed as valid",sourceId:"s1",date:"2026-07"},{claim:"Registered API source on EDA-approved products",sourceId:"s5",date:"2026-06"}]},{id:"sup-vistin",name:"Vistin Pharma ASA",country:"NO",countryName:"Norway",bucket:"api_only",aliases:[],tierPerMarket:{EG:"promising",SA:"strong",AE:"promising"},regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2009-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"s11",honestyClass:"verified",asOf:"2026-06-28"}],siteAddress:{value:"Vistin Pharma ASA, Gjelleraasen plant, Norway",honestyClass:"verified",sourceId:"s11",asOf:"2026-06-28"},capacity:{value:"Capacity expansion to approximately 7,000 tonnes per year completed per the 2025 annual report",honestyClass:"labeled_estimate",sourceId:"s7",asOf:"2026-03-01",note:"site reactor capacity, not molecule specific allocation"},inspection:{value:"EudraGMDP certificate current, last inspection 09 Nov 2023",honestyClass:"verified",sourceId:"s11",asOf:"2023-11-09"},backwardIntegration:{value:"Company disclosures describe dedicated metformin manufacture from key starting materials at the Gjelleraasen site.",honestyClass:"self_reported",sourceId:"s7",asOf:"2026-03-01"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public.","Firm price and lead time require direct outreach."],summaryMd:"Dedicated metformin API producer of EU origin. A useful de-risking pick for a non-Asian second source or an EU origin story in GCC tenders.",evidence:[{claim:"Capacity expansion to 7,000 tonnes per year completed per 2025 annual report",sourceId:"s7",date:"2026-03"},{claim:"EU origin qualifies for origin-weighted scoring in some GCC tenders",sourceId:"s6",date:"2026-06"}]},{id:"sup-farmhispania",name:"Farmhispania SA",country:"ES",countryName:"Spain",bu
1cket:"api_only",aliases:[],tierPerMarket:{EG:"insufficient",SA:"promising",AE:"insufficient"},regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2004-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"}],siteAddress:{value:"Farmhispania SA, Montmelo plant, Barcelona, Spain",honestyClass:"self_reported",sourceId:"s1",asOf:"2026-07-01"},complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["Capacity is not publicly disclosed.","Recent inspection history is not public for this site.","Private third-party audit reports are not public."],summaryMd:"Spanish CEP holder with a long metformin track record. Smaller scale than the Indian majors and typically priced at a premium.",evidence:[{claim:"CEP for metformin hydrochloride listed as valid",sourceId:"s1",date:"2026-07"}]},{id:"sup-aarti",name:"Aarti Drugs Ltd",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{EG:"insufficient",SA:"insufficient",AE:"insufficient"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s2",identifier:"USDMF 019220",subject:"Metformin Hydrochloride",honestyClass:"verified",asOf:"2026-06-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"},{kind:"cep",label:"CEP",status:"unknown",sourceId:"s1",registerName:"EDQM Certification Database",honestyClass:"unknown_rendered",asOf:"2026-07-01"}],homeRegistration:{value:"Not established",honestyClass:"unknown_rendered",registerName:"CDSCO Central Licence Approval register",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["Current CEP scope could not be confirmed; treat as unknown pending direct confirmation.","Site address and capacity are not publicly disclosed."],summaryMd:"Diversified Indian API maker with metformin in the portfolio. Competitive on price; current CEP scope needs confirmation before shortlisting.",evidence:[{claim:"Type II DMF on file for metformin HCl",sourceId:"s2",date:"2026-06"}]},{id:"sup-harman",name:"Harman Finochem Ltd",country:"IN",countryName:"India",bucket:"api_only",aliases:["Harman Finochem Limited"],tierPerMarket:{EG:"insufficient",SA:"blocked",AE:"blocked"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s2",identifier:"USDMF 018890",subject:"Metformin Hydrochloride",honestyClass:"verified",asOf:"2026-06-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"}],homeRegistration:{value:"Registered in India as an API source on domestic metformin formulations.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[{kind:"compliance_action",label:"CEP suspended",status:"suspended",sourceId:"s1",marketsAffected:["SA","AE"],honestyClass:"verified",asOf:"2026-07-02"}],nextStepRoute:"watchlist",couldNotVerify:["Recent inspection history is not public for this site.","Capacity is not publicly disclosed."],summaryMd:"Mid-size Indian producer with metformin HCl in its core filing list. Its CEP moved to suspended in July 2026, which blocks CEP-accepting markets until resolved.",evidence:[{claim:"Type II DMF on file for metformin HCl",sourceId:"s2",date:"2026-06"},{claim:"CEP status moved to suspended",sourceId:"s1",date:"2026-07"}]},{id:"sup-fukang",name:"Shouguang Fukang Pharmaceutical Co",country:"CN",countryName:"China",bucket:"api_only",aliases:[],tierPerMarket:{EG:"promising",SA:"insufficient",AE:"insufficient"},regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2017-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s2",identifier:"USDMF 023110",subject:"Metformin Hydrochloride",honestyClass:"verified",asOf:"2026-06-01"}],tradeEvidence:{value:"Cross-border pharma trade aggregates show new export volume into EG beginning late 2025.",honestyClass:"labeled_estimate",sourceId:"s3",asOf:"2026-07-01",note:"origin-level aggregate"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["
1Site address and capacity are not publicly disclosed.","Recent inspection history is not public for this site."],summaryMd:"Large Chinese metformin producer with aggressive pricing. EG registration diligence runs heavier than for the incumbent Indian sources.",evidence:[{claim:"CEP listed as valid for metformin hydrochloride",sourceId:"s1",date:"2026-07"}]},{id:"sup-exemed",name:"Exemed Pharmaceuticals",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{EG:"insufficient",SA:"insufficient",AE:"insufficient"},regulatoryStatus:[{kind:"who_gmp",label:"WHO GMP",status:"unknown",sourceId:"s9",registerName:"WHO GMP certificate listings",honestyClass:"unknown_rendered",asOf:"2025-12-01"}],homeRegistration:{value:"Not established",honestyClass:"unknown_rendered",registerName:"CDSCO Central Licence Approval register",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["No WHO GMP listing found for the target-market scope; regulatory footprint reads thin.","Site address and capacity are not publicly disclosed."],summaryMd:"Smaller Gujarat-based producer with a thin public regulatory footprint for the target markets. Treat as a backup quote only until registry evidence firms up.",evidence:[{claim:"No WHO GMP listing found for target-market scope; regulatory footprint is thin",sourceId:"s9",date:"2025-12"}]},{id:"sup-julphar-api",name:"Julphar API Manufacturing Unit",country:"AE",countryName:"United Arab Emirates",bucket:"api_only",group:"Julphar Group",legalEntity:"Gulf Pharmaceutical Industries PSC",aliases:[],tierPerMarket:{EG:"insufficient",SA:"promising",AE:"strong"},regulatoryStatus:[{kind:"national_registration",label:"SFDA registration",status:"valid",sourceId:"s6",honestyClass:"verified",asOf:"2026-06-30"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s6",honestyClass:"verified",asOf:"2026-06-30"}],siteAddress:{value:"Julphar API manufacturing complex, Ras Al Khaimah, United Arab Emirates",honestyClass:"self_reported",sourceId:"s6",asOf:"2026-06-30"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed.","Recent FDA-equivalent inspection history is not public for this site."],summaryMd:"GCC-based API manufacturing unit within the Julphar group. Local GCC origin can unlock national tender preferences alongside the group's finished-dose lines.",evidence:[{claim:"Registered metformin API source across SA and AE filings",sourceId:"s6",date:"2026-06"}]},{id:"sup-granules",name:"Granules India Ltd",country:"IN",countryName:"India",bucket:"dual",aliases:[],tierPerMarket:{EG:"strong",SA:"promising",AE:"strong"},regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2008-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"usdmf",label:"USDMF",status:"available for reference",sourceId:"s2",identifier:"USDMF 016004",subject:"Metformin Hydrochloride USP",availableForReference:!0,firstFiledYear:2009,honestyClass:"verified",asOf:"2026-07-01"}],siteAddress:{value:"Granules India Ltd, Gagillapur, Hyderabad, Telangana, India",honestyClass:"verified",sourceId:"s9",asOf:"2026-06-29"},capacity:{value:"PFI and API metformin volumes disclosed in the Q4 FY26 investor presentation",honestyClass:"labeled_estimate",sourceId:"s8",asOf:"2026-05-01",note:"company-disclosed scope; not molecule-exclusive allocation"},inspection:{value:"NAI, 02 Sep 2023, FDA (FEI 3002894410)",honestyClass:"verified",sourceId:"s12",asOf:"2023-09-02"},ipRef:"4.5-02",backwardIntegration:{value:"Investor materials report vertical integration from PFI to API to finished dose for metformin.",honestyClass:"self_reported",sourceId:"s8",asOf:"2026-05-01"},homeRegistration:{value:"Registered in India as an API source on approved metformin formulations.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public.","Firm price, minimum order quantity, and lead time require direct outreach."],summaryMd:"Vertically integrated from API to PFI and finished dose. A strong option if a combined API and dossier conversation is useful later.",evidence:[{claim:"PFI and API metformin volumes disclosed in Q4 FY26 investor material",sourceId:"s8",date:"2026-05"}]},{id:"sup-ipca",name:"Ipca Laboratories Ltd",country:"IN",countryName:"India",bucket:"dual",aliases:[],tierPerMarket:{EG:"promising",SA:"strong",AE:"promising"}
1,regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"s1",identifier:"CEP 2012-XXX",subject:"Metformin hydrochloride",honestyClass:"verified",asOf:"2026-07-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"}],siteAddress:{value:"Ipca Laboratories Ltd, Ratlam, Madhya Pradesh, India",honestyClass:"self_reported",sourceId:"s9",asOf:"2026-06-29"},inspection:{value:"VAI, 18 Jun 2022, FDA (FEI 3003217750)",honestyClass:"verified",sourceId:"s12",asOf:"2022-06-18"},homeRegistration:{value:"Registered in India as an API and finished-dose manufacturer for metformin products.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed.","Private third-party audit reports are not public."],summaryMd:"Combined API and finished-dose manufacturer with an established metformin franchise and export dossier experience across both target regions.",evidence:[{claim:"CEP for metformin hydrochloride listed as valid",sourceId:"s1",date:"2026-07"}]},{id:"sup-julphar-fdf",name:"Julphar (Gulf Pharmaceutical Industries)",country:"AE",countryName:"United Arab Emirates",bucket:"fdf_only",group:"Julphar Group",legalEntity:"Gulf Pharmaceutical Industries PSC",aliases:[],tierPerMarket:{EG:"insufficient",SA:"strong",AE:"strong"},regulatoryStatus:[{kind:"national_registration",label:"SFDA registration",status:"valid",sourceId:"s6",honestyClass:"verified",asOf:"2026-06-30"},{kind:"national_registration",label:"MOHAP registration",status:"valid",sourceId:"s6",honestyClass:"verified",asOf:"2026-06-30"}],siteAddress:{value:"Julphar finished-dose campus, Ras Al Khaimah, United Arab Emirates",honestyClass:"self_reported",sourceId:"s6",asOf:"2026-06-30"},ipRef:"4.5-03",complianceFlags:[],nextStepRoute:"via_agent",couldNotVerify:["Capacity is not publicly disclosed.","Firm price and lead time require direct outreach."],summaryMd:"Largest GCC-based generics manufacturer, with finished-dose lines in Ras Al Khaimah. Local FDF origin can unlock national tender preferences.",evidence:[{claim:"Registered metformin products across SA and AE",sourceId:"s6",date:"2026-06"}]},{id:"sup-akums",name:"Akums Drugs and Pharmaceuticals",country:"IN",countryName:"India",bucket:"fdf_only",aliases:[],tierPerMarket:{EG:"promising",SA:"insufficient",AE:"insufficient"},regulatoryStatus:[{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"s9",honestyClass:"verified",asOf:"2026-06-29"},{kind:"eu_gmp",label:"EU GMP",status:"pending",sourceId:"s11",honestyClass:"verified",asOf:"2026-06-28"}],homeRegistration:{value:"Registered in India as a finished-dose manufacturer for metformin products.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed.","Private third-party audit reports are not public."],summaryMd:"One of India's largest contract finished-dose manufacturers, with existing metformin immediate release and extended release lines and export dossier experience.",evidence:[{claim:"Runs commercial metformin immediate release and extended release lines for export clients",sourceId:"s12",date:"2026-04"}]},{id:"sup-rubicon",name:"Rubicon Research",country:"IN",countryName:"India",bucket:"fdf_only",aliases:[],tierPerMarket:{EG:"insufficient",SA:"insufficient",AE:"promising"},regulatoryStatus:[{kind:"iso",label:"ISO 9001",status:"valid",sourceId:"s12",honestyClass:"verified",asOf:"2026-03-01"}],capacity:{value:"Not published; RFI item",honestyClass:"rfi_only"},inspection:{value:"NAI, 22 Feb 2024, FDA (FEI 3006612290)",honestyClass:"verified",sourceId:"s12",asOf:"2024-02-22"},homeRegistration:{value:"Registered in India as a finished-dose formulation and drug-delivery CDMO.",honestyClass:"verified",sourceId:"s14",asOf:"2026-06-29"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed; treated as an RFI item.","Firm price and lead time require direct outreach."],summaryMd:"Drug-delivery CDMO with metformin extended-release formulation work. Relevant if the GCC plan needs a differentiated extended-release dossier rather than plain immediate release.",evidence:[{claim:"Metformin extended-release dossiers referenced as available for licensing",sourceId:"s12",date:"2026-03"}]}],z="This map uses five honesty classes and four tiers instead of a single fit score.\n\n**Honesty classes.** Verified: registry anchored, with an identifier and an as-of date. Labeled estimate: a derived number with a named dataset and method. Self reported: a company disclosure, cited and labeled as such. RFI item: not publicly determinable, deferred to outreach and carried into the prefilled RFI. Not established: the register checked and the date checked are always named; a gap never renders blank or as zero.\n\n**Tiers, per market.** Strong candidate: a referenceable credential for that market with a clean recency window. Promising: partial evidence with no disqualifier. Insufficient evidence: identified but lacking market-relevant credentials, a state, not a score. Blocked: an active disqualifier for that market, always rendered with its evidence.\n\n**Market-scoped blocks.** A block applies to specific markets only; a supplier can be Strong in one market and Blocked in another on the same page.\n\n**Home registration and export friction.** For Indian API sites, a maker not registered in India needs a CDSCO No Objection Certificate to export, which adds lead time and reconciliation work. This explainer sits here once; individual rows only carry the registration status.\n\n**One-minute re-run.** Every rendered claim carries a registry identifier or a named dataset, a status, and an as-of date. Follow the identifier back to the source in the Sources tab to re-verify any cell in under a minute.",j="This map reflects registry, filing, and cross-border trade-aggregate evidence available as of the publication date named on the cover. It is a sourcing aid, not a qualification decision, a regulatory opinion, or a substitute for direct supplier audit. Every claim carries an honesty class and, where applicable, a registry identifier and an as-of date; a claim without those carries the RFI item or not established label instead of a value. Tiers describe evidence available at publication, not a guarantee of current supply, price, or capacity. Verify every credential against its named register before committing volume, and route unresolved
1items through the prefilled RFI. The research service that produced this map is not a party to any transaction between the parties named here and accepts no liability for sourcing decisions made on this basis.",K="## The lane at a glance\n\nMetformin HCl into Egypt and the GCC is a deep, commodity-priced lane with a stratified supplier base across three buckets. Fourteen suppliers are mapped: nine API-only manufacturers, two dual API and finished-dose manufacturers, and three finished-dose manufacturers and CDMOs [s1][s2][s3].\n\nThe short answer for a sourcing desk: Wanbury and Granules India anchor the Strong tier with full paper across most target markets [s1][s2][s5], Vistin Pharma is the clean EU-origin option for Saudi Arabia [s7], and Julphar's GCC-local footprint is worth a look for both API and finished-dose tender positioning [s6].\n\n## Supply landscape\n\nIndia dominates volume into both destinations, with sustained quarterly cadence visible in lane aggregates through 2026 [s3][s4]. Chinese-origin supply entered the EG lane in late 2025 at aggressive prices [s3]; Shouguang Fukang's paper quality is adequate, a valid CEP, but EG registration diligence runs heavier than for the incumbent Indian sources [s1][s5].\n\nEuropean supply is thinner but real: Vistin's dedicated metformin plant finished a capacity expansion in 2025 [s7], and Farmhispania holds a long-standing CEP [s1]. Expect a price premium over Indian material for either, in exchange for origin optionality; see the price corridor for the current band.\n\n## Regulatory pathway notes\n\nEgypt: the practical gate is the EDA's registered-source list. Wanbury, USV, and Granules already appear as API sources on approved products, which shortens variation timelines materially [s5]. A new Chinese source triggers a fuller review cycle.\n\nGCC: metformin products route through national registrations in practice; the SFDA's registered list shows the incumbent formulator field [s6]. EU or GCC origin earns scoring advantages in several national tenders, which is where Vistin and Julphar become interesting despite higher unit cost [s6][s7].\n\nHome registration in India is now tracked explicitly per supplier. An Indian maker not registered in India needs a CDSCO No Objection Certificate for export, which adds lead time.\n\n## Risks and watch-outs\n\nNitrosamine history on this molecule means the quality agreement should pin NDMA controls explicitly; ask each shortlisted supplier for current batch data rather than certificates alone [s1][s2].\n\n## Suggested next step\n\nSend the prefilled RFI to Wanbury and Granules for baseline economics, open a parallel conversation with Vistin for the de-risked second source, and decide whether GCC tender strategy justifies a Julphar conversation on finished dose.",Y={id:"map-metformin-v2",laneId:"lane-metformin-eg",version:2,briefMd:K.replace("Fourteen suppliers are mapped: nine API-only manufacturers, two dual API and finished-dose manufacturers, and three finished-dose manufacturers and CDMOs [s1][s2][s3].","Fifteen suppliers are mapped: nine API-only manufacturers, two dual API and finished-dose manufacturers, and four finished-dose manufacturers and CDMOs [s1][s2][s3].").replace("## Risks and watch-outs","## Local manufacture in Egypt\n\nAdded on request: EVA Pharma is the strongest EG-local contract manufacturing option surfaced. Local manufacture shifts the EDA pathway from imported-product to locally-manufactured review, which has been running faster, and improves pricing-committee positioning [s13]. The trade-off is a tech transfer project of roughly 12 to 18 months before first commercial batch.\n\n## Risks and watch-outs\n\nHarman Finochem's CEP moved to suspended on 02 Jul 2026, which blocks Saudi Arabia and the United Arab Emirates until resolved; see the Directory tier chips and the compliance flag credential for the registry evidence [s1]."),directory:[...q,{id:"sup-eva",name:"EVA Pharma",country:"EG",countryName:"Egypt",bucket:"fdf_only",aliases:[],tierPerMarket:{EG:"strong",SA:"insufficient",AE:"insufficient"},regulatoryStatus:[{kind:"national_registration",label:"EDA registration",status:"val
1id",sourceId:"s5",honestyClass:"verified",asOf:"2026-06-30"},{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"s13",honestyClass:"verified",asOf:"2026-05-01"}],siteAddress:{value:"EVA Pharma, 6th of October City, Giza, Egypt",honestyClass:"self_reported",sourceId:"s13",asOf:"2026-07-02"},complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed.","Firm technology-transfer timeline and price require direct outreach."],summaryMd:"Cairo-based manufacturer with active contract manufacturing and tech transfer lines. Local EG manufacture materially improves the EDA pathway speed.",evidence:[{claim:"Public tech transfer and CMO capability across oral solids",sourceId:"s13",date:"2026-07"},{claim:"EU GMP certification held for selected oral solid lines",sourceId:"s13",date:"2026-05"}]}],sources:V,createdAt:"2026-07-02T14:31:00Z",changeNote:"Added EVA Pharma (EG contract manufacturer) after your question about local tech transfer options.",howToReadMd:z,coverage:{asOf:"2026-07-09",usDmfHolders:21,cepHolders:9,distinctEntities:15,distinctSites:16,profiled:15,quarantined:1,note:"Counts reconcile the credentialed rows above against the registry holder lists; the identified, unverified ledger carries the difference."},ip:{patents:[{number:"US 6,001,343 B1",jurisdiction:"US",claimType:"compound",status:"expired",expiry:"2016-05-03",sourceId:"s2",assigneeCompanyId:"company-sun-pharma",assigneeName:"Sun Pharmaceutical Industries"},{number:"EP 1 259 231 B1",jurisdiction:"EU",claimType:"formulation",status:"expired",expiry:"2020-11-14",sourceId:"s11",assigneeCompanyId:null,assigneeName:"Bristol-Myers Squibb Company"}],marketFto:[{market:"EG",verdict:"Clear",basis:"Compound and formulation patent families have expired in Egypt; no live blocking patent identified.",sourceId:"s2"},{market:"SA",verdict:"Clear with formulation caution",basis:"The compound patent has expired; a narrow extended-release formulation filing remains under examination in Saudi Arabia.",exclusivity:"None identified",sourceId:"s11"},{market:"AE",verdict:"Clear",basis:"No live blocking patent identified in the United Arab Emirates as of the map date.",sourceId:"s11"}],supplierPositions:[{token:"4.5-01",supplierId:"sup-wanbury",supplierName:"Wanbury Ltd",position:"No freedom-to-operate conflict identified for its current filings.",basis:"Compound and formulation patent families are expired in all three target markets.",honestyClass:"verified"},{token:"4.5-02",supplierId:"sup-granules",supplierName:"Granules India Ltd",position:"No freedom-to-operate conflict identified for its current filings.",basis:"Compound and formulation patent families are expired in all three target markets.",honestyClass:"verified"},{token:"4.5-03",supplierId:"sup-julphar-fdf",supplierName:"Julphar (Gulf Pharmaceutical Industries)",position:"States no known blocking patent for its finished-dose metformin lines.",basis:"Self reported; not cross-checked against a docket filing.",honestyClass:"self_reported"}],solidFormNote:"No secondary polymorph patent family was identified for metformin hydrochloride in the assessed markets.",litigationNote:"No public litigation, patent term extension, or supplementary protection certificate event was identified for this molecule in the assessed markets as of the map date."},priceCorridor:{trailingMonths:12,coverageNote:"Aggregated export unit values for metformin HCl API into EG and GCC markets; the sample clears the suppression floor.",sourceId:"s3",suppressed:!1,medianUsdPerKg:4.35,iqrLow:3.65,iqrHigh:5.1,shipmentLines:214},accessChannels:[{id:"ac-cairo-agency",name:"Cairo Pharma Trading Agency",country:"EG",countryName:"Egypt",channelClass:"authorized_agent",represents:["Wanbury Ltd"],representation:{value:"Named as Wanbury Ltd's authorized agent for Egypt.",honestyClass:"self_reported",sourceId:"s5",asOf:"2026-06-30"},summaryMd:"Local Cairo based agent handling registration support and after-sales coordination for its principal.",evidence:[{claim:"Named as the Egypt agent on file with the local registration dossier",sourceId:"s5",date:"2026-06"}]},{id:"ac-gulf-broker",name:"Gulf Pharma Sourcing Partners",country:"AE",countryName:"United Arab Emirates",channelClass:"broker",represents:[],representation:{value:"Not established",honestyClass:"unknown_rendered",registerName:"SFDA and MOHAP agent registers",asOf:"2026-06-30"},summaryMd:"Trade press names this broker as active in GCC API sourcing; no principal representation could be anchored to a named manufacturer.",evidence:[{claim:"Referenced in GCC sourcing trade press as an active broker",sourceId:"s6",date:"2026-06"}]}],unverifiedLedger:[{name:"Reliance Pharma Actives (as sourced)",countryName:"India",bucket:"api_only",namedIn:"Trade press mention, June 2026",note:"No registry anchor found for this name; identified, unverified."}],mergeLog:[{canonical:"Harman Finochem Ltd",mergedAliases:["Harman Finochem Limited"],basis:"Normalized name and a shared US DMF holder matched a single legal entity across two source mentions."}],disclaimerMd:j,rfi:[{supplierId:"sup-usv",supplierName:"USV Pvt Ltd",items:[{field:"capacity",question:"What is your current annual production capacity allocable to metformin hydrochloride, and what volume is available for a new buyer in the next twelve months."},{field:"backward_integration",question:"Do you manufacture your own key starting materials for metformin, or do you source them externally."},{field:"audit",question:"Can you share your most recent third-party audit report or your latest FDA or EU inspection outcome."}]}],watchlistDeltas:["Harman Finochem Ltd: CEP moved from valid to suspended on 02 Jul 2026, moving Saudi Arabia and the United Arab Emirates to Blocked."]},W={id:"lane-sema-br",title:"Semaglutide \xb7 Brazil",molecules:["
1Semaglutide"],markets:[{code:"BR",name:"Brazil"}],note:"Post patent expiry play. Interested in peptide API sources with CTD-ready dossiers.",status:"researching",createdAt:"2026-07-03T08:20:00Z",product:"supplier"},J=[{delayMs:0,event:{type:"stage_change",stage:"scoping",label:"Scoping the lane"}},{delayMs:1800,event:{type:"progress",message:"Parsing lane: Semaglutide, market BR, note mentions CTD-ready dossiers"}},{delayMs:2600,event:{type:"progress",message:"Checking ANVISA registration landscape for semaglutide products"}},{delayMs:3400,event:{type:"stage_change",stage:"registries",label:"Sweeping regulatory registries"}},{delayMs:2400,event:{type:"progress",message:"US FDA DMF list: 6 Type II filings found for semaglutide"}},{delayMs:2800,event:{type:"progress",message:"CEP database: no monograph route; peptide APIs follow ASMF"}},{delayMs:3e3,event:{type:"supplier_found",supplier:{id:"sup-drl-peptide",name:"Dr. Reddy's Laboratories",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{BR:"strong"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s1",honestyClass:"verified",asOf:"2026-04-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public."],summaryMd:"Peptide API program with semaglutide among lead assets; BR filing activity visible.",evidence:[{claim:"Type II DMF on file for semaglutide",sourceId:"s2",date:"2026-04"}]}}},{delayMs:2200,event:{type:"stage_change",stage:"trade",label:"Reading trade aggregates"}},{delayMs:2600,event:{type:"progress",message:"Peptide intermediate flows into BR: 3 origin markets active in 2026"}},{delayMs:3200,event:{type:"supplier_found",supplier:{id:"sup-polypeptide",name:"PolyPeptide Group",country:"SE",countryName:"Sweden",bucket:"api_only",aliases:[],tierPerMarket:{BR:"promising"},regulatoryStatus:[{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"s2",honestyClass:"verified",asOf:"2026-02-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Firm price and lead time require direct outreach."],summaryMd:"Dedicated peptide CDMO-scale producer; GLP-1 capacity expansions announced through 2026.",evidence:[{claim:"GLP-1 capacity expansion announced",sourceId:"s2",date:"2026-02"}]}}},{delayMs:2400,event:{type:"stage_change",stage:"web",label:"Reading company disclosures"}},{delayMs:2800,event:{type:"progress",message:"Cross-checking ANVISA GMP certifications for shortlisted plants"}},{delayMs:3e3,event:{type:"progress",message:"Drafting brief and assigning tiers"}}],Z=[W,{id:"lane-metformin-eg",title:"Metformin HCl \xb7 Egypt + GCC",molecules:["Metformin HCl"],markets:[{code:"EG",name:"Egypt"},{code:"SA",name:"Saudi Arabia"},{code:"AE",name:"United Arab Emirates"}],note:"Prefer CEP holders. We may localize FDF manufacture in Egypt next year.",status:"ready",createdAt:"2026-06-28T09:14:00Z",product:"supplier"},{id:"lane-atorva-ng",title:"Atorvastatin \xb7 Nigeria",molecules:["Atorvastatin calcium"],markets:[{code:"NG",name:"Nigeria"}],status:"failed",createdAt:"2026-07-01T16:02:00Z",failureReason:"The research run timed out before completing. Retry it for free.",product:"supplier"}],X=[{id:"map-metformin-v1",laneId:"lane-metformin-eg",version:1,briefMd:K,directory:q,sources:V,createdAt:"2026-06-28T09:52:00Z",howToReadMd:z,accessChannels:[],unverifiedLedger:[],mergeLog:[],disclaimerMd:j,rfi:[],watchlistDeltas:[]},Y],Q=[{id:"s1",kind:"registry",title:"US FDA Drug Master File list, Type II API, Semaglutide",accessedAt:"2026-07-03"},{id:"s2",kind:"registry",title:"ANVISA, registered products and GMP certification lookups",accessedAt:"2026-07-03"},{id:"s3",kind:"trade_data",title:"Cross-border pharma trade aggregates, peptide APIs and intermediates into BR, 2025 to 2026",accessedAt:"2026-07-03"},{id:"s4",kind:"web",title:"PolyPeptide Group, GLP-1 capacity expansion disclosures",accessedAt:"2026-07-03"},{id:"s5",kind:"web",title:"Dr. Reddy's Laboratories, peptides portfolio and BR filing activity",accessedAt:"2026-07-03"},{id:"s6",kind:"filing",title:"Patent status review, semaglutide compound and formulation fam
1ilies, BR",accessedAt:"2026-07-03"}],$=[{id:"sup-drl-peptide",name:"Dr. Reddy's Laboratories",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{BR:"strong"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s1",honestyClass:"verified",asOf:"2026-04-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public."],summaryMd:"Peptide API program with semaglutide among lead assets and visible BR filing activity. The most advanced generics-side option for a Brazil launch.",evidence:[{claim:"Type II DMF on file for semaglutide",sourceId:"s1",date:"2026-04"},{claim:"BR filing activity referenced in portfolio disclosures",sourceId:"s5",date:"2026-05"}]},{id:"sup-polypeptide",name:"PolyPeptide Group",country:"SE",countryName:"Sweden",bucket:"api_only",aliases:[],tierPerMarket:{BR:"promising"},regulatoryStatus:[{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"s4",honestyClass:"verified",asOf:"2026-02-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed."],summaryMd:"Dedicated peptide manufacturer at CDMO scale; GLP-1 capacity expansions running through 2026. Strong quality story, allocation is the question.",evidence:[{claim:"GLP-1 capacity expansion announced through 2026",sourceId:"s4",date:"2026-02"}]},{id:"sup-bachem",name:"Bachem AG",country:"CH",countryName:"Switzerland",bucket:"api_only",aliases:[],tierPerMarket:{BR:"promising"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"s1",honestyClass:"verified",asOf:"2026-03-01"}],complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["Firm price and lead time require direct outreach."],summaryMd:"Reference western peptide house. Premium pricing and long qualification queues; relevant if quality positioning outweighs cost for the BR launch.",evidence:[{claim:"Semaglutide listed in generics API catalogue",sourceId:"s1",date:"2026-03"}]},{id:"sup-hybio",name:"Hybio Pharmaceutical",country:"CN",countryName:"China",bucket:"api_only",aliases:[],tierPerMarket:{BR:"insufficient"},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"pending",sourceId:"s1",honestyClass:"verified",asOf:"2026-05-01"}],homeRegistration:{value:"Not established",honestyClass:"unknown_rendered",registerName:"ANVISA GMP certification lookup",asOf:"2026-07-03"},complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["ANVISA plant certification status needs direct confirmation.","Capacity is not publicly disclosed."],summaryMd:"Large Chinese peptide producer scaling GLP-1 output. Price leader; ANVISA GMP certification status for the relevant plant needs direct confirmation.",evidence:[{claim:"USDMF filing for semaglutide listed as pending",sourceId:"s1",date:"2026-05"}]},{id:"sup-cordenpharma",name:"CordenPharma",country:"DE",countryName:"Germany",bucket:"fdf_only",aliases:[],tierPerMarket:{BR:"promising"},regulatoryStatus:[{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"s2",honestyClass:"verified",asOf:"2026-01-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed."],summaryMd:"Peptide CDMO with announced GLP-1 capacity investment. Fits if development plus supply under one roof is preferred over a merchant API purchase.",evidence:[{claim:"GLP-1 capacity investment announced",sourceId:"s4",date:"2026-01"}]}],ee=[{name:"Meridian Actives Ltd",country:"IN",countryName:"India",bucket:"api_only",aliases:[],tierPerMarket:{},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"g1",honestyClass:"verified",asOf:"2026-05-01"},{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"g2",honestyClass:"verified",asOf:"2026-05-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Private third-party audit reports are not public."],evidence:[{claim:"Type II DMF on file",sourceId:"g1",date:"2026-05"}]},{name:"Helvia Pharma AG",country:"CH",countryName:"Switzerland",bucket:"api_only",aliases:[],tierPerMarket:{}
1,regulatoryStatus:[{kind:"cep",label:"CEP",status:"valid",sourceId:"g1",honestyClass:"verified",asOf:"2026-06-01"},{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"g2",honestyClass:"verified",asOf:"2026-06-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed."],evidence:[{claim:"CEP listed as valid",sourceId:"g1",date:"2026-06"}]},{name:"Qilin Fine Chemical Co",country:"CN",countryName:"China",bucket:"api_only",aliases:[],tierPerMarket:{},regulatoryStatus:[{kind:"usdmf",label:"USDMF",status:"valid",sourceId:"g1",honestyClass:"verified",asOf:"2026-04-01"}],complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["Site address and capacity are not publicly disclosed."],evidence:[{claim:"Type II DMF on file",sourceId:"g1",date:"2026-04"}]},{name:"Vanterra Lifesciences",country:"IN",countryName:"India",bucket:"fdf_only",aliases:[],tierPerMarket:{},regulatoryStatus:[{kind:"who_gmp",label:"WHO GMP",status:"valid",sourceId:"g2",honestyClass:"verified",asOf:"2026-03-01"}],complianceFlags:[],nextStepRoute:"direct_rfi",couldNotVerify:["Capacity is not publicly disclosed."],evidence:[{claim:"Export dossier experience across target region",sourceId:"g4",date:"2026-03"}]},{name:"Nordkap Pharma ApS",country:"DK",countryName:"Denmark",bucket:"fdf_only",aliases:[],tierPerMarket:{},regulatoryStatus:[{kind:"eu_gmp",label:"EU GMP",status:"valid",sourceId:"g2",honestyClass:"verified",asOf:"2026-02-01"}],complianceFlags:[],nextStepRoute:"watchlist",couldNotVerify:["Capacity is not publicly disclosed."],evidence:[{claim:"Tech transfer capability disclosed for oral solids",sourceId:"g4",date:"2026-02"}]}];function et(e){return JSON.parse(JSON.stringify(e))}function ea(e){let t=[],a=0;for(let n of e)a+=n.delayMs,t.push(a);return t}let en=Date.now(),er={lanes:et(Z),mapVersions:et(X),chat:{"lane-metformin-eg":et([{id:"msg-1",laneId:"lane-metformin-eg",role:"user",contentMd:"Why does Wanbury read stronger than Vistin given how clean Vistin's paper looks?",createdAt:"2026-06-28T10:05:00Z"},{id:"msg-2",laneId:"lane-metformin-eg",role:"assistant",contentMd:"Paper quality is comparable: both hold valid CEPs [s1]. The tier gap is commercial, not regulatory. Wanbury has an established Cairo agent and appears as a registered source on existing EDA-approved products [s5], which shortens the variation timeline. Vistin's EU origin costs a premium on this molecule. If origin de-risking outweighs landed cost for you, treat them as equals and send both an RFI.",createdAt:"2026-06-28T10:05:40Z"},{id:"msg-3",laneId:"lane-metformin-eg",role:"user",contentMd:"Are there any Egyptian contract manufacturers who could take a tech transfer if we localize?",createdAt:"2026-07-02T14:22:00Z"},{id:"msg-4",laneId:"lane-metformin-eg",role:"assistant",contentMd:"Yes. I researched EG-local contract manufacturing options and added the strongest one to your map: EVA Pharma, Cairo, with active tech transfer lines for oral solids and EU GMP on selected lines [s13]. The map is now at version 2. Local manufacture would shift you into the faster locally-manufactured EDA pathway; the cost is a 12 to 18 month transfer project.",createdAt:"2026-07-02T14:31:00Z",mapVersionId:"map-metformin-v2"}])},chatThreads:{},shareTokens:{},events:{},notifications:[{id:"ntf-metformin",title:"Supplier map ready",body:"Metformin HCl \xb7 Egypt + GCC finished researching. 14 suppliers cleared the evidence bar.",at:"2026-06-28T09:52:00Z",read:!1,href:"/sourcing/supplier-maps?map=lane-metformin-eg"}],shortlist:[],watches:[],shortlistSeq:0,watchSeq:0,quotaUsed:2,createdCount:0,profile:et({fullName:"Amina Hassan",email:"[email protected]",companyDomain:"nilevalleypharma.com",companyName:"Nile Valley Pharma",roleTitle:"Head of Sourcing"}),workspaceChatHistory:et([{id:"wchat-hist-1",role:"user",content:"How can I compare suppliers in the Graph?",at:"2026-07-03T01:05:00Z",conversationId:"wconv-hist-1"},{id:"wchat-hist-2",role:"assistant",conversationId:"wconv-hist-1",content:"Start in [Companies](/sourcing/directory?entity=companies) and narrow the list by manufacturing footprint and regulatory evidence. Open a company to inspect its plants, filings and quality history, then save candidates to your shortlist for comparison. I can follow the Graph surface you are viewing and help explain what is on record. Missing evidence is a reason to investigate further.",at:"2026-07-03T01:05:08Z"}]),workspaceChatConversations:et([{id:"wconv-hist-1",title:"How can I compare suppliers in the Graph?",archived:!1,createdAt:"2026-07-03T01:05:00Z",lastMessageAt:"2026-07-03T01:05:08Z"}]),sims:[{laneId:W.id,startedAt:en,offsets:ea(J),steps:et(J),completion:"semaglutide",finished:!1}]};a(10241);a(95704);let ei=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"https://lanesvc.onrender.com";return{directory:{companies:t=>l(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=new URLSearchParams;for(let e of["q","country","hasPlants","hasDmf","hasTrade","hasCompliance","moleculeId","plantCountry","regulator","filedSince","minPlants","minFilings","cleanCompliance3y","noSevereEvents","gmpAccredited","stateOwned","isCdmo","isListed","hasFinancials","hasPeople","tradeGrowing","exportsTo","minTradeUsd","pureApi","sort","limit","offset"]){let n=t[e];void 0!==n&&""!==n&&a.set(e,String(n))}let n=a.toString();return"".concat(e,"/directory/companies").concat(n?"?".concat(n):"")}(e,t)),molecules:t=>l(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=new URLSearchParams;for(let e of["q","hasSuppliers","hasPrice","hasPatents","hasShortages","atc","patentStatus","loeWithinYears","minSuppliers","maxSuppliers","registeredIn","openShortage","moleculeType","tradedSince","sort","limit","offset"]){let n=t[e];void 0!==n&&""!==n&&a.set(e,String(n))}let n=a.toString();return"".concat(e,"/directory/molecules").concat(n?"?".concat(n):"")}(e,t)),registrations:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/registrations"),t))},registrationsFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/registrations/facets"),t))},people:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/people"),t))},peopleFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/people/facets"),t))},plants:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/plants"),t))},plantsFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/plants/facets"),t))},async plant(t){let a=await fetch("".concat(e,"/directory/plants/").concat(encodeURIComponent(t)),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return await a.json()},signals:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/signals"),t))},signalsFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/signals/facets"),t))},signalsTimeline:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/signals/timeline"),t))},tenders:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/tenders"),t))},tendersFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/tenders/facets"),t))},markets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/markets"),t))},marketsFacets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/markets/facets"),t))},async market(t){let a=await fetch("".concat(e,"/directory/markets/").concat(encodeURIComponent(t)),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return await a.json()},moleculePrices:t=>g("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/prices")),moleculeGeo:t=>g("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/geo")),moleculeSupplyChain:t=>g("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/supply-chain")),moleculeShortages:t=>g("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/shortages")),companySupplyChain:t=>g("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/supply-chain")),companyQuality:t=>g("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/quality")),companyProducts:t=>g("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/products")),plantInspections:t=>g("".concat(e,"/directory/plants/").concat(encodeURIComponent(t),"/inspections")),marketTrade:t=>g("".concat(e,"/directory/markets/").concat(encodeURIComponent(t),"/trade")),moleculeMonthlyPrices:t=>g("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/prices/monthly")),marketLatestShipment:t=>g("".concat(e,"/directory/markets/").concat(encodeURIComponent(t),"/trade/latest")),moleculeRldImports:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return g(u("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/rld-imports"),a))},companyRldImports:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return g(u("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/rld-imports"),a))},companyPatents:t=>g("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/patents")),async company(t){let a=await fetch("".concat(e,"/directory/companies/").concat(encodeURIComponent(t)),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return function(e){var t,a,n,r,i,o;let s=null!=(t=e.identity)?t:{},l=null!=(a=e.summary)?a:{};return{...e,identity:{...s,apiPosture:null!=(r=null!=(n=s.apiPosture)?n:l.apiPosture)?r:"unknown",maCount:null!=(o=null!=(i=s.maCount)?i:l.maCount)?o:0}}}(await a.json())},async companyCard(t){let a=await fetch("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/card"),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return await a.json()},async molecule(t){let a=await fetch("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t)),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return function(e){var t;let a=null!=(t=m(e))?t:{},n=m(a.suppliers),r=m(a.price),i=m(a.trade),o=m(a.shortages),s=m(a.patents),l=m(a.tenders),c=n&&Array.isArray(n.rows)?{...n,rows:n.rows.map(e=>{var t,a,n,r,i,o,s,l,c,d;let u=null!=(t=m(e))?t:{};return{regulator:u.regulator,docType:p(u,"docType","doc_type"),docNumber:p(u,"docNumber","doc_number"),status:null!=(a=u.status)?a:null,firstFiledDate:null!=(n=p(u,"firstFiledDate","first_filed_date"))?n:null,
1sourceUrl:null!=(r=p(u,"sourceUrl","source_url"))?r:null,holder:null!=(i=u.holder)?i:null,hqCountry:null!=(o=p(u,"hqCountry","hq_country"))?o:null,entityCountry:null!=(s=p(u,"entityCountry","entity_country"))?s:null,websiteUrl:null!=(l=p(u,"websiteUrl","website_url"))?l:null,companyId:null!=(c=p(u,"companyId","company_id"))?c:null,moleculeName:null!=(d=p(u,"moleculeName","molecule_name"))?d:null}})}:n,d=m(null==r?void 0:r.band),u=r?{...r,band:d?{shipmentYear:p(d,"shipmentYear","shipment_year"),nShipmentsTrimmed:p(d,"nShipmentsTrimmed","n_shipments_trimmed"),nExporters:p(d,"nExporters","n_exporters"),p25UsdPerKg:p(d,"p25UsdPerKg","p25_usd_per_kg"),medianUsdPerKg:p(d,"medianUsdPerKg","median_usd_per_kg"),p75UsdPerKg:p(d,"p75UsdPerKg","p75_usd_per_kg")}:null,trend:Array.isArray(r.trend)?r.trend.map(e=>{var t;let a=null!=(t=m(e))?t:{};return{shipmentYear:p(a,"shipmentYear","shipment_year"),medianUsdPerKg:p(a,"medianUsdPerKg","median_usd_per_kg"),nShipments:p(a,"nShipments","n_shipments")}}):[]}:r,g=i?{...i,yearly:Array.isArray(i.yearly)?i.yearly.map(e=>{var t;let a=null!=(t=m(e))?t:{};return{year:a.year,volumeKg:p(a,"volumeKg","volume_kg"),valueUsd:p(a,"valueUsd","value_usd"),avgPriceUsdPerKg:p(a,"avgPriceUsdPerKg","avg_price_usd_per_kg")}}):[],topSuppliers:Array.isArray(i.topSuppliers)?i.topSuppliers.map(e=>{var t;let a=null!=(t=m(e))?t:{},n=p(a,"companyId","company_id");return{supplier:a.supplier,volumeKg:p(a,"volumeKg","volume_kg"),valueUsd:p(a,"valueUsd","value_usd"),...void 0!==n?{companyId:null!=n?n:null}:{}}}):[],topDestinations:Array.isArray(i.topDestinations)?i.topDestinations.map(e=>{var t;let a=null!=(t=m(e))?t:{};return{destination:a.destination,volumeKg:p(a,"volumeKg","volume_kg"),valueUsd:p(a,"valueUsd","value_usd")}}):[]}:i,h=o&&Array.isArray(o.rows)?{...o,rows:o.rows.map(e=>{var t,a,n,r,i,o;let s=null!=(t=m(e))?t:{};return{country:s.country,status:null!=(a=s.status)?a:null,reportedDate:p(s,"reportedDate","reported_date"),expectedResolutionDate:null!=(n=p(s,"expectedResolutionDate","expected_resolution_date"))?n:null,shortageReason:null!=(r=p(s,"shortageReason","shortage_reason"))?r:null,innText:p(s,"innText","inn_text"),sourceName:null!=(i=p(s,"sourceName","source_name"))?i:null,sourceUrl:null!=(o=p(s,"sourceUrl","source_url"))?o:null}})}:o,y=s&&Array.isArray(s.rows)?{...s,rows:s.rows.map(e=>{var t,a;let n=null!=(t=m(e))?t:{};return{...n,patentNumber:null!=(a=p(n,"patentNumber","patent_number"))?a:null}})}:s,f=l?{...l,recent:Array.isArray(l.recent)?l.recent.map(e=>{var t,a,n,r;let i=null!=(t=m(e))?t:{};return{awardDate:p(i,"awardDate","award_date"),country:i.country,winnerName:p(i,"winnerName","winner_name"),winnerCompanyId:null!=(a=p(i,"winnerCompanyId","winner_
1company_id"))?a:null,awardedValueUsd:null!=(n=p(i,"awardedValueUsd","awarded_value_usd"))?n:null,sourceUrl:null!=(r=p(i,"sourceUrl","source_url"))?r:null}}):[]}:l;return{...a,...c?{suppliers:c}:{},...u?{price:u}:{},...g?{trade:g}:{},...h?{shortages:h}:{},...y?{patents:y}:{},...f?{tenders:f}:{}}}(await a.json())},companyFilings:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l(u("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/filings"),a))},moleculeRegistrations:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l(u("".concat(e,"/directory/molecules/").concat(encodeURIComponent(t),"/registrations"),a))},companyPeople:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l(u("".concat(e,"/directory/companies/").concat(encodeURIComponent(t),"/people"),a))},facets:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l(u("".concat(e,"/directory/facets"),t))}},profile:{get:()=>l("".concat(e,"/profile")),update:t=>c("".concat(e,"/profile"),"PATCH",t)},quota:{get:()=>l("".concat(e,"/quota")),buyer:()=>l("".concat(e,"/quota/buyer"))},molecules:{suggest:function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return l("".concat(e,"/molecules/suggest?q=").concat(encodeURIComponent(t),"&limit=").concat(a))}},search:{suggest:t=>l("".concat(e,"/search/suggest?q=").concat(encodeURIComponent(t)))},org:{get:()=>l("".concat(e,"/org"))},countries:{list:()=>l("".concat(e,"/countries"))},billing:{get:()=>l("".concat(e,"/billing")),checkout:(t,a)=>c("".concat(e,"/billing/checkout"),"POST",{planKey:t,currency:a}),verifyCheckout:t=>c("".concat(e,"/billing/checkout/verify"),"POST",t),cancel:t=>c("".concat(e,"/billing/cancel"),"POST",(null==t?void 0:t.product)?{product:t.product}:void 0),cancelUndo:t=>c("".concat(e,"/billing/cancel/undo"),"POST",(null==t?void 0:t.product)?{product:t.product}:void 0),planChange:t=>c("".concat(e,"/billing/plan-change"),"POST",{planKey:t}),planChangeCancel:()=>c("".concat(e,"/billing/plan-change/cancel"),"POST"),invoices:()=>l("".concat(e,"/billing/invoices")),topup:(t,a)=>c("".concat(e,"/billing/topup"),"POST",{quantity:t,currency:a}),verifyTopup:t=>c("".concat(e,"/billing/topup/verify"),"POST",t)},lanes:{list:()=>l("".concat(e,"/lanes")),async get(t){let a=await fetch("".concat(e,"/lanes/").concat(encodeURIComponent(t)),{cache:"no-store",headers:await (0,i.P)()});if(404===a.status)return null;if(!a.ok)throw await o(a);return await a.json()},create:t=>c("".concat(e,"/lanes"),"POST",t),setRankingCriteria:(t,a)=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/ranking-criteria"),"PATCH",{rankingCriteria:a}),setVisibility:(t,a)=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/visibility"),"PATCH",{visibility:a}),share:t=>l("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/share")),retry:t=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/retry"),"POST"),events:t=>l("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/events")),mapVersions:t=>l("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/map-versions")),async marketIntel(t){let a=await fetch("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/market-intel"),{cache:"no-store",headers:await (0,i.P)()});if(!a.ok){let e=await o(a);if("market_intel_unavailable"===e.message||"lane_not_found"===e.message)return null;throw e}return await a.json()}},buyerMaps:{list:()=>l("".concat(e,"/buyer-maps")),create:t=>c("".concat(e,"/buyer-maps"),"POST",t),findEmails:t=>c("".concat(e,"/buyer-maps/").concat(encodeURIComponent(t),"/find-emails"),"POST")},chat:{history:(t,a)=>l("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/chat")+(a?"?thread_id=".concat(encodeURIComponent(a)):"")),send:(t,a,n)=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/chat"),"POST",{content:a,...n?{thread_id:n}:{}}),threads:t=>l("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/chat/threads")),createThread:(t,a)=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/chat/threads"),"POST",a?{title:a}:{}),updateThread:(t,a,n)=>c("".concat(e,"/lanes/").concat(encodeURIComponent(t),"/chat/threads/").concat(encodeURIComponent(a)),"PATCH",n)},notifications:{list:()=>l("".concat(e,"/notifications")),async markAllRead(){await c("".concat(e,"/notifications/read-all"),"POST")}},shortlist:{list:async()=>(await l("".concat(e,"/shortlist"))).items,add:t=>c("".concat(e,"/shortlist"),"POST",t),setNote:(t,a)=>c("".concat(e,"/shortlist/").concat(encodeURIComponent(t)),"PATCH",{note:a}),remove:t=>d("".concat(e,"/shortlist/").concat(encodeURIComponent(t)),"DELET
1E")},watches:{list:async()=>(await l("".concat(e,"/watches"))).watches,add:t=>c("".concat(e,"/watches"),"POST",{cadence:"weekly",...t}),setCadence:(t,a)=>c("".concat(e,"/watches/").concat(encodeURIComponent(t)),"PATCH",{cadence:a}),remove:t=>d("".concat(e,"/watches/").concat(encodeURIComponent(t)),"DELETE")},admin:{review:{list:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pending";return l("".concat(e,"/admin/review?status=").concat(encodeURIComponent(t)))},count:()=>l("".concat(e,"/admin/review/count")),approve:t=>c("".concat(e,"/admin/review/").concat(encodeURIComponent(t),"/approve"),"POST"),reject:t=>c("".concat(e,"/admin/review/").concat(encodeURIComponent(t),"/reject"),"POST"),edit:(t,a)=>c("".concat(e,"/admin/review/").concat(encodeURIComponent(t),"/edit"),"POST",{resolution:a})},metrics:{runs:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return l("".concat(e,"/admin/metrics/runs?limit=").concat(t))}},library:{version:()=>l("".concat(e,"/admin/library/version")),bump:()=>c("".concat(e,"/admin/library/bump"),"POST")}},workspaceChat:{conversations:()=>l("".concat(e,"/workspace-chat/conversations")),createConversation:()=>c("".concat(e,"/workspace-chat/conversations"),"POST",{}),updateConversation:(t,a)=>c("".concat(e,"/workspace-chat/conversations/").concat(encodeURIComponent(t)),"PATCH",a),history:t=>l("".concat(e,"/workspace-chat/messages")+(t?"?conversationId=".concat(encodeURIComponent(t)):"")),async feedback(t){await c("".concat(e,"/workspace/chat/feedback"),"POST",t)},async send(t,a,n,r,i){let o,l,c={content:t,surface:a,...r?{context:r}:{},...i?{conversationId:i}:{}};if(await s("".concat(e,"/workspace-chat/messages"),c,e=>{if("string"==typeof e.chunk&&n(e.chunk),e.done&&(o=e.done),e.error){var t;l={code:null!=(t=e.error.code)?t:"workspace_chat_failed",message:e.error.message}}}),l){let e=Error(l.code);throw l.message&&(e.detail=l.message),e}if(!o)throw Error("stream_incomplete");return o}}}}(),eo=(0,r.createContext)(ei);function es(e){let{children:t,client:a=ei}=e;return(0,n.jsx)(eo.Provider,{value:a,children:t})}function el(){return(0,r.useContext)(eo)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.