{"version":3,"file":"chunks/1075a274974b1f.js","mappings":"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","sources":["webpack:///./resources/js/common/hamlet/hamlet-api.ts","webpack:///./resources/js/common/hamlet/hamlet-user.ts","webpack:///./resources/js/components/generic/personalization-logged-in-out.ts"],"sourcesContent":["import _ from 'underscore';\nimport axios from 'axios';\nimport Environment from '../environment';\nimport stgConfig from \"../../../../config\";\nimport { hamletUser } from './hamlet-user';\n\nexport class HamletApi {\n  baseDomain: string;\n\n  constructor() {\n    this.baseDomain = this.getBaseDomain();\n  }\n\n  getBaseDomain() {\n    if (!Environment.isProduction()) {\n      return  `${window.location.hostname.indexOf('qa-wac') > -1 ? 'https://qa-wac.internal.atlassian.com' : stgConfig.stgWacInternalUrl}`;\n    }\n\n    return 'https://www.atlassian.com';\n  }\n\n  getHamletPath() {\n    if (!Environment.isProduction()) {\n      return `${this.baseDomain}/apis/stg/hamlet`;\n    }\n\n    return `${this.baseDomain}/hamlet`;\n  }\n\n  getCofsPath() {\n    if (!Environment.isProduction()) {\n      return `${this.baseDomain}/apis/stg/cofs`;\n    }\n\n    return `${this.baseDomain}/apis/prod/cofs`;\n  }\n\n  getCnasPath() {\n    if (!Environment.isProduction()) {\n      return `${this.baseDomain}/apis/stg/cnas`;\n    }\n\n    return `${this.baseDomain}/apis/prod/cnas`;\n  }\n\n  getBxpPath() {\n    return `${this.baseDomain}/endpoint`;\n  }\n\n  hamletRequest(params, useCofsPath) {\n\n    let basePath = useCofsPath ? this.getCofsPath() : this.getHamletPath();\n\n    let request = {\n      url: `${basePath}${params.url}`,\n      method: params.method || 'GET',\n      headers: params.headers || {},\n      params: params.params\n    };\n\n    if (request.method === 'GET') {\n      request.params = {cacheBuster: new Date().getTime(), ...params.params };\n    }\n\n    if (request.method === 'POST') {\n      request.headers['Content-Type'] = 'application/json';\n      request.data = params.data || '';\n    }\n\n    if (params.authenticated && hamletUser.getToken()) {\n      request.headers['ATL-XSRF-Token'] = hamletUser.getToken();\n      request.withCredentials = true;\n    }\n\n    return axios(request);\n  }\n\n  bxpRequest(params) {\n\n    let request = {\n      url: `${params.url.startsWith('http') ? '' : this.getBxpPath()}${params.url}`,\n      method: params.method || 'GET',\n      headers: params.headers || {},\n      params: params.params\n    };\n\n    if (request.method === 'GET') {\n      request.params = { cacheBuster: new Date().getTime(), ...params.params };\n    }\n\n    if (request.method === 'POST') {\n      request.headers['Content-Type'] = 'application/json';\n      request.data = params.data || '';\n    }\n\n    if (params.authenticated && hamletUser.getToken()) {\n      request.withCredentials = true;\n    }\n\n    return axios(request);\n  }\n\n  get(data) {\n    let options = { method: 'GET' };\n\n    if (_.isString(data)) {\n      options.url = data;\n    } else if (_.isObject(data)) {\n      Object.assign(options, data);\n    }\n\n    return this.hamletRequest(options);\n  }\n\n  post(data) {\n    let options = { method: 'POST' };\n\n    if (_.isString(data)) {\n      options.url = data;\n    } else {\n      Object.assign(options, data);\n    }\n\n    return this.hamletRequest(options);\n  }\n\n  /**\n   * Generic request wrapper\n   */\n  request(options) {\n    return axios(options);\n  }\n\n}\n\nexport let hamletApi = new HamletApi();\n","import Environment from '../environment';\nimport { hamletApi } from './hamlet-api';\n\nexport const ProductKeys = {\n  CONFLUENCE: \"confluence.ondemand\",\n  JIRA_CORE: \"jira-core.ondemand\",\n  JIRA_BUSINESS: \"jira-core.ondemand\",\n  JIRA_SOFTWARE: \"jira-software.ondemand\",\n  JIRA_SERVICE_DESK: \"jira-servicedesk.ondemand\",\n  JIRA_SERVICE_MANAGEMENT: \"jira-servicedesk.ondemand\",\n  JIRA_WORK_MANAGEMENT: \"jira-core.ondemand\",\n  JIRA_PRODUCT_DISCOVERY: \"jira-product-discovery\",\n  BITBUCKET: \"com.atlassian.bitbucket\",\n  OPSGENIE: \"opsgenie\",\n  STATUSPAGE: \"statuspage\",\n  TRELLO: \"trello\",\n  ROVO: \"rovo\",\n  COMPASS: \"compass\",\n  LOOM: \"loom\",\n  GUARD: \"atlassian-access\"\n};\n\nexport const transformAvailableProductsIntoAvailableSites = (availableProductsSites) => {\n  return availableProductsSites.map(site => {\n    return {\n      adminAccess: site.adminAccess,\n      products: site.products ?? site.availableProducts.map(availableProduct => ProductKeys[availableProduct.productType]),\n      cloudId: site.cloudId,\n      displayName: site.displayName,\n      avatarUrl: site.avatar,\n      url: site.url,\n    };\n  });\n}\n\nexport class HamletUser {\n  token: null;\n  initialized: boolean;\n  user: any;\n  sites: any[];\n  performanceBoostExperiment: boolean;\n  extendedTrialAvailability: any;\n  organisationDetails: any;\n\n  availableProductsData: { cached: any | null; request: Promise<any> | null } = { cached: null, request: null };\n  meData: { cached: any | null; request: Promise<any> | null } = {cached: null, request: null};\n\n  constructor() {\n\n    this.token = null;\n    this.initialized = false;\n\n    this.user = {\n      contactDetails: {\n        firstName: '',\n        lastName: '',\n        email: ''\n      },\n      organisationDetails: {\n        address1: '',\n        address2: '',\n        city: '',\n        state: '',\n        postcode: '',\n        isoCountryCode: '',\n        organisationName: '',\n        organisationType: null,\n        payOnAccount: false,\n        taxId: ''\n      },\n      lassoDetails: {\n        firstName: '',\n        lastName: '',\n        username: '',\n        displayName: ''\n      },\n      myDetails: {\n        aaid: null,\n        avatar: null,\n        email: '',\n        name: '',\n        firstName: '',\n        lastName: ''\n      },\n      isLoggedIn: false\n    };\n\n    this.sites = [];\n    this.performanceBoostExperiment = false;\n\n  }\n\n  initUser(performanceBoostExperiment: boolean, enableAisAvailableProducts) {\n\n    if (this.initialized) {\n      return Promise.resolve(this.user);\n    }\n    this.initialized = true;\n\n    return Promise.all([\n      this.retrieveXsrfToken(),\n      this.getStargateProfile(performanceBoostExperiment, false, enableAisAvailableProducts)\n    ])\n      .then(() => {\n        return Promise.resolve(this.user);\n      })\n      .catch(() => {\n        return Promise.resolve(this.user);\n      });\n  }\n\n  retrieveXsrfToken() {\n\n    const options = {\n      url: `${hamletApi.getHamletPath()}/1.0/auth/xsrf/plain`,\n      method: 'GET',\n      withCredentials: true\n    };\n\n    return hamletApi.request(options)\n      .then((response) => {\n\n        if (response.data && response.data !== '') {\n\n          this.setToken(response.data);\n          this.user.isLoggedIn = true;\n\n          return Promise.resolve();\n        }\n\n        this.user.isLoggedIn = false;\n        return Promise.reject();\n      })\n      .catch(() => {\n\n        this.user.isLoggedIn = false;\n        return Promise.reject();\n      });\n  }\n\n  getStargateProfile(performanceBoostExperiment: boolean, debugAllSites?: boolean) {\n\n    if (performanceBoostExperiment) {\n      this.performanceBoostExperiment = true;\n    }\n\n    return Promise.all([\n      this.retrieveMe(),\n      this.retrieveSitesData(debugAllSites)\n    ])\n      .then(([identityData, sitesData]) => {\n        if (identityData && sitesData) {\n          Object.assign(this.user.myDetails, identityData);\n          this.setSites(sitesData);\n          this.user.isLoggedIn = true;\n        }\n\n        return Promise.resolve();\n      })\n      .catch(() => {\n\n        this.user.isLoggedIn = false;\n        return Promise.resolve();\n      });\n  }\n\n  retrieveCurrentUser(params) {\n    params.url = '/1.0/public/contact/currentUser';\n\n    return hamletApi.hamletRequest(params);\n  }\n\n  retrieveUserDetails(params) {\n    params.url = '/1.0/public/auth/user/details'\n\n    return hamletApi.hamletRequest(params);\n  }\n\n  retrieveMe() {\n    const hostname = Environment.getAPIPrivateURL();\n    const url = `${hostname}/me`;\n\n    const options = {\n      url: url,\n      method: 'GET',\n      withCredentials: true\n    };\n\n\n    let request;\n    if (this.meData.cached) {\n      // response available\n      request = Promise.resolve(this.meData.cached);\n    } else if (this.meData.request) {\n      // pending request\n      request = this.meData.request;\n    } else {\n      // first request\n      this.meData.request = hamletApi.request(options);\n      request = this.meData.request;\n    }\n    return request\n      .then(result => {\n\n        if (!result.data) {\n          return Promise.reject();\n        }\n\n        this.meData.cached = result;\n        this.meData.request = null;\n\n        // clean up any names that are emails here\n        let name = result.data.name;\n        if (name.indexOf('@') > -1) {\n          name = name.split('@')[0];\n        }\n\n        const stargateData = {\n          aaid: (result.data.account_id),\n          avatar: (result.data.picture),\n          email: (result.data.email),\n          name: (name),\n          firstName: (this.getFirstName(name)),\n          lastName: (this.getLastName(name))\n        };\n\n        return Promise.resolve(stargateData);\n      })\n      .catch(() => {\n\n        this.user.isLoggedIn = false;\n        return Promise.reject();\n      });\n  }\n\n  retrieveSitesData(debugAllSites?: boolean) {\n    return this.retrieveAvailableProductsData(debugAllSites).then(availableProductsSites => {\n      const sitesData = transformAvailableProductsIntoAvailableSites(availableProductsSites);\n      return sitesData;\n    }).catch(() => {\n      this.user.isLoggedIn = false;\n    });\n  }\n\n  retrieveAvailableProductsData(debugAllSites?: boolean) {\n    let url = `${Environment.getAPIPrivateURL()}/ais/available-products`;\n    const options = {\n      url: url,\n      method: 'GET',\n      withCredentials: true\n    };\n\n    let request;\n    if (this.availableProductsData.cached) {\n      // response available\n      request = Promise.resolve(this.availableProductsData.cached);\n    } else if (this.availableProductsData.request) {\n      // pending request\n      request = this.availableProductsData.request;\n    } else {\n      // first request\n      this.availableProductsData.request = hamletApi.request(options);\n      request = this.availableProductsData.request;\n    }\n    return request.then(result => {\n\n      if (!result.data) {\n        return [];\n      }\n\n      this.availableProductsData.cached = result;\n      this.availableProductsData.request = null;\n\n      const sitesResult = result.data.sites || [];\n      const availableProductsSites = debugAllSites ? sitesResult : sitesResult.filter((site) => this.isValidSite(site));\n      return Promise.resolve(availableProductsSites);\n    }).catch(() => {\n      this.user.isLoggedIn = false;\n      return Promise.reject();\n    });\n  }\n\n  checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudIds) {\n    const options = {\n      url: `${hamletApi.getHamletPath()}/1.0/public/account/${migrationSourceUuid}/extendedTrial/availability`,\n      method: 'POST',\n      data: {\n        productKey,\n        cloudIds,\n      },\n      withCredentials: true\n    };\n\n    return hamletApi.request(options)\n      .then((response) => {\n        if (response.data && response.data !== '') {\n          this.setExtendedTrialAvailability(response.data);\n          return Promise.resolve(response.data);\n        }\n\n        return Promise.resolve();\n      })\n      .catch(() => {\n        return Promise.resolve();\n      });\n  }\n\n  getExtendedTrialAvailability() {\n    return this.extendedTrialAvailability;\n  }\n\n  setExtendedTrialAvailability(extendedTrialAvailability) {\n    this.extendedTrialAvailability = extendedTrialAvailability;\n  }\n\n  setToken(token) {\n    this.token = token;\n  }\n\n  getToken() {\n    return this.token;\n  }\n\n  setUser(options) {\n    Object.assign(this.user, options);\n  }\n\n  getUser() {\n    return this.user;\n  }\n\n  setSites(sites) {\n    this.sites = sites;\n  }\n\n  getSites() {\n    return this.sites;\n  }\n\n  getSitesByProduct(availableProducts) {\n\n    let groupSitesByProduct = {};\n\n    this.sites.forEach((site) => {\n      site.products.forEach((product) => {\n        (groupSitesByProduct[product] = groupSitesByProduct[product] || []).push({\n          cloudId: site.cloudId,\n          displayName: site.displayName,\n          url: site.url,\n          avatarUrl: site.avatarUrl || '',\n          isVertigo: site.isVertigo || false,\n        })\n      })\n    });\n\n    let result = [];\n    for (var product in groupSitesByProduct) {\n\n      if (product.length) {\n        result.push({\n          name: availableProducts[product].name,\n          icon: availableProducts[product].login_logo_url || '',\n          sites: groupSitesByProduct[product].map((site) => site.url)\n        });\n      }\n    }\n    return result;\n  }\n\n  getDisplayName() {\n    return this.user.myDetails.name;\n  }\n\n  getFirstName(fullName = '') {\n    return fullName.trim().split(' ')[0];\n  }\n\n  getLastName(fullName = '') {\n    let lastName = '';\n    let names = fullName.trim().split(' ');\n\n    if (names.length > 1) {\n      names.shift();\n      lastName = names.join(' ');\n    }\n\n    return lastName;\n  }\n\n  getUserEmail() {\n    return this.user.myDetails.email || '';\n  }\n\n  getUserAaid() {\n    return this.user.myDetails.aaid || '';\n  }\n\n  getAvatar() {\n    return this.user.myDetails.avatar;\n  }\n\n  isLoggedIn() {\n    return this.user.isLoggedIn && this.user.myDetails.email.length > 0;\n  }\n\n  isExpert() {\n    return this.organisationDetails.organisationType === 'EXPERT';\n  }\n\n  isReseller() {\n    return this.organisationDetails.organisationType === 'RESELLER';\n  }\n\n  isPlatinumExpert() {\n    return this.organisationDetails.organisationType === 'EXPERT' && this.organisationDetails.payOnAccount;\n  }\n\n  isValidSite(site) {\n\n    const ignoreSiteNames = [\n      'servicedog',\n      'ecosystem',\n      'atlassiantraining',\n      'Atlassian Stride',\n      'volunteerhub',\n      'atlassiantraining',\n      'hello-staging',\n      'ecosystem',\n      'riskmanagement',\n      'hello-staging3',\n      'hello-staging6',\n      'hello-staging9',\n      'jdog',\n      'sre-ehlo',\n      'trello',\n      'Trello',\n      'bitbucket',\n      'Bitbucket'\n    ];\n\n    if (ignoreSiteNames.indexOf(site.displayName) > -1) {\n      return false;\n    }\n\n    if (site.cloudId.startsWith('DUMMY')) {\n      return false;\n    }\n\n    if (site.displayName.toUpperCase().match(\".*-SANDBOX-\\\\d{3}$\")) {\n      return false\n    }\n\n    return true;\n  }\n\n}\n\nexport let hamletUser = new HamletUser();\n","import { hamletUser } from \"../../common/hamlet/hamlet-user\";\n\ntype PersonalizationLoggedInOutParams = {\n  showLoggedOutKnownUser: boolean;\n  switchFirstName: boolean;\n};\n\nexport default class PersonalizationLoggedInOut {\n  domRoot: HTMLElement;\n  params: PersonalizationLoggedInOutParams;\n  showLoggedOutKnownUser: boolean;\n  switchFirstName: boolean;\n  isLoggedIn: boolean;\n  loadingState: HTMLElement;\n  contentLoggedIn: HTMLElement;\n  contentLoggedOut: HTMLElement;\n  contentKnownUser: HTMLElement;\n\n  constructor(domRoot: HTMLElement, params: PersonalizationLoggedInOutParams) {\n    this.domRoot = domRoot as HTMLElement;\n    this.params = params;\n    this.showLoggedOutKnownUser = params.showLoggedOutKnownUser;\n    this.switchFirstName = params.switchFirstName;\n    this.isLoggedIn = false;\n    this.loadingState = domRoot.querySelector(\".loading-state\") as HTMLElement;\n    this.contentLoggedIn = domRoot.querySelector(\".logged-in\") as HTMLElement;\n    this.contentLoggedOut = domRoot.querySelector(\".logged-out\") as HTMLElement;\n    this.contentKnownUser = domRoot.querySelector(\".logged-out-known-user\") as HTMLElement;\n    this.init();\n  }\n\n  init() {\n    const hamletUserCheck = () => {\n      return hamletUser.getStargateProfile(true).then(() => {\n        this.isLoggedIn = hamletUser.isLoggedIn() || false;\n        this.loadingState.style.display = \"none\";\n        if (this.isLoggedIn) {\n          this.contentLoggedIn.style.display = \"block\";\n          if (this.switchFirstName) {\n            const personalizedStrings = this.contentLoggedIn.querySelectorAll(\"*\");\n            Array.from(personalizedStrings).forEach(personalizedString => {\n              if (personalizedString.innerText.includes(\"{firstName}\") && personalizedString.children.length == 0) {\n                personalizedString.innerText = personalizedString.innerText.replace(/{firstName}/g, hamletUser.getUser().myDetails.firstName);\n              }\n            })\n          }\n        } else {\n          this.contentLoggedOut.style.display = \"block\";\n        }\n      });\n    };\n\n    hamletUserCheck();\n  }\n}\n"],"names":["hamletApi","HamletApi","_classCallCheck","this","baseDomain","getBaseDomain","key","value","Environment","concat","window","location","hostname","indexOf","stgConfig","params","useCofsPath","basePath","getCofsPath","getHamletPath","request","url","method","headers","_objectSpread","cacheBuster","Date","getTime","data","authenticated","hamletUser","withCredentials","axios","startsWith","getBxpPath","options","_","Object","assign","hamletRequest","ProductKeys","CONFLUENCE","JIRA_CORE","JIRA_BUSINESS","JIRA_SOFTWARE","JIRA_SERVICE_DESK","JIRA_SERVICE_MANAGEMENT","JIRA_WORK_MANAGEMENT","JIRA_PRODUCT_DISCOVERY","BITBUCKET","OPSGENIE","STATUSPAGE","TRELLO","ROVO","COMPASS","LOOM","GUARD","HamletUser","_defineProperty","cached","token","initialized","user","contactDetails","firstName","lastName","email","organisationDetails","address1","address2","city","state","postcode","isoCountryCode","organisationName","organisationType","payOnAccount","taxId","lassoDetails","username","displayName","myDetails","aaid","avatar","name","isLoggedIn","sites","performanceBoostExperiment","enableAisAvailableProducts","_this","Promise","resolve","all","retrieveXsrfToken","getStargateProfile","then","_this2","response","setToken","reject","debugAllSites","_this3","retrieveMe","retrieveSitesData","_ref","_ref2","identityData","sitesData","setSites","_this4","meData","result","split","stargateData","account_id","picture","getFirstName","getLastName","_this5","retrieveAvailableProductsData","availableProductsSites","map","site","_site$products","adminAccess","products","availableProducts","availableProduct","productType","cloudId","avatarUrl","transformAvailableProductsIntoAvailableSites","_this6","availableProductsData","sitesResult","filter","isValidSite","migrationSourceUuid","productKey","cloudIds","_this7","setExtendedTrialAvailability","extendedTrialAvailability","groupSitesByProduct","forEach","product","push","isVertigo","length","icon","login_logo_url","arguments","undefined","trim","names","shift","join","toUpperCase","match","PersonalizationLoggedInOut","domRoot","showLoggedOutKnownUser","switchFirstName","loadingState","querySelector","contentLoggedIn","contentLoggedOut","contentKnownUser","init","style","display","personalizedStrings","querySelectorAll","Array","from","personalizedString","innerText","includes","children","replace"],"sourceRoot":""}