import { registerParser, registerImplementation } from "@dci/connectors"; import { CloudConnector, CloudNewsroomConnector } from "./shared.js"; import { azureRegionsParser } from "./azure.js"; import { awsDocsRegionsParser, awsLocalZonesParser } from "./aws.js"; import { gcpRegionsParser, googleDatacentersParser } from "./gcp.js"; import { oracleRegionsParser } from "./oracle.js"; import { alibabaRegionsParser } from "./alibaba.js"; import { tencentRegionsParser } from "./tencent.js"; import { ibmRegionsParser } from "./ibm.js"; import { metaDatacentersParser } from "./meta.js"; /** * Cloud / hyperscaler connectors: cloud regions (Azure, AWS, Google Cloud, Oracle, Alibaba, Tencent, IBM), * hyperscaler-owned facilities (Google, Meta) and infrastructure newsrooms (Microsoft, AWS, Google, Meta, Apple). * Referenced from config/connectors/{azure,aws,gcp,oracle,alibaba,tencent,ibm}-regions.yaml, * google-datacenters.yaml, meta-datacenters.yaml and *-news.yaml. */ let registered = false; export function register(): void { if (registered) return; registered = true; for (const p of [azureRegionsParser, awsDocsRegionsParser, awsLocalZonesParser, gcpRegionsParser, googleDatacentersParser, oracleRegionsParser, alibabaRegionsParser, tencentRegionsParser, ibmRegionsParser, metaDatacentersParser]) registerParser(p); registerImplementation("cloud_regions", (cfg) => new CloudConnector(cfg)); registerImplementation("cloud_newsroom", (cfg) => new CloudNewsroomConnector(cfg)); }