@forge/csp

6.3.3-next.06.4.0-next.1
out/csp/csp-injection-service.js
~out/csp/csp-injection-service.jsModified
+35−19
Index: package/out/csp/csp-injection-service.js
===================================================================
--- package/out/csp/csp-injection-service.js
+++ package/out/csp/csp-injection-service.js
@@ -2,8 +2,9 @@
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.CSPInjectionService = exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS = exports.getAtlassianImageHost = void 0;
 const types_1 = require("../types");
 const isICEnvKey = (env) => env === 'ic-prod' || env === 'ic-stg';
+const isGCPEnvKey = (env) => env.endsWith('-gcentral');
 const makeICDomain = (env, icLabel) => `${icLabel}.${env === 'ic-prod' ? 'atlassian-isolated.net' : 'oasis-stg.com'}`;
 const getICDomain = (env, icOptions) => {
     if ('getICDomain' in icOptions) {
         return icOptions.getICDomain();
@@ -22,89 +23,100 @@
         stg: 'https://api.stg.atlassian.com',
         prod: 'https://api.atlassian.com',
         'fedramp-stg': 'https://api.stg.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://api.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://api.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `https://api.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': 'https://api.stg.atlassian.com'
     },
     ATLASSIAN_MEDIA_GATEWAY_HOST: {
         dev: 'https://media.dev.atl-paas.net',
         stg: 'https://media.staging.atl-paas.net',
         prod: 'https://api.media.atlassian.com',
         'fedramp-stg': 'https://api-media.stg.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://api-media.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://media-api.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `https://media-api.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': ''
     },
     ATLASSIAN_ASSETS_MEDIA_HOST: {
         dev: 'https://assets-media.stg.atlassian.com',
         stg: 'https://assets-media.stg.atlassian.com',
         prod: 'https://assets-media.atlassian.com',
         'fedramp-stg': 'https://assets-media.stg.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://assets-media.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://assets-media.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `https://assets-media.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': ''
     },
     ATLASSIAN_ANALYTICS_GATEWAY_HOST: {
         dev: 'https://as.dev.atl-paas.net',
         stg: 'https://as.staging.atl-paas.net',
         prod: 'https://as.atlassian.com',
         'fedramp-stg': 'https://as.stg.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://as.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://as.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `https://as.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': 'https://as.staging.atl-paas.net'
     },
     ATLASSIAN_AVATAR_HOST: {
         dev: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
         stg: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
         prod: 'avatar-management--avatars.us-west-2.prod.public.atl-paas.net',
         'fedramp-stg': 'avatar-management--avatars.us-east-1.staging.cdn.atlassian-us-gov-mod.com',
         'fedramp-prod': 'avatar-management--avatars.us-east-1.prod.cdn.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `avatar-management.services.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `avatar-management.services.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net'
     },
     ATLASSIAN_TEAM_HEADER_HOST: {
         dev: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/gradients/',
         stg: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/gradients/',
         prod: 'https://teams-directory-frontend.prod-east.frontend.public.atl-paas.net/assets/gradients/',
         'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
         'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
-        ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`)
+        ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`),
+        'stg-gcentral': 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/'
     },
     ATLASSIAN_TEAM_AVATAR_HOST: {
         dev: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
         stg: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
         prod: 'https://teams-directory-frontend.prod-east.frontend.public.atl-paas.net/assets/',
         'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
         'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
-        ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`)
+        ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`),
+        'stg-gcentral': 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/'
     },
     ATLASSIAN_EMOJIS_HOST: {
         dev: 'https://pf-emoji-service.ddev.frontend.public.atl-paas.net',
         stg: 'https://pf-emoji-service.stg-east.frontend.public.atl-paas.net',
         prod: 'https://pf-emoji-service.prod-east.frontend.public.atl-paas.net',
         'fedramp-stg': 'https://pf-emoji-service.frontend.staging.cdn.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://pf-emoji-service.frontend.cdn.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://pf-emoji-service.${getICDomain(env, icOptions)}/bfa/emoji-service/`)
+        ...makeICHosts((env, icOptions) => `https://pf-emoji-service.${getICDomain(env, icOptions)}/bfa/emoji-service/`),
+        'stg-gcentral': ''
     },
     ATLASSIAN_REACTIONS_HOST: {
         dev: 'https://pf-reactions-service.ddev.frontend.public.atl-paas.net',
         stg: 'https://pf-reactions-service.stg-east.frontend.public.atl-paas.net',
         prod: 'https://pf-reactions-service.prod-east.frontend.public.atl-paas.net',
         'fedramp-stg': 'https://pf-reactions-service.frontend.staging.cdn.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://pf-reactions-service.frontend.cdn.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://pf-reactions-service.services.${getICDomain(env, icOptions)}/bfa/reactions-service/`)
+        ...makeICHosts((env, icOptions) => `https://pf-reactions-service.services.${getICDomain(env, icOptions)}/bfa/reactions-service/`),
+        'stg-gcentral': ''
     },
     ATLASSIAN_FOP_GE_HOST: {
         dev: 'https://forge-outbound-proxy.dev.services.atlassian.com',
         stg: 'https://forge-outbound-proxy.stg.services.atlassian.com',
         prod: 'https://forge-outbound-proxy.services.atlassian.com',
         'fedramp-stg': '',
         'fedramp-prod': '',
-        ...makeICHosts((env, icOptions) => '')
+        ...makeICHosts((env, icOptions) => ''),
+        'stg-gcentral': ''
     },
     ATLASSIAN_FOS_HOST: {
         dev: 'https://tdp-os.dev.services.atlassian.com',
         stg: 'https://tdp-os.stg.services.atlassian.com',
         prod: 'https://tdp-os.services.atlassian.com',
         'fedramp-stg': 'https://tdp-os.stg.services.atlassian-us-gov-mod.com',
         'fedramp-prod': 'https://tdp-os.services.atlassian-us-gov-mod.com',
-        ...makeICHosts((env, icOptions) => `https://tdp-os.services.${getICDomain(env, icOptions)}`)
+        ...makeICHosts((env, icOptions) => `https://tdp-os.services.${getICDomain(env, icOptions)}`),
+        'stg-gcentral': 'https://tdp-os.stg.services.atlassian.com'
     }
 };
 const getAtlassianHost = (hostType, microsEnv, icOptions) => {
     const hostMap = ATLASSIAN_HOST[hostType];
@@ -118,10 +130,14 @@
 };
 const FOS_CDN_STANDARD_HOST = {
     dev: 'https://object-store.stg.atlassian.com',
     stg: 'https://object-store.stg.atlassian.com',
-    prod: 'https://object-store.atlassian.com'
+    prod: 'https://object-store.atlassian.com',
+    'stg-gcentral': 'https://object-store.stg.atlassian.com'
 };
