{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/utils/event.ts","webpack:///./src/utils/flagsmith.ts","webpack:///./src/config/index.ts","webpack:///./src/App.vue?0e89","webpack:///./src/internal-api.ts","webpack:///./src/events/mixpanel/enums/applications.ts","webpack:///./src/constants/routes.ts","webpack:///./src/utils/mixpanel.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?ae2f","webpack:///./src/store/modules/application.ts","webpack:///./src/store/modules/company.ts","webpack:///./src/api/hmac_application/getScopes.ts","webpack:///./src/store/modules/scope.ts","webpack:///./src/api.ts","webpack:///./src/store/modules/user.ts","webpack:///./src/store/modules/applications.ts","webpack:///./src/store/modules/access_grant.ts","webpack:///./src/store/modules/activity_log.ts","webpack:///./src/store/index.ts","webpack:///./src/router/index.ts","webpack:///./src/directives/vue-click-outside.ts","webpack:///./src/directives/tooltip.ts","webpack:///./src/events/mixpanel/enums/hmac-validator.ts","webpack:///./src/events/mixpanel/mapping-event.ts","webpack:///./src/events/mixpanel/metadata.ts","webpack:///./src/events/mixpanel/emit/index.ts","webpack:///./src/events/mixpanel/listen/hmac-validator.ts","webpack:///./src/events/mixpanel/listen/applications.ts","webpack:///./src/main.ts","webpack:///./src/store-types.ts","webpack:///./src/api/request.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","emit","dispatchEvent","CustomEvent","detail","listen","callback","addEventListener","initializeFlagsmith","async","flagsmith","init","api","config","flagsmithApiUrl","environmentID","flagsmithEnvironmentKey","cacheFlags","getFlagValue","flagName","hasFeature","appEnvironment","process","mixpanelToken","MIXPANEL_TOKEN","railsEnv","RAILS_ENV","FLAGSMITH_API_URL","FLAGSMITH_ENVIRONMENT_KEY","token","_document$querySelect","querySelector","content","httpWrapper","method","endpoint","options","url","headers","toLocaleLowerCase","params","response","axios","log","applications","uuid","includes","companies","scopes","accessGrants","activityLog","apiUsage","companySsoID","PREFIX","SubmitCreateApplication","UpdateApplication","RegenerateSecretApplication","DeleteApplication","ROUTES","HMAC_VALIDATOR","eventToString","eventEnum","setMetadata","CompanySSOID","mixpanel","identify","set_group","get_group","set","distinct_id","people","emitEvent","properties","track","debug","ignore_dnt","mixpanelInstance","_createBlock","_component_router_view","__exports__","render","state","mutations","APPLICATION_SET_HMAC_AUTH","hmacAuthApplication","APPLICATION_SET_NAME","actions","APPLICATION_CREATE_HMAC_AUTH","commit","createHmacAuthApplication","company_id","companyId","company_name","companyName","page_name","pageName","id","createdAt","attributes","created_at","clientId","client_id","clientSecret","client_secret","APPLICATION_FETCH_HMAC_AUTH","getHmacAuthApplication","APPLICATION_UPDATE_HMAC_AUTH","updateHmacAuthApplication","app_id","APPLICATION_DELETE_HMAC_AUTH","deleteHmacAuthApplication","APPLICATION_REGENRATE_SECRET_HMAC_AUTH","regenerateSecretHmacAuthApplication","application","COMPANY_SET_COMPANIES","COMPANY_FETCH_COMPANIES","getCompanies","map","payload","companySize","company_size","platforms","company","getScopes","companySsoId","MAX_LOOP","page","sessionStorage","getItem","cachedScope","JSON","parse","GET","newScopes","parentId","parent_id","setItem","stringify","SCOPE_SET_SCOPES","SCOPE_FETCH_SCOPES","hmacGetScopes","concat","scope","users","first_name","last_name","email","phone","password","password_confirmation","firstName","lastName","avatar","USER_SET_ID","USER_SET_FIRST_NAME","USER_SET_LAST_NAME","USER_SET_EMAIL","USER_SET_AVATAR","USER_CLEAR_DATA","FETCH_CURRENT_USER","me","avatar_original","avatar_thumbnails","user","hmacAuthApplications","APPLICATIONS_SET_HMAC","FETCH_APPLICATIONS","getHmacAuthApplications","ACCESS_GRANT_SET_ACCESS_GRANTS","accessGrant","ACCESS_GRANT_FETCH_ACCESS_GRANTS","getAccessGrant","requestorApp","requestor_application","products","scope_details","email_owner","status","access_grant","activityLogs","pagination","size","next","prev","total_page","total_record","SET_DATA_ACTIVITY_LOGS","SET_PAGINATION_ACTIVITY_LOGS","FETCH_ACTIVITY_LOGS","getActivityLog","activity_log","toast","useToast","createStore","SHOW_TOAST","_","opt","onClose","toastClassName","hideProgressBar","closeButton","position","POSITION","TOP_CENTER","routes","path","component","meta","title","redirect","requiresAuth","children","props","flag","router","createRouter","history","createWebHistory","afterEach","to","NProgress","start","store","dispatch","redirect_if","done","beforeEach","from","isEnabled","matched","some","record","truthy","location","removeItem","beforeMount","el","binding","clickOutsideEvent","contains","body","unmounted","removeEventListener","mounted","modifiers","tooltipTemplate","getPosition","output","positionList","forEach","classList","add","innerHTML","handleClick","activeElement","toggle","showTooltip","popperInstance","update","catch","hideTooltip","remove","createPopper","placement","offset","click","VisitHmacValidator","mapping","hmacValidatorEvent","applicationEvent","eventMapping","Map","mapData","userProperties","_store$state$applicat","_store$state$user","_store$state$user2","find","comp","join","emitMixpanelEvent","eventProperties","eventName","dataOptions","app","createApp","App","i18n","createI18n","locale","fallbackLocale","messages","MDC_PAGEMETA","locale_messages","warn","use","Toast","transition","maxToasts","newestOnTop","directive","vueClickOutside","tooltip","mount","newHeaders","fetch","ok","json"],"mappings":"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","file":"js/app.5c057155.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"403\":\"403\",\"404\":\"404\",\"5xx\":\"5xx\",\"api-usage~monthly-usage\":\"api-usage~monthly-usage\",\"api-usage\":\"api-usage\",\"monthly-usage\":\"monthly-usage\",\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\":\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\",\"application-create\":\"application-create\",\"application-index~hmac-validator\":\"application-index~hmac-validator\",\"hmac-validator\":\"hmac-validator\",\"application-show\":\"application-show\",\"application-show-credentials\":\"application-show-credentials\",\"dashboard\":\"dashboard\",\"landing-page\":\"landing-page\",\"application-index\":\"application-index\",\"application-show-advanced\":\"application-show-advanced\",\"application-show-detail\":\"application-show-detail\"}[chunkId]||chunkId) + \".\" + {\"403\":\"1cf3e767\",\"404\":\"59afc9d5\",\"5xx\":\"00de5882\",\"api-usage~monthly-usage\":\"89d93da0\",\"api-usage\":\"4fa8d386\",\"monthly-usage\":\"713e9ad0\",\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\":\"6e9b9585\",\"application-create\":\"9414a380\",\"application-index~hmac-validator\":\"74eced6d\",\"hmac-validator\":\"8e61ff4f\",\"application-show\":\"8971420f\",\"application-show-credentials\":\"718b3d10\",\"dashboard\":\"d769d6fc\",\"landing-page\":\"1cbe207c\",\"application-index\":\"09bb8a9c\",\"application-show-advanced\":\"8406c5f3\",\"application-show-detail\":\"588be580\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"403\":1,\"404\":1,\"5xx\":1,\"api-usage~monthly-usage\":1,\"api-usage\":1,\"monthly-usage\":1,\"application-create\":1,\"hmac-validator\":1,\"application-show\":1,\"application-show-credentials\":1,\"dashboard\":1,\"landing-page\":1,\"application-index\":1,\"application-show-advanced\":1,\"application-show-detail\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"403\":\"403\",\"404\":\"404\",\"5xx\":\"5xx\",\"api-usage~monthly-usage\":\"api-usage~monthly-usage\",\"api-usage\":\"api-usage\",\"monthly-usage\":\"monthly-usage\",\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\":\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\",\"application-create\":\"application-create\",\"application-index~hmac-validator\":\"application-index~hmac-validator\",\"hmac-validator\":\"hmac-validator\",\"application-show\":\"application-show\",\"application-show-credentials\":\"application-show-credentials\",\"dashboard\":\"dashboard\",\"landing-page\":\"landing-page\",\"application-index\":\"application-index\",\"application-show-advanced\":\"application-show-advanced\",\"application-show-detail\":\"application-show-detail\"}[chunkId]||chunkId) + \".\" + {\"403\":\"abb2b383\",\"404\":\"be754632\",\"5xx\":\"abb2b383\",\"api-usage~monthly-usage\":\"cf584441\",\"api-usage\":\"807db5f6\",\"monthly-usage\":\"898f3db0\",\"application-create~application-show~application-show-credentials~dashboard~hmac-validator~landing-page\":\"31d6cfe0\",\"application-create\":\"9201de64\",\"application-index~hmac-validator\":\"31d6cfe0\",\"hmac-validator\":\"f501452f\",\"application-show\":\"3fd119a5\",\"application-show-credentials\":\"508cef4e\",\"dashboard\":\"c95839fc\",\"landing-page\":\"a4bf1dad\",\"application-index\":\"196fc495\",\"application-show-advanced\":\"f3cd2959\",\"application-show-detail\":\"a00c1111\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\n * Will emit event with provided data, default data is empty `Object`\n * @param {string} event Defined event enum\n * @param {object} data Data to be passed when emitted event\n */\n// eslint-disable-next-line\n export const emit = (event: string, data: object = {}): void => {\n window.dispatchEvent(new CustomEvent(event, { detail: data }));\n};\n/**\n * Will listen to specific event\n * @param {string} event Defined event enum\n * @param {Function} callback Callback function to be called if event emitted\n */\nexport const listen = (event: string, callback: (data: any) => void): void => {\n window.addEventListener(event, (e: Event) => {\n callback((e as CustomEvent).detail);\n });\n};\n","import flagsmith from \"flagsmith\";\nimport config from \"../config\";\n\nexport const initializeFlagsmith = async () => {\n await flagsmith.init({\n api: config.flagsmithApiUrl, // Ganti dengan URL API Flagsmith\n environmentID: config.flagsmithEnvironmentKey, // Ganti dengan Environment ID dari Flagsmith\n cacheFlags: true, // Opsional: Cache untuk performa\n // enableAnalytics: true, // Opsional: Untuk analitik\n });\n};\n\nexport const getFlagValue = (flagName: string): boolean => {\n return flagsmith.hasFeature(flagName);\n};\n\nexport const flagsmithInstance = flagsmith;\n","export default {\n appEnvironment: process.env.NODE_ENV,\n mixpanelToken: window.MIXPANEL_TOKEN,\n railsEnv: window.RAILS_ENV,\n flagsmithApiUrl: window.FLAGSMITH_API_URL,\n flagsmithEnvironmentKey: window.FLAGSMITH_ENVIRONMENT_KEY,\n};\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=327c5170&lang=scss\"","/**\n * API Plugin\n */\n\nimport axios, { Method, AxiosRequestConfig } from \"axios\";\nimport { APIResponse, JsonApiRequest } from \"./interfaces\";\nimport config from \"./config\";\n\n/**\n * Initialize axios\n */\nconst token = (document.querySelector(\"[name=csrf-token]\") as HTMLMetaElement)\n ?.content;\n\nconst httpWrapper = async (\n method: Method,\n endpoint: string,\n data: Record = {}\n): Promise => {\n const options: AxiosRequestConfig = {\n method: method,\n url: `/api/internal${endpoint}`,\n headers: {\n \"X-CSRF-TOKEN\": token,\n \"Content-Type\": \"application/json\",\n },\n };\n\n if (method.toLocaleLowerCase() === \"get\") {\n options.params = data;\n } else {\n options.data = data;\n }\n\n try {\n const response = await axios(options);\n return { result: response.data, error: null };\n } catch (error) {\n console.log(error);\n\n if (\"response\" in error) {\n return { result: error.response, error: error };\n }\n\n return { result: \"error\", error: error };\n }\n};\n\n// Set module\nexport default {\n applications: {\n async getHmacAuthApplications(): Promise {\n return httpWrapper(\"get\", \"/hmac_auth_applications\");\n },\n async getHmacAuthApplication(uuid: string): Promise {\n return httpWrapper(\"get\", \"/hmac_auth_applications/\" + uuid);\n },\n async createHmacAuthApplication(\n data: JsonApiRequest\n ): Promise {\n if ([\"sandbox\"].includes(config.railsEnv)) {\n return httpWrapper(\"post\", \"/hmac_auth_applications\", data);\n }\n return httpWrapper(\"post\", \"/mdc_api/hmac_auth_applications\", data);\n },\n async updateHmacAuthApplication(\n uuid: string,\n data: JsonApiRequest\n ): Promise {\n if (config.railsEnv === \"sandbox\") {\n return httpWrapper(\"put\", \"/hmac_auth_applications/\" + uuid, data);\n }\n return httpWrapper(\n \"put\",\n \"/mdc_api/hmac_auth_applications/\" + uuid,\n data\n );\n },\n async deleteHmacAuthApplication(\n uuid: string,\n data: JsonApiRequest\n ): Promise {\n if (config.railsEnv === \"sandbox\") {\n return httpWrapper(\"delete\", \"/hmac_auth_applications/\" + uuid);\n }\n return httpWrapper(\n \"delete\",\n \"/mdc_api/hmac_auth_applications/\" + uuid,\n data\n );\n },\n async regenerateSecretHmacAuthApplication(\n uuid: string,\n data: JsonApiRequest\n ): Promise {\n if (config.railsEnv === \"sandbox\") {\n return httpWrapper(\n \"post\",\n \"/hmac_auth_applications/\" + uuid + \"/regenerate_secret\"\n );\n }\n return httpWrapper(\n \"post\",\n \"/mdc_api/hmac_auth_applications/\" + uuid + \"/regenerate_secret\",\n data\n );\n },\n },\n\n companies: {\n async getCompanies(): Promise {\n return httpWrapper(\"get\", \"/users/me/companies\");\n },\n },\n\n scopes: {\n async getScopes(\n params: Record = {}\n ): Promise {\n return httpWrapper(\"get\", \"/authorized_scopes\", params);\n },\n },\n\n accessGrants: {\n async getAccessGrant(uuid: string): Promise {\n return httpWrapper(\"get\", \"/access_grants/\" + uuid);\n },\n async approve(uuid: string): Promise {\n return httpWrapper(\"post\", \"/access_grants/\" + uuid + \"/approve\", {});\n },\n },\n\n activityLog: {\n async getActivityLog(data: JsonApiRequest): Promise {\n return httpWrapper(\"get\", \"/mdc_api/activity_log\", data);\n },\n },\n\n apiUsage: {\n async getMonthlyLimit(companySsoID: string): Promise {\n return httpWrapper(\"get\", \"/mdc_api/api_usage/monthly/\" + companySsoID);\n },\n },\n};\n","const PREFIX = \"application\";\n/**\n * Event enum related to paywall\n * @enum {EventEnum}\n */\nexport const event = {\n SubmitCreateApplication: `${PREFIX}.submit-create-application`,\n UpdateApplication: `${PREFIX}.update-application`,\n RegenerateSecretApplication: `${PREFIX}.regenerate-secret-application`,\n DeleteApplication: `${PREFIX}.delete-application`,\n};\nexport const evenType = {\n EventSubmitCreateApplication: \"Submit Create Application\",\n EventUpdateApplication: \"Update Application\",\n EventRegenerateSecretApplication: \"Regenerate Secret Application\",\n EventDeleteApplication: \"Delete Application\",\n};\n","export type RouteType = {\n HMAC_VALIDATOR: string;\n};\n\nexport const ROUTES: RouteType = {\n HMAC_VALIDATOR: \"/dashboard/hmac-validator\",\n};\n","import config from \"../config\";\nimport mixpanel from \"mixpanel-browser\";\ntype EventEnum = string;\ninterface Metadata {\n CompanySSOID: string | undefined;\n}\n/**\n * Convert event enum to string.\n * @param {EventEnum} eventEnum Event enum\n * @returns {string} Mixpanel event name\n */\nexport const eventToString = (eventEnum: EventEnum): string => {\n return `${\n config.railsEnv === \"production\" ? \"\" : `[${config.railsEnv}] `\n }Mekari developer center - ${eventEnum}`;\n};\n/**\n * Set metadata for Mixpanel.\n * @param {Metadata} param0 Metadata object\n */\nexport const setMetadata = ({ CompanySSOID }: Metadata): void => {\n if (CompanySSOID) {\n mixpanel.identify(CompanySSOID);\n mixpanel.set_group(\"SSO Company ID\", CompanySSOID);\n mixpanel.get_group(\"SSO Company ID\", CompanySSOID).set({\n distinct_id: CompanySSOID,\n \"SSO Company ID\": CompanySSOID,\n });\n }\n mixpanel.people.set({\n \"User ID\": CompanySSOID,\n \"Distinct ID\": CompanySSOID,\n });\n};\n/**\n * Emit a Mixpanel event.\n * @param {EventEnum} eventEnum Event enum\n * @param {Record} properties Event properties\n */\nexport const emitEvent = (\n eventEnum: EventEnum,\n properties: Record\n): void => {\n mixpanel.track(eventToString(eventEnum), properties);\n};\n/**\n * Initialize Mixpanel instance.\n * @returns Initialized Mixpanel instance\n */\nconst init = () => {\n if (config.mixpanelToken) {\n mixpanel.init(config.mixpanelToken, {\n debug: config.railsEnv === \"development\",\n ignore_dnt: true,\n });\n }\n return {\n setMetadata,\n emitEvent,\n };\n};\nexport const mixpanelInstance = init();\n","\n\n\n","import { render } from \"./App.vue?vue&type=template&id=327c5170\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=327c5170&lang=scss\"\n\nimport exportComponent from \"/frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport { RootState } from \"@/interfaces\";\nimport api from \"@/internal-api\";\nimport {\n APPLICATION_SET_HMAC_AUTH,\n APPLICATION_CREATE_HMAC_AUTH,\n APPLICATION_FETCH_HMAC_AUTH,\n APPLICATION_UPDATE_HMAC_AUTH,\n APPLICATION_SET_NAME,\n APPLICATION_DELETE_HMAC_AUTH,\n APPLICATION_REGENRATE_SECRET_HMAC_AUTH,\n} from \"@/store-types\";\nimport {\n ApplicationState,\n CreateHmacAuthApplicationRequest,\n HmacAuthApplication,\n UpdateHmacAuthApplicationRequest,\n RegenerateSecretHmacAuthApplicationRequest,\n} from \"@/interfaces/application\";\n\n/**\n * Initial state\n */\nconst state: ApplicationState = {};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [APPLICATION_SET_HMAC_AUTH](\n state: ApplicationState,\n hmacAuthApplication: HmacAuthApplication\n ) {\n state.hmacAuthApplication = hmacAuthApplication;\n },\n [APPLICATION_SET_NAME](state: ApplicationState, name: string) {\n if (state.hmacAuthApplication === undefined) {\n return;\n }\n\n state.hmacAuthApplication.name = name;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n async [APPLICATION_CREATE_HMAC_AUTH](\n { commit },\n request: CreateHmacAuthApplicationRequest\n ) {\n const { result, error } = await api.applications.createHmacAuthApplication({\n name: request.name,\n company_id: request.companyId,\n company_name: request.companyName,\n scopes: request.scopes,\n page_name: request.pageName,\n });\n\n if (error) {\n throw error;\n }\n\n commit(APPLICATION_SET_HMAC_AUTH, {\n id: result.data.id,\n name: request.name,\n companyId: request.companyId,\n createdAt: result.data.attributes.created_at,\n clientId: result.data.attributes.client_id,\n clientSecret: result.data.attributes.client_secret,\n });\n },\n async [APPLICATION_FETCH_HMAC_AUTH]({ commit }, uuid: string) {\n const { result, error } = await api.applications.getHmacAuthApplication(\n uuid\n );\n\n if (error) {\n throw error;\n }\n\n commit(APPLICATION_SET_HMAC_AUTH, {\n id: result.data.id,\n name: result.data.attributes.name,\n companyId: result.data.attributes.company_id,\n createdAt: result.data.attributes.created_at,\n clientId: result.data.attributes.client_id,\n scopes: result.data.attributes.scopes,\n });\n },\n async [APPLICATION_UPDATE_HMAC_AUTH](\n { commit },\n request: UpdateHmacAuthApplicationRequest\n ) {\n const { result, error } = await api.applications.updateHmacAuthApplication(\n request.uuid,\n { name: request.name, page_name: request.pageName }\n );\n\n if (error) {\n throw error;\n }\n\n commit(APPLICATION_SET_HMAC_AUTH, {\n id: result.data.app_id,\n name: result.data.name,\n companyId: result.data.company_id,\n });\n },\n async [APPLICATION_DELETE_HMAC_AUTH](\n { commit },\n request: RegenerateSecretHmacAuthApplicationRequest\n ) {\n const { error } = await api.applications.deleteHmacAuthApplication(\n request.uuid,\n { page_name: request.pageName }\n );\n\n if (error) {\n throw error;\n }\n },\n async [APPLICATION_REGENRATE_SECRET_HMAC_AUTH](\n { commit },\n request: RegenerateSecretHmacAuthApplicationRequest\n ) {\n const { result, error } =\n await api.applications.regenerateSecretHmacAuthApplication(request.uuid, {\n page_name: request.pageName,\n });\n\n if (error) {\n throw error;\n }\n\n commit(APPLICATION_SET_HMAC_AUTH, {\n id: result.data.id,\n name: result.data.attributes.name,\n companyId: result.data.attributes.company_id,\n createdAt: result.data.attributes.created_at,\n clientId: result.data.attributes.client_id,\n clientSecret: result.data.attributes.client_secret,\n scopes: result.data.attributes.scopes,\n });\n },\n};\n\nexport const application: Module = {\n state,\n mutations,\n actions,\n};\n","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport { RootState } from \"@/interfaces\";\nimport api from \"@/internal-api\";\nimport { COMPANY_SET_COMPANIES, COMPANY_FETCH_COMPANIES } from \"@/store-types\";\nimport { Company, CompanyState } from \"@/interfaces/company\";\n\n/**\n * Initial state\n */\nconst state: CompanyState = {\n companies: [],\n};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [COMPANY_SET_COMPANIES](state: CompanyState, companies: Array) {\n state.companies = companies;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n async [COMPANY_FETCH_COMPANIES]({ commit }) {\n const { result, error } = await api.companies.getCompanies();\n\n if (error) {\n throw error;\n }\n\n commit(\n COMPANY_SET_COMPANIES,\n result.data.map(\n (payload: {\n id: any;\n attributes: {\n platforms: any;\n company_size: any;\n name: any;\n };\n }) => ({\n id: payload.id,\n name: payload.attributes.name,\n companySize: payload.attributes.company_size,\n platforms: payload.attributes.platforms,\n })\n )\n );\n },\n};\n\nexport const company: Module = {\n state,\n mutations,\n actions,\n};\n","import { GET } from \"../request\";\n\ntype ScopeResponse = {\n id: string;\n type: string;\n attributes: {\n name: string;\n parent_id: string;\n };\n};\n\nexport type Scope = {\n id: string;\n name: string;\n parentId?: string;\n};\n\nexport const getScopes = async function* (\n companySsoId: string\n): AsyncGenerator {\n const MAX_LOOP = 100;\n let page = 1;\n\n while (page <= MAX_LOOP) {\n const url = `/api/internal/authorized_scopes?page=${page}&company_id=${companySsoId}&auth_type=hmac_auth`;\n const key = `${companySsoId}:${page}`;\n if (sessionStorage.getItem(`${key}:END`)) return;\n const cachedScope = sessionStorage.getItem(key);\n if (cachedScope) {\n yield JSON.parse(cachedScope);\n } else {\n try {\n const scopes = await GET(url);\n if (scopes.length === 0) break;\n const newScopes = scopes.map(({ id, attributes }) => ({\n id,\n name: attributes.name,\n parentId: attributes.parent_id,\n }));\n sessionStorage.setItem(key, JSON.stringify(newScopes));\n yield newScopes;\n } catch (err) {\n console.error(\"Failed get scope:\", err);\n }\n }\n page++;\n }\n\n sessionStorage.setItem(`${companySsoId}:${page}:END`, \"true\");\n};\n","/**\n * Popup vuex module\n */\nimport type { Module, ActionTree, MutationTree } from \"vuex\";\nimport type { RootState } from \"@/interfaces\";\nimport { SCOPE_SET_SCOPES, SCOPE_FETCH_SCOPES } from \"@/store-types\";\nimport type { GetScopesRequest, ScopeState } from \"@/interfaces/scope\";\nimport { getScopes as hmacGetScopes, Scope } from \"@/api/hmac_application\";\n\n/**\n * Initial state\n */\nconst state: ScopeState = {\n scopes: [],\n};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [SCOPE_SET_SCOPES](state: ScopeState, scopes: Array) {\n state.scopes = scopes;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n async [SCOPE_FETCH_SCOPES]({ commit, state }, request: GetScopesRequest) {\n for await (const scopes of hmacGetScopes(request.companyId)) {\n commit(SCOPE_SET_SCOPES, state.scopes.concat(scopes));\n }\n },\n};\n\nexport const scope: Module = {\n state,\n mutations,\n actions,\n};\n","/**\n * API Plugin\n */\n\nimport axios, { Method, AxiosRequestConfig } from \"axios\";\nimport { APIResponse } from \"./interfaces\";\n\n/**\n * Initialize axios\n */\nconst token = (document.querySelector(\"[name=csrf-token]\") as HTMLMetaElement)\n ?.content;\n\nconst httpWrapper = async (\n method: Method,\n endpoint: string,\n data: Record = {}\n): Promise => {\n const options: AxiosRequestConfig = {\n method: method,\n url: `/api/v1${endpoint}`,\n headers: {\n \"X-CSRF-TOKEN\": token,\n \"Content-Type\": \"application/json\",\n },\n };\n\n if (method.toLocaleLowerCase() === \"get\") {\n options.params = data;\n } else {\n options.data = data;\n }\n\n try {\n const response = await axios(options);\n return { result: response.data, error: null };\n } catch (error) {\n console.log(error);\n\n if (\"response\" in error) {\n return { result: error.response, error: error };\n }\n\n return { result: \"error\", error: error };\n }\n};\n\n// Set module\nexport default {\n users: {\n /**\n * User Sign Up\n */\n async signUp(\n first_name: string,\n last_name: string,\n email: string,\n phone: string,\n password: string,\n password_confirmation: string\n ): Promise {\n return httpWrapper(\"post\", \"/users/sign_up\", {\n first_name: first_name,\n last_name: last_name,\n email: email,\n phone: phone,\n password: password,\n password_confirmation: password_confirmation,\n });\n },\n /**\n * Current user data\n */\n async me(): Promise {\n return httpWrapper(\"get\", \"/users/me\");\n },\n },\n};\n","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport {\n APIResponse,\n CurrentUserAPIResponse,\n RootState,\n UserState,\n} from \"@/interfaces\";\nimport api from \"@/api\";\nimport {\n USER_SET_ID,\n USER_SET_FIRST_NAME,\n USER_SET_LAST_NAME,\n USER_SET_EMAIL,\n USER_SET_AVATAR,\n USER_CLEAR_DATA,\n FETCH_CURRENT_USER,\n} from \"@/store-types\";\n\n/**\n * Module state\n */\nconst state: UserState = {\n id: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n avatar: \"\",\n};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [USER_SET_ID](state: UserState, id: string) {\n state.id = id;\n },\n [USER_SET_FIRST_NAME](state: UserState, firstName: string) {\n state.firstName = firstName;\n },\n [USER_SET_LAST_NAME](state: UserState, lastName: string) {\n state.lastName = lastName;\n },\n [USER_SET_EMAIL](state: UserState, email: string) {\n state.email = email;\n },\n [USER_SET_AVATAR](state: UserState, avatar: string) {\n state.avatar = avatar;\n },\n [USER_CLEAR_DATA](state: UserState) {\n state.id = \"\";\n state.firstName = \"\";\n state.lastName = \"\";\n state.email = \"\";\n state.avatar = \"\";\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n /**\n * Fetch current user data\n */\n async [FETCH_CURRENT_USER]({ commit }) {\n const { result, error }: CurrentUserAPIResponse =\n (await api.users.me()) as APIResponse;\n\n if (error) {\n commit(USER_CLEAR_DATA);\n return;\n }\n\n const attributes = result.data.attributes;\n\n commit(USER_SET_ID, result.data.id);\n commit(USER_SET_FIRST_NAME, attributes.first_name);\n commit(USER_SET_LAST_NAME, attributes.last_name);\n commit(USER_SET_EMAIL, attributes.email);\n\n if (attributes.avatar_original && attributes.avatar_thumbnails.length > 0) {\n commit(USER_SET_AVATAR, attributes.avatar_thumbnails[0].url);\n } else {\n commit(USER_SET_AVATAR, attributes.avatar);\n }\n },\n};\n\nexport const user: Module = {\n state,\n mutations,\n actions,\n};\n","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport {\n APIResponse,\n CurrentUserAPIResponse,\n ApplicationsState,\n RootState,\n} from \"@/interfaces\";\nimport api from \"@/internal-api\";\nimport { APPLICATIONS_SET_HMAC, FETCH_APPLICATIONS } from \"@/store-types\";\n\n/**\n * Module state\n */\nconst state: ApplicationsState = {\n hmacAuthApplications: [],\n};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [APPLICATIONS_SET_HMAC](state: ApplicationsState, hmacAuthApplications: []) {\n state.hmacAuthApplications = hmacAuthApplications;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n /**\n * Fetch current applications data\n */\n async [FETCH_APPLICATIONS]({ commit }) {\n const { result, error }: CurrentUserAPIResponse =\n await api.applications.getHmacAuthApplications();\n if (error) {\n throw error;\n }\n commit(APPLICATIONS_SET_HMAC, result.data);\n },\n};\n\nexport const applications: Module = {\n state,\n mutations,\n actions,\n};\n","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport { RootState } from \"@/interfaces\";\nimport api from \"@/internal-api\";\nimport {\n ACCESS_GRANT_FETCH_ACCESS_GRANTS,\n ACCESS_GRANT_SET_ACCESS_GRANTS,\n} from \"@/store-types\";\nimport { AccessGrantState, AccessGrant } from \"@/interfaces/access_grant\";\n\n/**\n * Initial state\n */\nconst state: AccessGrantState = {};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [ACCESS_GRANT_SET_ACCESS_GRANTS](\n state: AccessGrantState,\n accessGrant: AccessGrant\n ) {\n state.accessGrant = accessGrant;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n async [ACCESS_GRANT_FETCH_ACCESS_GRANTS]({ commit }, uuid: string) {\n const { result, error } = await api.accessGrants.getAccessGrant(uuid);\n\n if (error) {\n throw error;\n }\n commit(ACCESS_GRANT_SET_ACCESS_GRANTS, {\n id: result.data[0].id,\n requestorApp: result.data[0].requestor_application.name,\n products: result.data[0].products,\n scopes: result.data[0].scopes,\n scope_details: result.data[0].scope_details,\n email: result.data[0].email_owner,\n status: result.data[0].status,\n });\n },\n};\n\nexport const access_grant: Module = {\n state,\n mutations,\n actions,\n};\n","/**\n * Popup vuex module\n */\nimport { Module, ActionTree, MutationTree } from \"vuex\";\nimport { RootState } from \"@/interfaces\";\nimport api from \"@/internal-api\";\nimport {\n FETCH_ACTIVITY_LOGS,\n SET_DATA_ACTIVITY_LOGS,\n SET_PAGINATION_ACTIVITY_LOGS,\n} from \"@/store-types\";\nimport { ActivityLogState, ActivityLogResponse } from \"@/interfaces\";\nimport { ActivityLogQueryParams } from \"@/interfaces/activity_log\";\n\n/**\n * Initial state\n */\nconst state: ActivityLogState = {\n activityLogs: [],\n pagination: {\n page: 0,\n size: 0,\n next: 0,\n prev: 0,\n total_page: 0,\n total_record: 0,\n },\n};\n\n/**\n * Module mutation\n */\nconst mutations: MutationTree = {\n [SET_DATA_ACTIVITY_LOGS](state: ActivityLogState, activityLogs: any) {\n state.activityLogs = activityLogs;\n },\n [SET_PAGINATION_ACTIVITY_LOGS](state: ActivityLogState, pagination: any) {\n state.pagination = pagination;\n },\n};\n\n/**\n * Module action\n */\nconst actions: ActionTree = {\n /**\n * Fetch current applications data\n */\n async [FETCH_ACTIVITY_LOGS]({ commit }, request: ActivityLogQueryParams) {\n const { result, error }: ActivityLogResponse =\n await api.activityLog.getActivityLog({\n ...request,\n });\n if (error) {\n throw error;\n }\n commit(SET_DATA_ACTIVITY_LOGS, result.data);\n commit(SET_PAGINATION_ACTIVITY_LOGS, result.pagination);\n },\n};\n\nexport const activity_log: Module = {\n state,\n mutations,\n actions,\n};\n","import { createStore } from \"vuex\";\nimport { RootState } from \"../interfaces\";\n\nimport { application } from \"./modules/application\";\nimport { company } from \"./modules/company\";\nimport { scope } from \"./modules/scope\";\nimport { user } from \"./modules/user\";\nimport { applications } from \"./modules/applications\";\nimport { access_grant } from \"./modules/access_grant\";\nimport { activity_log } from \"./modules/activity_log\";\nimport { SHOW_TOAST } from \"@/store-types\";\nimport { useToast, TYPE as ToastType, POSITION } from \"vue-toastification\";\n\nconst toast = useToast();\n\nexport default createStore({\n modules: {\n applications,\n application,\n company,\n scope,\n user,\n access_grant,\n activity_log,\n },\n actions: {\n [SHOW_TOAST](\n _,\n opt: {\n message: string;\n type?: ToastType;\n onClose?: () => void;\n timeout?: number;\n }\n ): void {\n toast(opt.message, {\n type: opt.type,\n onClose: opt.onClose,\n toastClassName: \"mdc-toast\",\n hideProgressBar: true,\n closeButton: false,\n position: POSITION.TOP_CENTER,\n timeout: opt.timeout,\n });\n },\n },\n});\n","import { ROUTES } from \"@/constants/routes\";\nimport NProgress from \"nprogress\";\nimport { createRouter, createWebHistory, RouteRecordRaw } from \"vue-router\";\nimport store from \"@/store\";\nimport { FETCH_CURRENT_USER } from \"@/store-types\";\nimport { getFlagValue } from \"@/utils/flagsmith\";\n\nconst routes: Array = [\n {\n path: \"/\",\n name: \"LandingPage\",\n component: () =>\n import(/* webpackChunkName: \"landing-page\" */ \"../views/LandingPage.vue\"),\n meta: {\n title: \"Mekari Developer\",\n },\n },\n // {\n // path: \"/users/sign_up\",\n // name: \"SignUpPage\",\n // component: () =>\n // import(/* webpackChunkName: \"signup\" */ \"../views/users/SignUp.vue\"),\n // meta: {\n // title: \"Sign Up - Mekari Developer\",\n // },\n // },\n {\n path: \"/dashboard\",\n redirect: { name: \"ApplicationIndex\" },\n name: \"Dashboard\",\n component: () =>\n import(\n /* webpackChunkName: \"dashboard\" */ \"../views/dashboard/Index.vue\"\n ),\n meta: {\n title: \"Dashboard - Mekari Developer\",\n requiresAuth: true,\n },\n children: [\n {\n path: \"applications\",\n name: \"ApplicationIndex\",\n component: () =>\n import(\n /* webpackChunkName: \"application-index\" */ \"../views/dashboard/applications/Index.vue\"\n ),\n meta: {\n title: \"Applications - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"applications/:uuid\",\n name: \"ApplicationShow\",\n redirect: { name: \"ApplicationShowDetail\" },\n component: () =>\n import(\n /* webpackChunkName: \"application-show\" */ \"../views/dashboard/applications/Show.vue\"\n ),\n props: true,\n meta: {\n title: \"Application - Mekari Developer\",\n requiresAuth: true,\n },\n children: [\n {\n path: \"detail\",\n name: \"ApplicationShowDetail\",\n component: () =>\n import(\n /* webpackChunkName: \"application-show-detail\" */ \"../views/dashboard/applications/show/Detail.vue\"\n ),\n meta: {\n title: \"Application - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"credentials\",\n name: \"ApplicationShowCredentials\",\n component: () =>\n import(\n /* webpackChunkName: \"application-show-credentials\" */ \"../views/dashboard/applications/show/Credentials.vue\"\n ),\n meta: {\n title: \"Application - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"advanced\",\n name: \"ApplicationShowAdvanced\",\n component: () =>\n import(\n /* webpackChunkName: \"application-show-advanced\" */ \"../views/dashboard/applications/show/Advanced.vue\"\n ),\n meta: {\n title: \"Application - Mekari Developer\",\n requiresAuth: true,\n },\n },\n ],\n },\n {\n path: \"create_application/hmac_auth\",\n name: \"CreateHmacAuthApplication\",\n component: () =>\n import(\n /* webpackChunkName: \"application-create\" */ \"../views/dashboard/applications/CreateHmacAuthApplication.vue\"\n ),\n props: true,\n meta: {\n title: \"Create HMAC Application - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: ROUTES.HMAC_VALIDATOR,\n name: \"HmacValidator\",\n component: () =>\n import(\n /* webpackChunkName: \"hmac-validator\" */ \"../views/dashboard/applications/HmacValidator.vue\"\n ),\n props: true,\n meta: {\n title: \"HMAC Validator - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"/dashboard/activity_logs\",\n name: \"ActivityLogs\",\n component: () =>\n import(\n /* webpackChunkName: \"application-index\" */ \"../views/dashboard/activity_log/Index.vue\"\n ),\n meta: {\n title: \"Activity Logs - Mekari Developer\",\n requiresAuth: true,\n flag: \"enable_activity_log\",\n },\n },\n {\n path: \"create_application/hmac_auth\",\n name: \"CreateHmacAuthApplication\",\n component: () =>\n import(\n /* webpackChunkName: \"application-create\" */ \"../views/dashboard/applications/CreateHmacAuthApplication.vue\"\n ),\n props: true,\n meta: {\n title: \"Create HMAC Application - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"/dashboard/activity_logs\",\n name: \"ActivityLogs\",\n component: () =>\n import(\n /* webpackChunkName: \"application-index\" */ \"../views/dashboard/activity_log/Index.vue\"\n ),\n meta: {\n title: \"Activity Logs - Mekari Developer\",\n requiresAuth: true,\n flag: \"enable_activity_log\",\n },\n },\n {\n path: \"/dashboard/api_usage\",\n redirect: { name: \"MonthlyUsage\" },\n name: \"APIUsage\",\n component: () =>\n import(\n /* webpackChunkName: \"api-usage\" */ \"../views/dashboard/ApiUsage.vue\"\n ),\n meta: {\n title: \"API Usage - Mekari Developer\",\n requiresAuth: false,\n flag: \"enable_api_usage\",\n },\n children: [\n {\n path: \"rate_limit\",\n name: \"RateLimit\",\n component: () =>\n import(\n /* webpackChunkName: \"api-usage\" */ \"../views/dashboard/api_usage/RateLimitTab.vue\"\n ),\n meta: {\n title: \"API Usage - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"monthly_usage\",\n name: \"MonthlyUsage\",\n component: () =>\n import(\n /* webpackChunkName: \"monthly-usage\" */ \"../views/dashboard/api_usage/MonthlyUsageTab.vue\"\n ),\n meta: {\n title: \"API Usage - Mekari Developer\",\n requiresAuth: false,\n },\n },\n ],\n },\n ],\n },\n {\n path: \"/access_grant/approved\",\n name: \"AccessGrantApproved\",\n component: () =>\n import(\n /* webpackChunkName: \"404\" */ \"../views/access_grant/Approved.vue\"\n ),\n props: true,\n meta: {\n title: \"Grant Permission Approved - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"/access_grant/:uuid\",\n name: \"AccessGrantPermission\",\n component: () =>\n import(\n /* webpackChunkName: \"404\" */ \"../views/access_grant/Permission.vue\"\n ),\n props: true,\n meta: {\n title: \"Grant Permission - Mekari Developer\",\n requiresAuth: true,\n },\n },\n {\n path: \"/forbidden\",\n name: \"403\",\n component: () =>\n import(/* webpackChunkName: \"403\" */ \"../views/errors/Forbidden.vue\"),\n meta: {\n title: \"Forbidden - Mekari Developer\",\n },\n },\n {\n path: \"/internal_server_error\",\n name: \"5xx\",\n component: () =>\n import(/* webpackChunkName: \"5xx\" */ \"../views/errors/ServerError.vue\"),\n meta: {\n title: \"Internal Server Error - Mekari Developer\",\n },\n },\n {\n path: \"/:pathMatch(.*)*\",\n name: \"404\",\n component: () =>\n import(/* webpackChunkName: \"404\" */ \"../views/errors/NotFound.vue\"),\n meta: {\n title: \"Page Not Found - Mekari Developer\",\n },\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nrouter.afterEach(async (to) => {\n window.document.title = (to.meta.title || \"Mekari Developer\") as string;\n\n if (to.meta.requiresAuth) {\n NProgress.start();\n\n await store.dispatch(FETCH_CURRENT_USER);\n\n if (redirect_if(store.state.user.id === \"\")) return\n\n NProgress.done();\n }\n});\n\nrouter.beforeEach(async (to, from, next) => {\n if (to.meta.flag) {\n const isEnabled = getFlagValue(to.meta.flag as string);\n if (!isEnabled) {\n return next({ name: \"Dashboard\" });\n }\n }\n\n await store.dispatch(FETCH_CURRENT_USER);\n const requiresAuth = to.matched.some((record) => record.meta.requiresAuth);\n\n if (redirect_if(requiresAuth && store.state.user.id === \"\")) return\n\n next();\n});\n\nconst redirect_if = (truthy: boolean): boolean => {\n const redirect = sessionStorage.getItem(\"redirect\");\n\n if (truthy && !redirect) {\n sessionStorage.setItem(\"redirect\", window.location.href);\n window.location.href = \"/users/sign_in\";\n return true;\n }\n\n if (redirect) {\n window.location.href = redirect;\n sessionStorage.removeItem(\"redirect\");\n return true;\n }\n\n return false\n}\n\nexport default router;\n","export default {\n beforeMount(el: any, binding: any) { // eslint-disable-line\n el.clickOutsideEvent = function (event: Event) {\n if (!(el === event.target || el.contains(event.target))) {\n binding.value(event, el);\n }\n };\n document.body.addEventListener(\"click\", el.clickOutsideEvent);\n },\n unmounted(el: any) { // eslint-disable-line\n document.body.removeEventListener(\"click\", el.clickOutsideEvent);\n },\n};\n","import { createPopper, Placement } from \"@popperjs/core\";\n\nexport default {\n mounted(el: any, binding: any) { // eslint-disable-line\n const { modifiers } = binding;\n\n // Create tooltip, and the append it to document.body\n const tooltipTemplate = document.createElement(\"div\");\n tooltipTemplate.classList.add(\"mpx-tooltip\", \"mpx-fade\");\n tooltipTemplate.innerHTML = `\n
\n ${binding.value ? binding.value : \"\"}\n
\n `;\n document.body.appendChild(tooltipTemplate);\n\n // Helper function to get tooltip js placement on popperjs\n function getPosition(): Placement {\n let output = \"top\";\n const positionList = [\n \"top-start\",\n \"top\",\n \"top-end\",\n \"right-start\",\n \"right\",\n \"right-end\",\n \"bottom-start\",\n \"bottom\",\n \"bottom-end\",\n \"left-start\",\n \"left\",\n \"left-end\",\n ];\n positionList.forEach((position) => {\n output = modifiers[position] ? position : output;\n });\n return output as Placement;\n }\n\n // Function to handle click event\n el.handleClick = (e: Event) => {\n if (document.activeElement !== e.target) {\n tooltipTemplate.classList.toggle(\"mpx-show\");\n }\n };\n\n // Function to handle show tooltip on hover and focus event\n el.showTooltip = () => {\n if (!el.popperInstance) {\n return;\n }\n\n el.popperInstance\n .update()\n .then(() => tooltipTemplate.classList.add(\"mpx-show\"))\n .catch((e: string) => console.error(e)); // eslint-disable-line;\n };\n\n // Function to handle hide tooltip on hover and focus event\n el.hideTooltip = (e: Event) => {\n if (document.activeElement !== e.target) {\n tooltipTemplate.classList.remove(\"mpx-show\");\n }\n };\n\n // Register popper to determine the position of tooltip\n el.popperInstance = createPopper(el, tooltipTemplate, {\n placement: getPosition(),\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 8],\n },\n },\n ],\n });\n\n // Handle event of tooltip\n if (modifiers.click) {\n el.addEventListener(\"click\", el.handleClick);\n } else {\n el.addEventListener(\"mouseenter\", el.showTooltip);\n el.addEventListener(\"mouseleave\", el.hideTooltip);\n }\n el.addEventListener(\"focus\", el.showTooltip);\n el.addEventListener(\"blur\", el.hideTooltip);\n },\n\n unmounted(el: any) { // eslint-disable-line\n el.removeEventListener(\"click\", el.handleClick);\n el.removeEventListener(\"mouseenter\", el.showTooltip);\n el.removeEventListener(\"mouseleave\", el.hideTooltip);\n el.removeEventListener(\"focus\", el.showTooltip);\n el.removeEventListener(\"blur\", el.hideTooltip);\n },\n};\n","const PREFIX = \"hmac-validator\";\n/**\n * Event enum related to paywall\n * @enum {EventEnum}\n */\nexport const event = {\n VisitHmacValidator: `${PREFIX}.visit-hmac-validator`,\n};\nexport const evenType = {\n EventHmacValidator: \"HMAC Validator\",\n};\n","import { event as hmacValidatorEvent } from \"./enums/hmac-validator\";\nimport { event as applicationEvent } from \"./enums/applications\";\n// prettier-ignore\nconst mapping: [string, string][] = [\n [hmacValidatorEvent.VisitHmacValidator, \"HMAC validator - Visit\"], \n [applicationEvent.SubmitCreateApplication, \"Application - Submit Create\"],\n [applicationEvent.UpdateApplication, \"Application - Update\"],\n [applicationEvent.RegenerateSecretApplication, \"Application - Regenerate the client's secret key\"],\n [applicationEvent.DeleteApplication, \"Application - Delete\"],\n];\n/**\n * Will create event name for Mixpanel based on event enum.\n * @param {string} eventEnum Event enum listed, e.g., `PageOpened`\n * @returns {string | undefined} Mixpanel event name in string\n */\nexport const eventMapping = (eventEnum: string): string | undefined => {\n const map = new Map();\n mapping.forEach((mapData) => map.set(mapData[0], mapData[1]));\n return map.get(eventEnum);\n};\n","import store from \"@/store\";\nimport { FETCH_CURRENT_USER } from \"@/store-types\";\n\n/**\n * Generates user properties for tracking purposes.\n *\n * @return {Object} User properties object\n */\nexport const userProperties = async () => {\n await store.dispatch(FETCH_CURRENT_USER);\n\n const companyId = store.state.application.hmacAuthApplication?.companyId;\n const company = store.state.company.companies.find(\n (comp) => comp.id === companyId\n );\n const companyName = company ? company.name : \"-\";\n const companySize = company ? company.companySize : \"-\";\n const platforms = company ? company.platforms.join() : \"-\";\n\n return {\n \"Distinct ID\": companyId || \"-\",\n \"SSO Company ID\": companyId || \"-\",\n \"Company Name\": companyName || \"-\",\n \"Mekari User ID\": store.state.user?.id || \"-\",\n \"Mekari Email\": store.state.user?.email || \"-\",\n \"Is Using Product\": platforms || \"-\",\n \"Is New Trackers\": true,\n \"Company Size\": companySize || \"-\",\n };\n};\n","import { mixpanelInstance } from \"@/utils/mixpanel\";\nimport { eventMapping } from \"../mapping-event\";\nimport { userProperties } from \"../metadata\";\nexport const emitMixpanelEvent = async (\n event: string,\n eventProperties: any\n): Promise => {\n const eventName = eventMapping(event);\n if (eventName) {\n // custom event properties\n const user = await userProperties();\n const properties = {\n ...user,\n ...eventProperties,\n };\n mixpanelInstance.emitEvent(eventName, properties);\n } else {\n console.error(`Event name not found for ${event}`);\n }\n};\n","import { listen } from \"@/utils/event\";\nimport { event } from \"../enums/hmac-validator\";\nimport { emitMixpanelEvent } from \"../emit\";\n\nlisten(event.VisitHmacValidator, (dataOptions: Record) => {\n emitMixpanelEvent(event.VisitHmacValidator, dataOptions);\n});\n","import { listen } from \"@/utils/event\";\nimport { event } from \"../enums/applications\";\nimport { emitMixpanelEvent } from \"../emit\";\n\nlisten(\n event.SubmitCreateApplication,\n (dataOptions: Record) => {\n emitMixpanelEvent(event.SubmitCreateApplication, dataOptions);\n }\n);\n\nlisten(event.UpdateApplication, (dataOptions: Record) => {\n emitMixpanelEvent(event.UpdateApplication, dataOptions);\n});\n\nlisten(\n event.RegenerateSecretApplication,\n (dataOptions: Record) => {\n emitMixpanelEvent(event.RegenerateSecretApplication, dataOptions);\n }\n);\n\nlisten(event.DeleteApplication, (dataOptions: Record) => {\n emitMixpanelEvent(event.DeleteApplication, dataOptions);\n});\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport { createI18n } from \"vue-i18n\";\nimport vueClickOutside from \"@/directives/vue-click-outside\";\nimport tooltip from \"@/directives/tooltip\";\nimport Toast from \"vue-toastification\";\n\nimport \"vue-toastification/dist/index.css\";\nimport \"@/events/mixpanel/listen\";\nimport { init } from \"js-utils/dist/browser-fingerprint\";\n\nimport { initializeFlagsmith } from \"./utils/flagsmith\";\nimport \"@fortawesome/fontawesome-free/css/all.css\";\n\nconst app = createApp(App);\n\n(async () => {\n await init();\n const i18n = createI18n({\n locale: \"xx\",\n fallbackLocale: \"xx\",\n messages: window.MDC_PAGEMETA.locale_messages,\n });\n\n try {\n await initializeFlagsmith();\n console.log(\"Flagsmith is ready to use\");\n } catch (error) {\n console.warn(\"Running project without Flagsmith\");\n }\n\n app.use(store);\n app.use(router);\n app.use(i18n);\n app.use(Toast, {\n transition: \"Vue-Toastification__fade\",\n maxToasts: 1,\n newestOnTop: true,\n timeout: 3000,\n });\n app.directive(\"click-outside\", vueClickOutside);\n app.directive(\"tooltip\", tooltip);\n app.mount(\"#app\");\n})();\n","/**\n * Store types for user module.\n */\nexport const USER_SET_ID = \"USER_SET_ID\";\nexport const USER_SET_FIRST_NAME = \"USER_SET_FIRST_NAME\";\nexport const USER_SET_LAST_NAME = \"USER_SET_LAST_NAME\";\nexport const USER_SET_EMAIL = \"USER_SET_EMAIL\";\nexport const USER_SET_AVATAR = \"USER_SET_AVATAR\";\nexport const USER_CLEAR_DATA = \"USER_CLEAR_DATA\";\nexport const FETCH_CURRENT_USER = \"FETCH_CURRENT_USER\";\nexport const SHOW_TOAST = \"SHOW_TOAST\";\n\n/**\n * Store types for applications module.\n */\nexport const APPLICATIONS_SET_HMAC = \"APPLICATIONS_SET_HMAC\";\nexport const FETCH_APPLICATIONS = \"FETCH_APPLICATIONS\";\n\n/**\n * Store types for application module.\n */\nexport const APPLICATION_SET_HMAC_AUTH = \"APPLICATION_SET_HMAC_AUTH\";\nexport const APPLICATION_CREATE_HMAC_AUTH = \"APPLICATION_CREATE_HMAC_AUTH\";\nexport const APPLICATION_FETCH_HMAC_AUTH = \"APPLICATION_FETCH_HMAC_AUTH\";\nexport const APPLICATION_UPDATE_HMAC_AUTH = \"APPLICATION_UPDATE_HMAC_AUTH\";\nexport const APPLICATION_SET_NAME = \"APPLICATION_SET_NAME\";\nexport const APPLICATION_DELETE_HMAC_AUTH = \"APPLICATION_DELETE_HMAC_AUTH\";\nexport const APPLICATION_SET_CLIENT_ID = \"APPLICATION_SET_CLIENT_ID\";\nexport const APPLICATION_SET_CLIENT_SECRET = \"APPLICATION_SET_CLIENT_SECRET\";\nexport const APPLICATION_REGENRATE_SECRET_HMAC_AUTH =\n \"APPLICATION_REGENRATE_SECRET_HMAC_AUTH\";\n\n/**\n * Store types for application module.\n */\nexport const COMPANY_SET_COMPANIES = \"COMPANY_SET_COMPANIES\";\nexport const COMPANY_FETCH_COMPANIES = \"COMPANY_FETCH_COMPANIES\";\n\n/**\n * Store types for scope module.\n */\nexport const SCOPE_SET_SCOPES = \"SCOPE_SET_SCOPES\";\nexport const SCOPE_FETCH_SCOPES = \"SCOPE_FETCH_SCOPES\";\n\n/**\n * Store types for access grant module.\n */\nexport const ACCESS_GRANT_SET_ACCESS_GRANTS = \"ACCESS_GRANT_SET_ACCESS_GRANTS\";\nexport const ACCESS_GRANT_FETCH_ACCESS_GRANTS =\n \"ACCESS_GRANT_FETCH_ACCESS_GRANTS\";\n\n/**\n * Store types for activity log module.\n */\nexport const FETCH_ACTIVITY_LOGS = \"FETCH_ACTIVITY_LOGS\";\nexport const SET_DATA_ACTIVITY_LOGS = \"SET_DATA_ACTIVITY_LOGS\";\nexport const SET_PAGINATION_ACTIVITY_LOGS = \"SET_PAGINATION_ACTIVITY_LOGS\";\n","type Response = {\n data: T;\n meta?: unknown;\n links?: unknown;\n};\n\nconst request = async (\n method: string,\n url: string,\n payload: T,\n headers?: Record\n): Promise => {\n const token = (document.querySelector(\"[name=csrf-token]\") as HTMLMetaElement)\n ?.content;\n\n const newHeaders = {\n \"X-CSRF-TOKEN\": token,\n \"Content-Type\": \"application/json\",\n ...headers,\n };\n\n const init: RequestInit = {\n method,\n headers: newHeaders,\n };\n\n if (payload) init.body = JSON.stringify(payload);\n\n const response = await fetch(url, init);\n if (!response.ok)\n throw new Error(`HTTP error: request to ${url} return ${response.status}`);\n const json = await response.json();\n return (json as Response).data;\n};\n\nexport const GET = (url: string, headers?: Record) =>\n request(\"GET\", url, null, headers);\n"],"sourceRoot":""}