{"version":3,"file":"js/app.c1197ce7.js","mappings":"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","sources":["webpack://og-club-mint-site/./src/api/index.js","webpack://og-club-mint-site/./src/App.vue","webpack://og-club-mint-site/./src/components/NotificationMessage.vue","webpack://og-club-mint-site/src/components/NotificationMessage.vue","webpack://og-club-mint-site/./src/components/NotificationMessage.vue?f75a","webpack://og-club-mint-site/./src/components/NotificationMessage.vue?1bbd","webpack://og-club-mint-site/src/App.vue","webpack://og-club-mint-site/./src/App.vue?5a95","webpack://og-club-mint-site/./src/App.vue?01fe","webpack://og-club-mint-site/./src/router/index.js","webpack://og-club-mint-site/./src/directives/LazyLoad.js","webpack://og-club-mint-site/./src/main.js","webpack://og-club-mint-site/./src/store/index.js","webpack://og-club-mint-site/./src/utils/app-storage.js","webpack://og-club-mint-site/./src/utils/constants.js","webpack://og-club-mint-site/./src/utils/index.js","webpack://og-club-mint-site/./src/utils/requests.js","webpack://og-club-mint-site/./src/utils/superfine-integrate.js","webpack://og-club-mint-site/../../node_modules/tslib/tslib.es6.js","webpack://og-club-mint-site/../../gamejam-tracking-core/src/types.ts","webpack://og-club-mint-site/../../gamejam-tracking-core/src/utils.ts","webpack://og-club-mint-site/../../gamejam-tracking-core/src/eventemitter.ts","webpack://og-club-mint-site/../../gamejam-tracking-core/src/index.ts","webpack://og-club-mint-site/../src/context.ts","webpack://og-club-mint-site/../src/storage.ts","webpack://og-club-mint-site/../src/ua-parser.js","webpack://og-club-mint-site/../src/gamejam-tracking-web.ts","webpack://og-club-mint-site/./src/utils/tracking-manager.js","webpack://og-club-mint-site/./src/utils/web3.js","webpack://og-club-mint-site/webpack/bootstrap","webpack://og-club-mint-site/webpack/runtime/amd options","webpack://og-club-mint-site/webpack/runtime/chunk loaded","webpack://og-club-mint-site/webpack/runtime/compat get default export","webpack://og-club-mint-site/webpack/runtime/create fake namespace object","webpack://og-club-mint-site/webpack/runtime/define property getters","webpack://og-club-mint-site/webpack/runtime/ensure chunk","webpack://og-club-mint-site/webpack/runtime/get javascript chunk filename","webpack://og-club-mint-site/webpack/runtime/get mini-css chunk filename","webpack://og-club-mint-site/webpack/runtime/global","webpack://og-club-mint-site/webpack/runtime/hasOwnProperty shorthand","webpack://og-club-mint-site/webpack/runtime/load script","webpack://og-club-mint-site/webpack/runtime/make namespace object","webpack://og-club-mint-site/webpack/runtime/node module decorator","webpack://og-club-mint-site/webpack/runtime/publicPath","webpack://og-club-mint-site/webpack/runtime/css loading","webpack://og-club-mint-site/webpack/runtime/jsonp chunk loading","webpack://og-club-mint-site/webpack/startup"],"sourcesContent":["import { request, collabRequest, eventRequest } from '../utils/requests'\n\nexport async function APIRequestChallenge(publicAddress) {\n return request({\n url: '/auth/challenge',\n method: 'post',\n data: {\n publicAddress\n }\n })\n}\n\nexport async function APIVerify({ address, signature }) {\n return request({\n url: '/auth/verify',\n method: 'post',\n data: {\n publicAddress: address,\n signature\n }\n })\n}\n\nexport async function APIReroll(session_id) {\n return request({\n url: `/session/${session_id}/re-roll`,\n method: 'post'\n })\n}\n\nexport async function APIPremint(session_id) {\n return request({\n url: `/session/${session_id}/pre-mint`,\n method: 'post'\n })\n}\n\nexport async function APIUpdate({ id, hash }) {\n return request({\n url: `/session/${id}/update`,\n method: 'post',\n params: {\n tx_hash: hash\n }\n })\n}\n\nexport async function APIFetchContract() {\n return request({\n url: '/public/info',\n method: 'get'\n })\n}\n\nexport async function APICheckWallet(address) {\n return request({\n url: `/public/whitelist?address=${address}`,\n method: 'get',\n })\n}\n\nexport async function APIRequestDiscordChallenge({guildId, discordId, code, address}) {\n return collabRequest({\n url: `/challenge`,\n method: 'get',\n params: {\n guildId: guildId,\n\t\t\tdiscordId: discordId,\n\t\t\tcode: code,\n\t\t\tpublicAddress: address\n }\n })\n}\n\n\nexport async function APIVerifyDiscord({guildId, discordId, signature, address}) {\n return collabRequest({\n url: `/verify`,\n method: 'post',\n data: {\n guildId: guildId,\n\t\t\tdiscordId: discordId,\n\t\t\tsignature: signature,\n\t\t\tpublicAddress: address\n }\n })\n}\n\n\nexport async function APIRegisterWASDLondon(data) {\n\treturn eventRequest({\n\t\turl: `/event/2/register`,\n\t\tmethod: 'post',\n\t\tdata\n\t})\n}\n\nexport async function APIFetchWASDLondon() {\n\treturn eventRequest({\n\t\turl: `/event/2`,\n\t\tmethod: 'get',\n\t})\n}\n\nexport async function APIVerifyArt({ publicAddress, signature, wasdTokenIds }) {\n return request({\n url: '/auth/verify-art',\n method: 'post',\n data: {\n publicAddress,\n signature,\n wasdTokenIds\n }\n })\n}\n\nexport async function APIFetchClaimableRules(userAddress) {\n return request({\n url: '/public/wasd-art-ids',\n method: 'get',\n params: {\n userAddress\n }\n })\n}\n\nexport async function APIFetchDownloadChallenge(publicAddress) {\n return request({\n url: '',\n method: 'post',\n params: {\n publicAddress\n }\n })\n}\n\nexport async function APIFetchDownloadURL(wasdTokenId) {\n return request({\n url: '/public/model-download',\n method: 'post',\n data: {\n wasdTokenId\n }\n })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.theme,attrs:{\"id\":\"app\"}},[_c('header',[_c('div',{staticStyle:{\"width\":\"150px\"}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"@/assets/images/logo.svg\")},on:{\"click\":function($event){return _vm.goTo('')}}})]),_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){return _vm.goTo('')}}},[_vm._v(\"Home\")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/portal') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('portal')}}},[_vm._v(\" Portal \")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/playground') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('playground')}}},[_vm._v(\" Playground \")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/faq') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('faq')}}},[_vm._v(\" FAQs \")])])]),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\",\"gap\":\"10px\"}},[_c('a',{staticClass:\"header-btn header-btn--buy\",attrs:{\"href\":\"https://opensea.io/collection/weallsurviveddeath\",\"target\":\"_blank\"}},[_vm._v(\"Buy a Survivor\")]),(!_vm.wallet || !_vm.wallet.address)?[_c('a',{staticClass:\"header-btn header-btn--wallet\",on:{\"click\":function($event){return _vm.goTo('login', true)}}},[_vm._v(\"Connect wallet\")])]:[_c('div',{staticClass:\"header-btn header-btn--wallet\",on:{\"click\":_vm.toggleLogout}},[_vm._v(\" \"+_vm._s(_vm._f(\"formatAddress\")(_vm.wallet.address))+\" \"),(_vm.showLogout)?_c('div',{staticClass:\"header-btn btn-logout\",on:{\"click\":_vm.logout}},[_vm._v(\" Logout \")]):_vm._e()])]],2)]),_c('div',{staticClass:\"header-mobile\"},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"@/assets/images/logo.svg\")},on:{\"click\":function($event){return _vm.goTo('')}}}),_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"@/assets/images/menu.svg\")},on:{\"click\":_vm.toggleMenu}})]),_c('transition',{attrs:{\"name\":\"slide-down\"}},[(_vm.menu)?_c('div',{staticClass:\"header-menu\"},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){return _vm.goTo('')}}},[_vm._v(\"Home\")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/portal') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('portal')}}},[_vm._v(\" Portal \")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/playground') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('playground')}}},[_vm._v(\" Playground \")])]),_c('li',[_c('a',{style:({ color: _vm.isCurrentRoute('/landing/faq') ? '#825EF9' : '#FAF4EC'}),on:{\"click\":function($event){return _vm.goTo('faq')}}},[_vm._v(\" FAQs \")])]),_c('li',[_c('a',{on:{\"click\":_vm.logout}},[_vm._v(\"Logout\")])])])]):_vm._e()]),_c('notification-message'),_c('router-view'),_c('footer',[_vm._m(0),_c('div',[_c('a',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"href\":\"mailto:hello@wasdnft.com\"}},[_vm._v(\"hello@wasdnft.com\")]),_c('a',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.goTo('faq')}}},[_vm._v(\"FAQs\")]),_c('a',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.goTo('license')}}},[_vm._v(\"Terms Of Use\")]),(_vm.inPortalPage)?_c('a',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.showRefund}},[_vm._v(\"Refund Policy\")]):_vm._e()])]),(_vm.refundDialog)?_c('div',{staticClass:\"dialog\",on:{\"click\":function($event){_vm.refundDialog = false}}},[_c('div',{staticClass:\"dialog-content\",staticStyle:{\"max-width\":\"680px\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"dialog-content_header\"},[_c('div',{on:{\"click\":function($event){_vm.refundDialog = false}}},[_vm._v(\"x\")])]),_vm._m(1)])]):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('span',[_vm._v(\"©\")]),_vm._v(\" 2023 We All Survived Death \")])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"max-height\":\"calc(100vh - 80px)\",\"overflow\":\"auto\"}},[_c('div',[_vm._v(\"Refund Policy for Digital WASX Asset Sales\")]),_c('p',[_vm._v(\"All sales of digital WASX assets are final, and no refunds or exchanges will be issued after the asset has been purchased and delivered. By purchasing the digital WASX asset, you agree to these terms and conditions.\")]),_c('p',[_vm._v(\"If the digital WASX asset is found to be defective or not as advertised, we may, at our discretion, offer a refund or exchange. To request a refund or exchange, please contact our customer support team within 14 days of the date of purchase, and provide a detailed description of the issue.\")]),_c('p',[_vm._v(\"In order to be eligible for a refund or exchange, the digital WASX asset must not have been used or redeemed in any way. If the digital WASX asset has been used or redeemed, we cannot offer a refund or exchange.\")]),_c('p',[_vm._v(\"Refunds or exchanges will be processed at our discretion, and may be subject to verification of the issue and confirmation of the purchase. We reserve the right to refuse any refund or exchange request that we determine, in our sole discretion, is not valid or does not comply with these terms and conditions.\")]),_c('p',[_vm._v(\"If a refund or exchange is granted, it will be processed within 14 days of the request, using the same payment method used for the original purchase.\")]),_c('p',[_vm._v(\"We reserve the right to modify or update this refund policy at any time, without prior notice. Any such modifications or updates will be posted on our website and will be effective immediately upon posting.\")]),_c('p',[_vm._v(\"This refund policy applies only to digital WASX assets sold directly by us. We are not responsible for any refunds or exchanges for digital WASX assets sold by third-party sellers or platforms.\")]),_c('p',[_vm._v(\"If you have any questions or concerns about our refund policy, please contact our customer support team. By purchasing the digital WASX asset, you acknowledge that you have read, understood, and agree to this refund policy.\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"notification\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"notification\",style:(_vm.computedStyle)},[_c('div',{staticClass:\"notification-header\"},[(_vm.type === 'error')?[_vm._v(\"Error :(\")]:_vm._e(),_c('div',{on:{\"click\":_vm.hide}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"../assets/images/close.svg\")}})])],2),_c('p',[_vm._v(\" \"+_vm._s(_vm.message)+\" \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotificationMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotificationMessage.vue?vue&type=template&id=f2e9435e&scoped=true&\"\nimport script from \"./NotificationMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./NotificationMessage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NotificationMessage.vue?vue&type=style&index=0&id=f2e9435e&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2e9435e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4f76534f&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=4f76534f&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/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","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'home',\n component: () => import('@/views/LandingPage.vue')\n },\n {\n path: '/landing/wasd-customizer',\n name: 'image',\n component: () => import('@/views/ImagePage.vue')\n },\n\t{\n\t\tpath: '/landing/london',\n\t\tname: 'wasdlondon',\n\t\tcomponent: () => import('@/views/WASDLondon.vue')\n\t},\n {\n\t\tpath: '/landing/og',\n\t\tname: 'wasdog',\n\t\tcomponent: () => import('@/views/OGForm.vue')\n\t},\n {\n path: '/landing/portal',\n name: 'portal',\n component: () => import('@/views/PortalPage.vue')\n },\n {\n path: '/landing/playground',\n name: 'playground',\n component: () => import('@/views/PlaygroundPage.vue')\n },\n {\n path: '/landing/login',\n name: 'login',\n component: () => import('@/views/LoginPage.vue')\n },\n {\n path: '/landing/faq',\n name: 'faq',\n component: () => import('@/views/FaqPage.vue')\n },\n {\n path: '/landing/license',\n name: 'license',\n component: () => import('@/views/LicensePage.vue')\n },\n {\n path: '/verify',\n name: 'verify',\n component: () => import('@/views/VerifyPage.vue')\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'redirect',\n component: () => import('@/views/LandingPage.vue')\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.VUE_APP_PREFIX_DOMAIN === 'no' ? '/' : process.env.VUE_APP_PUBLIC_PATH,\n routes\n})\n\nexport default router\n","export default {\n // inserted: el => {\n // function loadImage() {\n // const imageElement = Array.from(el.children).find(\n // el => el.nodeName === \"IMG\"\n // );\n // if (imageElement) {\n // imageElement.addEventListener(\"load\", () => {\n // setTimeout(() => el.classList.add(\"loaded\"), 100);\n // });\n // imageElement.addEventListener(\"error\", () => console.log(\"error\"));\n // imageElement.src = imageElement.dataset.url;\n // }\n // }\n\n // loadImage();\n // },\n bind: function (el, binding) {\n if (binding.arg) {\n const imageElement = Array.from(el.children).find(\n el => el.nodeName === \"IMG\"\n );\n if (imageElement) {\n imageElement.addEventListener(\"load\", () => {\n setTimeout(() => el.classList.add(\"loaded\"), 100);\n });\n imageElement.addEventListener(\"error\", () => console.log(\"error\"));\n imageElement.src = imageElement.dataset.url;\n }\n }\n }\n};","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport './assets/styles/common.css'\nimport './assets/styles/animation.css'\nimport VueKinesis from 'vue-kinesis'\nimport VueGtag from 'vue-gtag'\nimport LazyLoadDirective from \"./directives/LazyLoad\";\nimport * as VueGoogleMaps from 'vue2-google-maps'\n\nVue.use(VueKinesis)\nVue.use(VueGtag, {\n config: {\n id: 'G-LYH518GKP4'\n }\n})\n \nVue.use(VueGoogleMaps, {\n load: {\n\t\tkey: 'AIzaSyAAH-WhvBsVd4IsyM1cbMjR4OfVCBL-A98',\n },\n})\n\nVue.config.productionTip = false\nVue.directive(\"lazyload\", LazyLoadDirective);\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport walletApi from \"@/utils/web3\";\nimport { CONTRACT_ADDRESS, Ethereum, supportedChainIds, BSCTestnet } from \"@/utils/constants\";\nimport {\n APIFetchContract,\n APIRequestChallenge,\n APIRequestDiscordChallenge,\n APIVerifyDiscord,\n APIVerify\n} from \"@/api\";\nimport axios from \"axios\";\nimport { appLocalStorage } from '../utils/app-storage';\nimport trackingManager from '@/utils/tracking-manager';\n\nVue.use(Vuex);\n// let gamejamTracking\nexport default new Vuex.Store({\n state: {\n notification: {\n visible: false,\n message: '',\n type: 'error'\n },\n theme: 'dark',\n chains: [Ethereum, BSCTestnet],\n wallet: {\n installed: false\n },\n balance: 0,\n challenge: '',\n discordChallenge: '',\n session: null,\n info: null,\n contract: {\n wasd: CONTRACT_ADDRESS.WASD,\n minting: CONTRACT_ADDRESS.WASD_MINTING\n },\n nft: [],\n tokenIds: [],\n nftPage: -1,\n nftTotalPage: 1,\n nftSize: 6,\n accessToken: appLocalStorage.getItem('wasd-access-token') || ''\n },\n getters: {\n theme: state => state.theme,\n chains: state => state.chains.filter(c => supportedChainIds.includes(c.id)),\n wallet: state => state.wallet,\n wrongNetwork: state => state.wallet && !supportedChainIds.includes(state.wallet.chainId),\n balance: state => state.balance,\n notificationVisible: state => state.notification.visible,\n notificationMessage: state => state.notification.message,\n notificationType: state => state.notification.type,\n challenge: state => state.challenge,\n discordChallenge: state => state.discordChallenge,\n session: state => state.session,\n info: state => state.info,\n wasdContract: state => state.contract.wasd,\n mintingContract: state => state.contract.minting,\n nfts: state => state.nft,\n nftPage: state => state.nftPage,\n nftTotalPage: state => state.nftTotalPage,\n nftSize: state => state.nftSize,\n canLoadMore: state => state.nfts.length < state.balance,\n tokenIds: state => state.tokenIds,\n accessToken: state => state.accessToken\n },\n mutations: {\n SET_WALLET(state, value) {\n state.wallet = {\n ...state.wallet,\n ...value\n };\n trackingManager.setWallet(state.wallet.address);\n },\n SET_BALANCE(state, value) {\n trackingManager.getTracking(state.wallet.address).track('nft_balance', { 'value': value });\n state.balance = value;\n },\n SET_THEME(state, value) {\n state.theme = value;\n },\n SET_NOTIFICATION(state, value) {\n state.notification = {\n ...state.notification,\n ...value\n };\n },\n SET_CHALLENGE(state, value) {\n state.challenge = value;\n },\n SET_SESSION(state, value) {\n state.session = value;\n },\n SET_TX(state, value) {\n state.transaction = value;\n },\n SET_INFO(state, value) {\n state.info = value;\n },\n RESET_WALLET(state) {\n state.wallet = {\n installed: false\n };\n appLocalStorage.removeItem('cur_wallet');\n window.location.reload();\n },\n SET_CONTRACT(state, value) {\n state.contract = value;\n },\n SET_NFT(state, value) {\n state.nft = value;\n },\n SET_NFT_PAGE(state, value) {\n state.nftPage = value;\n },\n SET_NFT_TOTAL_PAGE(state, value) {\n state.nftTotalPage = value;\n },\n SET_TOKEN_IDS(state, value) {\n state.tokenIds = value;\n },\n SET_DISCORD_CHALLENGE(state, value) {\n state.discordChallenge = value;\n },\n CLEAR_WALLET(state) {\n state.wallet = {\n installed: false\n };\n appLocalStorage.removeItem('cur_wallet');\n },\n SET_CLAIM_SESSION(state, value) {\n const { signature, wasdArtRules } = value;\n state.claimSignature = signature;\n state.claimable = wasdArtRules;\n }\n },\n actions: {\n updateWallet({ commit }, value) {\n commit('SET_WALLET', value);\n },\n async fetchBalance({ getters, commit }) {\n const value = await getters.wallet.getWASDBalance();\n commit('SET_BALANCE', value);\n },\n changeTheme({ state, commit }) {\n if (state.theme === 'dark') {\n commit('SET_THEME', 'light');\n } else {\n commit('SET_THEME', 'dark');\n }\n },\n hideNotification({ commit }) {\n commit('SET_NOTIFICATION', { visible: false });\n },\n showNotification({ commit }, { message, type = 'error' }) {\n commit('SET_NOTIFICATION', {\n visible: true,\n message,\n type\n });\n },\n async connectWallet({ dispatch, state }, { name, isCached }) {\n await walletApi.init(name, isCached);\n if (name !== 'Wallet Connect') {\n await dispatch('fetchChallenge');\n await dispatch('verifyChallenge');\n }\n trackingManager.setWallet(state.wallet.address);\n },\n async fetchDiscordChallenge({ state, commit, dispatch }, { guildId, discordId, code }) {\n try {\n const address = state.wallet.address;\n const { data: { challenge } } = await APIRequestDiscordChallenge(\n { guildId, discordId, code, address }\n );\n commit('SET_DISCORD_CHALLENGE', challenge);\n return true;\n } catch (e) {\n if (e.code === 4001) {\n await dispatch('showNotification', { message: 'User rejected transaction!' });\n } else {\n await dispatch('showNotification', { message: e.message });\n console.error(e);\n }\n return false;\n }\n },\n async verifyDiscordChallenge({ state, dispatch }, { guildId, discordId }) {\n try {\n const challenge = state.discordChallenge;\n const address = state.wallet.address;\n const signature = await walletApi.getSignature({ challenge, address });\n await APIVerifyDiscord({ guildId, discordId, signature, address });\n return true;\n } catch (e) {\n console.error('Error Verifying Challenge: ', e);\n await dispatch('showNotification', { message: 'Incorrect signature' });\n return false;\n }\n },\n async fetchChallenge({ state, commit, dispatch }) {\n try {\n const address = state.wallet.address;\n const { data: { challenge } } = await APIRequestChallenge(address);\n commit('SET_CHALLENGE', challenge);\n } catch (e) {\n if (e.code === 4001) {\n await dispatch('showNotification', { message: 'User rejected transaction!' });\n } else {\n await dispatch('showNotification', { message: 'Some errors occur. Please reload the page and try again!' });\n console.log(e);\n }\n }\n },\n async verifyChallenge({ state, commit }) {\n try {\n const challenge = state.challenge;\n const address = state.wallet.address;\n const signature = await walletApi.getSignature({ challenge, address });\n const { data: session } = await APIVerify({ address, signature });\n commit('SET_SESSION', session);\n } catch (e) {\n console.error('Error Verifying Challenge: ', e);\n }\n },\n async fetchInfo({ state, commit }) {\n try {\n if (!state.session) return;\n const { role_id } = state.session;\n const address = state.wallet.address;\n const phase = await walletApi.getCurrentPhase();\n const total = await walletApi.getTotalSupply();\n let minted = await walletApi.getMintedNFT();\n const phaseInfo = await walletApi.getPhaseInfo();\n const roles = await walletApi.getRoles();\n if (phaseInfo.length >= +phase && role_id) {\n const info = await walletApi.getParticipantInfo(address);\n const mint_left = +info.mintCount ? info.availableMintCount : +roles[role_id][2] - +info.mintCount;\n commit('SET_INFO', {\n mint_left: phase >= 1 ? phaseInfo[phase - 1].mintLimit < mint_left ? phaseInfo[phase - 1].mintLimit : mint_left : mint_left,\n role: +info.mintCount ? info.roleName : roles[role_id][1],\n phases: +info.mintCount ? info.allowedInPhases : +role_id ? ['1', '2'] : ['2'],\n mint: +info.mintCount,\n roles,\n phase,\n total,\n minted,\n mintOver: +phase === phaseInfo.length && +info.availableMintCount === 0\n });\n } else {\n commit('SET_INFO', {\n phase,\n total,\n minted,\n phases: [],\n mintOver: true\n });\n }\n } catch (e) {\n console.error('Error getting participant info: ', e);\n }\n },\n reload() { // { commit }\n walletApi.closeConnector();\n // commit('RESET_WALLET')\n },\n async switchWallet({ commit, dispatch }, { address }) {\n commit('SET_WALLET', { address });\n commit('SET_SESSION', null);\n dispatch('fetchChallenge');\n },\n async fetchContract({ commit }) {\n const { data: { mintingAddress, nftAddress } } = await APIFetchContract();\n commit('SET_CONTRACT', {\n wasd: nftAddress,\n minting: mintingAddress\n });\n },\n async fetchTokenIds({ state, dispatch, commit }) {\n await dispatch('fetchBalance');\n const tokenIds = await Promise.all(Array.from({ length: state.balance }).map((_, i) => {\n return state.wallet.getWASDTokenId(i);\n }));\n\n var totalPage = Math.ceil(state.balance / state.nftSize);\n\n commit('SET_NFT_TOTAL_PAGE', totalPage);\n commit('SET_TOKEN_IDS', tokenIds);\n },\n async fetchNFT({ state, commit }, { page }) {\n // if (state.tokenIds.length === state.nft.length) return\n const tokenIds = state.tokenIds.slice(page * state.nftSize, (page + 1) * state.nftSize);\n if (!tokenIds.length) return;\n const tokenURIs = tokenIds.map(id => `https://wasdnft.com/cdn/wasd/metadata/${id}.json`)\n let tokens = [];\n for (const uri of tokenURIs) {\n try {\n const { data } = await axios.get(uri);\n tokens.push({ ...data, image: data.image.replace('ipfs://', 'https://aquamarine-fancy-koala-317.mypinata.cloud/ipfs/') });\n } catch (e) {\n tokens.push({});\n }\n }\n\n commit('SET_NFT_PAGE', page);\n // commit('SET_NFT', [...state.nft, ...tokens])\n commit('SET_NFT', [...tokens]);\n },\n async setWallet({ state }, { wallet }) {\n state.wallet = wallet\n },\n async logout({ state }) {\n const address = state.wallet.address\n state.wallet = {}\n appLocalStorage.removeItem(`waes-sid-${address}`)\n appLocalStorage.removeItem('wasd-wallet-name')\n appLocalStorage.removeItem('wasd-wallet-address')\n },\n },\n modules: {}\n});\n","/**\n * App Storage class\n * @description This will be responsible for storing data into the application.\n * Commonly, people use LocalStorage or SessionStorage. This is just a wrapper over them\n * because to restrict the usage of Global window storage throughtout the application\n * Default, this is just using the LocalStorage\n */\nexport class AppStorage {\n constructor(storage, type) {\n this.storage = storage || window.localStorage\n this.type = type || 'local'\n\n /** Is storage is supported or not */\n if (!this.isSupported()) {\n throw new Error('Storage is not supported by browser!')\n }\n }\n\n setItem(key, value) {\n if (this.type === 'local') {\n this.storage.setItem(key, JSON.stringify(value))\n } else {\n this.storage.set(key, value)\n }\n }\n\n getItem(key) {\n if (this.type === 'local') {\n const itemStr = this.storage.getItem(key)\n if (!itemStr) {\n return null\n }\n return JSON.parse(itemStr)\n } else {\n return this.storage.get(key)\n }\n }\n\n removeItem(key) {\n if (this.type === 'local') {\n this.storage.removeItem(key)\n } else {\n this.storage.remove(key)\n }\n }\n\n setWithExpiry(key, value, ttl) {\n const now = new Date()\n\n const item = {\n value: value,\n expiry: now.getTime() + ttl,\n }\n\n this.setItem(key, item)\n }\n\n getWithExpiry(key) {\n const itemStr = this.getItem(key)\n if (!itemStr) {\n return null\n }\n\n let item = itemStr\n try {\n if (typeof itemStr === 'string')\n item = JSON.parse(itemStr)\n\n const now = new Date()\n\n if (now.getTime() > item.expiry) {\n this.removeItem(key)\n return null\n }\n return item.value\n } catch {\n return itemStr\n }\n }\n\n clear() {\n this.storage.clear()\n }\n\n /**\n * @description Check for storage support\n * @returns {boolean} supported\n * */\n isSupported() {\n let supported = true\n\n if (!this.storage) {\n supported = false\n }\n\n return supported\n }\n}\n\n/**\n * Creating the instance of storage. Default will be localStorage\n * but if you want to create instance for session storage then pass window.sessionStorage as parameter\n */\nconst appLocalStorage = new AppStorage()\nconst appSessionStorage = new AppStorage(window.sessionStorage)\nexport {appLocalStorage, appSessionStorage}\n","export const TARGET_MAINNET = process.env.VUE_APP_TARGET === 'mainnet';\nexport const COLLAB_API_URL = TARGET_MAINNET ? 'https://wasdnft.com/collab/bot/api' : 'https://demo.0m.gg/collab-bot/api';\nexport const API_URL = TARGET_MAINNET ? 'https://wasdnft.com/nft' : 'https://demo.0m.gg/wasdnft-minting';\nexport const EVENT_URL = TARGET_MAINNET ? 'https://iggv.org/api' : 'https://demo.iggv.org/api/';\n\nexport const ChainId = {\n Eth: TARGET_MAINNET ? '0x1' : '0x4',\n Bsc: TARGET_MAINNET ? 56 : '0x61'\n};\n\nexport const supportedChainIds = [ChainId.Eth, ChainId.Bsc];\n\nexport const Ethereum = {\n id: 1,\n chainId: '0x1',\n chainName: 'Ethereum',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18\n },\n rpcUrls: ['https://mainnet.infura.io/v3/'],\n blockExplorerUrls: ['https://etherscan.io'],\n icon: require('../assets/images/eth.svg')\n};\n\nexport const BSCTestnet = {\n id: 97,\n chainId: '0x61',\n chainName: 'BSC Testnet',\n nativeCurrency: {\n name: 'BNB',\n symbol: 'tBNB',\n decimals: 18\n },\n rpcUrls: ['https://data-seed-prebsc-1-s1.binance.org:8545/'],\n blockExplorerUrls: ['https://testnet.bscscan.com'],\n icon: ''\n};\n\nexport const WAGMI_BSC_TESTNET = {\n \"id\": 97,\n \"name\": \"Binance Smart Chain Testnet\",\n \"network\": \"bsc-testnet\",\n \"nativeCurrency\": {\n \"decimals\": 18,\n \"name\": \"BNB\",\n \"symbol\": \"tBNB\"\n },\n \"rpcUrls\": {\n \"default\": {\n \"http\": [\n \"https://data-seed-prebsc-1-s1.binance.org:8545/\"\n ]\n },\n \"public\": {\n \"http\": [\n \"https://data-seed-prebsc-1-s1.binance.org:8545/\"\n ]\n }\n },\n \"blockExplorers\": {\n \"etherscan\": {\n \"name\": \"BscScan\",\n \"url\": \"https://testnet.bscscan.com\"\n },\n \"default\": {\n \"name\": \"BscScan\",\n \"url\": \"https://testnet.bscscan.com\"\n }\n },\n \"contracts\": {\n \"multicall3\": {\n \"address\": \"0xca11bde05977b3631167028862be2a173976ca11\",\n \"blockCreated\": 17422483\n }\n },\n \"testnet\": true\n}\n\nexport const CONTRACT_ADDRESS = {\n WASD: TARGET_MAINNET ? '0x27013D274AA60c6e6883AA2130e8b01249EB11d4' : '0xDC34E9498B0C3d71CEab5f98528DeEB6b0449768',\n WASD_MINTING: TARGET_MAINNET ? '' : '0x9DF9653cf65e2b0EeC801528f80A0CaC766BA6eF',\n CLAIM: TARGET_MAINNET ? '' : '0x0d25017053E4BdE47048BA646eBD785ab6f20ACe',\n CORE: TARGET_MAINNET ? '' : ''\n};\n\nexport const DEADLINE = process.env.VUE_APP_DEADLINE || '2022/04/15 18:30:00';\n\n// export const BASE_IPFS = process.env.VUE_IPFS || 'https://opensea.mypinata.cloud/ipfs/'\nexport const BASE_IPFS = process.env.VUE_IPFS || 'https://ipfs.io/ipfs/';\n\nexport const PLAYCHAIN_SETTING = {\n APP_ID: \"6305d51ed839600986a7f9d1\",\n APP_SECRET: \"bf25fd23847d440b8d0025ec032121ef\"\n};\n\nexport const WALLETCONNECT_PROJECT_ID = process.env.VUE_WALLETCONNECT_PROJECT_ID || '3c81c43a4eba8153872fdf89326ef757'\n\nexport const WAES_URL = TARGET_MAINNET ? 'https://wasdnft.com/waes-api' : 'https://demo.0m.gg/wasdcore-backend'\n","export function isJSONSerializable(value) {\n if (value === undefined) {\n return false\n }\n const t = typeof value\n if (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) {\n return true\n }\n if (t !== \"object\") {\n return false // bigint, function, symbol, undefined\n }\n if (Array.isArray(value)) {\n return true\n }\n return (value.constructor && value.constructor.name === \"Object\") ||\n typeof value.toJSON === \"function\"\n}\n\nconst payloadMethods = new Set(Object.freeze([\"PATCH\", \"POST\", \"PUT\", \"DELETE\"]))\n\nexport function isPayloadMethod(method = \"GET\") {\n return payloadMethods.has(method.toUpperCase())\n}\n","import axios from 'axios'\nimport {API_URL, COLLAB_API_URL, EVENT_URL, WAES_URL} from './constants'\nimport store from '../store'\nimport { withBase } from \"ufo\";\nimport {isJSONSerializable, isPayloadMethod} from \"@/utils/index\";\n\nfunction getService(baseURL) {\n const service = axios.create({\n baseURL,\n timeout: 40000\n })\n\n service.interceptors.request.use(\n (config) => {\n if (store.getters.accessToken) {\n config.headers['Authorization'] = `Bearer ${store.getters.accessToken}`\n }\n return config\n }\n )\n\n service.interceptors.response.use(\n (res) => {\n return { data: res.data.data, status: res.status }\n },\n (error) => {\n const message = (error.response && error.response.data && error.response.data.message)\n ? error.response.data.message : null\n const status = error.response ? error.response.status : 0\n const data = error.response && error.response.data && error.response.data.data\n\n const responseError = { message, status, data }\n return Promise.reject(responseError)\n }\n )\n\n return service\n}\n\nconst service = getService(API_URL)\n\nfunction getCollabService(baseURL) {\n const service = axios.create({\n baseURL,\n timeout: 40000\n })\n\n service.interceptors.response.use(\n (res) => {\n return { data: res.data.data, status: res.status }\n },\n (error) => {\n const message = (error.response && error.response.data && error.response.data.message)\n ? error.response.data.message : null\n const status = error.response ? error.response.status : 0\n const data = error.response && error.response.data && error.response.data.data\n\n const responseError = { message, status, data }\n return Promise.reject(responseError)\n }\n )\n\n return service\n}\n\nfunction getEventService(baseURL) {\n\tconst service = axios.create({\n\t\tbaseURL,\n\t\ttimeout: 40000\n\t})\n\n\tservice.interceptors.response.use(\n\t\t(res) => {\n\t\t\treturn { data: res.data.data, message: res.data.message, status: res.status }\n\t\t},\n\t\t(error) => {\n const message = (error.response && error.response.data && error.response.data.message)\n ? error.response.data.message : null\n const status = error.response ? error.response.status : 0\n const data = error.response && error.response.data && error.response.data.data\n\n const responseError = { message, status, data }\n return Promise.reject(responseError)\n\t\t}\n\t)\n\treturn service\n}\n\nconst collabService = getCollabService(COLLAB_API_URL)\nconst eventService = getEventService(EVENT_URL)\n\nexport const request = async req => service(req)\nexport const collabRequest = async req => collabService(req)\nexport const eventRequest = async req => eventService(req)\n\nexport function waesRequest(_request, _options = {}) {\n const baseOptions = {\n method: 'get',\n credentials: 'include',\n headers: {}\n }\n const request = withBase(_request, WAES_URL)\n const options = {\n ...baseOptions,\n ..._options\n }\n if (options.body && isPayloadMethod(options.method) && isJSONSerializable(options.body)) {\n options.body = typeof options.body === 'string' ? options.body : JSON.stringify(options.body)\n options.headers = new Headers(options.headers)\n if (!options.headers.has('content-type')) {\n options.headers.set('content-type', 'application/json')\n }\n if (!options.headers.has('accept')) {\n options.headers.set('accept', 'application/json')\n }\n }\n return fetch(request, options)\n}\n","import SuperfineSDK from 'superfine-sdk-js/lib/index.esm'\nimport {PLAYCHAIN_SETTING} from \"@/utils/constants\"\n\nlet superfineSDK\n\nfunction setupSDK() {\n superfineSDK = new SuperfineSDK(\n PLAYCHAIN_SETTING.APP_ID,\n PLAYCHAIN_SETTING.APP_SECRET,\n {\n autoStart: false,\n flushAt: 1,\n flushInterval: 1000,\n attributionDisable: true\n }\n )\n}\n\nexport function runSDK() {\n if (!superfineSDK) {\n setupSDK()\n }\n superfineSDK.start()\n}\n\nexport function attributionWallet(walletAddress, walletName) {\n if (!superfineSDK) {\n setupSDK()\n }\n superfineSDK.logAccountLogin(walletAddress, walletName)\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export type GamejamTrackingCoreOptions = {\r\n // The number of events to queue before sending to Gamejam Tracking (flushing)\r\n flushAt?: number\r\n // The interval in milliseconds between periodic flushes\r\n flushInterval?: number\r\n // If set to false, tracking will be disabled until `optIn` is called\r\n enable?: boolean\r\n // How many times we will retry HTTP requests\r\n fetchRetryCount?: number\r\n // The delay between HTTP request retries\r\n fetchRetryDelay?: number\r\n // For Session Analysis how long before we expire a session (defaults to 30 mins)\r\n sessionExpirationTimeSeconds?: number\r\n \r\n waitConfigId?: boolean\r\n customUserId?: boolean\r\n userId?: string\r\n}\r\n\r\nexport enum GamejamTrackingPersistedProperty {\r\n UserId = 'user_id',\r\n Props = 'props',\r\n Queue = 'queue',\r\n OptedOut = 'opted_out',\r\n SessionId = 'session_id',\r\n SessionLastTimestamp = 'session_timestamp'\r\n}\r\n\r\nexport type GamejamTrackingFetchOptions = {\r\n method: 'GET' | 'POST' | 'PUT' | 'PATCH'\r\n mode?: 'no-cors'\r\n credentials?: 'omit'\r\n headers: { [key: string]: string }\r\n body: string\r\n}\r\n\r\nexport type GamejamTrackingFetchResponse = {\r\n status: number\r\n text: () => Promise\r\n json: () => Promise\r\n}\r\n\r\nexport type GamejamTrackingQueueItem = {\r\n message: any\r\n callback?: (err: any) => void\r\n}\r\n\r\nexport type GamejamTrackingEventProperties = {\r\n [key: string]: any\r\n}\r\n\r\nexport type GamejamTrackingAutotrackElement = {\r\n $el_text?: string\r\n tag_name: string\r\n href?: string\r\n nth_child?: number\r\n nth_of_type?: number\r\n order?: number\r\n} & {\r\n [key: string]: any\r\n} // Any key prefixed with `attr__` can be added\r\n\r\nexport type GamejamTrackingDecideResponse = {\r\n config: { enable_collect_everything: boolean }\r\n editorParams: { toolbarVersion: string; jsURL: string }\r\n isAuthenticated: true\r\n supportedCompression: string[]\r\n sessionRecording: boolean\r\n}\r\n\r\nexport type JSONPrimitive = string | number | boolean | null;\r\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray;\r\nexport type JSONObject = { [member: string]: JSONValue };\r\nexport type JSONArray = JSONValue[];","export function assert(truthyValue: any, message: string): void {\r\n if (!truthyValue) {\r\n throw new Error(message)\r\n }\r\n}\r\n\r\nexport function removeTrailingSlash(url: string): string {\r\n return url?.replace(/\\/+$/, '')\r\n}\r\n\r\nexport interface RetriableOptions {\r\n retryCount?: number\r\n retryDelay?: number\r\n retryCheck?: (err: any) => true\r\n}\r\n\r\nexport async function retriable(fn: () => Promise, props: RetriableOptions = {}): Promise {\r\n const { retryCount = 3, retryDelay = 5000, retryCheck = () => true } = props\r\n let lastError = null\r\n\r\n for (let i = 0; i < retryCount + 1; i++) {\r\n try {\r\n const res = await fn()\r\n return res\r\n } catch (e) {\r\n lastError = e\r\n if (!retryCheck(e)) {\r\n throw e\r\n }\r\n }\r\n\r\n await new Promise((r) => setTimeout(r, retryDelay))\r\n }\r\n\r\n throw lastError\r\n}\r\n\r\n// https://stackoverflow.com/a/8809472\r\nexport function generateUUID(globalThis?: any): string {\r\n // Public Domain/MIT\r\n let d = new Date().getTime() //Timestamp\r\n let d2 =\r\n (globalThis && globalThis.performance && globalThis.performance.now && globalThis.performance.now() * 1000) || 0 //Time in microseconds since page-load or 0 if unsupported\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n let r = Math.random() * 16 //random number between 0 and 16\r\n if (d > 0) {\r\n //Use timestamp until depleted\r\n r = (d + r) % 16 | 0\r\n d = Math.floor(d / 16)\r\n } else {\r\n //Use microseconds since page-load if supported\r\n r = (d2 + r) % 16 | 0\r\n d2 = Math.floor(d2 / 16)\r\n }\r\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\r\n })\r\n}\r\n\r\nexport function currentTimestamp(): number {\r\n return new Date().getTime()\r\n}\r\n\r\nexport function currentISOTime(): string {\r\n return new Date().toISOString()\r\n}\r\n\r\nexport function safeSetTimeout(fn: () => void, timeout: number): any {\r\n // NOTE: we use this so rarely that it is totally fine to do `safeSetTimeout(fn, 0)``\r\n // rather than setImmediate.\r\n const t = setTimeout(fn, timeout) as any\r\n // We unref if available to prevent Node.js hanging on exit\r\n t?.unref && t?.unref()\r\n return t\r\n}\r\n\r\nexport function isNullOrEmpty(value: string): boolean\r\n{\r\n return (!value || value == undefined || value == \"\" || value.length == 0);\r\n}\r\n","export class SimpleEventEmitter {\r\n events: { [key: string]: ((...args: any[]) => void)[] } = {}\r\n\r\n constructor() {\r\n this.events = {}\r\n }\r\n\r\n on(event: string, listener: (...args: any[]) => void): () => void {\r\n if (!this.events[event]) {\r\n this.events[event] = []\r\n }\r\n this.events[event].push(listener)\r\n\r\n return () => {\r\n this.events[event] = this.events[event].filter((x) => x !== listener)\r\n }\r\n }\r\n\r\n emit(event: string, payload: any): void {\r\n for (const listener of this.events[event] || []) {\r\n listener(payload)\r\n }\r\n for (const listener of this.events['*'] || []) {\r\n listener(event, payload)\r\n }\r\n }\r\n}\r\n","import {\r\n GamejamTrackingFetchOptions,\r\n GamejamTrackingFetchResponse,\r\n GamejamTrackingQueueItem,\r\n GamejamTrackingAutotrackElement,\r\n GamejamTrackingDecideResponse,\r\n GamejamTrackingCoreOptions,\r\n GamejamTrackingEventProperties,\r\n GamejamTrackingPersistedProperty,\r\n JSONObject\r\n} from './types'\r\nimport {\r\n assert,\r\n currentISOTime,\r\n currentTimestamp,\r\n generateUUID,\r\n removeTrailingSlash,\r\n retriable,\r\n RetriableOptions,\r\n safeSetTimeout,\r\n isNullOrEmpty\r\n} from './utils'\r\nexport * as utils from './utils'\r\nimport { LZString } from './lz-string'\r\nimport { SimpleEventEmitter } from './eventemitter'\r\n\r\nimport { Buffer } from 'buffer'\r\n\r\nexport enum AdPlacement {\r\n UNKNOWN,\r\n BOTTOM,\r\n TOP,\r\n LEFT,\r\n RIGHT,\r\n FULL_SCREEN\r\n}\r\n\r\nfunction getAdPlacementString(adPlacement: AdPlacement): string\r\n{\r\n switch (adPlacement)\r\n {\r\n case AdPlacement.FULL_SCREEN:\r\n return 'fullscreen';\r\n \r\n case AdPlacement.BOTTOM:\r\n return 'bottom';\r\n \r\n case AdPlacement.TOP:\r\n return 'top';\r\n \r\n case AdPlacement.LEFT:\r\n return 'left';\r\n \r\n case AdPlacement.RIGHT:\r\n return 'right';\r\n\r\n default:\r\n break;\r\n }\r\n \r\n return '';\r\n}\r\n\r\nexport enum AdPlacementType {\r\n BANNER,\r\n INTERSTITIAL,\r\n REWARDED_VIDEO\r\n}\r\n\r\nfunction getAdPlacementTypeString(adPlacementType: AdPlacementType): string\r\n{\r\n switch (adPlacementType)\r\n {\r\n case AdPlacementType.BANNER:\r\n return 'banner';\r\n \r\n case AdPlacementType.INTERSTITIAL:\r\n return 'interstitial';\r\n \r\n case AdPlacementType.REWARDED_VIDEO:\r\n return 'rewarded_video';\r\n \r\n default:\r\n break;\r\n }\r\n \r\n return '';\r\n}\r\n\r\nfunction getDefaultAdPlacement(adPlacementType: AdPlacementType): AdPlacement\r\n{\r\n switch (adPlacementType)\r\n {\r\n case AdPlacementType.BANNER:\r\n return AdPlacement.BOTTOM;\r\n\r\n case AdPlacementType.INTERSTITIAL:\r\n case AdPlacementType.REWARDED_VIDEO:\r\n return AdPlacement.FULL_SCREEN;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return AdPlacement.FULL_SCREEN;\r\n}\r\n\r\nexport enum AuthorizationTrackingStatus {\r\n NOT_DETERMINED,\r\n RESTRICTED,\r\n DENIED,\r\n AUTHORIZED\r\n}\r\n\r\nfunction getAuthorizationTrackingStatusString(authorizationTrackingStatus: AuthorizationTrackingStatus): string\r\n{\r\n switch (authorizationTrackingStatus)\r\n {\r\n case AuthorizationTrackingStatus.AUTHORIZED:\r\n return 'authorized';\r\n \r\n case AuthorizationTrackingStatus.DENIED:\r\n return 'denied';\r\n \r\n case AuthorizationTrackingStatus.RESTRICTED:\r\n return 'restricted';\r\n \r\n default:\r\n break;\r\n }\r\n \r\n return 'not_determined';\r\n}\r\n\r\nexport enum StoreType {\r\n UNKNOWN,\r\n APP_STORE,\r\n GOOGLE_PLAY\r\n}\r\n\r\nfunction getStoreTypeString(storeType: StoreType): string\r\n{\r\n switch (storeType)\r\n {\r\n case StoreType.APP_STORE:\r\n return 'app_store';\r\n \r\n case StoreType.GOOGLE_PLAY:\r\n return 'google_play';\r\n \r\n default:\r\n break;\r\n }\r\n \r\n return 'other';\r\n}\r\n\r\n\r\nexport abstract class GamejamTrackingCore {\r\n protected static readonly SEND_URL = \"https://api.gamejam.co/tracking/v3/event\";\r\n \r\n protected static readonly VERSION_KEY = \"$version\";\r\n\r\n //protected static readonly BUILD_VERSION_KEY = \"$build_version\";\r\n //protected static readonly BUILD_NUMBER_KEY = \"$build_number\";\r\n \r\n //protected static readonly APP_VERSION_KEY = \"$app_version\";\r\n \r\n //protected static readonly BUNDLE_ID_KEY = \"$bundle_id\";\r\n protected static readonly PLATFORM_KEY = \"$plaform\";\r\n \r\n protected static readonly COUNTRY_KEY = \"$country\";\r\n\r\n protected static readonly BROWSER_KEY = \"$browser\";\r\n protected static readonly BROWSER_VERSION_KEY = \"$browser_verison\";\r\n \r\n protected static readonly DEVICE_MODEL_KEY = \"$device_model\";\r\n \r\n protected static readonly OS_KEY = \"$os\";\r\n protected static readonly OS_VERSION_KEY = \"$os_version\";\r\n \r\n //protected static readonly ADVERTISING_ID_KEY = \"$advertising_id\";\r\n protected static readonly DEVELOPER_DEVICE_ID_KEY = \"$developer_device_id\";\r\n \r\n //protected static readonly APP_SET_ID_KEY = \"$app_set_id\";\r\n \r\n protected static readonly AD_IMPRESSION = \"gjsdk_ad_impression\";\r\n protected static readonly AD_CLICK = \"gjsdk_ad_click\";\r\n protected static readonly AD_LOAD = \"gjsdk_ad_load\";\r\n protected static readonly AD_CLOSE = \"gjsdk_ad_close\";\r\n\r\n protected static readonly OPEN = \"gjsdk_open\";\r\n protected static readonly FIRST_OPEN = \"gjsdk_first_open\";\r\n protected static readonly BOOT_START = \"gjsdk_boot_start\";\r\n protected static readonly BOOT_END = \"gjsdk_boot_end\";\r\n\r\n protected static readonly LEVEL_ATTEMPT = \"gjsdk_level_attempt\";\r\n protected static readonly LEVEL_COMPLETE = \"gjsdk_level_complete\";\r\n protected static readonly LEVEL_FAIL = \"gjsdk_level_fail\";\r\n\r\n protected static readonly IAP_INITIALIZATION = \"gjsdk_iap_initialization\";\r\n protected static readonly IAP_RESTORE_PURCHASE = \"gjsdk_iap_restore_purchase\";\r\n protected static readonly IAP_BUY = \"gjsdk_iap_buy\";\r\n protected static readonly IAP_SUCCESS_PAYMENT = \"gjsdk_iap_success_payment\";\r\n protected static readonly IAP_FAIL_PAYMENT = \"gjsdk_iap_fail_payment\";\r\n\r\n protected static readonly FACEBOOK_LOGIN = \"gjsdk_fb_login\";\r\n protected static readonly FACEBOOK_LOGOUT = \"gjsdk_fb_logout\";\r\n\r\n protected static readonly UPDATE_GAME = \"gjsdk_update_click\";\r\n protected static readonly RATE_GAME = \"gjsdk_store_rating_click\";\r\n\r\n protected static readonly SOUND_MODE = \"gjsdk_audio_sound_mode\";\r\n protected static readonly AUTHORIZATION_TRACKING_STATUS = \"gjsdk_att_authorization_tracking_status\";\r\n\r\n protected static readonly ACCOUNT_LOGIN = \"gjsdk_account_login\";\r\n protected static readonly ACCOUNT_LOGOUT = \"gjsdk_account_logout\";\r\n protected static readonly ACCOUNT_LINK = \"gjsdk_account_link\";\r\n protected static readonly ACCOUNT_UNLINK = \"gjsdk_account_unlink\";\r\n\r\n protected static readonly WALLET_LINK = \"gjsdk_account_link_wallet\";\r\n protected static readonly WALLET_UNLINK = \"gjsdk_account_unlink_wallet\";\r\n\r\n protected static readonly CRYPTO_PAYMENT = \"gjsdk_crypto_payment\";\r\n\r\n // options\r\n protected appId: string\r\n \r\n protected authCredential: string;\r\n \r\n protected userId: string;\r\n protected sessionId: string;\r\n protected configId: string;\r\n \r\n private soundMode: string;\r\n \r\n private isFirstOpen: boolean;\r\n private bootStartTime: number;\r\n\r\n private flushAt: number\r\n private flushInterval: number\r\n private removeDebugCallback?: () => void\r\n\r\n // internal\r\n protected _events = new SimpleEventEmitter()\r\n protected _flushTimer?: any\r\n protected _decideResponsePromise?: Promise\r\n protected _retryOptions: RetriableOptions\r\n protected _sessionExpirationTimeSeconds: number\r\n\r\n // Abstract methods to be overridden by implementations\r\n abstract fetch(url: string, options: GamejamTrackingFetchOptions): Promise\r\n abstract getLibraryId(): string\r\n abstract getLibraryVersion(): string\r\n \r\n abstract getCustomUserAgent(): string | void\r\n\r\n // This is our abstracted storage. Each implementation should handle its own\r\n abstract getPersistedProperty(key: GamejamTrackingPersistedProperty): T | undefined\r\n abstract setPersistedProperty(key: GamejamTrackingPersistedProperty, value: T | null): void\r\n\r\n private _optoutOverride: boolean | undefined\r\n\r\n constructor(appId: string, appSecret: string, options?: GamejamTrackingCoreOptions) {\r\n assert(appId, \"You must pass your Gamejam project's app id.\")\r\n assert(appSecret, \"You must pass your Gamejam project's app secret.\")\r\n\r\n this.appId = appId;\r\n this.authCredential = Buffer.from(appId + \":\" + appSecret, 'binary').toString('base64');\r\n \r\n this.bootStartTime = 0;\r\n \r\n this.soundMode = '';\r\n\r\n this.flushAt = options?.flushAt ? Math.max(options?.flushAt, 1) : 20\r\n this.flushInterval = options?.flushInterval ?? 10000\r\n \r\n // If enable is explicitly set to false we override the optout\r\n this._optoutOverride = options?.enable === false\r\n this._retryOptions = {\r\n retryCount: options?.fetchRetryCount ?? 3,\r\n retryDelay: options?.fetchRetryDelay ?? 3000,\r\n }\r\n \r\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes\r\n\r\n this.configId = '';\r\n this.sessionId = '';\r\n this.userId = '';\r\n \r\n this.isFirstOpen = false;\r\n \r\n let customUserId = false;\r\n \r\n if (options)\r\n {\r\n if (!options.waitConfigId ?? true)\r\n {\r\n this.configId = 'default';\r\n }\r\n \r\n this.userId = options.userId ?? '';\r\n \r\n customUserId = options.customUserId ?? false;\r\n }\r\n \r\n this.init();\r\n \r\n this.setupContext();\r\n \r\n this.updateUserId(customUserId);\r\n this.updateSessionId(true);\r\n }\r\n \r\n protected init(options?: GamejamTrackingCoreOptions)\r\n {\r\n }\r\n \r\n protected setupContext()\r\n {\r\n let data: { [key: string]: any } = {};\r\n this.fillContextData(data);\r\n this.register(data);\r\n }\r\n \r\n protected fillContextData(data: { [key: string]: any })\r\n {\r\n data[GamejamTrackingCore.PLATFORM_KEY] = 'Web';\r\n data[GamejamTrackingCore.VERSION_KEY] = this.getLibraryVersion();\r\n \r\n //TODO: Find a way to get device fingerprint\r\n data[GamejamTrackingCore.DEVELOPER_DEVICE_ID_KEY] = '';\r\n }\r\n \r\n public setConfigId(configId: string)\r\n {\r\n this.configId = configId;\r\n }\r\n\r\n protected getCommonEventProperties(): any {\r\n return {\r\n $lib: this.getLibraryId(),\r\n $lib_version: this.getLibraryVersion()\r\n }\r\n }\r\n\r\n // NOTE: Props are lazy loaded from localstorage hence the complex getter setter logic\r\n private get props(): GamejamTrackingEventProperties {\r\n if (!this._props) {\r\n this._props = this.getPersistedProperty(GamejamTrackingPersistedProperty.Props)\r\n }\r\n return this._props || {}\r\n }\r\n\r\n private set props(val: GamejamTrackingEventProperties | undefined) {\r\n this._props = val\r\n }\r\n\r\n private clearProps(): void {\r\n this.props = undefined\r\n }\r\n\r\n protected _props: GamejamTrackingEventProperties | undefined\r\n\r\n public get optedOut(): boolean {\r\n return this.getPersistedProperty(GamejamTrackingPersistedProperty.OptedOut) ?? this._optoutOverride ?? false\r\n }\r\n\r\n optIn(): void {\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.OptedOut, false)\r\n }\r\n\r\n optOut(): void {\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.OptedOut, true)\r\n }\r\n\r\n on(event: string, cb: (...args: any[]) => void): () => void {\r\n return this._events.on(event, cb)\r\n }\r\n\r\n reset(propertiesToKeep?: GamejamTrackingPersistedProperty[]): void {\r\n const allPropertiesToKeep = [GamejamTrackingPersistedProperty.Queue, ...(propertiesToKeep || [])]\r\n\r\n // clean up props\r\n this.clearProps()\r\n\r\n for (const key of <(keyof typeof GamejamTrackingPersistedProperty)[]>Object.keys(GamejamTrackingPersistedProperty)) {\r\n if (!allPropertiesToKeep.includes(GamejamTrackingPersistedProperty[key])) {\r\n this.setPersistedProperty((GamejamTrackingPersistedProperty as any)[key], null)\r\n }\r\n }\r\n }\r\n\r\n debug(enabled: boolean = true): void {\r\n this.removeDebugCallback?.()\r\n\r\n if (enabled) {\r\n this.removeDebugCallback = this.on('*', (event, payload) => console.log('Gamejam Tracking Debug', event, payload))\r\n }\r\n }\r\n \r\n private updateUserId(customUserId: boolean)\r\n {\r\n let cachedUserId: string = this.getCachedUserId();\r\n if (isNullOrEmpty(this.userId))\r\n {\r\n if (isNullOrEmpty(cachedUserId))\r\n {\r\n this.isFirstOpen = true;\r\n \r\n if (!customUserId)\r\n {\r\n this.userId = generateUUID(globalThis);\r\n this.setCachedUserId(this.userId);\r\n }\r\n else\r\n {\r\n this.userId = \"\";\r\n }\r\n }\r\n else\r\n {\r\n this.userId = cachedUserId;\r\n }\r\n }\r\n else\r\n {\r\n if (isNullOrEmpty(cachedUserId) || cachedUserId !== this.userId)\r\n {\r\n this.isFirstOpen = true;\r\n this.setCachedUserId(this.userId);\r\n }\r\n }\r\n }\r\n \r\n private getCachedUserId(): string\r\n {\r\n return this.getPersistedProperty(GamejamTrackingPersistedProperty.UserId) ?? '';\r\n }\r\n \r\n private setCachedUserId(userId: string)\r\n {\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.UserId, userId)\r\n }\r\n\r\n private updateSessionId(force: boolean = false)\r\n {\r\n this.sessionId = this.getPersistedProperty(GamejamTrackingPersistedProperty.SessionId) ?? ''\r\n \r\n const sessionTimestamp = this.getPersistedProperty(GamejamTrackingPersistedProperty.SessionLastTimestamp) || 0\r\n\r\n if (isNullOrEmpty(this.sessionId) || Date.now() - sessionTimestamp > this._sessionExpirationTimeSeconds * 1000 || force)\r\n {\r\n this.sessionId = generateUUID(globalThis);\r\n \r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.SessionId, this.sessionId);\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.SessionLastTimestamp, Date.now())\r\n \r\n this.trackOpen();\r\n }\r\n }\r\n\r\n private resetSessionId()\r\n {\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.SessionId, null)\r\n }\r\n\r\n register(properties: { [key: string]: any }): void {\r\n this.props = {\r\n ...this.props,\r\n ...properties,\r\n }\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.Props, this.props)\r\n }\r\n\r\n unregister(property: string): void {\r\n delete this.props[property]\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.Props, this.props)\r\n }\r\n\r\n private buildPayload(eventName: string, value: JSONObject | null): any\r\n {\r\n this.updateSessionId();\r\n \r\n return {\r\n eId: generateUUID(),\r\n eventName: eventName,\r\n value: value,\r\n id: this.sessionId,\r\n timeInMs: Math.floor(currentTimestamp()),\r\n cfgId: this.configId\r\n }\r\n }\r\n\r\n /***\r\n *** TRACKING\r\n ***/\r\n \r\n private createTrackBaseData() : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n return ret;\r\n }\r\n \r\n private createTrackOpenData(\r\n country: string,\r\n device: string,\r\n os_version: string,\r\n gj_sdk_version: string,\r\n cfg_id: string,\r\n developer_device_id: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['country'] = country;\r\n ret['device'] = device;\r\n ret['os_version'] = os_version;\r\n ret['gj_sdk_version'] = gj_sdk_version;\r\n ret['cfg_id'] = cfg_id;\r\n ret['developer_device_id'] = developer_device_id;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackAdData(\r\n ad_unit: string,\r\n placement_type: AdPlacementType,\r\n placement: AdPlacement) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n if (placement === AdPlacement.UNKNOWN)\r\n {\r\n placement = getDefaultAdPlacement(placement_type);\r\n }\r\n \r\n ret['placement_type'] = getAdPlacementTypeString(placement_type);\r\n ret['placement'] = getAdPlacementString(placement);\r\n ret['ad_unit'] = ad_unit;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackLevelData(\r\n level: number,\r\n label: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['level'] = level;\r\n ret['label'] = label;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackBootEndData(\r\n boot_time: number) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['boot_time'] = boot_time;\r\n return ret;\r\n }\r\n \r\n private createTrackIAPInitializationData(\r\n status: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['status'] = status;\r\n return ret;\r\n }\r\n \r\n private createTrackIAPPackageData(\r\n pack: string,\r\n price: string,\r\n amount: number,\r\n currency: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['pack'] = pack;\r\n ret['price'] = price;\r\n ret['amount'] = amount;\r\n ret['currency'] = currency;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackFacebookData(\r\n facebook_id: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['facebook_id'] = facebook_id;\r\n return ret;\r\n }\r\n \r\n private createTrackUpdateGameData(\r\n current_version: string,\r\n new_version: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['current_version'] = current_version;\r\n ret['new_version'] = new_version;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackRateGameData(\r\n store_type: StoreType) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['store_type'] = getStoreTypeString(store_type);\r\n return ret;\r\n }\r\n \r\n private createTrackSoundModeData(\r\n sound_mode: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['sound_mode'] = sound_mode;\r\n return ret;\r\n }\r\n \r\n private createTrackAuthorizationTrackingStatusData(\r\n status: AuthorizationTrackingStatus) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n ret['status'] = getAuthorizationTrackingStatusString(status);\r\n return ret;\r\n }\r\n \r\n private createTrackAccountData(\r\n id: string,\r\n type: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['id'] = id;\r\n ret['type'] = type;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackWalletData(\r\n wallet: string,\r\n type: string) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['wallet'] = wallet;\r\n ret['type'] = type;\r\n \r\n return ret;\r\n }\r\n \r\n private createTrackCryptoPaymentData(\r\n pack: string,\r\n price: string,\r\n amount: number,\r\n currency: string,\r\n type: string,\r\n count: number) : JSONObject\r\n {\r\n let ret: JSONObject = {};\r\n \r\n ret['pack'] = pack;\r\n ret['price'] = price;\r\n ret['amount'] = amount;\r\n ret['currency'] = currency;\r\n ret['type'] = type;\r\n ret['count'] = count;\r\n \r\n return ret;\r\n }\r\n \r\n /*\r\n identify(distinctId?: string, properties?: GamejamTrackingEventProperties): this {\r\n const previousDistinctId = this.getDistinctId()\r\n distinctId = distinctId || previousDistinctId\r\n\r\n const payload = {\r\n ...this.buildPayload({\r\n distinct_id: distinctId,\r\n event: '$identify',\r\n properties: {\r\n ...(properties || {}),\r\n $anon_distinct_id: this.getAnonymousId(),\r\n },\r\n }),\r\n $set: properties,\r\n }\r\n\r\n if (distinctId !== previousDistinctId) {\r\n // We keep the AnonymousId to be used by decide calls and identify to link the previousId\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.AnonymousId, previousDistinctId)\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.DistinctId, distinctId)\r\n }\r\n\r\n this.enqueue('identify', payload)\r\n return this\r\n }\r\n */\r\n \r\n private trackOpen()\r\n {\r\n let trackValue = this.createTrackOpenData(\r\n this.getContext(GamejamTrackingCore.COUNTRY_KEY),\r\n this.getContext(GamejamTrackingCore.OS_VERSION_KEY),\r\n this.getContext(GamejamTrackingCore.VERSION_KEY),\r\n this.configId,\r\n this.getContext(GamejamTrackingCore.VERSION_KEY),\r\n this.getContext(GamejamTrackingCore.DEVELOPER_DEVICE_ID_KEY)\r\n );\r\n \r\n this.track(this.isFirstOpen ? GamejamTrackingCore.FIRST_OPEN : GamejamTrackingCore.OPEN, trackValue);\r\n this.isFirstOpen = false;\r\n }\r\n \r\n public trackBootStart()\r\n {\r\n this.bootStartTime = Math.floor(currentTimestamp());\r\n this.track(GamejamTrackingCore.BOOT_START);\r\n }\r\n \r\n public trackBootEnd()\r\n {\r\n let bootTime = Math.floor(currentTimestamp()) - this.bootStartTime;\r\n let trackValue = this.createTrackBootEndData(bootTime);\r\n \r\n this.track(GamejamTrackingCore.BOOT_END, trackValue);\r\n }\r\n \r\n public trackLevelStart(id: number, name: string)\r\n {\r\n let trackValue = this.createTrackLevelData(id, name);\r\n this.track(GamejamTrackingCore.LEVEL_ATTEMPT, trackValue);\r\n }\r\n \r\n public trackLevelEnd(id: number, name: string, isSuccess: boolean)\r\n {\r\n let trackValue = this.createTrackLevelData(id, name);\r\n this.track(isSuccess ? GamejamTrackingCore.LEVEL_COMPLETE : GamejamTrackingCore.LEVEL_FAIL, trackValue);\r\n }\r\n \r\n public trackAdLoad(adUnit: string, adPlacementType: AdPlacementType, adPlacement: AdPlacement = AdPlacement.UNKNOWN)\r\n {\r\n this.trackAd(GamejamTrackingCore.AD_LOAD, adUnit, adPlacementType, adPlacement);\r\n }\r\n \r\n public trackAdClick(adUnit: string, adPlacementType: AdPlacementType, adPlacement: AdPlacement = AdPlacement.UNKNOWN)\r\n {\r\n this.trackAd(GamejamTrackingCore.AD_CLICK, adUnit, adPlacementType, adPlacement);\r\n }\r\n \r\n public trackAdClose(adUnit: string, adPlacementType: AdPlacementType, adPlacement: AdPlacement = AdPlacement.UNKNOWN)\r\n {\r\n this.trackAd(GamejamTrackingCore.AD_CLOSE, adUnit, adPlacementType, adPlacement);\r\n }\r\n \r\n public trackAdImpression(adUnit: string, adPlacementType: AdPlacementType, adPlacement: AdPlacement = AdPlacement.UNKNOWN)\r\n {\r\n this.trackAd(GamejamTrackingCore.AD_IMPRESSION, adUnit, adPlacementType, adPlacement);\r\n }\r\n \r\n private trackAd(eventName: string, adUnit: string, adPlacementType: AdPlacementType, adPlacement: AdPlacement)\r\n {\r\n let trackValue = this.createTrackAdData(adUnit, adPlacementType, adPlacement);\r\n this.track(eventName, trackValue);\r\n }\r\n \r\n public trackIAPInitialization(isSuccess: boolean)\r\n {\r\n let trackValue = this.createTrackIAPInitializationData(isSuccess ? \"success\" : \"failed\");\r\n this.track(GamejamTrackingCore.IAP_INITIALIZATION, trackValue);\r\n }\r\n \r\n public trackIAPRestorePurchase()\r\n {\r\n this.track(GamejamTrackingCore.IAP_RESTORE_PURCHASE);\r\n }\r\n \r\n public trackIAPBuyStart(pack: string, price: string, amount: number, currency: string)\r\n {\r\n this.trackIAPPackage(GamejamTrackingCore.IAP_BUY, pack, price, amount, currency);\r\n }\r\n \r\n public trackIAPBuyEnd(pack: string, price: string, amount: number, currency: string, isSuccess: boolean)\r\n {\r\n this.trackIAPPackage(isSuccess ? GamejamTrackingCore.IAP_SUCCESS_PAYMENT : GamejamTrackingCore.IAP_FAIL_PAYMENT, pack, price, amount, currency);\r\n }\r\n \r\n private trackIAPPackage(eventName: string, pack: string, price: string, amount: number, currency: string)\r\n {\r\n let trackValue = this.createTrackIAPPackageData(pack, price, amount, currency);\r\n this.track(eventName, trackValue);\r\n }\r\n \r\n public trackFacebookLogin(facebookId: string)\r\n {\r\n let trackValue = this.createTrackFacebookData(facebookId);\r\n this.track(GamejamTrackingCore.FACEBOOK_LOGIN, trackValue);\r\n }\r\n \r\n public trackFacebookLogout(facebookId: string)\r\n {\r\n let trackValue = this.createTrackFacebookData(facebookId);\r\n this.track(GamejamTrackingCore.FACEBOOK_LOGOUT, trackValue);\r\n }\r\n \r\n public trackUpdateGame(currentVersion: string, newVersion: string) \r\n {\r\n let trackValue = this.createTrackUpdateGameData(currentVersion, newVersion);\r\n this.track(GamejamTrackingCore.UPDATE_GAME, trackValue);\r\n }\r\n \r\n public trackRateGame(storeType: StoreType)\r\n {\r\n let trackValue = this.createTrackRateGameData(storeType);\r\n this.track(GamejamTrackingCore.RATE_GAME, trackValue);\r\n }\r\n \r\n private trackSoundMode()\r\n {\r\n let trackValue = this.createTrackSoundModeData(this.soundMode);\r\n this.track(GamejamTrackingCore.SOUND_MODE, trackValue);\r\n }\r\n \r\n public trackAuthorizationTrackingStatus(status: AuthorizationTrackingStatus)\r\n {\r\n let trackValue = this.createTrackAuthorizationTrackingStatusData(status);\r\n this.track(GamejamTrackingCore.AUTHORIZATION_TRACKING_STATUS, trackValue);\r\n }\r\n \r\n public trackAccountLogin(id: string, type: string)\r\n {\r\n this.trackAccount(GamejamTrackingCore.ACCOUNT_LOGIN, id, type);\r\n }\r\n \r\n public trackAccountLogout(id: string, type: string)\r\n {\r\n this.trackAccount(GamejamTrackingCore.ACCOUNT_LOGOUT, id, type);\r\n }\r\n \r\n public trackAccountLink(id: string, type: string)\r\n {\r\n this.trackAccount(GamejamTrackingCore.ACCOUNT_LINK, id, type);\r\n }\r\n \r\n public trackAccountUnlink(id: string, type: string)\r\n {\r\n this.trackAccount(GamejamTrackingCore.ACCOUNT_UNLINK, id, type);\r\n }\r\n \r\n private trackAccount(eventName: string, id: string, type: string)\r\n {\r\n let trackValue = this.createTrackAccountData(id, type);\r\n this.track(eventName, trackValue);\r\n }\r\n \r\n public trackWalletLink(wallet: string, type: string = 'eth')\r\n {\r\n this.trackWallet(GamejamTrackingCore.WALLET_LINK, wallet, type);\r\n }\r\n \r\n public trackWalletUnlink(wallet: string, type: string = 'eth')\r\n {\r\n this.trackWallet(GamejamTrackingCore.WALLET_UNLINK, wallet, type);\r\n }\r\n \r\n private trackWallet(eventName: string, wallet: string, type: string)\r\n {\r\n let trackValue = this.createTrackWalletData(wallet, type);\r\n this.track(eventName, trackValue);\r\n }\r\n \r\n private trackCryptoPayment(pack: string, price: string, amount: number, currency: string, type: string = 'web3', count: number = 1)\r\n {\r\n let trackValue = this.createTrackCryptoPaymentData(pack, price, amount, currency, type, count);\r\n this.track(GamejamTrackingCore.CRYPTO_PAYMENT, trackValue);\r\n }\r\n \r\n public track(eventName: string, value: JSONObject | null = null)\r\n {\r\n const payload = this.buildPayload(eventName, value);\r\n this.enqueue(payload);\r\n }\r\n\r\n //TODO: Add support for auto track\r\n /*\r\n autotrack(eventType: string, elements: GamejamTrackingAutotrackElement[], properties: GamejamTrackingEventProperties = {}): this {\r\n const payload = this.buildPayload('autotrack',\r\n properties: {\r\n ...properties,\r\n $event_type: eventType,\r\n $elements: elements,\r\n },\r\n })\r\n\r\n this.enqueue('autotrack', payload)\r\n return this\r\n }\r\n */\r\n \r\n protected getContext(key: string)\r\n {\r\n if (!this._props) return '';\r\n return this._props[key] || '';\r\n }\r\n\r\n /***\r\n *** QUEUEING AND FLUSHING\r\n ***/\r\n private enqueue(message: any): void {\r\n if (this.optedOut) {\r\n return\r\n }\r\n /*\r\n const message = {\r\n ..._message,\r\n type: type,\r\n library: this.getLibraryId(),\r\n library_version: this.getLibraryVersion(),\r\n timestamp: _message.timestamp ? _message.timestamp : currentISOTime(),\r\n }\r\n\r\n if (message.distinctId) {\r\n message.distinct_id = message.distinctId\r\n delete message.distinctId\r\n }\r\n */\r\n \r\n const queue = this.getPersistedProperty(GamejamTrackingPersistedProperty.Queue) || []\r\n\r\n queue.push({ message })\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.Queue, queue)\r\n\r\n this._events.emit('track', message)\r\n\r\n // Flush queued events if we meet the flushAt length\r\n if (queue.length >= this.flushAt) {\r\n this.flush()\r\n }\r\n\r\n if (this.flushInterval && !this._flushTimer)\r\n {\r\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\r\n }\r\n }\r\n\r\n flushAsync(): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.flush((err, data) => {\r\n return err ? reject(err) : resolve(data)\r\n })\r\n })\r\n }\r\n\r\n flush(callback?: (err?: any, data?: any) => void): void {\r\n if (this.optedOut) {\r\n return callback?.()\r\n }\r\n\r\n if (this._flushTimer) {\r\n clearTimeout(this._flushTimer)\r\n this._flushTimer = null\r\n }\r\n\r\n const queue = this.getPersistedProperty(GamejamTrackingPersistedProperty.Queue) || []\r\n\r\n if (!queue.length)\r\n {\r\n return callback?.()\r\n }\r\n \r\n if (isNullOrEmpty(this.userId) || isNullOrEmpty(this.sessionId))\r\n {\r\n if (this.flushInterval && !this._flushTimer)\r\n {\r\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\r\n }\r\n \r\n return callback?.()\r\n }\r\n\r\n const items = queue.splice(0, this.flushAt)\r\n this.setPersistedProperty(GamejamTrackingPersistedProperty.Queue, queue)\r\n\r\n const messages = items.map((item) => item.message)\r\n\r\n const data = {\r\n gjUid: this.userId,\r\n gjSdkVersion: this.getContext(GamejamTrackingCore.VERSION_KEY),\r\n country: this.getContext(GamejamTrackingCore.COUNTRY_KEY),\r\n platform: this.getContext(GamejamTrackingCore.PLATFORM_KEY),\r\n device: this.getContext(GamejamTrackingCore.DEVICE_MODEL_KEY),\r\n browser: this.getContext(GamejamTrackingCore.BROWSER_KEY),\r\n browserVersion: this.getContext(GamejamTrackingCore.BROWSER_VERSION_KEY),\r\n os: this.getContext(GamejamTrackingCore.OS_KEY),\r\n osVersion: this.getContext(GamejamTrackingCore.OS_VERSION_KEY),\r\n subMessages: messages\r\n }\r\n\r\n const done = (err?: any): void => {\r\n callback?.(err, messages)\r\n this._events.emit('flush', messages)\r\n }\r\n\r\n // Don't set the user agent if we're not on a browser. The latest spec allows\r\n // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers\r\n // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),\r\n // but browsers such as Chrome and Safari have not caught up.\r\n const customUserAgent = this.getCustomUserAgent()\r\n const headers: { [key: string]: string } = {}\r\n if (customUserAgent) {\r\n headers['user-agent'] = customUserAgent\r\n }\r\n\r\n const payload = JSON.stringify(data);\r\n\r\n const fetchOptions: GamejamTrackingFetchOptions =\r\n {\r\n method: 'PUT',\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Basic ' + this.authCredential\r\n },\r\n body: payload,\r\n }\r\n \r\n this.fetchWithRetry(GamejamTrackingCore.SEND_URL, fetchOptions)\r\n .then(() => done())\r\n .catch((err) => {\r\n if (err.response) {\r\n const error = new Error(err.response.statusText)\r\n return done(error)\r\n }\r\n\r\n done(err)\r\n })\r\n }\r\n\r\n private async fetchWithRetry(\r\n url: string,\r\n options: GamejamTrackingFetchOptions,\r\n retryOptions?: RetriableOptions\r\n ): Promise {\r\n return retriable(() => this.fetch(url, options), retryOptions || this._retryOptions)\r\n }\r\n\r\n async shutdownAsync(): Promise {\r\n clearTimeout(this._flushTimer)\r\n await this.flushAsync()\r\n }\r\n\r\n shutdown(): void {\r\n void this.shutdownAsync()\r\n }\r\n}\r\n\r\nexport * from './types'\r\nexport { LZString }\r\n","import { utils } from '../../gamejam-tracking-core'\r\nimport { version } from '../package.json'\r\n\r\nexport function getContext(window: Window): any {\r\n let context = {}\r\n if (window.navigator) {\r\n const userAgent = window.navigator.userAgent\r\n context = {\r\n ...context,\r\n $os: os(window),\r\n $browser: browser(userAgent, window.navigator.vendor, !!(window as any).opera),\r\n $referrer: window.document.referrer,\r\n $referring_domain: referringDomain(window.document.referrer),\r\n $device: device(userAgent),\r\n $current_url: window.location.href,\r\n $host: window.location.host,\r\n $pathname: window.location.pathname,\r\n $browser_version: browserVersion(userAgent, window.navigator.vendor, !!(window as any).opera)\r\n }\r\n }\r\n context = {\r\n ...context,\r\n $lib: 'js',\r\n $lib_version: version,\r\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\r\n $time: utils.currentTimestamp() / 1000, // epoch time in seconds\r\n }\r\n return context // TODO: strip empty props?\r\n}\r\n\r\nfunction includes(haystack: string, needle: string): boolean {\r\n return haystack.indexOf(needle) >= 0\r\n}\r\n\r\nfunction browser(userAgent: string, vendor: string, opera: boolean): string {\r\n vendor = vendor || '' // vendor is undefined for at least IE9\r\n if (opera || includes(userAgent, ' OPR/')) {\r\n if (includes(userAgent, 'Mini')) {\r\n return 'Opera Mini'\r\n }\r\n return 'Opera'\r\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(userAgent)) {\r\n return 'BlackBerry'\r\n } else if (includes(userAgent, 'IEMobile') || includes(userAgent, 'WPDesktop')) {\r\n return 'Internet Explorer Mobile'\r\n } else if (includes(userAgent, 'SamsungBrowser/')) {\r\n // https://developer.samsung.com/internet/user-agent-string-format\r\n return 'Samsung Internet'\r\n } else if (includes(userAgent, 'Edge') || includes(userAgent, 'Edg/')) {\r\n return 'Microsoft Edge'\r\n } else if (includes(userAgent, 'FBIOS')) {\r\n return 'Facebook Mobile'\r\n } else if (includes(userAgent, 'Chrome')) {\r\n return 'Chrome'\r\n } else if (includes(userAgent, 'CriOS')) {\r\n return 'Chrome iOS'\r\n } else if (includes(userAgent, 'UCWEB') || includes(userAgent, 'UCBrowser')) {\r\n return 'UC Browser'\r\n } else if (includes(userAgent, 'FxiOS')) {\r\n return 'Firefox iOS'\r\n } else if (includes(vendor, 'Apple')) {\r\n if (includes(userAgent, 'Mobile')) {\r\n return 'Mobile Safari'\r\n }\r\n return 'Safari'\r\n } else if (includes(userAgent, 'Android')) {\r\n return 'Android Mobile'\r\n } else if (includes(userAgent, 'Konqueror')) {\r\n return 'Konqueror'\r\n } else if (includes(userAgent, 'Firefox')) {\r\n return 'Firefox'\r\n } else if (includes(userAgent, 'MSIE') || includes(userAgent, 'Trident/')) {\r\n return 'Internet Explorer'\r\n } else if (includes(userAgent, 'Gecko')) {\r\n return 'Mozilla'\r\n } else {\r\n return ''\r\n }\r\n}\r\n\r\nfunction browserVersion(userAgent: string, vendor: string, opera: boolean): number | null {\r\n const regexList = {\r\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\r\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\r\n Chrome: /Chrome\\/(\\d+(\\.\\d+)?)/,\r\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\r\n 'UC Browser': /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\r\n Safari: /Version\\/(\\d+(\\.\\d+)?)/,\r\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\r\n Opera: /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\r\n Firefox: /Firefox\\/(\\d+(\\.\\d+)?)/,\r\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\r\n Konqueror: /Konqueror:(\\d+(\\.\\d+)?)/,\r\n BlackBerry: /BlackBerry (\\d+(\\.\\d+)?)/,\r\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\r\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\r\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\r\n Mozilla: /rv:(\\d+(\\.\\d+)?)/,\r\n }\r\n\r\n const browserString = browser(userAgent, vendor, opera) as keyof typeof regexList\r\n const regex: RegExp = regexList[browserString] || undefined\r\n\r\n if (regex === undefined) {\r\n return null\r\n }\r\n const matches = userAgent.match(regex)\r\n if (!matches) {\r\n return null\r\n }\r\n return parseFloat(matches[matches.length - 2])\r\n}\r\n\r\nfunction os(window: Window): string {\r\n const a = window.navigator.userAgent\r\n if (/Windows/i.test(a)) {\r\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\r\n return 'Windows Phone'\r\n }\r\n return 'Windows'\r\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\r\n return 'iOS'\r\n } else if (/Android/.test(a)) {\r\n return 'Android'\r\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\r\n return 'BlackBerry'\r\n } else if (/Mac/i.test(a)) {\r\n return 'Mac OS X'\r\n } else if (/Linux/.test(a)) {\r\n return 'Linux'\r\n } else if (/CrOS/.test(a)) {\r\n return 'Chrome OS'\r\n } else {\r\n return ''\r\n }\r\n}\r\n\r\nfunction device(userAgent: string): string {\r\n if (/Windows Phone/i.test(userAgent) || /WPDesktop/.test(userAgent)) {\r\n return 'Windows Phone'\r\n } else if (/iPad/.test(userAgent)) {\r\n return 'iPad'\r\n } else if (/iPod/.test(userAgent)) {\r\n return 'iPod Touch'\r\n } else if (/iPhone/.test(userAgent)) {\r\n return 'iPhone'\r\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(userAgent)) {\r\n return 'BlackBerry'\r\n } else if (/Android/.test(userAgent)) {\r\n return 'Android'\r\n } else {\r\n return ''\r\n }\r\n}\r\n\r\nfunction referringDomain(referrer: string): string {\r\n const split = referrer.split('/')\r\n if (split.length >= 3) {\r\n return split[2]\r\n }\r\n return ''\r\n}\r\n","import { GamejamTrackingOptions } from './types'\r\n\r\nexport type GamejamTrackingStorage = {\r\n getItem: (key: string) => string | null | undefined\r\n setItem: (key: string, value: string) => void\r\n removeItem: (key: string) => void\r\n clear: () => void\r\n getAllKeys: () => readonly string[]\r\n}\r\n\r\n// Methods partially borrowed from quirksmode.org/js/cookies.html\r\nexport const cookieStore: GamejamTrackingStorage = {\r\n getItem(key) {\r\n try {\r\n const nameEQ = key + '='\r\n const ca = document.cookie.split(';')\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i]\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1, c.length)\r\n }\r\n if (c.indexOf(nameEQ) === 0) {\r\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\r\n }\r\n }\r\n } catch (err) {}\r\n return null\r\n },\r\n\r\n setItem(key: string, value: string) {\r\n try {\r\n const cdomain = '',\r\n expires = '',\r\n secure = ''\r\n\r\n const new_cookie_val = key + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure\r\n document.cookie = new_cookie_val\r\n } catch (err) {\r\n return\r\n }\r\n },\r\n\r\n removeItem(name) {\r\n try {\r\n cookieStore.setItem(name, '')\r\n } catch (err) {\r\n return\r\n }\r\n },\r\n clear() {\r\n document.cookie = ''\r\n },\r\n getAllKeys() {\r\n const ca = document.cookie.split(';')\r\n const keys = []\r\n\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i]\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1, c.length)\r\n }\r\n keys.push(c.split('=')[0])\r\n }\r\n\r\n return keys\r\n },\r\n}\r\n\r\nconst createStorageLike = (store: any): GamejamTrackingStorage => {\r\n return {\r\n getItem(key) {\r\n return store.getItem(key)\r\n },\r\n\r\n setItem(key, value) {\r\n store.setItem(key, value)\r\n },\r\n\r\n removeItem(key) {\r\n store.removeItem(key)\r\n },\r\n clear() {\r\n store.clear()\r\n },\r\n getAllKeys() {\r\n const keys = []\r\n for (const key in localStorage) {\r\n keys.push(key)\r\n }\r\n return keys\r\n },\r\n }\r\n}\r\n\r\nexport const _localStore = createStorageLike(window.localStorage)\r\nexport const _sessionStore = createStorageLike(window.sessionStorage)\r\n\r\nconst checkStoreIsSupported = (storage: GamejamTrackingStorage, key = '__mplssupport__'): boolean => {\r\n if (!window) {\r\n return false\r\n }\r\n try {\r\n const val = 'xyz'\r\n storage.setItem(key, val)\r\n \r\n if (storage.getItem(key) !== val) {\r\n return false\r\n }\r\n \r\n storage.removeItem(key)\r\n return true\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nexport const localStore = checkStoreIsSupported(_localStore) ? _localStore : undefined\r\nexport const sessionStorage = checkStoreIsSupported(_sessionStore) ? _sessionStore : undefined\r\n\r\nconst createMemoryStorage = (): GamejamTrackingStorage => {\r\n const _cache: { [key: string]: any | undefined } = {}\r\n\r\n const store: GamejamTrackingStorage = {\r\n getItem(key) {\r\n return _cache[key]\r\n },\r\n\r\n setItem(key, value) {\r\n _cache[key] = value !== null ? value : undefined\r\n },\r\n\r\n removeItem(key) {\r\n delete _cache[key]\r\n },\r\n clear() {\r\n for (const key in _cache) {\r\n delete _cache[key]\r\n }\r\n },\r\n getAllKeys() {\r\n const keys = []\r\n for (const key in _cache) {\r\n keys.push(key)\r\n }\r\n return keys\r\n },\r\n }\r\n return store\r\n}\r\n\r\nexport const getStorage = (type: GamejamTrackingOptions['persistence']): GamejamTrackingStorage => {\r\n switch (type) {\r\n case 'cookie':\r\n return cookieStore || localStore || sessionStorage || createMemoryStorage()\r\n case 'localStorage':\r\n return localStore || sessionStorage || createMemoryStorage()\r\n case 'sessionStorage':\r\n return sessionStorage || createMemoryStorage()\r\n case 'memory':\r\n return createMemoryStorage()\r\n default:\r\n return createMemoryStorage()\r\n }\r\n}\r\n","/////////////////////////////////////////////////////////////////////////////////\r\n/* UAParser.js v0.7.31\r\n Copyright © 2012-2021 Faisal Salman \r\n MIT License *//*\r\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\r\n Supports browser & node.js environment. \r\n Demo : https://faisalman.github.io/ua-parser-js\r\n Source : https://github.com/faisalman/ua-parser-js */\r\n/////////////////////////////////////////////////////////////////////////////////\r\n\r\n(function (window, undefined) {\r\n\r\n 'use strict';\r\n\r\n //////////////\r\n // Constants\r\n /////////////\r\n\r\n\r\n var LIBVERSION = '0.7.31',\r\n EMPTY = '',\r\n UNKNOWN = '?',\r\n FUNC_TYPE = 'function',\r\n UNDEF_TYPE = 'undefined',\r\n OBJ_TYPE = 'object',\r\n STR_TYPE = 'string',\r\n MAJOR = 'major',\r\n MODEL = 'model',\r\n NAME = 'name',\r\n TYPE = 'type',\r\n VENDOR = 'vendor',\r\n VERSION = 'version',\r\n ARCHITECTURE= 'architecture',\r\n CONSOLE = 'console',\r\n MOBILE = 'mobile',\r\n TABLET = 'tablet',\r\n SMARTTV = 'smarttv',\r\n WEARABLE = 'wearable',\r\n EMBEDDED = 'embedded',\r\n UA_MAX_LENGTH = 350;\r\n\r\n var AMAZON = 'Amazon',\r\n APPLE = 'Apple',\r\n ASUS = 'ASUS',\r\n BLACKBERRY = 'BlackBerry',\r\n BROWSER = 'Browser',\r\n CHROME = 'Chrome',\r\n EDGE = 'Edge',\r\n FIREFOX = 'Firefox',\r\n GOOGLE = 'Google',\r\n HUAWEI = 'Huawei',\r\n LG = 'LG',\r\n MICROSOFT = 'Microsoft',\r\n MOTOROLA = 'Motorola',\r\n OPERA = 'Opera',\r\n SAMSUNG = 'Samsung',\r\n SONY = 'Sony',\r\n XIAOMI = 'Xiaomi',\r\n ZEBRA = 'Zebra',\r\n FACEBOOK = 'Facebook';\r\n\r\n ///////////\r\n // Helper\r\n //////////\r\n\r\n var extend = function (regexes, extensions) {\r\n var mergedRegexes = {};\r\n for (var i in regexes) {\r\n if (extensions[i] && extensions[i].length % 2 === 0) {\r\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\r\n } else {\r\n mergedRegexes[i] = regexes[i];\r\n }\r\n }\r\n return mergedRegexes;\r\n },\r\n enumerize = function (arr) {\r\n var enums = {};\r\n for (var i=0; i 0) {\r\n if (q.length === 2) {\r\n if (typeof q[1] == FUNC_TYPE) {\r\n // assign modified match\r\n this[q[0]] = q[1].call(this, match);\r\n } else {\r\n // assign given value, ignore regex match\r\n this[q[0]] = q[1];\r\n }\r\n } else if (q.length === 3) {\r\n // check whether function or regex\r\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\r\n // call function (usually string mapper)\r\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\r\n } else {\r\n // sanitize match using given regex\r\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\r\n }\r\n } else if (q.length === 4) {\r\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\r\n }\r\n } else {\r\n this[q] = match ? match : undefined;\r\n }\r\n }\r\n }\r\n }\r\n i += 2;\r\n }\r\n },\r\n\r\n strMapper = function (str, map) {\r\n\r\n for (var i in map) {\r\n // check if current value is array\r\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\r\n for (var j = 0; j < map[i].length; j++) {\r\n if (has(map[i][j], str)) {\r\n return (i === UNKNOWN) ? undefined : i;\r\n }\r\n }\r\n } else if (has(map[i], str)) {\r\n return (i === UNKNOWN) ? undefined : i;\r\n }\r\n }\r\n return str;\r\n };\r\n\r\n ///////////////\r\n // String map\r\n //////////////\r\n\r\n // Safari < 3.0\r\n var oldSafariMap = {\r\n '1.0' : '/8',\r\n '1.2' : '/1',\r\n '1.3' : '/3',\r\n '2.0' : '/412',\r\n '2.0.2' : '/416',\r\n '2.0.3' : '/417',\r\n '2.0.4' : '/419',\r\n '?' : '/'\r\n },\r\n windowsVersionMap = {\r\n 'ME' : '4.90',\r\n 'NT 3.11' : 'NT3.51',\r\n 'NT 4.0' : 'NT4.0',\r\n '2000' : 'NT 5.0',\r\n 'XP' : ['NT 5.1', 'NT 5.2'],\r\n 'Vista' : 'NT 6.0',\r\n '7' : 'NT 6.1',\r\n '8' : 'NT 6.2',\r\n '8.1' : 'NT 6.3',\r\n '10' : ['NT 6.4', 'NT 10.0'],\r\n 'RT' : 'ARM'\r\n };\r\n\r\n //////////////\r\n // Regex map\r\n /////////////\r\n\r\n var regexes = {\r\n\r\n browser : [[\r\n\r\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\r\n ], [VERSION, [NAME, 'Chrome']], [\r\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\r\n ], [VERSION, [NAME, 'Edge']], [\r\n\r\n // Presto based\r\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\r\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\r\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\r\n ], [NAME, VERSION], [\r\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\r\n ], [VERSION, [NAME, OPERA+' Mini']], [\r\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\r\n ], [VERSION, [NAME, OPERA]], [\r\n\r\n // Mixed\r\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\r\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\r\n // Trident based\r\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\r\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\r\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\r\n\r\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\r\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\r\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\r\n /(weibo)__([\\d\\.]+)/i // Weibo\r\n ], [NAME, VERSION], [\r\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\r\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\r\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\r\n /\\bqbcore\\/([\\w\\.]+).+microm/i\r\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\r\n /micromessenger\\/([\\w\\.]+)/i // WeChat\r\n ], [VERSION, [NAME, 'WeChat']], [\r\n /konqueror\\/([\\w\\.]+)/i // Konqueror\r\n ], [VERSION, [NAME, 'Konqueror']], [\r\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\r\n ], [VERSION, [NAME, 'IE']], [\r\n /yabrowser\\/([\\w\\.]+)/i // Yandex\r\n ], [VERSION, [NAME, 'Yandex']], [\r\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\r\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\r\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\r\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\r\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\r\n ], [VERSION, [NAME, OPERA+' Touch']], [\r\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\r\n ], [VERSION, [NAME, 'Coc Coc']], [\r\n /dolfin\\/([\\w\\.]+)/i // Dolphin\r\n ], [VERSION, [NAME, 'Dolphin']], [\r\n /coast\\/([\\w\\.]+)/i // Opera Coast\r\n ], [VERSION, [NAME, OPERA+' Coast']], [\r\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\r\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\r\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\r\n ], [VERSION, [NAME, FIREFOX]], [\r\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\r\n ], [[NAME, '360 '+BROWSER]], [\r\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\r\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\r\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\r\n ], [[NAME, /_/g, ' '], VERSION], [\r\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\r\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\r\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\r\n ], [NAME, VERSION], [\r\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\r\n /(lbbrowser)/i, // LieBao Browser\r\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\r\n ], [NAME], [\r\n\r\n // WebView\r\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\r\n ], [[NAME, FACEBOOK], VERSION], [\r\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\r\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\r\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\r\n ], [NAME, VERSION], [\r\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\r\n ], [VERSION, [NAME, 'GSA']], [\r\n\r\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\r\n ], [VERSION, [NAME, CHROME+' Headless']], [\r\n\r\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\r\n ], [[NAME, CHROME+' WebView'], VERSION], [\r\n\r\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\r\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\r\n\r\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\r\n ], [NAME, VERSION], [\r\n\r\n /version\\/([\\w\\.]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\r\n ], [VERSION, [NAME, 'Mobile Safari']], [\r\n /version\\/([\\w\\.]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\r\n ], [VERSION, NAME], [\r\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\r\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\r\n\r\n /(webkit|khtml)\\/([\\w\\.]+)/i\r\n ], [NAME, VERSION], [\r\n\r\n // Gecko based\r\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\r\n ], [[NAME, 'Netscape'], VERSION], [\r\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\r\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\r\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\r\n /(swiftfox)/i, // Swiftfox\r\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\r\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\r\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\r\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\r\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\r\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\r\n\r\n // Other\r\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\r\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\r\n /(links) \\(([\\w\\.]+)/i // Links\r\n ], [NAME, VERSION]\r\n ],\r\n\r\n cpu : [[\r\n\r\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\r\n ], [[ARCHITECTURE, 'amd64']], [\r\n\r\n /(ia32(?=;))/i // IA32 (quicktime)\r\n ], [[ARCHITECTURE, lowerize]], [\r\n\r\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\r\n ], [[ARCHITECTURE, 'ia32']], [\r\n\r\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\r\n ], [[ARCHITECTURE, 'arm64']], [\r\n\r\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\r\n ], [[ARCHITECTURE, 'armhf']], [\r\n\r\n // PocketPC mistakenly identified as PowerPC\r\n /windows (ce|mobile); ppc;/i\r\n ], [[ARCHITECTURE, 'arm']], [\r\n\r\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\r\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\r\n\r\n /(sun4\\w)[;\\)]/i // SPARC\r\n ], [[ARCHITECTURE, 'sparc']], [\r\n\r\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\r\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\r\n ], [[ARCHITECTURE, lowerize]]\r\n ],\r\n\r\n device : [[\r\n\r\n //////////////////////////\r\n // MOBILES & TABLETS\r\n // Ordered by popularity\r\n /////////////////////////\r\n\r\n // Samsung\r\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[pt]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\r\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\r\n /\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,\r\n /samsung[- ]([-\\w]+)/i,\r\n /sec-(sgh\\w+)/i\r\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\r\n\r\n // Apple\r\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\r\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\r\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\r\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\r\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\r\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\r\n\r\n // Huawei\r\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\r\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\r\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\r\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\r\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\r\n\r\n // Xiaomi\r\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\r\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\r\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\r\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\r\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\r\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\r\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\r\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\r\n\r\n // OPPO\r\n /; (\\w+) bui.+ oppo/i,\r\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\r\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\r\n\r\n // Vivo\r\n /vivo (\\w+)(?: bui|\\))/i,\r\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\r\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\r\n\r\n // Realme\r\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\r\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\r\n\r\n // Motorola\r\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\r\n /\\bmot(?:orola)?[- ](\\w*)/i,\r\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\r\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\r\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\r\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\r\n\r\n // LG\r\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\r\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\r\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\r\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\r\n /\\blg-?([\\d\\w]+) bui/i\r\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\r\n\r\n // Lenovo\r\n /(ideatab[-\\w ]+)/i,\r\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\r\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\r\n\r\n // Nokia\r\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\r\n /nokia[-_ ]?([-\\w\\.]*)/i\r\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\r\n\r\n // Google\r\n /(pixel c)\\b/i // Google Pixel C\r\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\r\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\r\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\r\n\r\n // Sony\r\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\r\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\r\n /sony tablet [ps]/i,\r\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\r\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\r\n\r\n // OnePlus\r\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\r\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\r\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\r\n\r\n // Amazon\r\n /(alexa)webm/i,\r\n /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\r\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\r\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\r\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\r\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\r\n\r\n // BlackBerry\r\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\r\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\r\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\r\n /\\(bb10; (\\w+)/i // BlackBerry 10\r\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\r\n\r\n // Asus\r\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\r\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\r\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\r\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\r\n\r\n // HTC\r\n /(nexus 9)/i // HTC Nexus 9\r\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\r\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\r\n\r\n // ZTE\r\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\r\n /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\r\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\r\n\r\n // Acer\r\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\r\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\r\n\r\n // Meizu\r\n /droid.+; (m[1-5] note) bui/i,\r\n /\\bmz-([-\\w]{2,})/i\r\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\r\n\r\n // Sharp\r\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\r\n ], [MODEL, [VENDOR, 'Sharp'], [TYPE, MOBILE]], [\r\n\r\n // MIXED\r\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\r\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\r\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\r\n /(asus)-?(\\w+)/i, // Asus\r\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\r\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\r\n /(jolla)/i, // Jolla\r\n /(oppo) ?([\\w ]+) bui/i // OPPO\r\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\r\n\r\n /(archos) (gamepad2?)/i, // Archos\r\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\r\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\r\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\r\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\r\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\r\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\r\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\r\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\r\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\r\n\r\n /(surface duo)/i // Surface Duo\r\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\r\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\r\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\r\n /(u304aa)/i // AT&T\r\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\r\n /\\bsie-(\\w*)/i // Siemens\r\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\r\n /\\b(rct\\w+) b/i // RCA Tablets\r\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\r\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\r\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\r\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\r\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\r\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\r\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\r\n /\\b(tm\\d{3}\\w+) b/i\r\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\r\n /\\b(k88) b/i // ZTE K Series Tablet\r\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\r\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\r\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\r\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\r\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\r\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\r\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\r\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\r\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\r\n /\\b([yr]\\d{2}) b/i,\r\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\r\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\r\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\r\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\r\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\r\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\r\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\r\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\r\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\r\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\r\n /\\b(ph-1) /i // Essential PH-1\r\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\r\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\r\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\r\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\r\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\r\n /\\btu_(1491) b/i // Rotor Tablets\r\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\r\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\r\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\r\n /(sprint) (\\w+)/i // Sprint Phones\r\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\r\n /(kin\\.[onetw]{3})/i // Microsoft Kin\r\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\r\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\r\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\r\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\r\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\r\n\r\n ///////////////////\r\n // CONSOLES\r\n ///////////////////\r\n\r\n /(ouya)/i, // Ouya\r\n /(nintendo) ([wids3utch]+)/i // Nintendo\r\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\r\n /droid.+; (shield) bui/i // Nvidia\r\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\r\n /(playstation [345portablevi]+)/i // Playstation\r\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\r\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\r\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\r\n\r\n ///////////////////\r\n // SMARTTVS\r\n ///////////////////\r\n\r\n /smart-tv.+(samsung)/i // Samsung\r\n ], [VENDOR, [TYPE, SMARTTV]], [\r\n /hbbtv.+maple;(\\d+)/i\r\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\r\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\r\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\r\n /(apple) ?tv/i // Apple TV\r\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\r\n /crkey/i // Google Chromecast\r\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\r\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\r\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\r\n /\\(dtv[\\);].+(aquos)/i // Sharp\r\n ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [\r\n /(bravia[\\w- ]+) bui/i // Sony\r\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\r\n /(mitv-\\w{5}) bui/i // Xiaomi\r\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\r\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\r\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\r\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\r\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\r\n ], [[TYPE, SMARTTV]], [\r\n\r\n ///////////////////\r\n // WEARABLES\r\n ///////////////////\r\n\r\n /((pebble))app/i // Pebble\r\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\r\n /droid.+; (glass) \\d/i // Google Glass\r\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\r\n /droid.+; (wt63?0{2,3})\\)/i\r\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\r\n /(quest( 2)?)/i // Oculus Quest\r\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\r\n\r\n ///////////////////\r\n // EMBEDDED\r\n ///////////////////\r\n\r\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\r\n ], [VENDOR, [TYPE, EMBEDDED]], [\r\n\r\n ////////////////////\r\n // MIXED (GENERIC)\r\n ///////////////////\r\n\r\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\r\n ], [MODEL, [TYPE, MOBILE]], [\r\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\r\n ], [MODEL, [TYPE, TABLET]], [\r\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\r\n ], [[TYPE, TABLET]], [\r\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\r\n ], [[TYPE, MOBILE]], [\r\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\r\n ], [MODEL, [VENDOR, 'Generic']]\r\n ],\r\n\r\n engine : [[\r\n\r\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\r\n ], [VERSION, [NAME, EDGE+'HTML']], [\r\n\r\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\r\n ], [VERSION, [NAME, 'Blink']], [\r\n\r\n /(presto)\\/([\\w\\.]+)/i, // Presto\r\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\r\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\r\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\r\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\r\n ], [NAME, VERSION], [\r\n\r\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\r\n ], [VERSION, NAME]\r\n ],\r\n\r\n os : [[\r\n\r\n // Windows\r\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\r\n ], [NAME, VERSION], [\r\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\r\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\r\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\r\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\r\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\r\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\r\n\r\n // iOS/macOS\r\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\r\n /cfnetwork\\/.+darwin/i\r\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\r\n /(mac os x) ?([\\w\\. ]*)/i,\r\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\r\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\r\n\r\n // Mobile OSes\r\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\r\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\r\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\r\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\r\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\r\n /\\((series40);/i // Series 40\r\n ], [NAME, VERSION], [\r\n /\\(bb(10);/i // BlackBerry 10\r\n ], [VERSION, [NAME, BLACKBERRY]], [\r\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\r\n ], [VERSION, [NAME, 'Symbian']], [\r\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\r\n ], [VERSION, [NAME, FIREFOX+' OS']], [\r\n /web0s;.+rt(tv)/i,\r\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\r\n ], [VERSION, [NAME, 'webOS']], [\r\n\r\n // Google Chromecast\r\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\r\n ], [VERSION, [NAME, CHROME+'cast']], [\r\n /(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\r\n ], [[NAME, 'Chromium OS'], VERSION],[\r\n\r\n // Console\r\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\r\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\r\n\r\n // Other\r\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\r\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\r\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\r\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\r\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\r\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\r\n /(gnu) ?([\\w\\.]*)/i, // GNU\r\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\r\n /(haiku) (\\w+)/i // Haiku\r\n ], [NAME, VERSION], [\r\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\r\n ], [[NAME, 'Solaris'], VERSION], [\r\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\r\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\r\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\r\n /(unix) ?([\\w\\.]*)/i // UNIX\r\n ], [NAME, VERSION]\r\n ]\r\n };\r\n\r\n /////////////////\r\n // Constructor\r\n ////////////////\r\n\r\n var UAParser = function (ua, extensions) {\r\n\r\n if (typeof ua === OBJ_TYPE) {\r\n extensions = ua;\r\n ua = undefined;\r\n }\r\n\r\n if (!(this instanceof UAParser)) {\r\n return new UAParser(ua, extensions).getResult();\r\n }\r\n\r\n var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\r\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\r\n\r\n this.getBrowser = function () {\r\n var _browser = {};\r\n _browser[NAME] = undefined;\r\n _browser[VERSION] = undefined;\r\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\r\n _browser.major = majorize(_browser.version);\r\n return _browser;\r\n };\r\n this.getCPU = function () {\r\n var _cpu = {};\r\n _cpu[ARCHITECTURE] = undefined;\r\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\r\n return _cpu;\r\n };\r\n this.getDevice = function () {\r\n var _device = {};\r\n _device[VENDOR] = undefined;\r\n _device[MODEL] = undefined;\r\n _device[TYPE] = undefined;\r\n rgxMapper.call(_device, _ua, _rgxmap.device);\r\n return _device;\r\n };\r\n this.getEngine = function () {\r\n var _engine = {};\r\n _engine[NAME] = undefined;\r\n _engine[VERSION] = undefined;\r\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\r\n return _engine;\r\n };\r\n this.getOS = function () {\r\n var _os = {};\r\n _os[NAME] = undefined;\r\n _os[VERSION] = undefined;\r\n rgxMapper.call(_os, _ua, _rgxmap.os);\r\n return _os;\r\n };\r\n this.getResult = function () {\r\n return {\r\n ua : this.getUA(),\r\n browser : this.getBrowser(),\r\n engine : this.getEngine(),\r\n os : this.getOS(),\r\n device : this.getDevice(),\r\n cpu : this.getCPU()\r\n };\r\n };\r\n this.getUA = function () {\r\n return _ua;\r\n };\r\n this.setUA = function (ua) {\r\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\r\n return this;\r\n };\r\n this.setUA(_ua);\r\n return this;\r\n };\r\n\r\n UAParser.VERSION = LIBVERSION;\r\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\r\n UAParser.CPU = enumerize([ARCHITECTURE]);\r\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\r\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\r\n\r\n ///////////\r\n // Export\r\n //////////\r\n\r\n // check js environment\r\n if (typeof(exports) !== UNDEF_TYPE) {\r\n // nodejs env\r\n if (typeof module !== UNDEF_TYPE && module.exports) {\r\n exports = module.exports = UAParser;\r\n }\r\n exports.UAParser = UAParser;\r\n } else {\r\n // requirejs env (optional)\r\n if (typeof(define) === FUNC_TYPE && define.amd) {\r\n define(function () {\r\n return UAParser;\r\n });\r\n } else if (typeof window !== UNDEF_TYPE) {\r\n // browser env\r\n window.UAParser = UAParser;\r\n }\r\n }\r\n\r\n // jQuery/Zepto specific (optional)\r\n // Note:\r\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\r\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\r\n // and we should catch that.\r\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\r\n if ($ && !$.ua) {\r\n var parser = new UAParser();\r\n $.ua = parser.getResult();\r\n $.ua.get = function () {\r\n return parser.getUA();\r\n };\r\n $.ua.set = function (ua) {\r\n parser.setUA(ua);\r\n var result = parser.getResult();\r\n for (var prop in result) {\r\n $.ua[prop] = result[prop];\r\n }\r\n };\r\n }\r\n\r\n})(typeof window === 'object' ? window : this);\r\n","import {\r\n GamejamTrackingCore,\r\n GamejamTrackingFetchOptions,\r\n GamejamTrackingFetchResponse,\r\n GamejamTrackingPersistedProperty,\r\n} from '../../gamejam-tracking-core/src'\r\n\r\nimport { getContext } from './context'\r\nimport { GamejamTrackingStorage, getStorage } from './storage'\r\nimport { version } from '../package.json'\r\nimport { GamejamTrackingOptions } from './types'\r\n\r\nimport timeZoneCityToCountry_data from './cities-to-countries.json';\r\nconst timeZoneCityToCountry = timeZoneCityToCountry_data as Record;\r\n\r\nimport { UAParser } from './ua-parser'\r\n\r\nexport class GamejamTracking extends GamejamTrackingCore {\r\n private _storage!: GamejamTrackingStorage\r\n private _storageKey!: string\r\n \r\n private _storageCache: any\r\n\r\n constructor(appId: string, appSecret: string, options?: GamejamTrackingOptions) {\r\n super(appId, appSecret, options);\r\n }\r\n\r\n protected init(options?: GamejamTrackingOptions)\r\n {\r\n super.init(options);\r\n \r\n // gamejam-tracking-js stores options in one object on\r\n this._storageKey = options?.persistence_name ? `gamejam_tracking_${options.persistence_name}` : `gamejam_tracking_${this.appId}`\r\n this._storage = getStorage(options?.persistence || 'localStorage')\r\n }\r\n \r\n protected fillContextData(data: { [key: string]: any })\r\n {\r\n super.fillContextData(data);\r\n \r\n let parser = new UAParser();\r\n let result = parser.getResult();\r\n \r\n data[GamejamTrackingCore.BROWSER_KEY] = result.browser.name || '';\r\n data[GamejamTrackingCore.BROWSER_VERSION_KEY] = result.browser.version || '';\r\n \r\n data[GamejamTrackingCore.DEVICE_MODEL_KEY] = result.device.model || '';\r\n \r\n data[GamejamTrackingCore.OS_KEY] = result.os.name || '';\r\n data[GamejamTrackingCore.OS_VERSION_KEY] = result.os.version || '';\r\n \r\n let country: string = '';\r\n \r\n if (Intl)\r\n {\r\n let userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n let tzArr = userTimeZone.split(\"/\");\r\n let userCity = tzArr[tzArr.length - 1];\r\n country = timeZoneCityToCountry[userCity] || '';\r\n }\r\n \r\n data[GamejamTrackingCore.COUNTRY_KEY] = country;\r\n }\r\n\r\n getPersistedProperty(key: GamejamTrackingPersistedProperty): T | undefined {\r\n if (!this._storageCache) {\r\n this._storageCache = JSON.parse(this._storage.getItem(this._storageKey) || '{}') || {}\r\n }\r\n\r\n return this._storageCache[key]\r\n }\r\n\r\n setPersistedProperty(key: GamejamTrackingPersistedProperty, value: T | null): void {\r\n if (!this._storageCache) {\r\n this._storageCache = JSON.parse(this._storage.getItem(this._storageKey) || '{}') || {}\r\n }\r\n\r\n if (value === null) {\r\n delete this._storageCache[key]\r\n } else {\r\n this._storageCache[key] = value\r\n }\r\n\r\n this._storage.setItem(this._storageKey, JSON.stringify(this._storageCache))\r\n }\r\n\r\n fetch(url: string, options: GamejamTrackingFetchOptions): Promise {\r\n return window.fetch(url, options)\r\n }\r\n getLibraryId(): string {\r\n return 'gamejam-tracking-js'\r\n }\r\n getLibraryVersion(): string {\r\n return version\r\n }\r\n getCustomUserAgent(): void {\r\n return\r\n }\r\n\r\n getCommonEventProperties(): any {\r\n return {\r\n ...super.getCommonEventProperties(),\r\n ...getContext(window),\r\n }\r\n }\r\n}\r\n","import GamejamTracking from 'gamejam-tracking-js'\nimport { PLAYCHAIN_SETTING } from \"@/utils/constants\"\n\nlet trackingInstance\nlet trackingWalletAddress\nfunction isTrackingReady() {\n return trackingWalletAddress != null && trackingInstance != null\n}\nfunction getTracking(address) {\n if ((!trackingInstance || address != trackingWalletAddress) && address != null) {\n trackingWalletAddress = address\n trackingInstance = new GamejamTracking(\n PLAYCHAIN_SETTING.APP_ID,\n PLAYCHAIN_SETTING.APP_SECRET,\n {\n flushAt: 1,\n flushInterval: 1000,\n userId: `eth:${address}`\n })\n }\n return trackingInstance;\n}\nfunction logoutTracking() {\n trackingInstance = null\n}\nfunction setWallet(address) {\n if (trackingWalletAddress == address) {\n return\n }\n trackingWalletAddress = address\n trackingInstance = new GamejamTracking(\n PLAYCHAIN_SETTING.APP_ID,\n PLAYCHAIN_SETTING.APP_SECRET,\n {\n flushAt: 1,\n flushInterval: 1000,\n userId: `eth:${address}`\n })\n\n trackingInstance.trackWalletLink(address, 'eth')\n}\nconst trackingManager = {\n getTracking,\n logoutTracking,\n setWallet,\n isTrackingReady\n}\nexport default trackingManager;","import Web3 from 'web3/dist/web3.min.js';\nimport { TARGET_MAINNET, ChainId, CONTRACT_ADDRESS } from './constants';\nimport store from '../store';\nimport WalletConnect from \"@walletconnect/client\";\nimport QRCodeModal from \"@walletconnect/qrcode-modal\";\nimport WalletConnectProvider from \"@walletconnect/web3-provider\";\nimport trackingManager from '@/utils/tracking-manager';\n\nconst NETWORK_CHAIN_ID_MAPS = {\n [TARGET_MAINNET ? 1 : 5]: ChainId.Eth,\n [TARGET_MAINNET ? 56 : 97]: ChainId.Bsc,\n};\n\nconst WALLET_CONNECTED_KEY = 'fren-wallet-connected';\n\nlet web3;\nlet provider;\nlet connector;\nconst appLocalStorage = window.localStorage;\n\nasync function init(walletName, isCached) {\n try {\n if (!walletName) return;\n switch (walletName) {\n case 'Metamask':\n if (!window.ethereum || !window.ethereum.isMetaMask) {\n await store.dispatch('showNotification', { message: 'Metamask is not installed!' });\n return;\n }\n if (window.ethereum.providers && window.ethereum.providers.length) {\n provider = window.ethereum.providers.find(p => p.isMetaMask);\n } else {\n provider = window.ethereum;\n }\n break;\n case 'Coinbase':\n if (!window.ethereum) {\n await store.dispatch('showNotification', { message: 'Coinbase is not installed!' });\n return;\n }\n if (window.ethereum.providers && window.ethereum.providers.length) {\n provider = window.ethereum.providers.find(p => p.isCoinbaseWallet);\n } else {\n provider = window.ethereum;\n }\n break;\n case 'Wallet Connect':\n connector = new WalletConnect({\n bridge: \"https://bridge.walletconnect.org\", // Required\n qrcodeModal: QRCodeModal,\n });\n provider = new WalletConnectProvider({\n rpc: {\n 1: \"https://mainnet.infura.io/v3/88eb7c595590415da3abf2945b953a1a\",\n 4: \"https://rinkeby.infura.io/v3/88eb7c595590415da3abf2945b953a1a\",\n 2710: 'https://crypto.gamejam.com/testnet/rpc'\n },\n });\n await provider.enable();\n break;\n default:\n break;\n }\n\n if (!provider) return;\n if (!isCached) {\n await connect(walletName);\n } else {\n web3 = new Web3(provider);\n window.web3 = web3;\n }\n\n // init in case listener fails\n provider.on('accountsChanged', changeAccount);\n provider.on('chainChanged', updateChain);\n provider.on('disconnect', () => {\n appLocalStorage.removeItem(WALLET_CONNECTED_KEY);\n trackingManager.logoutTracking();\n });\n } catch (e) {\n console.error('Initialize Wallet error!', e);\n }\n}\n\nfunction getWeb3() {\n return web3;\n}\n\nasync function connect(walletName) {\n try {\n web3 = new Web3(provider);\n window.web3 = web3;\n if (walletName === 'Wallet Connect') {\n await connectWallet();\n } else {\n await provider.request({ method: 'eth_requestAccounts' });\n await getWalletInfo();\n await store.dispatch('updateWallet', { name: walletName, installed: true, connected: true });\n }\n } catch (error) {\n if (error.code === 4001) {\n await store.dispatch('showNotification', { message: 'User refused to connect! ' });\n }\n console.error(`Failed to connect to ${walletName}!`, error);\n }\n}\n\nasync function connectWallet() {\n // Check if connection is already established\n if (connector.connected) {\n try {\n await connector.killSession();\n } catch (e) {\n console.error('wc/kill_session', JSON.stringify(e));\n }\n }\n // create new session\n try {\n await connector.createSession();\n // get uri for QR Code modal\n // const uri = connector.uri\n // display QR Code modal\n // QRCodeModal.open(uri, onModalClose)\n } catch (e) {\n console.error('wc/create_session', JSON.stringify(e));\n }\n\n // Subscribe to connection events\n connector.on(\"connect\", (error, payload) => {\n if (error) {\n console.error('wc/connect', JSON.stringify(error));\n }\n\n // Close QR Code modal\n QRCodeModal.close();\n\n store.dispatch('updateWallet', { connected: true, name: 'Wallet Connect' });\n // Get provided accounts and chainId\n const { accounts, chainId } = payload.params[0];\n updateWallet(accounts);\n updateChain(chainId);\n });\n\n connector.on(\"session_update\", (error, payload) => {\n if (error) {\n console.error('wc/session_update', JSON.stringify(error));\n throw error;\n }\n\n // Get updated accounts and chainId\n const { accounts, chainId } = payload.params[0];\n updateWallet(accounts);\n updateChain(chainId);\n });\n\n connector.on(\"disconnect\", (error) => {\n if (error) {\n console.error('wc/disconnect', JSON.stringify(error));\n throw error;\n }\n connector = null;\n });\n}\n\nfunction updateWallet(accounts) {\n const address = accounts.length && accounts[0].toLowerCase() || null;\n const checksumAddress = address && web3.utils.toChecksumAddress(address);\n store.dispatch('updateWallet', {\n address,\n connected: !!checksumAddress\n });\n}\n\nfunction updateChain(network) {\n const chainId = NETWORK_CHAIN_ID_MAPS[Number(network)];\n const wallet = store.getters['getWallet'];\n const currentChainId = wallet && wallet.chainId;\n if (currentChainId !== chainId) {\n store.dispatch('updateWallet', {\n chainId\n });\n }\n}\n\nasync function switchToChain(chainId) {\n try {\n if (!provider)\n init(\"Metamask\", false);\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: chainId }]\n });\n updateChain(chainId);\n } catch (switchError) {\n console.error(switchError);\n if (switchError.code === 4902) {\n try {\n const chain = store.getters.chains.find(chain => chain.chainId === chainId);\n console.log(\"XXX\", chainId, chain);\n await provider.request({\n method: 'wallet_addEthereumChain',\n params: [chain]\n });\n await switchToChain(chainId);\n } catch (addError) {\n console.error('Could not add chain!', addError);\n }\n }\n }\n}\n\nasync function getWalletInfo() {\n const accounts = await web3.eth.getAccounts();\n if (accounts && accounts.length) await updateWallet(accounts);\n const chainId = await web3.eth.getChainId();\n if (chainId) updateChain(chainId);\n}\n\nasync function getBalance({ address }) {\n try {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd.json'), CONTRACT_ADDRESS.WASD);\n return await contract.methods.balanceOf(address).call();\n } catch (error) {\n console.error(`Failed to get WASD balance of ${address}`, error);\n }\n}\n\nasync function mint({ amount, address, role_id, sign_hash }) {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n if (role_id && sign_hash)\n return await contract.methods.mintWASD(+role_id, sign_hash, +amount).send({\n from: address\n });\n else\n return await contract.methods.mintWASD(amount).send({\n from: address\n });\n}\n\nasync function getSignature({ challenge, address }) {\n if (connector)\n return await connector.signPersonalMessage([\n challenge,\n address\n ]);\n else\n return await web3.eth.personal.sign(challenge, address);\n}\n\nasync function getParticipantInfo(address) {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.getParticipantInfo(address).call();\n}\n\nasync function getTotalSupply() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.wasdLimit().call();\n}\n\nasync function getMintedNFT() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.totalMintCount().call();\n}\n\nasync function getCurrentPhase() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.getCurrentPhase().call();\n}\n\nasync function getCurrentBlock() {\n return await web3.eth.getBlock('latest');\n}\n\nasync function getPhaseInfo() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.getPhaseInfo().call();\n}\n\nasync function getStarting() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.startingTime().call();\n}\n\nasync function getRoles() {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd-minting.json'), store.getters.mintingContract);\n return await contract.methods.getRoles().call();\n}\n\nasync function getTokenByIndex(index, address) {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd.json'), CONTRACT_ADDRESS.WASD);\n return await contract.methods.tokenOfOwnerByIndex(address, index).call();\n}\n\nasync function getTokenURI(tokenId) {\n const contract = new web3.eth.Contract(require('@/assets/json/wasd.json'), CONTRACT_ADDRESS.WASD);\n return await contract.methods.tokenURI(tokenId).call();\n}\n\nfunction closeConnector() {\n connector = null;\n}\n\nasync function changeAccount(accounts) {\n const address = accounts.length && accounts[0].toLowerCase() || null;\n await store.dispatch('switchWallet', {\n address\n });\n}\n\nconst walletApi = {\n init,\n getWeb3,\n connect,\n switchToChain,\n getBalance,\n mint,\n getSignature,\n getParticipantInfo,\n getTotalSupply,\n getMintedNFT,\n getCurrentPhase,\n getCurrentBlock,\n closeConnector,\n getPhaseInfo,\n getStarting,\n getRoles,\n getTokenByIndex,\n getTokenURI\n};\n\nexport default walletApi;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"139\":\"9ec2eb9a\",\"157\":\"194654ca\",\"163\":\"0723024e\",\"165\":\"79dbb3e2\",\"181\":\"8de2231e\",\"198\":\"8e4f3389\",\"371\":\"45263041\",\"400\":\"92535872\",\"428\":\"d90ee2c3\",\"436\":\"f93d1d88\",\"437\":\"93e2b847\",\"538\":\"a84ff07c\",\"554\":\"ae53f25e\",\"555\":\"73688749\",\"560\":\"e9de9324\",\"578\":\"61ab211b\",\"610\":\"87b44f99\",\"620\":\"408b50bd\",\"636\":\"8dce8f8b\",\"654\":\"071684f3\",\"682\":\"d2d5bd2c\",\"702\":\"6c2788ab\",\"758\":\"dc374cc6\",\"770\":\"a55481d6\",\"810\":\"22c499dd\",\"817\":\"74177a3a\",\"820\":\"cc178074\",\"847\":\"b38568ef\",\"907\":\"0cddee26\",\"949\":\"ea4c70dc\",\"955\":\"0d514f8a\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"139\":\"47f3c954\",\"371\":\"8f07f7fc\",\"578\":\"60ed373d\",\"620\":\"2af97bfa\",\"654\":\"3d9fad0a\",\"758\":\"1f64194b\",\"817\":\"e6ce08a7\",\"847\":\"62935b8d\",\"949\":\"7741bea6\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"og-club-mint-site:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"//static.wasdnft.com/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"139\":1,\"371\":1,\"578\":1,\"620\":1,\"654\":1,\"758\":1,\"817\":1,\"847\":1,\"949\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkog_club_mint_site\"] = self[\"webpackChunkog_club_mint_site\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(65536); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["async","APIRequestChallenge","publicAddress","request","url","method","data","APIVerify","address","signature","APIFetchContract","APIRequestDiscordChallenge","guildId","discordId","code","collabRequest","params","APIVerifyDiscord","APIRegisterWASDLondon","eventRequest","APIFetchWASDLondon","APIFetchDownloadURL","wasdTokenId","render","_vm","this","_c","_self","class","theme","attrs","staticStyle","require","on","$event","goTo","_v","style","color","isCurrentRoute","staticClass","wallet","toggleLogout","_s","_f","showLogout","logout","_e","toggleMenu","menu","_m","inPortalPage","showRefund","refundDialog","stopPropagation","staticRenderFns","directives","name","rawName","value","show","expression","computedStyle","type","hide","message","computed","watch","immediate","handler","setTimeout","methods","component","components","NotificationMessage","filters","formatAddress","created","runSDK","$route","body","window","path","n","t","s","fbq","Vue","VueRouter","routes","router","mode","base","bind","el","binding","arg","imageElement","Array","from","children","find","nodeName","addEventListener","classList","add","console","log","src","dataset","VueKinesis","VueGtag","config","id","VueGoogleMaps","load","key","LazyLoadDirective","store","h","App","$mount","Vuex","state","notification","visible","chains","Ethereum","BSCTestnet","installed","balance","challenge","discordChallenge","session","info","contract","wasd","CONTRACT_ADDRESS","minting","nft","tokenIds","nftPage","nftTotalPage","nftSize","accessToken","appLocalStorage","getters","filter","c","supportedChainIds","wrongNetwork","chainId","notificationVisible","notificationMessage","notificationType","wasdContract","mintingContract","nfts","canLoadMore","length","mutations","SET_WALLET","trackingManager","SET_BALANCE","track","SET_THEME","SET_NOTIFICATION","SET_CHALLENGE","SET_SESSION","SET_TX","transaction","SET_INFO","RESET_WALLET","location","reload","SET_CONTRACT","SET_NFT","SET_NFT_PAGE","SET_NFT_TOTAL_PAGE","SET_TOKEN_IDS","SET_DISCORD_CHALLENGE","CLEAR_WALLET","SET_CLAIM_SESSION","wasdArtRules","claimSignature","claimable","actions","updateWallet","commit","getWASDBalance","changeTheme","hideNotification","showNotification","dispatch","isCached","walletApi","e","error","role_id","phase","total","minted","phaseInfo","roles","mint_left","mintCount","availableMintCount","mintLimit","role","roleName","phases","allowedInPhases","mint","mintOver","mintingAddress","nftAddress","Promise","all","map","_","i","getWASDTokenId","totalPage","Math","ceil","page","slice","tokenURIs","tokens","uri","axios","push","image","replace","modules","AppStorage","constructor","storage","localStorage","isSupported","Error","setItem","JSON","stringify","set","getItem","itemStr","parse","get","removeItem","remove","setWithExpiry","ttl","now","Date","item","expiry","getTime","getWithExpiry","clear","supported","sessionStorage","TARGET_MAINNET","process","COLLAB_API_URL","API_URL","EVENT_URL","ChainId","Eth","Bsc","chainName","nativeCurrency","symbol","decimals","rpcUrls","blockExplorerUrls","icon","WAGMI_BSC_TESTNET","WASD","WASD_MINTING","CLAIM","CORE","PLAYCHAIN_SETTING","APP_ID","APP_SECRET","WALLETCONNECT_PROJECT_ID","VUE_WALLETCONNECT_PROJECT_ID","WAES_URL","isJSONSerializable","undefined","isArray","toJSON","payloadMethods","Set","Object","freeze","isPayloadMethod","has","toUpperCase","getService","baseURL","service","timeout","interceptors","use","headers","response","res","status","responseError","reject","getCollabService","getEventService","collabService","eventService","req","waesRequest","_request","_options","baseOptions","credentials","withBase","options","Headers","fetch","superfineSDK","setupSDK","SuperfineSDK","autoStart","flushAt","flushInterval","attributionDisable","start","attributionWallet","walletAddress","walletName","logAccountLogin","extendStatics","d","b","setPrototypeOf","__proto__","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","create","GamejamTrackingPersistedProperty","__assign","assign","arguments","apply","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","fulfilled","step","next","rejected","result","done","then","__generator","f","y","g","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","__spreadArray","to","pack","ar","l","concat","assert","truthyValue","retriable","fn","props","_a","retryCount","_b","retryDelay","retryCheck","lastError","_d","e_1","r","generateUUID","globalThis","d2","performance","random","floor","toString","currentTimestamp","safeSetTimeout","unref","isNullOrEmpty","AdPlacement","AdPlacementType","AuthorizationTrackingStatus","StoreType","events","SimpleEventEmitter","event","listener","_this","x","payload","_i","getAdPlacementString","adPlacement","FULL_SCREEN","BOTTOM","TOP","LEFT","RIGHT","getAdPlacementTypeString","adPlacementType","BANNER","INTERSTITIAL","REWARDED_VIDEO","getDefaultAdPlacement","getAuthorizationTrackingStatusString","authorizationTrackingStatus","AUTHORIZED","DENIED","RESTRICTED","getStoreTypeString","storeType","APP_STORE","GOOGLE_PLAY","appId","appSecret","_events","authCredential","Buffer","bootStartTime","soundMode","max","_optoutOverride","enable","_retryOptions","fetchRetryCount","fetchRetryDelay","_sessionExpirationTimeSeconds","sessionExpirationTimeSeconds","configId","sessionId","userId","isFirstOpen","customUserId","waitConfigId","init","setupContext","updateUserId","updateSessionId","GamejamTrackingCore","fillContextData","register","PLATFORM_KEY","VERSION_KEY","getLibraryVersion","DEVELOPER_DEVICE_ID_KEY","$lib","getLibraryId","$lib_version","_props","getPersistedProperty","Props","val","OptedOut","setPersistedProperty","cb","propertiesToKeep","allPropertiesToKeep","Queue","clearProps","keys","includes","enabled","removeDebugCallback","cachedUserId","getCachedUserId","setCachedUserId","UserId","force","SessionId","sessionTimestamp","SessionLastTimestamp","trackOpen","properties","property","eventName","eId","timeInMs","cfgId","ret","country","device","os_version","gj_sdk_version","cfg_id","developer_device_id","ad_unit","placement_type","placement","UNKNOWN","level","boot_time","price","amount","currency","facebook_id","current_version","new_version","store_type","sound_mode","count","trackValue","createTrackOpenData","getContext","COUNTRY_KEY","OS_VERSION_KEY","FIRST_OPEN","OPEN","BOOT_START","bootTime","createTrackBootEndData","BOOT_END","createTrackLevelData","LEVEL_ATTEMPT","isSuccess","LEVEL_COMPLETE","LEVEL_FAIL","adUnit","trackAd","AD_LOAD","AD_CLICK","AD_CLOSE","AD_IMPRESSION","createTrackAdData","createTrackIAPInitializationData","IAP_INITIALIZATION","IAP_RESTORE_PURCHASE","trackIAPPackage","IAP_BUY","IAP_SUCCESS_PAYMENT","IAP_FAIL_PAYMENT","createTrackIAPPackageData","facebookId","createTrackFacebookData","FACEBOOK_LOGIN","FACEBOOK_LOGOUT","currentVersion","newVersion","createTrackUpdateGameData","UPDATE_GAME","createTrackRateGameData","RATE_GAME","createTrackSoundModeData","SOUND_MODE","createTrackAuthorizationTrackingStatusData","AUTHORIZATION_TRACKING_STATUS","trackAccount","ACCOUNT_LOGIN","ACCOUNT_LOGOUT","ACCOUNT_LINK","ACCOUNT_UNLINK","createTrackAccountData","trackWallet","WALLET_LINK","WALLET_UNLINK","createTrackWalletData","createTrackCryptoPaymentData","CRYPTO_PAYMENT","buildPayload","enqueue","optedOut","queue","emit","flush","_flushTimer","err","callback","clearTimeout","items","splice","messages","gjUid","gjSdkVersion","platform","DEVICE_MODEL_KEY","browser","BROWSER_KEY","browserVersion","BROWSER_VERSION_KEY","os","OS_KEY","osVersion","subMessages","getCustomUserAgent","fetchOptions","fetchWithRetry","SEND_URL","catch","statusText","retryOptions","flushAsync","shutdownAsync","context","navigator","userAgent","$os","$browser","vendor","opera","$referrer","document","referrer","$referring_domain","referringDomain","$device","$current_url","href","$host","host","$pathname","pathname","$browser_version","version","$insert_id","substring","$time","utils","haystack","needle","indexOf","test","regexList","Chrome","Safari","Opera","Firefox","Konqueror","BlackBerry","Mozilla","browserString","regex","matches","match","parseFloat","a","split","cookieStore","nameEQ","ca","cookie","charAt","decodeURIComponent","cdomain","expires","secure","new_cookie_val","encodeURIComponent","getAllKeys","createStorageLike","_localStore","_sessionStore","checkStoreIsSupported","localStore","createMemoryStorage","_cache","getStorage","LIBVERSION","EMPTY","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SONY","XIAOMI","ZEBRA","FACEBOOK","extend","regexes","extensions","mergedRegexes","enumerize","arr","enums","str1","str2","lowerize","str","toLowerCase","majorize","trim","len","rgxMapper","ua","arrays","j","k","q","exec","strMapper","oldSafariMap","windowsVersionMap","cpu","engine","UAParser","getResult","_ua","_rgxmap","getBrowser","_browser","major","getCPU","_cpu","getDevice","_device","getEngine","_engine","getOS","_os","getUA","setUA","CPU","DEVICE","ENGINE","OS","module","exports","$","jQuery","Zepto","parser","prop","timeZoneCityToCountry","timeZoneCityToCountry_data","GamejamTracking","_super","_storageKey","persistence_name","_storage","persistence","model","Intl","userTimeZone","DateTimeFormat","resolvedOptions","timeZone","tzArr","userCity","_storageCache","getCommonEventProperties","trackingInstance","trackingWalletAddress","isTrackingReady","getTracking","logoutTracking","setWallet","trackWalletLink","NETWORK_CHAIN_ID_MAPS","WALLET_CONNECTED_KEY","web3","provider","connector","ethereum","isMetaMask","providers","isCoinbaseWallet","WalletConnect","bridge","qrcodeModal","QRCodeModal","WalletConnectProvider","rpc","Web3","connect","changeAccount","updateChain","getWeb3","connectWallet","getWalletInfo","connected","killSession","createSession","accounts","checksumAddress","toChecksumAddress","network","Number","currentChainId","switchToChain","switchError","chain","addError","eth","getAccounts","getChainId","getBalance","Contract","balanceOf","sign_hash","mintWASD","send","getSignature","signPersonalMessage","personal","sign","getParticipantInfo","getTotalSupply","wasdLimit","getMintedNFT","totalMintCount","getCurrentPhase","getCurrentBlock","getBlock","getPhaseInfo","getStarting","startingTime","getRoles","getTokenByIndex","index","tokenOfOwnerByIndex","getTokenURI","tokenId","tokenURI","closeConnector","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","amdO","deferred","O","chunkIds","priority","notFulfilled","Infinity","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","ns","def","current","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","chunkId","reduce","promises","u","miniCssF","Function","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","target","head","appendChild","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}