+const GCP_FORGE_CDN_HOST = {
+    'stg-gcentral': 'https://forge.cdn.stg.atlassian-dev.net'
+};
 const FOS_CDN_IC_HOST = makeICHosts((env, icOptions) => `https://object-store.${getICDomain(env, icOptions)}`);
 const FOS_CDN_PATH = '/os/ecosystem/installation/';
 const getFOSCDNHost = (microsEnv, icOptions) => {
     if (isICEnvKey(microsEnv)) {
@@ -130,17 +146,13 @@
     return FOS_CDN_STANDARD_HOST[microsEnv];
 };
 const getFOSHostDownload = (microsEnv, icOptions) => {
     const fosHost = getAtlassianHost('ATLASSIAN_FOS_HOST', microsEnv, icOptions);
-    return isICEnvKey(microsEnv)
-        ? [`${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`]
-        : [`${fosHost}/fos-eap/download/`, `${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`];
+    return [`${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`];
 };
 const getFOSHostUpload = (microsEnv, icOptions) => {
     const fosHost = getAtlassianHost('ATLASSIAN_FOS_HOST', microsEnv, icOptions);
-    return isICEnvKey(microsEnv)
-        ? [`${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`]
-        : [`${fosHost}/fos-eap/upload/`, `${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`];
+    return [`${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`];
 };
 const getFOSCDNUrls = (microsEnv, icOptions) => {
     const fosCDNHost = getFOSCDNHost(microsEnv, icOptions);
     return fosCDNHost ? [`${fosCDNHost}${FOS_CDN_PATH}`] : [];
@@ -260,16 +272,19 @@
         };
     }
     getCSPReportUri(microsEnv, icOptions) {
         const serviceName = isICEnvKey(microsEnv) && icOptions ? icOptions.serviceName : 'forge-cdn';
-        if (microsEnv === 'dev' || microsEnv === 'stg')
+        if (microsEnv === 'dev' || microsEnv === 'stg' || microsEnv === 'stg-gcentral')
             return `https://web-security-reports.stg.services.atlassian.com/csp-report/${serviceName}`;
         return `https://web-security-reports.services.atlassian.com/csp-report/${serviceName}`;
     }
     getForgeGlobalCSP(microsEnv, isFedRAMP = false, icOptions) {
         if (isICEnvKey(microsEnv) && icOptions) {
             return `https://forge.forge-cdn.${getICDomain(microsEnv, icOptions)}`;
         }
+        if (isGCPEnvKey(microsEnv)) {
+            return GCP_FORGE_CDN_HOST[microsEnv];
+        }
         return isFedRAMP
             ? `https://forge.cdn.${microsEnv.split('-')[1]}.atlassian-dev-us-gov-mod.net`
             : `https://forge.cdn.${microsEnv}.atlassian-dev.net`;
     }
@@ -308,8 +323,9 @@
         const localhostWithPortRegex = /^localhost:\d+$/;
         switch (microsEnv) {
             case 'dev':
             case 'stg':
+            case 'stg-gcentral':
                 frameAncestors = [
                     '*.jira-dev.com',
                     'http://localhost:*',
                     'http://devbucket.localhost',