{"version":3,"sources":["../../src/auth/cloud-environment.ts"],"names":[],"mappings":"AAuBO,MAAM,MAAA,GAA2B,OAAO,MAAA,CAAO;AAAA,EACpD,aAAA,EAAe,mCAAA;AAAA,EACf,WAAA,EAAa,kBAAA;AAAA,EACb,QAAA,EAAU,uCAAA;AAAA,EACV,eAAA,EAAiB,gCAAA;AAAA,EACjB,iBAAA,EAAmB,mEAAA;AAAA,EACnB,WAAA,EAAa,8BAAA;AAAA,EACb,UAAA,EAAY;AACd,CAAC;AAGM,MAAM,MAAA,GAA2B,OAAO,MAAA,CAAO;AAAA,EACpD,aAAA,EAAe,kCAAA;AAAA,EACf,WAAA,EAAa,kCAAA;AAAA,EACb,QAAA,EAAU,sCAAA;AAAA,EACV,eAAA,EAAiB,yCAAA;AAAA,EACjB,iBAAA,EAAmB,wEAAA;AAAA,EACnB,WAAA,EAAa,6BAAA;AAAA,EACb,UAAA,EAAY;AACd,CAAC;AAGM,MAAM,UAAA,GAA+B,OAAO,MAAA,CAAO;AAAA,EACxD,aAAA,EAAe,kCAAA;AAAA,EACf,WAAA,EAAa,kCAAA;AAAA,EACb,QAAA,EAAU,sCAAA;AAAA,EACV,eAAA,EAAiB,sCAAA;AAAA,EACjB,iBAAA,EAAmB,wEAAA;AAAA,EACnB,WAAA,EAAa,6BAAA;AAAA,EACb,UAAA,EAAY;AACd,CAAC;AAGM,MAAM,KAAA,GAA0B,OAAO,MAAA,CAAO;AAAA,EACnD,aAAA,EAAe,0CAAA;AAAA,EACf,WAAA,EAAa,wCAAA;AAAA,EACb,QAAA,EAAU,4CAAA;AAAA,EACV,eAAA,EAAiB,qCAAA;AAAA,EACjB,iBAAA,EAAmB,wEAAA;AAAA,EACnB,WAAA,EAAa,mCAAA;AAAA,EACb,UAAA,EAAY;AACd,CAAC;AAMM,SAAS,aAAA,CACd,MACA,SAAA,EACkB;AAClB,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACnB,aAAA,EAAe,SAAA,CAAU,aAAA,IAAiB,IAAA,CAAK,aAAA;AAAA,IAC/C,WAAA,EAAa,SAAA,CAAU,WAAA,IAAe,IAAA,CAAK,WAAA;AAAA,IAC3C,QAAA,EAAU,SAAA,CAAU,QAAA,IAAY,IAAA,CAAK,QAAA;AAAA,IACrC,eAAA,EAAiB,SAAA,CAAU,eAAA,IAAmB,IAAA,CAAK,eAAA;AAAA,IACnD,iBAAA,EAAmB,SAAA,CAAU,iBAAA,IAAqB,IAAA,CAAK,iBAAA;AAAA,IACvD,WAAA,EAAa,SAAA,CAAU,WAAA,IAAe,IAAA,CAAK,WAAA;AAAA,IAC3C,UAAA,EAAY,SAAA,CAAU,UAAA,IAAc,IAAA,CAAK;AAAA,GAC1C,CAAA;AACH;AAEA,MAAM,kBAAA,GAAuD;AAAA,EAC3D,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO,MAAA;AAAA,EACP,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO;AACT,CAAA;AAMO,SAAS,cAAc,IAAA,EAAgC;AAC5D,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,IAAA,CAAK,WAAA,EAAa,CAAA;AACjD,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,+BAA+B,IAAI,CAAA,oDAAA;AAAA,KACrC;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT","file":"cloud-environment.mjs","sourcesContent":["/**\n * Bundles all cloud-specific service endpoints for a given Azure environment.\n * Use predefined instances (PUBLIC, US_GOV, US_GOV_DOD, CHINA)\n * or construct a custom one via withOverrides().\n */\nexport type CloudEnvironment = {\n  /** The Azure AD login endpoint (e.g. \"https://login.microsoftonline.com\") */\n  readonly loginEndpoint: string;\n  /** The default multi-tenant login tenant (e.g. \"botframework.com\") */\n  readonly loginTenant: string;\n  /** The Bot Framework OAuth scope (e.g. \"https://api.botframework.com/.default\") */\n  readonly botScope: string;\n  /** The Bot Framework token service base URL (e.g. \"https://token.botframework.com\") */\n  readonly tokenServiceUrl: string;\n  /** The OpenID metadata URL for token validation */\n  readonly openIdMetadataUrl: string;\n  /** The token issuer for Bot Framework tokens (e.g. \"https://api.botframework.com\") */\n  readonly tokenIssuer: string;\n  /** The Microsoft Graph token scope (e.g. \"https://graph.microsoft.com/.default\") */\n  readonly graphScope: string;\n};\n\n/** Microsoft public (commercial) cloud. */\nexport const PUBLIC: CloudEnvironment = Object.freeze({\n  loginEndpoint: 'https://login.microsoftonline.com',\n  loginTenant: 'botframework.com',\n  botScope: 'https://api.botframework.com/.default',\n  tokenServiceUrl: 'https://token.botframework.com',\n  openIdMetadataUrl: 'https://login.botframework.com/v1/.well-known/openidconfiguration',\n  tokenIssuer: 'https://api.botframework.com',\n  graphScope: 'https://graph.microsoft.com/.default',\n});\n\n/** US Government Community Cloud High (GCCH). */\nexport const US_GOV: CloudEnvironment = Object.freeze({\n  loginEndpoint: 'https://login.microsoftonline.us',\n  loginTenant: 'MicrosoftServices.onmicrosoft.us',\n  botScope: 'https://api.botframework.us/.default',\n  tokenServiceUrl: 'https://tokengcch.botframework.azure.us',\n  openIdMetadataUrl: 'https://login.botframework.azure.us/v1/.well-known/openidconfiguration',\n  tokenIssuer: 'https://api.botframework.us',\n  graphScope: 'https://graph.microsoft.us/.default',\n});\n\n/** US Government Department of Defense (DoD). */\nexport const US_GOV_DOD: CloudEnvironment = Object.freeze({\n  loginEndpoint: 'https://login.microsoftonline.us',\n  loginTenant: 'MicrosoftServices.onmicrosoft.us',\n  botScope: 'https://api.botframework.us/.default',\n  tokenServiceUrl: 'https://apiDoD.botframework.azure.us',\n  openIdMetadataUrl: 'https://login.botframework.azure.us/v1/.well-known/openidconfiguration',\n  tokenIssuer: 'https://api.botframework.us',\n  graphScope: 'https://dod-graph.microsoft.us/.default',\n});\n\n/** China cloud (21Vianet). */\nexport const CHINA: CloudEnvironment = Object.freeze({\n  loginEndpoint: 'https://login.partner.microsoftonline.cn',\n  loginTenant: 'microsoftservices.partner.onmschina.cn',\n  botScope: 'https://api.botframework.azure.cn/.default',\n  tokenServiceUrl: 'https://token.botframework.azure.cn',\n  openIdMetadataUrl: 'https://login.botframework.azure.cn/v1/.well-known/openidconfiguration',\n  tokenIssuer: 'https://api.botframework.azure.cn',\n  graphScope: 'https://microsoftgraph.chinacloudapi.cn/.default',\n});\n\n/**\n * Creates a new CloudEnvironment by applying non-null overrides on top of a base.\n * Returns the base instance if no override values differ.\n */\nexport function withOverrides(\n  base: CloudEnvironment,\n  overrides: Partial<CloudEnvironment>\n): CloudEnvironment {\n  return Object.freeze({\n    loginEndpoint: overrides.loginEndpoint ?? base.loginEndpoint,\n    loginTenant: overrides.loginTenant ?? base.loginTenant,\n    botScope: overrides.botScope ?? base.botScope,\n    tokenServiceUrl: overrides.tokenServiceUrl ?? base.tokenServiceUrl,\n    openIdMetadataUrl: overrides.openIdMetadataUrl ?? base.openIdMetadataUrl,\n    tokenIssuer: overrides.tokenIssuer ?? base.tokenIssuer,\n    graphScope: overrides.graphScope ?? base.graphScope,\n  });\n}\n\nconst CLOUD_ENVIRONMENTS: Record<string, CloudEnvironment> = {\n  public: PUBLIC,\n  usgov: US_GOV,\n  usgovdod: US_GOV_DOD,\n  china: CHINA,\n};\n\n/**\n * Resolves a cloud environment name (case-insensitive) to its corresponding instance.\n * Valid names: \"Public\", \"USGov\", \"USGovDoD\", \"China\".\n */\nexport function cloudFromName(name: string): CloudEnvironment {\n  const env = CLOUD_ENVIRONMENTS[name.toLowerCase()];\n  if (!env) {\n    throw new Error(\n      `Unknown cloud environment: '${name}'. Valid values are: Public, USGov, USGovDoD, China.`\n    );\n  }\n  return env;\n}\n"]}