{"version":3,"sources":["webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./src/components/AccountControls/Login.vue","webpack:///src/components/AccountControls/Login.vue","webpack:///./src/components/AccountControls/Login.vue?4f29","webpack:///./src/components/AccountControls/Login.vue?04af","webpack:///./node_modules/core-js/modules/web.btoa.js","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./src/providers/channel.js","webpack:///./src/utils/channelHelper.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./src/utils/domainHelper.js","webpack:///./src/providers/passkey.js","webpack:///./src/utils/webauthn.js"],"names":["toIntegerOrInfinity","toString","requireObjectCoercible","$RangeError","RangeError","module","exports","count","str","this","result","n","Infinity","render","_vm","_c","_self","isLoggedIn","_e","staticClass","_v","_s","$t","localeOverride","errorMessage","attrs","emailErrors","authorizeUser","on","$event","$v","emailAddress","$touch","model","value","callback","$$v","expression","passwordErrors","password","class","showSpinner","Boolean","$anyError","showPasskeyLogin","passkeyBusy","authorizeWithPasskey","actionForgotPassword","actionRegister","staticRenderFns","WeakMap","name","mixins","encryptString","components","Message","props","linkActionForgotPassword","typeof","Function","default","linkActionRegister","inject","type","String","$i18n","locale","data","failCode","passkeySupported","window","PublicKeyCredential","computed","_objectSpread","mapGetters","errors","$dirty","required","email","push","fieldLabel","validations","methods","mapMutations","$router","_this","_asyncToGenerator","_regenerator","m","_callee","self","encryptedPassword","w","_context","$invalid","encryptPassword","setAppStartupLoadReady","loginProvider","then","response","status","StatusCode","$store","dispatch","ProfileToken","$emit","catch","finally","a","_this2","_callee2","channelId","optionsResponse","ceremonyId","publicKey","assertion","authResponse","_t","_context2","p","resolveCurrentChannelId","getters","v","isCyberdigmaDomain","passkeyProvider","getAuthenticationOptions","Error","CeremonyId","decodeRequestOptions","Options","navigator","credentials","get","authenticatePasskey","encodeAssertion","f","logOff","component","$","globalThis","getBuiltIn","uncurryThis","call","fails","validateArgumentsLength","i2c","$btoa","charAt","charCodeAt","BASIC","NO_ARG_RECEIVING_CHECK","WRONG_ARG_CONVERSION","WRONG_ARITY","length","global","bind","enumerable","forced","btoa","arguments","block","charCode","string","output","position","map","repeat","target","proto","getChannelsToken","apiUrl","process","apiToken","getChannelById","axios","concat","headers","profileToken","store","getChannelByUrl","url","params","getChannels","_arguments","_callee3","nonPublic","inActive","_context3","undefined","cancel","CancelToken","source","cancelToken","token","addLocationChannelSubscription","locationId","packageId","language","_callee4","criteria","_context4","LocationId","ChannelId","PackageId","Language","post","_resolveCurrentChannelId","apply","fallbackId","candidates","_i","_candidates","candidate","_args","location","origin","host","hostname","channelProvider","Id","getOwnPropertyDescriptor","toLength","notARegExp","correctIsRegExpLogic","IS_PURE","slice","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","prototype","writable","endsWith","searchString","that","endPosition","len","end","search","toLowerCase","getPasskeys","getRegistrationOptions","JSON","stringify","registerPasskey","attestation","_arguments2","Attestation","Name","_arguments3","_arguments4","_callee5","_context5","Assertion","MachineToken","getCookie","renamePasskey","id","_callee6","_context6","put","revokePasskey","_callee7","_context7","delete","base64urlToArrayBuffer","padding","base64","replace","raw","atob","buffer","Uint8Array","i","arrayBufferToBase64url","bytes","fromCharCode","decodeCreationOptions","options","challenge","user","Array","isArray","excludeCredentials","credential","encodeAttestation","rawId","extensions","getClientExtensionResults","attestationObject","clientDataJSON","allowCredentials","authenticatorData","signature","userHandle"],"mappings":"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","file":"js/chunk-f83d3a1c.js?id=77ebed4dbcef19e2fde9","sourcesContent":["'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoggedIn)?_c('div',[_c('p',{staticClass:\"title is-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.AccountControls.Login.Main_Title', _vm.localeOverride))+\" \")]),(_vm.errorMessage)?_c('Message',{staticClass:\"is-danger\",attrs:{\"message\":_vm.errorMessage}}):_vm._e(),_c('ui-base-input-field',{attrs:{\"labelForInput\":false,\"error\":_vm.emailErrors,\"label\":_vm.$t('Components.AccountControls.Login.Label_Email', _vm.localeOverride),\"onKeyUpEnter\":_vm.authorizeUser},on:{\"input\":function($event){return _vm.$v.emailAddress.$touch()},\"blur\":function($event){return _vm.$v.emailAddress.$touch()}},model:{value:(_vm.emailAddress),callback:function ($$v) {_vm.emailAddress=$$v},expression:\"emailAddress\"}}),_c('ui-base-input-field',{attrs:{\"fieldType\":\"password\",\"labelForInput\":false,\"error\":_vm.passwordErrors,\"label\":_vm.$t('Components.AccountControls.Login.Label_Password', _vm.localeOverride),\"onKeyUpEnter\":_vm.authorizeUser},on:{\"input\":function($event){return _vm.$v.password.$touch()},\"blur\":function($event){return _vm.$v.password.$touch()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('div',{staticClass:\"has-text-right has-padding-top\"},[_c('button',{staticClass:\"button is-primary\",class:{ 'is-loading': _vm.showSpinner },attrs:{\"disabled\":Boolean(_vm.$v.$anyError) || _vm.showSpinner,\"aria-label\":\"login\"},on:{\"click\":_vm.authorizeUser}},[_vm._v(\" \"+_vm._s(_vm.$t('Components.AccountControls.Login.Button_Login', _vm.localeOverride))+\" \")])]),(_vm.showPasskeyLogin)?_c('div',{staticClass:\"has-padding-top\"},[_c('p',{staticClass:\"has-text-centered has-text-grey\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.AccountControls.Login.Text_Or', _vm.localeOverride))+\" \")]),_c('button',{staticClass:\"button is-fullwidth\",class:{ 'is-loading': _vm.passkeyBusy },attrs:{\"disabled\":_vm.passkeyBusy,\"aria-label\":\"login-passkey\"},on:{\"click\":_vm.authorizeWithPasskey}},[_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'key']}})],1),_c('span',[_vm._v(_vm._s(_vm.$t('Components.AccountControls.Login.Button_Passkey', _vm.localeOverride)))])])]):_vm._e(),_c('div',[_c('hr'),_c('div',{staticClass:\"has-margin-bottom\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.AccountControls.Login.Text_ForgotPassword', _vm.localeOverride))+\" \"),_c('a',{on:{\"click\":function($event){return _vm.actionForgotPassword()}}},[_vm._v(_vm._s(_vm.$t('Components.AccountControls.Login.Link_ForgotPassword', _vm.localeOverride)))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('Components.AccountControls.Login.Text_NoAccount', _vm.localeOverride))+\" \"),_c('a',{on:{\"click\":function($event){return _vm.actionRegister()}}},[_vm._v(_vm._s(_vm.$t('Components.AccountControls.Login.Link_NoAccount', _vm.localeOverride)))])])])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div v-if=\"!isLoggedIn\">\n      <p class=\"title is-4\">\n        {{ $t('Components.AccountControls.Login.Main_Title', localeOverride) }}\n      </p>\n\n      <Message\n        v-if=\"errorMessage\"\n        :message=\"errorMessage\"\n        class=\"is-danger\"\n      />\n\n      <ui-base-input-field\n        v-model=\"emailAddress\"\n        :labelForInput=\"false\"\n        :error=\"emailErrors\"\n        :label=\"$t('Components.AccountControls.Login.Label_Email', localeOverride)\"\n        :onKeyUpEnter=\"authorizeUser\"\n        @input=\"$v.emailAddress.$touch()\"\n        @blur=\"$v.emailAddress.$touch()\"\n      />\n\n      <ui-base-input-field\n        v-model=\"password\"\n        fieldType=\"password\"\n        :labelForInput=\"false\"\n        :error=\"passwordErrors\"\n        :label=\"$t('Components.AccountControls.Login.Label_Password', localeOverride)\"\n        :onKeyUpEnter=\"authorizeUser\"\n        @input=\"$v.password.$touch()\"\n        @blur=\"$v.password.$touch()\"\n      />\n      <div class=\"has-text-right has-padding-top\">\n        <button\n          @click=\"authorizeUser\"\n          class=\"button is-primary\"\n          :class=\"{ 'is-loading': showSpinner }\"\n          :disabled=\"Boolean($v.$anyError) || showSpinner\"\n          aria-label=\"login\"\n        >\n          {{ $t('Components.AccountControls.Login.Button_Login', localeOverride) }}\n        </button>\n      </div>\n\n      <div\n        v-if=\"showPasskeyLogin\"\n        class=\"has-padding-top\"\n      >\n        <p class=\"has-text-centered has-text-grey\">\n          {{ $t('Components.AccountControls.Login.Text_Or', localeOverride) }}\n        </p>\n        <button\n          @click=\"authorizeWithPasskey\"\n          class=\"button is-fullwidth\"\n          :class=\"{ 'is-loading': passkeyBusy }\"\n          :disabled=\"passkeyBusy\"\n          aria-label=\"login-passkey\"\n        >\n          <span class=\"icon\">\n            <font-awesome-icon :icon=\"['fas', 'key']\" />\n          </span>\n          <span>{{ $t('Components.AccountControls.Login.Button_Passkey', localeOverride) }}</span>\n        </button>\n      </div>\n\n      <div>\n        <hr />\n        <div class=\"has-margin-bottom\">\n          {{ $t('Components.AccountControls.Login.Text_ForgotPassword', localeOverride) }}\n          <a @click=\"actionForgotPassword()\">{{\n            $t('Components.AccountControls.Login.Link_ForgotPassword', localeOverride)\n          }}</a>\n        </div>\n        <div>\n          {{ $t('Components.AccountControls.Login.Text_NoAccount', localeOverride) }}\n          <a @click=\"actionRegister()\">{{\n            $t('Components.AccountControls.Login.Link_NoAccount', localeOverride)\n          }}</a>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport loginProvider from '@/providers/login'\nimport passkeyProvider from '@/providers/passkey'\nimport { decodeRequestOptions, encodeAssertion } from '@/utils/webauthn'\nimport { resolveCurrentChannelId } from '@/utils/channelHelper'\nimport { isCyberdigmaDomain } from '@/utils/domainHelper'\nimport encryptString from '@/mixins/encryptString'\nimport { required, email } from 'vuelidate/lib/validators'\nconst touchMap = new WeakMap()\n\nimport { mapGetters, mapMutations } from 'vuex'\n\nexport default {\n  name: 'component-login',\n  mixins: [encryptString],\n\n  components: {\n    Message: () => import(/* webpackChunkName: \"component-account-controls-login\" */ '@/components/UI/Message'),\n  },\n\n  props: {\n    linkActionForgotPassword: {\n      typeof: Function,\n      default: false,\n    },\n\n    linkActionRegister: {\n      typeof: Function,\n      default: false,\n    },\n  },\n\n  inject: {\n    localeOverride: {\n      type: String,\n      default: function() {\n        return this.$i18n.locale\n      }\n    }\n  },\n\n  data() {\n    return {\n      emailAddress: '',\n      password: '',\n      showSpinner: false,\n      failCode: false,\n      passkeySupported: typeof window !== 'undefined' && !!window.PublicKeyCredential,\n      passkeyBusy: false,\n    }\n  },\n\n  computed: {\n    ...mapGetters({\n      isLoggedIn: 'profileStore/getIsLoggedIn',\n    }),\n\n    // Offer passkeys whenever the browser supports them; the channel/RP is resolved from the URL.\n    showPasskeyLogin() {\n      return this.passkeySupported\n    },\n\n    emailErrors() {\n      const errors = []\n      if (!this.$v.emailAddress.$dirty) return errors\n      if (!this.$v.emailAddress.required) {\n        errors.push(\n          this.$t('Form.InputErrors.RequiredField', {\n            fieldLabel: this.$t('Components.AccountControls.Login.Label_Email', this.localeOverride),\n          })\n        )\n      } else if (!this.$v.emailAddress.email) {\n        errors.push(this.$t('Form.InputErrors.InvalidEmail', this.localeOverride))\n      }\n      return errors\n    },\n\n    passwordErrors() {\n      const errors = []\n      if (!this.$v.password.$dirty) return errors\n      if (!this.$v.password.required) {\n        errors.push(\n          this.$t('Form.InputErrors.RequiredField', {\n            fieldLabel: this.$t(\n              'Components.AccountControls.Login.Label_Password'\n            ),\n          })\n        )\n      }\n      return errors\n    },\n\n    errorMessage() {\n      if (this.failCode === 404) {\n        return this.$t('Components.AccountControls.Login.Message_Error404', this.localeOverride)\n      } else if (this.failCode === 403) {\n        return this.$t('Components.AccountControls.Login.Message_Error403', this.localeOverride)\n      } else if (this.failCode === 'passkey') {\n        return this.$t('Components.AccountControls.Login.Message_ErrorPasskey', this.localeOverride)\n      } else if (this.failCode === 'passkeyUnavailable') {\n        return this.$t('Components.AccountControls.Login.Message_PasskeyUnavailable', this.localeOverride)\n      } else if (this.failCode) {\n        return this.$t('Components.AccountControls.Login.Message_ErrorUnknown', this.localeOverride)\n      }\n      return ''\n    },\n  },\n\n  /**\n   * Form validation rules\n   */\n  validations: {\n    emailAddress: {\n      required,\n      email,\n    },\n    password: {\n      required,\n    },\n  },\n\n  methods: {\n    ...mapMutations(['setAppStartupLoadReady']),\n\n    actionForgotPassword() {\n      if (!this.linkActionForgotPassword) {\n        this.$router.push({ name: 'my-account-forgotpassword' })\n        return\n      }\n      this.linkActionForgotPassword()\n    },\n    actionRegister() {\n      if (!this.linkActionRegister) {\n        this.$router.push({ name: 'my-account-register' })\n        return\n      }\n      this.linkActionRegister()\n    },\n\n    async authorizeUser() {\n      let self = this\n      if (!this.showSpinner) {\n        this.showSpinner = true\n        this.failCode = false\n        this.$v.$touch()\n        if (this.$v.$invalid) {\n          // 'ERROR'\n          this.showSpinner = false\n        } else {\n          let encryptedPassword = self.encryptPassword(self.password)\n\n          // 'PENDING'\n          self.setAppStartupLoadReady(false)\n          await loginProvider.methods\n            .authorizeUser(self.emailAddress, encryptedPassword)\n            .then((response) => {\n              if (response.status === 200 && response.data.StatusCode === 1) {\n                self.$store.dispatch(\n                  'profileStore/saveProfileToken',\n                  response.data.ProfileToken\n                )\n                this.$emit('actionAfterLogin')\n              } else {\n                if (\n                  response.data.StatusCode === -1 ||\n                  response.data.StatusCode === -3\n                ) {\n                  this.failCode = 404\n                }\n\n                // Not yet activated\n                else if (response.data.StatusCode === -2) {\n                  this.failCode = 403\n                }\n              }\n            })\n            .catch(() => {\n              // console.log(err)\n              // Ensure the failcode is not false at this point\n              if (this.failCode === false) {\n                this.failCode = true\n              }\n            })\n            .finally(() => {\n              self.showSpinner = false\n              self = null\n            })\n        }\n      }\n    },\n\n    async authorizeWithPasskey() {\n      if (this.passkeyBusy || !this.passkeySupported) {\n        return\n      }\n      this.passkeyBusy = true\n      this.failCode = false\n\n      try {\n        // Resolve the channel from the current URL so the API derives the right RP id for this domain.\n        const channelId = await resolveCurrentChannelId(this.$store.getters['brandChannelId'])\n\n        // No channel mapped for this (non-cyberdigma) domain yet — passkeys can't be used here.\n        if (channelId === 0 && !isCyberdigmaDomain()) {\n          this.failCode = 'passkeyUnavailable'\n          return\n        }\n\n        // 1. Get a challenge from the server (usernameless / discoverable).\n        const optionsResponse = await passkeyProvider.methods.getAuthenticationOptions(channelId)\n        if (!optionsResponse || optionsResponse.status !== 200) {\n          throw new Error('options')\n        }\n\n        const ceremonyId = optionsResponse.data.CeremonyId\n        const publicKey = decodeRequestOptions(optionsResponse.data.Options)\n\n        // 2. Let the authenticator sign it (passkey picker / biometric prompt).\n        const assertion = await navigator.credentials.get({ publicKey })\n\n        // 3. Send it back; on success we get a ProfileToken, exactly like password login.\n        this.setAppStartupLoadReady(false)\n        const authResponse = await passkeyProvider.methods.authenticatePasskey(ceremonyId, encodeAssertion(assertion), channelId)\n\n        if (authResponse && authResponse.status === 200 && authResponse.data.StatusCode === 1) {\n          this.$store.dispatch('profileStore/saveProfileToken', authResponse.data.ProfileToken)\n          this.$emit('actionAfterLogin')\n        } else {\n          this.failCode = 'passkey'\n        }\n      } catch (error) {\n        // Dismissing the native prompt throws NotAllowedError/AbortError — treat that as a soft cancel.\n        if (!error || (error.name !== 'NotAllowedError' && error.name !== 'AbortError')) {\n          this.failCode = 'passkey'\n        }\n      } finally {\n        this.passkeyBusy = false\n      }\n    },\n\n    logOff() {\n      this.$store.dispatch('profileStore/logoff')\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=6a7c8a36\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar i2c = require('../internals/base64-map').i2c;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar BASIC = !!$btoa && !fails(function () {\n  return $btoa('hi') !== 'aGk=';\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n  $btoa();\n});\n\nvar WRONG_ARG_CONVERSION = BASIC && fails(function () {\n  return $btoa(null) !== 'bnVsbA==';\n});\n\nvar WRONG_ARITY = BASIC && $btoa.length !== 1;\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, {\n  btoa: function btoa(data) {\n    validateArgumentsLength(arguments.length, 1);\n    // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n    if (BASIC) return call($btoa, globalThis, toString(data));\n    var string = toString(data);\n    var output = '';\n    var position = 0;\n    var map = i2c;\n    var block, charCode;\n    while (charAt(string, position) || (map = '=', position % 1)) {\n      charCode = charCodeAt(string, position += 3 / 4);\n      if (charCode > 0xFF) {\n        throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n      }\n      block = block << 8 | charCode;\n      output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n    } return output;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n","import axios from 'axios'\nimport store from '../store'\n\nlet getChannelsToken = null\n\nconst apiUrl = process.env.VUE_APP_API_BASE_URL + '/api'\nconst apiToken = process.env.VUE_APP_API_KEY\n\nexport default {\n  methods: {\n    async getChannelById(channelId) {\n      const response = await axios.get(`${apiUrl}/v1/channel/${channelId}`, {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: apiToken,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n      return response\n    },\n\n    async getChannelByUrl(url) {\n      const response = await axios.get(`${apiUrl}/v1/channel/url`, {\n        params: {\n          url: url\n        },\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: apiToken,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n      return response\n    },\n\n    async getChannels(nonPublic = false, inActive = false) {\n      getChannelsToken && getChannelsToken.cancel()\n      getChannelsToken = axios.CancelToken.source()\n\n      const response = await axios.get(`${apiUrl}/v1/channel`, {\n        cancelToken: getChannelsToken.token,\n\n        params: {\n          nonPublic: nonPublic,\n          inActive: inActive\n        },\n\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: apiToken,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n      return response\n    },\n\n    async addLocationChannelSubscription(locationId, channelId, packageId, language) {\n      let criteria = {\n        LocationId: locationId,\n        ChannelId: channelId,\n        PackageId: packageId,\n        Language: language\n      }\n\n      const response = await axios.post(`${apiUrl}/v1/channel/location/channelSubscription`,\n        criteria,\n        {\n          headers: {\n            'Content-type': 'application/json',\n            apiToken: apiToken,\n            profileToken: store.getters['profileStore/getProfileToken']\n          }\n        })\n      return response\n    }\n  }\n}\n","import channelProvider from '@/providers/channel'\n\n/**\n * Resolve the channelId for the current page URL via the s2m_url mapping (exact match server-side).\n * The stored URL format isn't guaranteed, so we try the most likely forms (origin, host, hostname)\n * and return the first channel found. Falls back to the given id when none match — e.g. on\n * cyberdigma.nl, where ChannelId 0 lets the API use its own default RP id.\n */\nexport async function resolveCurrentChannelId(fallbackId = 0) {\n  if (typeof window === 'undefined' || !window.location) {\n    return fallbackId\n  }\n\n  const candidates = [window.location.origin, window.location.host, window.location.hostname]\n\n  for (const candidate of candidates) {\n    try {\n      const response = await channelProvider.methods.getChannelByUrl(candidate)\n      if (response && response.status === 200 && response.data && response.data.Id > 0) {\n        return response.data.Id\n      }\n    } catch (error) {\n      // Ignore and try the next candidate form.\n    }\n  }\n\n  return fallbackId\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = that.length;\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = toString(searchString);\n    return slice(that, end - search.length, end) === search;\n  }\n});\n","/**\n * True when the current page is served from cyberdigma.nl (or a subdomain of it). On these hosts a\n * resolved channelId of 0 is fine — the API uses its own default RP id — so passkeys still work.\n * Elsewhere, channelId 0 means no channel is mapped for the domain and passkeys can't be used yet.\n */\nexport function isCyberdigmaDomain() {\n  if (typeof window === 'undefined' || !window.location) {\n    return false\n  }\n  const host = window.location.hostname.toLowerCase()\n  return host === 'cyberdigma.nl' || host.endsWith('.cyberdigma.nl')\n}\n","import axios from 'axios'\nimport store from '../store'\nimport { getCookie } from '@/utils/browserStorage'\n\n/**\n * Passkey (WebAuthn) provider. Authentication ceremonies are pre-auth (apiToken only); registration\n * and management require the profileToken of the logged-in user. The RP id / origin are validated\n * server-side from the channel, so we never send them here.\n */\nexport default {\n  methods: {\n    /**\n     * List the logged-in profile's passkeys.\n     */\n    async getPasskeys() {\n      return axios.get(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey`, {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n    },\n\n    /**\n     * Begin registering a passkey for the logged-in profile.\n     * @param {Number} channelId\n     */\n    async getRegistrationOptions(channelId = 0) {\n      return axios.post(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/register/options`, JSON.stringify({ ChannelId: channelId }), {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n    },\n\n    /**\n     * Complete registration with the authenticator's attestation.\n     * @param {String} ceremonyId\n     * @param {Object} attestation - the WebAuthn attestation (base64url-encoded fields)\n     * @param {String} name - friendly device name\n     */\n    async registerPasskey(ceremonyId, attestation, name = '') {\n      return axios.post(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/register`, JSON.stringify({ CeremonyId: ceremonyId, Attestation: attestation, Name: name }), {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n    },\n\n    /**\n     * Begin a passkey login ceremony (pre-auth). Used by the login screen, not account management.\n     * @param {Number} channelId\n     */\n    async getAuthenticationOptions(channelId = 0) {\n      return axios.post(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/authenticate/options`, JSON.stringify({ ChannelId: channelId }), {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY\n        }\n      })\n    },\n\n    /**\n     * Complete a passkey login ceremony (pre-auth). Returns a LoginResult with a ProfileToken.\n     * @param {String} ceremonyId\n     * @param {Object} assertion - the WebAuthn assertion (base64url-encoded fields)\n     * @param {Number} channelId\n     */\n    async authenticatePasskey(ceremonyId, assertion, channelId = 0) {\n      return axios.post(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/authenticate`, JSON.stringify({ CeremonyId: ceremonyId, Assertion: assertion, ChannelId: channelId, MachineToken: getCookie('mt') }), {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY\n        }\n      })\n    },\n\n    /**\n     * Rename one of the logged-in profile's passkeys.\n     * @param {Number} id\n     * @param {String} name\n     */\n    async renamePasskey(id, name) {\n      return axios.put(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/${id}`, JSON.stringify({ Name: name }), {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n    },\n\n    /**\n     * Revoke (soft-delete) one of the logged-in profile's passkeys.\n     * @param {Number} id\n     */\n    async revokePasskey(id) {\n      return axios.delete(`${process.env.VUE_APP_API_BASE_URL}/api/v2/passkey/${id}`, {\n        headers: {\n          'Content-type': 'application/json',\n          apiToken: process.env.VUE_APP_API_KEY,\n          profileToken: store.getters['profileStore/getProfileToken']\n        }\n      })\n    }\n  }\n}\n","/**\n * WebAuthn (passkey) encoding helpers. The server speaks base64url (Fido2); the browser\n * navigator.credentials API speaks ArrayBuffer. These translate between the two and shape the\n * payloads the chp-api passkey endpoints expect.\n */\n\n/**\n * Decode a base64url string (no padding) into an ArrayBuffer.\n */\nexport function base64urlToArrayBuffer(value) {\n  const padding = '='.repeat((4 - (value.length % 4)) % 4)\n  const base64 = (value + padding).replace(/-/g, '+').replace(/_/g, '/')\n  const raw = window.atob(base64)\n  const buffer = new Uint8Array(raw.length)\n  for (let i = 0; i < raw.length; i++) {\n    buffer[i] = raw.charCodeAt(i)\n  }\n  return buffer.buffer\n}\n\n/**\n * Encode an ArrayBuffer into a base64url string (no padding).\n */\nexport function arrayBufferToBase64url(buffer) {\n  const bytes = new Uint8Array(buffer)\n  let str = ''\n  for (let i = 0; i < bytes.length; i++) {\n    str += String.fromCharCode(bytes[i])\n  }\n  return window.btoa(str).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n}\n\n/**\n * Turn server-issued creation options into the shape navigator.credentials.create expects.\n */\nexport function decodeCreationOptions(options) {\n  const publicKey = { ...options }\n  publicKey.challenge = base64urlToArrayBuffer(options.challenge)\n  publicKey.user = { ...options.user, id: base64urlToArrayBuffer(options.user.id) }\n  if (Array.isArray(options.excludeCredentials)) {\n    publicKey.excludeCredentials = options.excludeCredentials.map((credential) => ({\n      ...credential,\n      id: base64urlToArrayBuffer(credential.id)\n    }))\n  }\n  return publicKey\n}\n\n/**\n * Encode the attestation produced by navigator.credentials.create for the register endpoint.\n */\nexport function encodeAttestation(credential) {\n  return {\n    id: credential.id,\n    rawId: arrayBufferToBase64url(credential.rawId),\n    type: credential.type,\n    extensions: credential.getClientExtensionResults(),\n    response: {\n      attestationObject: arrayBufferToBase64url(credential.response.attestationObject),\n      clientDataJSON: arrayBufferToBase64url(credential.response.clientDataJSON)\n    }\n  }\n}\n\n/**\n * Turn server-issued assertion options into the shape navigator.credentials.get expects.\n */\nexport function decodeRequestOptions(options) {\n  const publicKey = { ...options }\n  publicKey.challenge = base64urlToArrayBuffer(options.challenge)\n  if (Array.isArray(options.allowCredentials)) {\n    publicKey.allowCredentials = options.allowCredentials.map((credential) => ({\n      ...credential,\n      id: base64urlToArrayBuffer(credential.id)\n    }))\n  }\n  return publicKey\n}\n\n/**\n * Encode the assertion produced by navigator.credentials.get for the authenticate endpoint.\n */\nexport function encodeAssertion(assertion) {\n  const response = {\n    authenticatorData: arrayBufferToBase64url(assertion.response.authenticatorData),\n    clientDataJSON: arrayBufferToBase64url(assertion.response.clientDataJSON),\n    signature: arrayBufferToBase64url(assertion.response.signature)\n  }\n  if (assertion.response.userHandle) {\n    response.userHandle = arrayBufferToBase64url(assertion.response.userHandle)\n  }\n  return {\n    id: assertion.id,\n    rawId: arrayBufferToBase64url(assertion.rawId),\n    type: assertion.type,\n    extensions: assertion.getClientExtensionResults(),\n    response\n  }\n}\n"],"sourceRoot":""}