{"version":3,"file":"index.mjs","sources":["../../src/components/AuthIFrame.vue","../../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../../src/default-options.js","../../src/me.js","../../src/auth.js","../../src/index.mjs"],"sourcesContent":["<template>\n  <iframe v-once id=\"authFrame\" style=\"display:none;\" ref=\"authFrame\" :src=\"`${url}/app/authorize.html`\"/>\n</template>\n\n<script>\n\nexport default {\n  name    : 'AuthIFrame',\n  computed: { url },\n  mounted\n}\n\nfunction url(){\n  return this.auth.accountsUrl\n}\n\nfunction mounted (){\n  if (this.$isServer) return\n  if(!this.$refs || !this.$refs.authFrame) return false\n  \n  window.addEventListener('message', this.auth.receivePostMessage)\n\n  this.$refs.authFrame.onload = () => {\n    const { contentWindow } = this.$refs.authFrame\n    const   type            = 'getAuthenticationToken'\n    const   msg             = JSON.stringify({ type })\n\n    return contentWindow.postMessage(msg, this.url)\n  }\n}\n</script>\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n    if (typeof shadowMode !== 'boolean') {\r\n        createInjectorSSR = createInjector;\r\n        createInjector = shadowMode;\r\n        shadowMode = false;\r\n    }\r\n    // Vue.extend constructor export interop.\r\n    const options = typeof script === 'function' ? script.options : script;\r\n    // render functions\r\n    if (template && template.render) {\r\n        options.render = template.render;\r\n        options.staticRenderFns = template.staticRenderFns;\r\n        options._compiled = true;\r\n        // functional template\r\n        if (isFunctionalTemplate) {\r\n            options.functional = true;\r\n        }\r\n    }\r\n    // scopedId\r\n    if (scopeId) {\r\n        options._scopeId = scopeId;\r\n    }\r\n    let hook;\r\n    if (moduleIdentifier) {\r\n        // server build\r\n        hook = function (context) {\r\n            // 2.3 injection\r\n            context =\r\n                context || // cached call\r\n                    (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n                    (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n            // 2.2 with runInNewContext: true\r\n            if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n                context = __VUE_SSR_CONTEXT__;\r\n            }\r\n            // inject component styles\r\n            if (style) {\r\n                style.call(this, createInjectorSSR(context));\r\n            }\r\n            // register component module identifier for async chunk inference\r\n            if (context && context._registeredComponents) {\r\n                context._registeredComponents.add(moduleIdentifier);\r\n            }\r\n        };\r\n        // used by ssr in case component is cached and beforeCreate\r\n        // never gets called\r\n        options._ssrRegister = hook;\r\n    }\r\n    else if (style) {\r\n        hook = shadowMode\r\n            ? function (context) {\r\n                style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n            }\r\n            : function (context) {\r\n                style.call(this, createInjector(context));\r\n            };\r\n    }\r\n    if (hook) {\r\n        if (options.functional) {\r\n            // register for functional component in vue file\r\n            const originalRender = options.render;\r\n            options.render = function renderWithStyleInjection(h, context) {\r\n                hook.call(context);\r\n                return originalRender(h, context);\r\n            };\r\n        }\r\n        else {\r\n            // inject component registration as beforeCreate hook\r\n            const existing = options.beforeCreate;\r\n            options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n        }\r\n    }\r\n    return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","import { setDefaultOptions, getDefaultOptionsFunction } from '@houlagins/default-options'\nimport { name                                         } from '../package.json'\n\nconst allAccountUrls = [ 'https://accounts.cbddev.xyz', 'https://accounts.staging.cbd.int', 'https://accounts.cbd.int' ]\n\nconst admins      = [ ]\nconst _admins     = [ 'Administrator' ]\n\nconst govRoles    = [ ]\nconst _govRoles   = [ 'NFP-CBD', 'ChmNrNationalFocalPoint', 'ChmNrNationalAuthorizedUser' ]\n\nconst dev  = { accountsUrl: allAccountUrls[0], admins, _admins, govRoles, _govRoles, allAccountUrls }\nconst stg  = { ...dev, ...{ accountsUrl: allAccountUrls[1] } }\nconst prod = { ...stg, ...{ accountsUrl: allAccountUrls[2] } }\n\nconst environments  = { stg, dev, prod }\nconst validationMap = { allAccountUrls: Array, forceEnv: String, accountsUrl: String, admins: Array, _admins: Array, govRoles: Array, _govRoles: Array   }\n\n\nsetDefaultOptions({ environments, validationMap, name }, name)\n\nexport  default getDefaultOptionsFunction(name)","const globalProps = {}\n\nexport const initMe = (Vue, opts) => {\n  const me            = {}\n  const instance      = {}\n\n  globalProps.opts           = opts\n  globalProps.store          = new Vue({ data: { me, instance } })\n  globalProps.store.instance = new MeStore()\n  globalProps.store.instance.set()\n\n  return globalProps.store.instance\n}\n\nexport const getMe = () =>  new Promise(loadingInterval)\n\nfunction loadingInterval(resolve, reject){\n  let timer = undefined\n  const timeout = setTimeout(() => {\n    clearInterval(timer)\n    reject('Error loading $me instance')\n  }, 5000)\n\n  timer = setInterval(() => {\n    if(!globalProps.store.instance) return\n\n    clearInterval(timer)\n    clearTimeout(timeout)\n\n    return resolve(globalProps.store.instance)\n  }, 100)\n}\n//wrapper for store, getters and setter logic\nclass MeStore{\n  get userID(){ return globalProps.store.me.userID }\n  get userId(){ return globalProps.store.me.userID }\n  get name(){ return globalProps.store.me.name }\n  get email(){ return globalProps.store.me.email }\n  get government(){ return globalProps.store.me.government }\n  get institution(){ return globalProps.store.me.institution }\n  get userGroups(){ return globalProps.store.me.userGroups }\n  get isAuthenticated(){ return globalProps.store.me.isAuthenticated }\n  get roles(){ return globalProps.store.me.roles }\n  get isEmailVerified(){ return globalProps.store.me.isEmailVerified }\n  get isSet(){ return globalProps.store.me.userID && globalProps.store.me.userID !== 1 }\n  get isAdmin (){\n    const { roles } = this\n\n    if(!roles || !globalProps.opts) return false\n    \n    const adminRoles = globalProps.opts._admins.concat(globalProps.opts.admins)\n\n    for (const role of adminRoles)\n      if(roles.includes(role))\n        return true\n    \n    return false\n  }\n  get isStaff (){\n    const { userGroups } = this\n\n    if(!userGroups) return false\n  \n    return userGroups.includes('SCBD')\n  }\n  get isGov (){\n    const { roles, government } = this\n\n    if(!government || !roles || !globalProps.opts) return false\n\n    const govRoles = globalProps.opts._govRoles.concat(globalProps.opts.govRoles)\n\n    for (const role of govRoles)\n      if(this.roles.includes(role))\n        return true\n    \n    return false\n  }\n\n  hasRole (role){\n    const { roles } = this || (globalProps.opts || {}).store\n\n    if(!roles) return false\n  \n    return roles.includes(role)\n  }\n  logOut(){\n    globalProps.store.me = this.anonymous()\n  }\n  set (data){\n    globalProps.store.me = data || this.anonymous()\n    this.makeGettersEnumerable(this)\n\n    return this\n  }\n  makeGettersEnumerable(instance){\n    const prototype                    = Object.getPrototypeOf(instance)\n    const prototypePropertyDescriptors = Object.getOwnPropertyDescriptors(prototype)\n\n    for(const [ property, descriptor ] of Object.entries(prototypePropertyDescriptors)){\n      const isNonStaticGetter = (typeof descriptor.get === 'function')\n  \n      if(!isNonStaticGetter) continue\n  \n      descriptor.enumerable = true\n      Object.defineProperty(instance, property, descriptor)\n    }\n  }\n  anonymous(){\n    return {\n      userID         : 1,\n      name           : 'anonymous',\n      email          : 'anonymous@domain',\n      government     : null,\n      userGroups     : null,\n      isAuthenticated: false,\n      isOffline      : true,\n      roles          : []\n    }\n  }\n}\n\n\n","const globalProps = {}\n\nexport const initAuth = (Vue, opts) => {\n  const token    = ''\n  const instance = {}\n\n  globalProps.opts           = opts\n  globalProps.store          = new Vue({ data: { token, instance } })\n  globalProps.store.instance = new AuthStore()\n\n  return globalProps.store.instance\n}\n\nexport const getAuth = () => new Promise(loadingIntervalInstance)\nexport const isTokenLoaded = () => new Promise(loadingInterval)\n\nclass AuthStore{\n  logOut(){ globalProps.store.token = '' }\n\n  set token(t){ globalProps.store.token = t }\n\n  get token(){ return globalProps.store.token }\n  \n  get accountsBaseUrl(){ return this.accountsUrl }\n\n  get accountsUrl(){\n    const { accountsUrl } = globalProps.opts\n  \n    if(!accountsUrl) throw new Error('options.accountsUrl var not set')\n  \n    return accountsUrl\n  }\n\n  get baseReqOpts(){\n    if(!globalProps.store.token) return {}\n    \n    return { headers: this.formatedHeader }\n  }\n\n  get formatedHeader(){\n    if(!globalProps.store.token) return {}\n    \n    return  { Authorization: `Ticket ${globalProps.store.token}` }\n  }\n\n  isAuthLoaded(){  return new Promise(loadingInterval) }\n\n  receivePostMessage(event){\n    if(!isAccountsOrigin(event)) return null\n\n    const { type, authenticationToken } = JSON.parse(event.data)\n\n    if(type!=='authenticationToken') throw new Error('unsupported authentication message type')\n\n    return globalProps.store.token = authenticationToken\n  }\n  \n  dispatchUser(element, meStore){\n    if(!globalProps.elm) globalProps.elm = element\n\n    const event = new Event('$me', { bubbles: true })\n\n    event.$me   = meStore\n    event.$auth = globalProps.store\n    globalProps.elm.dispatchEvent(event)\n    this.onRequestMeEvent(globalProps.elm)\n  }\n\n  onRequestMeEvent(element){\n    if (this.onRequestMeEvent.installed) return\n    else this.onRequestMeEvent.installed = true\n\n    if(!globalProps.elm) globalProps.elm = element\n  \n    window.document.addEventListener('$requestMe', () => this.dispatchUser(globalProps.elm))\n  }\n\n  isAccountsUrl(url){\n    return globalProps.opts.allAccountUrls.includes(url)\n  }\n}\n\nfunction loadingInterval(resolve){\n  const timeout = setTimeout(() => {\n    clearInterval(timer)\n    resolve(globalProps.store.token)\n  }, 5000)\n\n  const timer = setInterval(() => {\n    if(!globalProps.store.token) return\n\n    clearInterval(timer)\n    clearTimeout(timeout)\n    return resolve(globalProps.store.token)\n  }, 100)\n}\n\nfunction loadingIntervalInstance(resolve, reject){\n  let timer = undefined\n  const timeout = setTimeout(() => {\n    clearInterval(timer)\n    reject('Error loading $auth instance')\n  }, 5000)\n\n  timer = setInterval(() => {\n    if(!globalProps.store.instance) return\n\n    clearInterval(timer)\n    clearTimeout(timeout)\n    return resolve(globalProps.store.instance)\n  }, 100)\n}\n\nfunction isAccountsOrigin({ origin } = {}){ return origin === globalProps.opts.accountsUrl }\n","/* eslint-disable */\nimport   Vue          from 'vue'\nimport { pascalCase}  from 'change-case/dist.es2015/index.js'\nimport { get$http   } from '@houlagins/load-http'\nimport { name       } from '../package.json'\n\nimport   AuthIFrame                                  from './components/AuthIFrame.vue'\nimport   getDefaultOptions                           from './default-options'\nimport { initMe           , getMe }                  from './me'\nimport { initAuth         , getAuth, isTokenLoaded } from './auth'\n\nconst NAME        = pascalCase(name.replace('@scbd/', ''))\nconst globalProps = new Vue({ \n                              data: { me: {}, auth: {} },\n                              methods : { $getUser, $logOut, $initSsoScbd }\n                            })\n\nconst globalVueMixin = {\n  data: function (){ return { me: globalProps.me, auth: globalProps.auth, el: undefined } },\n  methods : { $getUser, $logOut, $initSsoScbd },\n  mounted\n}\n\nexport const ssoScbd = globalProps\nexport const plugin  = { install, NAME }\n\nexport default plugin\n\nfunction install (Vue, options = {}){ // eslint-disable-line\n  \n  if (install.installed) return\n  else install.installed = true\n\n  const { forceEnv }   = options\n  const opts           = { ...getDefaultOptions({}, forceEnv), ...options }\n\n  globalProps.me   = initMe(Vue, opts)\n  globalProps.auth = initAuth(Vue, opts)\n\n  Vue.mixin(globalVueMixin)\n\n  globalProps.opts = opts\n  globalProps.Vue  = Vue\n\n  getAuth()\n    .then(async (auth) => { globalProps.auth = auth; globalVueMixin.auth = auth; })// eslint-disable-line\n    .then(getMe)\n    .then(async (me) => { globalProps.me = me; globalVueMixin.me = me; })// eslint-disable-line\n}\n\nasync function mounted(){  // eslint-disable-line\n  //await getMe()// ensure defaults loaded user anon\n  if(globalProps.el) return\n  globalProps.el = getExistingIframe()\n\n  if(!globalProps.el && this.$options.name!=='AuthIFrame' && this.$options.name)\n    createIframe()\n  \n  try{\n    await this.auth.isAuthLoaded()\n    await this.auth.dispatchUser(globalProps.el, await this.$getUser())\n\n    window.document.addEventListener('$requestMe', async () => {\n      const user = await this.$getUser()\n\n      this.auth.dispatchUser(globalProps.el,  user)\n      this.$root.$emit('$me',  user)\n    })\n  }\n  catch(e){\n    globalProps.me.set()\n    this.auth.dispatchUser(globalProps.el, globalProps.me)\n    this.$root.$emit('$me', globalProps.me)\n    console.error(e)\n  }\n}\n\nfunction createIframe(){\n  const AuthIFrameClass    = globalProps.Vue.extend(AuthIFrame)\n  const AuthIFrameInstance = new AuthIFrameClass()\n  \n  AuthIFrameInstance.$mount()\n\n  document.getElementsByTagName('body')[0].appendChild(AuthIFrameInstance.$el)\n  globalProps.el = AuthIFrameInstance.$el\n}\n\nfunction getExistingIframe(){\n  const iFrames = window.document.getElementsByTagName('iframe')\n\n  for (const anIframe of iFrames){\n    const { origin } = new URL(anIframe.getAttribute('src'))\n\n    if(globalProps.auth.accountsBaseUrl === origin)\n      return useExistingIframe(anIframe)\n  }\n}\n\nfunction useExistingIframe($el){\n  window.addEventListener('message', globalProps.auth.receivePostMessage)\n\n  const { contentWindow } = $el\n  const   type            = 'getAuthenticationToken'\n  const   msg             = JSON.stringify({ type })\n\n  contentWindow.postMessage(msg, globalProps.auth.accountsBaseUrl)\n\n  return $el\n}\n\nasync function $getUser(){\n  await isTokenLoaded()\n\n  const   me                             = await getUser()\n  const { FirstName, LastName, Country } = await getProfile(me.userID)\n  \n  const firstName = FirstName\n  const lastName  = LastName\n  const country   = Country\n\n  globalProps.Vue.nextTick(() => globalProps.me.set({ ...me, firstName, lastName, country }))\n\n  return globalProps.me\n}\n\nfunction $logOut(){\n  globalProps.me.logOut()\n  globalProps.auth.logOut()\n\n  if(!globalProps.el) return\n  \n  const msg = JSON.stringify({ type: 'setAuthenticationToken', authenticationToken: null, authenticationEmail: null, expiration: null })\n\n  globalProps.el.contentWindow.postMessage(msg, globalProps.auth.accountsUrl)\n\n  setTimeout(() => {\n    globalProps.auth.dispatchUser(globalProps.el, this.me)\n    this.$root.$emit('$me', this.me)\n  }, 1500)\n}\n\nasync function getProfile(id){\n  const $http = await get$http()\n\n  return $http.get(`${globalProps.opts.accountsUrl}/api/v2013/users/${id}`, globalProps.auth.baseReqOpts).json()\n}\n\nasync function getUser(){\n  if (globalProps.me.isSet)  return globalProps.me\n  if (!globalProps.auth.token)  return globalProps.me.set()\n\n  const $http = await get$http()\n\n  return $http.get(`${globalProps.opts.accountsUrl}/api/v2013/authentication/user`, globalProps.auth.baseReqOpts).json()\n}\n\nasync function $initSsoScbd(){\n  const token = await isTokenLoaded ()\n\n  if(!token) return globalProps.me\n\n  return $getUser()\n}"],"names":["globalProps","loadingInterval","mounted","AuthIFrame"],"mappings":"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"}