// eid-data.jsx
// Defines window.ccEidData, the canonical list of eID integrations.
// Each entry: { name, slug, method, coverage, region, description, assurance }
// assurance: "QES" | "AES" | "SES"

(function () {
  function slugify(name) {
    return name
      .toLowerCase()
      .replace(/[^a-z0-9]+/g, "-")
      .replace(/^-|-$/g, "");
  }

  function assignRegion(coverage) {
    if (coverage.length === 1 && coverage[0] === "WORLD") return "Global";
    const first = coverage[0];
    const nordics  = ["SE","NO","DK","FI","IS","GL","AX"];
    const baltics  = ["EE","LV","LT"];
    const dach     = ["DE","AT","CH","LI"];
    const benelux  = ["BE","NL","LU"];
    const southern = ["IT","PT","ES","GR","HR","SI","MT","CY","SM","VA","AD","MC"];
    const eastern  = ["CZ","PL","RO","BG","SK","HU","UA","RS","AL","MK","BA","ME","MD","XK","AM","AZ","BY","GE","KZ","RU"];
    const ukire    = ["GB","IE","GG","IM","JE"];
    const americas = ["US","CA","BR","CL","MX","CO","AR","DO","EC","PA","PE","UY","VE","CR"];
    const apac     = ["IN","MY","ID","CN","VN","JP","KR","SG","AU","NZ","TW","TH","PH","PK","BD","KE","ZA","IL","AE","SA","QA","TR"];

    if (nordics.includes(first))  return "Nordics";
    if (baltics.includes(first))  return "Baltics";
    if (dach.includes(first))     return "DACH";
    if (benelux.includes(first))  return "Benelux";
    if (southern.includes(first)) return "Southern Europe";
    if (eastern.includes(first))  return "Eastern Europe";
    if (ukire.includes(first))    return "UK & Ireland";
    if (americas.includes(first)) return "Americas";
    if (apac.includes(first))     return "Asia Pacific";
    if (coverage.length > 30) return "Global";
    return "Global";
  }

  function parseCoverage(raw) {
    const s = raw.trim();
    if (s === "WORLD") return ["WORLD"];
    return s.split(",").map((c) => c.trim()).filter(Boolean);
  }

  const raw = [
    { name: "ABA",                                     assurance: "AES", method: "redirect",    coverage: "DO",           description: "ABA is a Dominican Republic eID that enables redirect-based identity verification for electronic contract signing." },
    { name: "Adacom One-Shot",                         assurance: "QES", method: "redirect",    coverage: "AL, AR, AU, AT, BD, BE, BR, BG, CA, CL, CN, CO, CR, HR, CY, CZ, DK, DO, EC, EG, EE, FI, FR, DE, GB, GR, HU, IS, IE, IN, IL, IT, JP, KE, LV, LT, LU, MY, MT, MX, MK, NL, NZ, NO, PK, PA, PE, PL, PT, KR, RO, RS, SG, SK, SI, ZA, ES, SE, CH, TW, TH, TR, UA, AE, UY, US, VE, VN", description: "Adacom One-Shot is a globally-available remote qualified electronic signature service using redirect-based identity verification across 70+ countries." },
    { name: "Audkenni",                                assurance: "AES", method: "in-context",  coverage: "IS",            description: "Audkenni is the Icelandic national eID that allows citizens to sign documents in-context using their government-issued digital identity." },
    { name: "Austrian Handy-Signatur",                 assurance: "QES", method: "redirect",    coverage: "AT",            auth: true,  description: "Austrian Handy-Signatur is Austria's official mobile phone-based electronic signature solution for legally binding document signing." },
    { name: "B-trust",                                 assurance: "QES", method: "in-context",  coverage: "WORLD",         description: "B-trust is a globally available in-context electronic signature provider offering flexible identity verification and signing workflows." },
    { name: "Belgian ID card",                         assurance: "QES", method: "in-context",  coverage: "BE",            auth: true,  description: "Belgian ID card enables Belgian citizens to sign documents in-context using their national electronic identity card and chip." },
    { name: "Buypass",                                 assurance: "QES", method: "redirect",    coverage: "NO",            description: "Buypass is a Norwegian qualified electronic signature service that authenticates users via redirect to the Buypass identity provider." },
    { name: "CertEurope USB token",                    assurance: "QES", method: "in-context",  coverage: "FR",            description: "CertEurope USB token is a French qualified electronic signature solution using a physical USB token for in-context signing." },
    { name: "certME",                                  assurance: "QES", method: "redirect",    coverage: "RO",            description: "certME is a Romanian electronic signature service that redirects users to complete identity verification and qualified signing." },
    { name: "certSIGN USB token",                      assurance: "QES", method: "in-context",  coverage: "RO",            description: "certSIGN USB token is a Romanian qualified electronic signature method using a physical USB token for secure in-context signing." },
    { name: "CertSIGN WebSign",                        assurance: "QES", method: "redirect",    coverage: "RO",            description: "CertSIGN WebSign is a Romanian remote qualified signature service that authenticates users through a redirect-based flow." },
    { name: "Chave Movel",                             assurance: "QES", method: "in-context",  coverage: "PT",            auth: true,  description: "Chave Movel Digital is Portugal's official mobile digital key, enabling citizens to sign documents directly within the signing interface." },
    { name: "Croatian ID Card",                        assurance: "QES", method: "in-context",  coverage: "HR",            description: "Croatian ID Card allows Croatian citizens to sign documents in-context using the electronic chip embedded in their national identity card." },
    { name: "Czech BankID",                            assurance: "AES", method: "redirect",    coverage: "CZ",            auth: true,  description: "Czech BankID is a Czech banking identity service that redirects signers to authenticate with their bank credentials for electronic signing." },
    { name: "Czech ID Card",                           assurance: "QES", method: "in-context",  coverage: "CZ",            description: "Czech ID Card lets Czech citizens use their national identity card chip to sign documents in-context without leaving the platform." },
    { name: "D-Trust sign-me",                        assurance: "QES", method: "redirect",    coverage: "DE, CA, ZA, GR, NL, BE, FR, ES, PT, LU, IE, IS, MT, CY, AX, FI, US, BG, HU, LT, LV, EE, HR, SI, IT, CH, CZ, SK, LI, AT, GG, DK, SE, NO, PL, MX, AR, BR, CL, AU, ID, PH, SG, RU, JP, KR, CN, TR, IN, SA, AE, QA", description: "D-Trust sign-me is a German qualified electronic signature service with broad international coverage, enabling compliant eIDAS remote signing via redirect." },
    { name: "Denmark MitID",                           assurance: "QES", method: "redirect",    coverage: "DK",            auth: true,  description: "Denmark MitID is Denmark's national digital identity solution used for legally binding qualified electronic signatures via redirect." },
    { name: "Digilogix",                               assurance: "AES", method: "redirect",    coverage: "AR",            description: "Digilogix is an Argentine electronic signature provider that authenticates users and collects signatures through a redirect-based flow." },
    { name: "DIIA",                                    assurance: "AES", method: "in-context",  coverage: "UA",            description: "DIIA is Ukraine's national digital government app, enabling Ukrainian citizens to sign documents in-context using their digital identity." },
    { name: "E-mail/SMS",                              assurance: "SES", method: "redirect",    coverage: "WORLD",         description: "E-mail/SMS is a universally available simple signature method that delivers signing links and one-time passwords via email or text message." },
    { name: "e-seal",                                  assurance: "QES", method: "in-context",  coverage: "WORLD",         description: "e-seal is a globally available electronic seal solution for organizations to apply legally valid organizational signatures in-context." },
    { name: "eCert Chile",                             assurance: "AES", method: "redirect",    coverage: "CL",            description: "eCert Chile is a Chilean qualified electronic signature provider offering redirect-based identity verification for binding document signing." },
    { name: "eMudhra",                                 assurance: "AES", method: "redirect",    coverage: "IN",            description: "eMudhra is an Indian licensed Certifying Authority providing redirect-based electronic and digital signature solutions." },
    { name: "Estonian ID card",                        assurance: "QES", method: "in-context",  coverage: "EE",            auth: true,  description: "Estonian ID card is Estonia's national smart card enabling citizens to sign documents in-context using chip-based cryptography." },
    { name: "Estonian Mobile-ID",                      assurance: "QES", method: "in-context",  coverage: "EE",            auth: true,  description: "Estonian Mobile-ID is a SIM-based mobile authentication and signing solution for Estonian citizens to sign in-context on any device." },
    { name: "Evrotrust",                               assurance: "QES", method: "in-context",  coverage: "AL, AD, AM, AU, AT, AZ, BY, BE, BA, BG, CA, HR, CY, CZ, DK, EE, FI, FR, GE, DE, GR, HU, IS, IE, IT, IL, KZ, XK, LV, LI, LT, LU, MT, MD, MC, ME, NL, NZ, NO, MK, PL, PT, RO, RU, SM, RS, SK, SI, ES, SE, CH, TW, TR, UA, GB, US, VA, AX", auth: true,  description: "Evrotrust is a pan-European qualified trust service provider offering in-context electronic signature with coverage across 60+ countries." },
    { name: "Evrotrust/Geda",                          assurance: "AES", method: "in-context",  coverage: "KE",            description: "Evrotrust/Geda is a Kenyan qualified electronic signature service powered by the Evrotrust trust framework for in-context signing." },
    { name: "Finnish ID card",                         assurance: "QES", method: "in-context",  coverage: "FI, AX",        auth: true,  description: "Finnish ID card enables Finnish citizens to use their national smart card for in-context qualified electronic signing." },
    { name: "Finnish Trust Network",                   assurance: "QES", method: "redirect",    coverage: "FI, AX",        auth: true,  description: "Finnish Trust Network (FTN) is a Finnish federation of banks and operators enabling qualified redirect-based electronic signatures." },
    { name: "France Ident Sign",                       assurance: "QES", method: "redirect",    coverage: "FR",            description: "France Ident Sign is a French remote qualified signature service that authenticates users through a government-backed redirect flow." },
    { name: "Freja eID",                               assurance: "AES", method: "in-context",  coverage: "WORLD",         auth: true,  description: "Freja eID is a Swedish-origin globally available digital identity and in-context signing solution with strong privacy by design." },
    { name: "Freja eID Sign",                          assurance: "QES", method: "redirect",    coverage: "WORLD",         description: "Freja eID Sign is the redirect-based global variant of Freja eID, enabling qualified electronic signatures internationally." },
    { name: "Google",                                  assurance: "SES", method: "redirect",    coverage: "WORLD",         auth: true,  description: "Google Sign-In provides a globally available redirect-based identity method using Google accounts to authenticate signers." },
    { name: "GSE Gestión de Seguridad Electrónica",   assurance: "AES", method: "redirect",    coverage: "CO",            description: "GSE is a Colombian electronic signature and security provider offering redirect-based digital identity verification for contract signing." },
    { name: "Halcom",                                  assurance: "QES", method: "in-context",  coverage: "SI",            description: "Halcom is a Slovenian trusted service provider enabling in-context qualified electronic signing using local certificates and smart cards." },
    { name: "Handwritten",                             assurance: "SES", method: "in-context",  coverage: "WORLD",         description: "Handwritten signature capture is a globally available biometric signing method allowing signers to draw their signature directly on screen." },
    { name: "Harica",                                  assurance: "QES", method: "in-context",  coverage: "GR",            description: "Harica is a Greek academic and research trust service provider offering in-context qualified electronic signature services." },
    { name: "IDIN",                                    assurance: "AES", method: "redirect",    coverage: "NL",            auth: true,  description: "iDIN is a Dutch bank-based identity service that redirects signers to authenticate with their Dutch bank for electronic signing." },
    { name: "InfoCert",                                assurance: "QES", method: "in-context",  coverage: "WORLD",         description: "InfoCert is an Italian-origin global trust service provider enabling in-context qualified electronic signatures across multiple jurisdictions." },
    { name: "Itsme",                                   assurance: "QES", method: "redirect",    coverage: "BE, DK, EE, FI, FR, DE, IS, IE, IT, LU, NO, PT, RO, SE, ES, NL, GB, AT, BG, CZ, GR, HU, PL, SK, HR, CY, LT, LV, MT, SI", auth: true,  description: "Itsme is a Belgian-origin pan-European mobile identity app enabling redirect-based qualified electronic signatures across EU member states." },
    { name: "Latvian eParaksts Mobile",                assurance: "QES", method: "redirect",    coverage: "LV",            auth: true,  description: "Latvian eParaksts Mobile is Latvia's official mobile signing application offering redirect-based qualified electronic signatures." },
    { name: "Latvian ID card",                         assurance: "QES", method: "in-context",  coverage: "LV",            auth: true,  description: "Latvian ID card enables Latvian citizens to sign documents in-context using the cryptographic chip in their national identity card." },
    { name: "Lithuanian ID card",                      assurance: "QES", method: "in-context",  coverage: "LT",            auth: true,  description: "Lithuanian ID card allows Lithuanian citizens to use their national smart card for in-context qualified electronic signing." },
    { name: "Lithuanian Mobile-ID",                    assurance: "QES", method: "in-context",  coverage: "LT",            auth: true,  description: "Lithuanian Mobile-ID is a SIM-based mobile authentication and signing solution for Lithuanian citizens enabling in-context signing." },
    { name: "Lleida",                                  assurance: "AES", method: "in-context",  coverage: "ES",            description: "Lleida.net is a Spanish qualified trust service provider offering certified electronic and contractual signature solutions in-context." },
    { name: "Local Certificate",                       assurance: "QES", method: "in-context",  coverage: "WORLD",         description: "Local Certificate allows signers worldwide to use a locally installed qualified digital certificate for in-context document signing." },
    { name: "LT ID",                                   assurance: "QES", method: "in-context",  coverage: "LT",            description: "LT ID is a Lithuanian national identity document enabling citizens to authenticate and sign documents directly in-context." },
    { name: "Mexico ENOM 151",                         assurance: "AES", method: "in-context",  coverage: "MX",            description: "Mexico ENOM 151 is a Mexican electronic signature method compliant with NOM-151, enabling in-context legally binding digital signing." },
    { name: "Mit ID",                                  assurance: "QES", method: "redirect",    coverage: "DK, GL",        auth: true,  description: "MitID is Denmark's national eID used across Denmark and Greenland, enabling qualified redirect-based electronic signatures." },
    { name: "MojeId",                                  assurance: "AES", method: "redirect",    coverage: "CZ",            auth: true,  description: "MojeID is a Czech digital identity service offering redirect-based authentication for electronic contract signing." },
    { name: "MSC TrustGate",                           assurance: "AES", method: "redirect",    coverage: "MY",            description: "MSC TrustGate is a Malaysian licensed Certification Authority offering redirect-based qualified digital signature services." },
    { name: "Norwegian Bank ID",                       assurance: "QES", method: "redirect",    coverage: "NO",            auth: true,  description: "Norwegian BankID is Norway's widely used bank-based digital identity, enabling redirect-based qualified electronic signatures." },
    { name: "OneID",                                   assurance: "AES", method: "redirect",    coverage: "GB",            auth: true,  description: "OneID is a UK open banking identity service that redirects signers to authenticate through their bank for electronic signing." },
    { name: "Portuguese ID card",                      assurance: "QES", method: "in-context",  coverage: "PT",            auth: true,  description: "Portuguese ID card (Cartão de Cidadão) enables Portuguese citizens to sign documents in-context using their national identity chip." },
    { name: "PSC World Wallet",                        assurance: "AES", method: "redirect",    coverage: "MX",            description: "PSC World Wallet is a Mexican electronic wallet and identity service offering redirect-based digital signature capabilities." },
    { name: "SerproID",                                assurance: "AES", method: "redirect",    coverage: "BR",            description: "SerproID is a Brazilian government-backed digital identity service enabling redirect-based qualified electronic signing for Brazilian citizens." },
    { name: "SimplySign",                              assurance: "QES", method: "redirect",    coverage: "PL",            description: "SimplySign is a Polish mobile qualified electronic signature app enabling redirect-based signing without a physical card or token." },
    { name: "Smart-ID",                                assurance: "QES", method: "in-context",  coverage: "EE, LV, LT, FI, BE", auth: true,  description: "Smart-ID is a Baltic-origin mobile app providing in-context qualified electronic signatures across Estonia, Latvia, Lithuania, Finland, and Belgium." },
    { name: "Spanish local certificate (Autofirma)",   assurance: "QES", method: "in-context",  coverage: "ES",            description: "AutoFirma is Spain's official desktop signing application enabling citizens to sign in-context using local qualified certificates." },
    { name: "SPID",                                    assurance: "AES", method: "redirect",    coverage: "IT",            description: "SPID (Sistema Pubblico di Identità Digitale) is Italy's national digital identity system enabling redirect-based qualified electronic signing." },
    { name: "Swedish BankID",                          assurance: "AES", method: "redirect",    coverage: "SE",            auth: true,  description: "Swedish BankID is Sweden's dominant bank-based digital identity solution enabling redirect-based qualified electronic signatures." },
    { name: "Swisscom",                                assurance: "QES", method: "in-context",  coverage: "CH",            description: "Swisscom is a Swiss qualified trust service provider offering in-context qualified electronic signatures based on mobile identity." },
    { name: "SwissID",                                 assurance: "QES", method: "in-context",  coverage: "CH",            description: "SwissID is Switzerland's cross-industry digital identity solution enabling in-context qualified electronic signing for Swiss residents." },
    { name: "Trans Sped",                              assurance: "QES", method: "redirect",    coverage: "WORLD",         description: "Trans Sped is a global electronic signature provider offering redirect-based qualified signing services across multiple jurisdictions." },
    { name: "TrustAsia",                               assurance: "AES", method: "redirect",    coverage: "CN",            description: "TrustAsia is a China-based digital certificate authority providing redirect-based electronic signature services for Chinese entities." },
    { name: "Uanataca",                                assurance: "QES", method: "in-context",  coverage: "ES",            description: "Uanataca is a Spanish qualified trust service provider offering in-context cloud-based qualified electronic signatures." },
    { name: "Unverified Local Certificate",            assurance: "SES", method: "in-context",  coverage: "WORLD",         description: "Unverified Local Certificate supports globally available in-context signing using locally installed certificates without centralized verification." },
    { name: "Verifai",                                 assurance: "AES", method: "redirect",    coverage: "WORLD",         description: "Verifai is a global identity verification platform enabling redirect-based identity proofing for electronic contract signing." },
    { name: "Veriff",                                  assurance: "AES", method: "redirect",    coverage: "WORLD",         auth: true,  description: "Veriff is a global AI-powered identity verification provider offering redirect-based identity proofing for compliant electronic signing." },
    { name: "VIDA",                                    assurance: "AES", method: "redirect",    coverage: "ID",            description: "VIDA is an Indonesian certified electronic signature provider offering redirect-based digital identity verification for binding contracts." },
    { name: "Vietnam Bkav Token",                      assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam Bkav Token is a Vietnamese USB token-based digital signature solution for in-context qualified electronic signing." },
    { name: "Vietnam CA2 Token",                       assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam CA2 Token is a Vietnamese hardware token enabling in-context qualified digital signatures for Vietnamese entities." },
    { name: "Vietnam Fast Token",                      assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam Fast Token is a Vietnamese hardware token designed for fast in-context electronic signing on local documents." },
    { name: "Vietnam FTP Token",                       assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam FTP Token is a Vietnamese USB token enabling qualified in-context electronic signatures for organizations and individuals." },
    { name: "Vietnam Smart Token",                     assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam Smart Token is a Vietnamese smart hardware token providing in-context qualified digital signatures." },
    { name: "Vietnam Viettel Token",                   assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam Viettel Token is a hardware USB token from Vietnamese carrier Viettel enabling in-context qualified electronic signing." },
    { name: "Vietnam VNPT Token",                      assurance: "AES", method: "in-context",  coverage: "VN",            description: "Vietnam VNPT Token is a hardware token from Vietnam's national telecoms provider enabling in-context qualified electronic signing." },
    { name: "Yes.com",                                 assurance: "QES", method: "redirect",    coverage: "DE",            description: "Yes.com is a German bank-based identity and consent service enabling redirect-based qualified electronic signatures for German users." },
    { name: "ZealID app",                              assurance: "QES", method: "redirect",    coverage: "AT, BE, BG, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IT, LV, LT, NL, NO, PL, PT, RO, RS, SE, SI, SK", auth: true,  description: "ZealID app is a pan-European mobile qualified electronic signature app offering redirect-based signing across 27 EU and EEA countries." },
  ];

  const data = raw.map((item) => {
    const coverage = parseCoverage(item.coverage);
    return {
      name: item.name,
      slug: slugify(item.name),
      method: item.method,
      auth: item.auth || false,
      coverage,
      region: assignRegion(coverage),
      description: item.description,
      assurance: item.assurance,
    };
  });

  window.ccEidData = data;
})();
