From 8898f5007f238f0b5b15c36f70ca899c73b0e8ea Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Tue, 1 Oct 2024 17:25:16 +0200 Subject: [PATCH 01/86] fix some localization in french --- localization/fr/day1/classBackMorningDay1.json | 4 ++-- localization/fr/menus/creditsScene.json | 8 ++++---- localization/fr/names.json | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/localization/fr/day1/classBackMorningDay1.json b/localization/fr/day1/classBackMorningDay1.json index 02b9f1a..29d4553 100644 --- a/localization/fr/day1/classBackMorningDay1.json +++ b/localization/fr/day1/classBackMorningDay1.json @@ -26,8 +26,8 @@ }, "teacherAnswer": { "text": "", - "text_male": "Il s'appelle {{name}}. Asseyez-vous à un autre table pour l'instant. J'ai demandé à Alison de l'aider pendant les premiers jours.", - "text_female": "Elle s'appelle {{name}}. Asseyez-vous à un autre table pour l'instant. J'ai demandé à Alison de l'aider pendant les premiers jours." + "text_male": "Il s'appelle {{name}}. Asseyez-vous à une autre table pour l'instant. J'ai demandé à Alison de l'aider pendant les premiers jours.", + "text_female": "Elle s'appelle {{name}}. Asseyez-vous à une autre table pour l'instant. J'ai demandé à Alison de l'aider pendant les premiers jours." } } diff --git a/localization/fr/menus/creditsScene.json b/localization/fr/menus/creditsScene.json index 751f96a..f891f3e 100644 --- a/localization/fr/menus/creditsScene.json +++ b/localization/fr/menus/creditsScene.json @@ -8,13 +8,13 @@ "originalConceptText": "Concept original", "acknowledgmentsText": "Remerciement", "libraryText": "pour sa magnifique bibliothèque de dialogues", - "hackatonText": "pour ceu hackaton qui a tout déclenché", + "hackatonText": "pour ce hackaton qui a tout déclenché", "betaTestersText": "Beta testers", - "localizationText": "Équipe de localisation", + "localizationText": "Équipe de traduction", "frenchText": "Textes en Français", "collaboratorsText": "Collaborateurs", - "schoolsText": "Établissements d'enseignment", - "schoolCollabText": "On collaboré à la validation du jeu:", + "schoolsText": "Établissements d'enseignement", + "schoolCollabText": "Ont collaboré à la validation du jeu:", "specialThanksText": "Remerciements particuliers", "sponsorsText": "Sponsors", "endThanksText": "MERCI!", diff --git a/localization/fr/names.json b/localization/fr/names.json index 4fcec9a..89cb048 100644 --- a/localization/fr/names.json +++ b/localization/fr/names.json @@ -1,5 +1,5 @@ { - "player": "Tú", + "player": "Toi", "mom": "Maman", "dad": "Papa", "Maria": "Marie", @@ -8,8 +8,8 @@ "Guille": "Guillaume", "Ana": "Anna", "Jose": "Joseph", - "Ester": "Ester", - "Alicia": "Alicia", + "Ester": "Esther", + "Alicia": "Alice", "Miguel": "Miguel", "Jesus": "Jesús", "teacher": "Professeur", From 7e39a4f2ad4fae237ef82c77531e1efdf0b4c5aa Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Wed, 18 Sep 2024 16:53:58 +0200 Subject: [PATCH 02/86] adding server on localhost to localdev --- .gitignore | 1 + package-lock.json | 837 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 11 + server.js | 9 + 4 files changed, 858 insertions(+) create mode 100644 .gitignore create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 server.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ccbe46 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..abadcf1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,837 @@ +{ + "name": "conectado-web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "conectado-web", + "version": "1.0.0", + "devDependencies": { + "express": "4.21.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..7a6981b --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "name": "conectado-web", + "description": "conectado Web Version", + "version": "1.0.0", + "scripts": { + "dev": "node server.js" + }, + "devDependencies": { + "express": "4.21.0" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..6c86e79 --- /dev/null +++ b/server.js @@ -0,0 +1,9 @@ +const express = require('express'); +const app = express(); +app.use(express.static(__dirname)); +app.get('/', function (req, res) { + res.sendFile(__dirname + '/index.html'); +}); +app.listen(3000, () => { + console.log('Server listening on http://localhost:3000'); +}); From f73946cc50bf8395a23b0dc935a9e40b8da33384 Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:47:17 +0200 Subject: [PATCH 03/86] adding first statement start game --- src/scenes/menus/loginMenu.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/scenes/menus/loginMenu.js b/src/scenes/menus/loginMenu.js index bb8d35d..c6183bf 100644 --- a/src/scenes/menus/loginMenu.js +++ b/src/scenes/menus/loginMenu.js @@ -3,6 +3,7 @@ import GameManager from '../../managers/gameManager.js' import CheckBox from '../../UI/checkbox.js' import RadioButtonGroup from '../../UI/radioButtonGroup.js' import TextInput from '../../UI/textInput.js' +import { accessibleXapiTracker } from "../../lib/xapi.js"; export default class LoginMenu extends Phaser.Scene { /** @@ -118,6 +119,11 @@ export default class LoginMenu extends Phaser.Scene { else if (userInfo.gender === 1) { userInfo.gender = "female"; } + var statement = accessibleXapiTracker.Accessed("connectado://StartGame"); + statement.addExtension("conectado://gender", userInfo.gender); + statement.addExtension("conectado://pass", userInfo.password); + accessibleXapiTracker.sendStatement(statement); + this.gameManager.startGame(userInfo); } }, From ad640c5712fb13d4004cc2b2e67146d2e7cbc894 Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Wed, 18 Sep 2024 16:54:41 +0200 Subject: [PATCH 04/86] adding xAPI for SG Tracker --- index.html | 46 +++ src/game.js | 3 + src/lib/xapi.js | 30 ++ src/scenes/menus/loginMenu.js | 6 +- src/xAPITracker/Auth/OAuth1.js | 9 + src/xAPITracker/Auth/OAuth2.js | 32 ++ src/xAPITracker/Auth/OAuth2Protocol.js | 352 ++++++++++++++++++ src/xAPITracker/Auth/PkceGenerator.js | 43 +++ src/xAPITracker/HighLevel/Accessible.js | 33 ++ src/xAPITracker/HighLevel/Alternative.js | 37 ++ src/xAPITracker/HighLevel/Completable.js | 50 +++ src/xAPITracker/HighLevel/GameObject.js | 33 ++ .../HighLevel/Statement/ActorStatement.js | 20 + .../HighLevel/Statement/ContextStatement.js | 23 ++ .../HighLevel/Statement/ObjectStatement.js | 64 ++++ .../HighLevel/Statement/ResultStatement.js | 76 ++++ .../HighLevel/Statement/Statement.js | 135 +++++++ .../HighLevel/Statement/VerbStatement.js | 35 ++ src/xAPITracker/xAPITrackerAsset.js | 50 +++ 19 files changed, 1074 insertions(+), 3 deletions(-) create mode 100644 src/lib/xapi.js create mode 100644 src/xAPITracker/Auth/OAuth1.js create mode 100644 src/xAPITracker/Auth/OAuth2.js create mode 100644 src/xAPITracker/Auth/OAuth2Protocol.js create mode 100644 src/xAPITracker/Auth/PkceGenerator.js create mode 100644 src/xAPITracker/HighLevel/Accessible.js create mode 100644 src/xAPITracker/HighLevel/Alternative.js create mode 100644 src/xAPITracker/HighLevel/Completable.js create mode 100644 src/xAPITracker/HighLevel/GameObject.js create mode 100644 src/xAPITracker/HighLevel/Statement/ActorStatement.js create mode 100644 src/xAPITracker/HighLevel/Statement/ContextStatement.js create mode 100644 src/xAPITracker/HighLevel/Statement/ObjectStatement.js create mode 100644 src/xAPITracker/HighLevel/Statement/ResultStatement.js create mode 100644 src/xAPITracker/HighLevel/Statement/Statement.js create mode 100644 src/xAPITracker/HighLevel/Statement/VerbStatement.js create mode 100644 src/xAPITracker/xAPITrackerAsset.js diff --git a/index.html b/index.html index c40995e..5320ca6 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,52 @@ + + + + + - - - - + + - - - + + + + 4BXw{HjAVQAH2Vhvtv2bNe=WIH@8*A2 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

vSWq4E`Hm>neg|h>Y-oey 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 diff --git a/assets/backgrounds/classFront/desks/frontRow3Tables.png b/assets/backgrounds/classFront/desks/frontRow3Tables.png index 12b96adcec34402c1bb8afc9c5261881ea190db2..e477266222df848f8e247395d5f5938760b72df8 100644 GIT binary patch literal 117174 zcmeFY2T)a8vo5*-L69s;RI-8~uyP=;C{YlR9E3&AIZ0LtN>D*0BO+h`70Dt=0Rvf* zWCR2SB#7knCT?}_|JK=@Q}5pQs%{k);+kuYF?)26ue-nQF^$wbdxr54_aP7n#Hg%9 z&;o(zwLu^nMOqr*o4UbKDDV%Ri;})OaD#34F9j$$l@kQw)V9^u^UzaQlO{VmN}5?X zn_EiyIJy9%K_FQL9~U#Sy`=}gxuvzOlbqmOMYSNmt%aPRE2q!bh(0R>BgA<_s0|F1uSfH*e` zD`_nP>6b9zN>0$m!^1^dO3K^YThbdQ>Fj1L1;Jo2QedbQ6e&= z{RD!gJK4?F#lzOwiGTNrX6DYG9&&=fQvcGy(dEx$o!o!f39y)ykC}@UL=wEK)6anx zIRDF||J?o$0f24Q)&I!&FW2Je z_(z1h2hj^q= z|1x*?&VMLn>0|pZLwE1|8R{a9ce6C}aCXync6Rs;9?joY>QMEN$iN=4b}&fvuyNwWXAcleHlKpPiM)J3BbL0fK?m z!G5knU0qt)$=$=uiEOD%kP`${khHb6kj9WPRuF_4L;_=pf=a;6;bsyTFqA9-u`(lL zz*Yzg2#WlBKEavnxeK=4`F}Z{g)H(!rap0_tP}oYysalbNJ^|cUNTrJQ0FILeLO1a|z_`g3RE+b1-CtnFJaMwnQV% zp-3nMSk>-sO9PJqmSnc;Uvh$wUtj9&qRzqduP;$hFz`nTvitkjef|ID{@=GRIN1Uw zh6?iU;^i-^o(EzVU{)jo0Ym)yUengc(m{`43s}ef=R%;EU0FZp{Jf|Ck9!a#a1V$t zf1B;M39!KCxC1D3{}p|3X4bzxIoQhowhb79Mq|(zA_)tIKp;dU28|$La5y3njYdLX z7?iBkZkPck{1w6eIg^A$V4z40FcX+cMB-p5ERKYSBcNy;4v2~WJ`)1PLZEmY{EtjH z42(x$(Krm4guvqVkO>8&NLV-)@<%2KMZ)8eU;+V*Ln0xVf0qeGAb}BJ(r=kKED8;1 zj=+KmSPYB=`S+PHFb<8z5zxP7VlX5Go&Z5YVNfsu2Zrr26M-V(&?xY4nP?mWj>ln% zXc8QbLZje&%p?&2YvPfAWMUx*JPAVrqtJLT3{3dkZ zi$Ecvcr18#KYt<~*g`ZBhJr&NPyl|AJ#34>!tfY482Lv}7#dC@pos_!oCvG~xrd%O z;NfU2^7m@7yYM5SNl-WzfkqPckcot%AS47D_j@J|NrYkHz<#0;P$B}lhn`3{0)avk zcYWojo>(Xpj0cklNH`jWA|Up#EfPxvmIns{0g3q2vx#^Tj)=x15JWf@iYETMo=7~L zgv4OMe=G#S0MP^wN0RUm0ui-`m!ZILGyx3X^_8E|1Pw+b@HjLSi@`%kFdX*ZWugG+ zfe~of9}7VdSUes9_%;CnhQRmmPZSWn(0IU~eeB0zukiCK`$Xh51Of_Af+J86Fn$luMq>b!f&sYw@=pvDM#K|IfYTsIPz(nD?=mqE3>brh?Z%;B z*#QPT3mVm_}NI;ka^!l#R9-fVdV1QtYgZ|bN3xh(iFf;^(hY^4jw?{O=Lm|5{Zr8JaMrvSx0m!0}a4dM& zadH2?D|i@=L)4kO(AnFJHkE06)P4nc&wj*_mYW%!w@)tbmAe{ zpZOC)BH~a46pn-d0vKWs3lXqLGzwt#zj2EuLh(Q_gy4{H0^r|!&O{L~ND}F{o@f*V zjfKO2NCX7~F0iOzD2BMleggCbjYN|E%XMfJFR%toCQk^H;efwRc?wlulVl&O343;r7B?ri1ZZRTc)wFYY2|F$0?^{h4Ys~PpjoPz%<$KA|p zZxaE`A8BTV0NM(0OSps?0uGlz!_43k76>y-ge4jVA;VF>P5hrGg2J>RNa@{H3FLQ6 z<^PR|er+Gw#>~mu66iBZ{ck8^fq_^-AYiD371_*E!i)^J0$L^*vV=K=Oh&-qRtQTN z(46>R_WR$OKK~ypL;i0O@ZW6uE-wCnuW%#vzeb|Jt_goxlCT!_QxL zzbOBG0n+ArMDgb`_%t5z=K^%Y^1<$b#;-rm8M=Od1c4M2GP(c0dJEO2`uj>h%<5Sa;PA%+`|hys4u8M^+Rv5yxpF^O{_%%>ci4A_eRtS*hu;?1CrkTe z={FWY|M!ul`l_wM_d0_VoZI=8)-fw4PCsh&f8@NL@|eKYFs1LX9+pY2Bw{{7f^ zV?V{b-A|tTv;g#cpBC)Xg5Z5xuwPh!_GtlVpB8}jX#r@T7VOgk;N7XiDrdLxw-All|spGhyLWp zLB`FW%EuhuI66r_wXP0IbMrdlaDxXZWtZ?{{!`%Hj0UI$3-_+sqydzT%%U7MFU zdP<*GI=V}zsSWHjUfp4iabNu5xBME}|2kmEXD&Y}X|4b1wzP&qAXH)VUE|{Cj>d9- zH_S%mYgzvv7iZ=Cz*1G;M|)y6-k5HhrTedb9WdIE^q(%S&aZg$jXTBB>YMlEm5TbR z?xvY(ui+9aL;LPz%u~-xcV+@F4Fr0(&NQc5WjMA>d!;U}Z4S3W`jatf&ZXYVJ5k=H z&i$pmC5We6>z;Ac!{peY!?bEW z?d8*suW;QAe~5;{s?YZKl%S?A-5w5w^#xVafVfF{zprb6N*iM<>R_O$iYlsfSqb{! zYt`J;JUCakRWxDMoVVz^-8__bM&GULVEWDw&%*MZxypf__k9<%Bn%GG(d7rTUa$4y z=^qOKp^!c=qf3*>6>_r+Y8kL}UaJ=yKFPKnIksaBgCzyg1^U7@4u^3{`~m_+=Qa{< zPxqHbY@{fRT6Q&RTj^LTKYG-(9?;?|V%l(hiS&{K<+M5KUC*i3Lw!HH136B29iRR9 z)Wb_AgNt8J+UIMpgwy1~XhUzete4xAxvIimNjSS2rAtW0Kj3=2;f#7Zz2j1#K1l3& zGx&Hep*V$0L`nBjlIywh#3$+n#?v;^PrpciWN}O@U!}yL918MdEHfIPFC=L6a|N=h z7jYyvmY2Utfrkk7V5TC#Ya!Z^30$k*o4hS)>_a7Ed@tNV{NkoXI{hyEZDIp>c23(hjfVS zZl9jfU}&Ii0d=>n44ro8lO*@2&1EnjJ}AYs#y4lSt#CWbYmxPa(94%wPPIzb#|uYt z`Dd>Bm_{{8D60%V7;{{B8&yZ~Al>#BmvSCjoCBR#?bXt_CUrsS$3{`rAn8>L#rfFf z?99gwl2ql%Oh>ZgwWgpSg6)8RRZeAh8nE+(RJJT#?pdp*E-HUu|> zU$OZydE_)}$+0Kw1ZMJ+8b9`FeI>6@wwVu(hA(ffKQD2Q7LB^iyA55=ZZzOsEtD-I zf0Z?T@o{!7Pmifltn_-Lfj#DNK6z#M^P*uUt&Z{ATfyOo_l|4Lv$Nl4w$&tamS=-Y zMkvGS2iM4TrROfv7#F{q_^_ZOQzGmH{#N|vf?b@lSJkQF=qdqjwJg9c#+$Zri{D^E zX}XymRnL9OSv^b`?=r;)m$#Vai;6o=YO0(n#Rk!3S#_v6IuXWyWWji52E*7e}x^a6Hr{l$F9WbRTF;;fFEOChIj zX8_AJM3|=0%KYa7#YV~G=I8WZxUvDNJwR3BY2W!z= za++ycxFs^@OloxUk%XrxL7cTeg`QcUsz+=^kx`Z>a?(I-{6vR`x;>7?`Ksd~T_)OD z13vwNRHBY!n_fYEK=DNe_dtH0k_ev1;=C&Uy#ea3NjZLPd2?i3*ZJ7|@G6I*)QxYONQ;n@?TqWoV%5E_{O!K^+SWIV z1BZLg?HDb{7QV*}K7qzwe@O2V;)%4+%gO`CF3ExlH&cuHyiC=&PMhWy=iI!0+F75x zUT>*9sb|X~r=*;l{=%oSt46EsS0UdW9~k z#T)r9^pT`vV|+Q;xV@`R*S#Oz1VKVMZ)mc#a?yRe)>D7FC8+*=L@jr1r2YpTcc-lv zlgumz`u@%`;$8Za?v}XtEbSMKq=65OHJ>NRr4B*w4^3{(B1J1y4Ab)#4DthCb9=Iw zeZ{{TWTt<5Th@0CI&jUAQasjKCvn1j+Uof$sD-{^iXnO1sLoHh$G=HzNmUO_r&6O^p6N|Gx7og~Iy^bX0H%pL zEcYP&YhI6ezXQD}8?{c*6WEOM2@TE)FT|TQy-;MjsI3$>s5-=D&#Nl4xXfiRsbT$Z*A!WN7 z>vSx65q0$5kbLV-k1tmg7JOJ*=u^3E>%pcc$0Dj6YNZs62`f)vlU|i2_1~dP4Ucc0 zywhKIpf<6MKlANcibLA)z4{skp%7TDf8&8giK(ZfJ-7qRb!?cR@8E`!OD5@}W5rri zw>b_D9o%%7tfaflq8mkdm4Wn3O0L{{O0cYksNS5iQ|Fkl?e)Y(tU6xhhOe!0;$mfG z${oa<_*;WZPqe1`oIc;!oLw+6NN6uOn)-C+sq}1LE+)U;Xg0aNZ?LPH`@)yv(2Ay` zoA1DPT%uI0Z?Jvh9a#z9A$crnUCu-vq#t11Jkd^djbf5dQGY>msc0*ia;NKAJ$38o*=Nri z{PK~l&k8N{U3uNw`b}gJ^v-kFi6TY9G`+jxP5i6vZ(A7z6&32va-pOvH z>v2sr{(@%GHCn!^s;VP&Ti-V%Au?9+Q%ma-`andvz7zgYxS z;aJqYA<l)KH6T= zJgezYN>IKmY1{3!dl6#Q0Ih_qGvL0w0BJCNdAxLLF7{;~@#xm8YWPB`=Bb|SwmX%H zDR)TKCMx-hsG7vfH5%8IQfFsco{xLu3hPcY`zFwL3-!Q;Z$H-l4xP+zBkMXwkUf0A z)pN7Bj*e3`Bn}FGKSMwXARhR+`!KuQ`eOBL*!L{z3*)2(u{F;;X&K?E$uNAcF2#{dt=t6&@YR#;?1{luc`ID9uJ=8v3+OU z_r%Sx*f!feE~r38uirM#Q+%Mq^weZj#B0v}$jd=T`!Fx4woF3^S0;|yX}L`g-?$@p ztvtfFOf_};^O1Z*OY zSfn$J?LVLmGksp*SjyZtS`FN1%fu7J%rd3=M_w^jx!yY+)CbN(9#9CZPtgzG8u}Oz z*wom0wkHo=+q$84Y~Yd1nM%9UR_`!RH)L%p&Jr7Ubf*k99>uquF0!tY*=mi35LwrB zjd->w9K4vm)M|2Z|Ij!cADW+kviqVxxvr2Z=SYL4iho>DLezCtUS=|WOF~=aq36zs z7q?PgqWhe#>?g^Mf%l}1W<;XqjYCTB2<5!SotLnk4UUHz-paGmgb1ILqC2Bk5q_W; zVi9Z@A`&cnuFa!~GmP+Tuy#48qcppiW=!9qLFl%|&2Nn?bIQr8Um0!ObvlbM=kga1 z>KUhpc0bK|K`?u)Uf7+Z@6`4PW!pn#Bt+;7J>4Ls=zWimih*KIEH>A(-effH-y~k67&z7|g!7w3y|eNcxeO zdTiul0T*|4@ZIBK1btA#xXVoMP_=(|K-S8)WFfmIt*J*VL$TF!Do=3*P}69+`JjND zr+$yF^^7exnEJByn^xexV}O+FTOhLYDY82&XuWvl&;;9BT4gNDp+%_{+jkC{{iV5R zxBC!&9VQECf%Zu@s*6@nu-R8!3vX#eua(ajpJH1kRC@2G?rDL{Hrd{sfJf>+Gy{~~ zMM|vCn>iOZYMw^i)}Y!sgeG*}uIvk54=l)K@VA-0{5dz|QXYcdd!RfQWfNYaou_%a zTlBUaJS9f7T`hi-hGXe{tN8(|+!yoXwd~^DTG~aC zi87Ekn+uq0*6gCK@eiAI9!hrFTrePU3j+E5tRHbaJjDC(;GM(w4tAsq`rZ9nem21F zkf^O<@opg)uf?NFQO4sVW z>5EN^PSV;sq-txVBUQdYk%h1_=RZuo$p5Vxc~^U7*RH+Up6&^9o9*SY2S*K}Giy6lPI(?J|9Twt#xUCJ zQ@xb@3dP8okPZVeo@8pS1^zBMm%CERf?QyQjvOyRaDMEacQfiY%1&TqX2GP4*FZe; zbd9oBI@_Rpwt>PXmC+`H&cR1a(dxv>3$Tl+Yh2jCM9g*!B_Cy#`VW?ky&ugtVkIcdvQ83-+MUUuM7R$WtoIf5?V5D(`uq8bL0yB*Vmq8lz zS|fVKQmP!OyvEmA3qMcfTdl6MW+lVF2y%Wq`GsmS!NHF z1SH~|mj_m#bbK~ok&fWb?tW2VZC*ZZG6HUd>WgRJ8~OGb+hw{r!r>&noKNn5#V@QA zQMj_PY=;FjxiC?}SJ~{`)9mAirW?v#4mOYK6aMsESRL>Pc8EBa@iw3<0@Pzdf;r_Sq@&mM5Z0F^Ap;lt|eNQ%(-&^BS`F>tc zpWn(vI6gNxmLiswTF<`XJ4}!lC^9v-JtQRPWI5+U3K}Y=9ngaW^$zco1*j zY2X-|z@Nzds*fn*AVRed<^!`Sf#-i0MW?f!z=R} zP>Xe_i_7%r#SW)~fdM7SY4XsxL=3dhW&I&rcy2~o60;#TRMgCvNr~!d*KZ#4#0fKU zb_6-%bx{NivH%V1U7pk*eSNCGx_CHd?l`L7x&Lfn(cKfdKr7|wBul7D+?vSQg}OI< zlXdOo?)neqTFE|T;rab%64cmeW(V?RIM4!9(%(|4b~<=;4LWJh>4363ubzli2>9N^ z)3Fo}30vS1`RFx`lsF0mxkH0%h2DKn16LcJMbn{th3Q-O=?BjQa}--36G*R@&}W)B z!`(xR!@wS#t`T~92nME;%6IyknlJ`Lv-R3Ty^g%^WIBpqp}D<}ZUX^LFb-+qEpibh zOteX(bC}ld56gWWX!TWST!(FbIBs0vu)ms}|K$ht8;8yX7r!{>6b?IN7vA6?Xq~8 zFs?pWQ(KFf8(!`O8vsv7gMvg22Vo5-VZMIfH!aw}(PjCIRp%V#-Bv%%ZFS*yzCNbM zmdi0YwEr=_{6<7*?i}SZC0Q}#fw;bXo~y}w5t-Bl8gHiF$dr@4ZjHiUjZ{?60uXyl z!kw|NYM|elKcXSGdR(jv`Qe>P+PhVUL20!oH+K1QLA3c(i?&iS1xq`O_pbjld~BW zJ%Q^xn{TMxTU)=O8a9I?Ht9#={Ll`^y4)6xvU{kRcvfif0x63LosKX$$l+6FUOCuG zvj@CxSFGO)JD)Xw8r!ZUJ$g1nKpO~9UuDTk(G9>4NKMZz$2ZUNbzCN2)7$CnIyugV z=81?zvA6JZ6H`)D85F4rqg?_wzdKeO=Vpz(#g=y=lKqR**~0WpkvlmecWCa7({z#I z>yPZIa8@XZ09Mh+qiY4;Shr(kA=q^=jDoUCGUyd6zte- zcLaQ+NqETh_12}i>QCF1;UU!rw)LoX5d%c{7vKFym_`_DuopSN3>F~=_`3^RtYkZ6 z&VlhgjBiS+tYoq_8Y1e8RGtDJ(8W}IBv`(}CJWTDmu?`ynNv&x_ZZR_xX zTbc(F%WFnY&x@X$5YFyA#JfF}HQ>8qe@f%dVsY=3^9#E~c=xl<4H9ZIJUx`a+71lX zwqLLP@M`UDIty(udmI1z9K8b*GC`%3rO&XJihN#6Rlbwe+koe0peql)sb*(oUX_tM zjSO?U&6(K7iSe%CCKrewi>`9!-oZH~JzEEuFuR zQ{|hStFQ(Cx(#2uDN7|2&N+-~X?r3t`mk(P7}$%H3zTKNs{tch+yR-u&H$Lc-L85> zF+l1WU*Z9p5QY&Ra_U0Vs+{~)i2yH$;j&V|Qc-g~ATD6;omjlf67meMf5MxcWym#m z^;CB~`*#-R4*l}}k{ivB7Qeip6K?PSK+SF+VjWU4OOf4e!Mj;w9hB==^1?9n2Dh?% zBlGdjpRgZ(c42$v#dbr;Z82{9GdCPS@6zFM`2K*+xzjoinl8}2r#LMA%1*Id z>%MIeXD?>brnSd+T){tygHOgw zQrz?O1WelGqPh9SC0l&0-^9QrR_p=cLkU%y_mv{7h+1}tum>D*BYfMX)l%`+jS5^y zeCv9`aqpSC&i2&_H?*b<)+7ezpI34X{orwiWNe@^7ILd$m5mp-H3?cZ8DAu;rcMxP zqajBf5@~o~+gHan1BS^S!u9?IL|cLTgU}<@y~4gl>JueLo>M17aznb-d2-^lo|csr zfX$U-RzW6($9yKr;?^G~&}*n(6O&BrM>_O3bD7{Od}6 zk%n{Q99uP+5hL`gKKI#9k-|FQ>;0Ym6u12@YZZ|4wcm6dZ=u7Ux~pw;*T3v-Hb;eMh~E6|tj5s_4eU(#mk7mFGhcTs)$HtQ55Bzmx}I*tnS8@-y{yD-D&Jb@qIW z_gx?T^LI@ro65Z^_2bP2nE&=W ziZCx`$P4e(R|)b(V!%m-UDltI920%ah|`Gt2%^U8F0&G46@+G*i~J$|RMcd1TZ;fJ z@FG1M>g8D<)N~N}#=UN+8Z|VqAS!2_!ftNCVDnn zr@38TZ5B!#&NUb}xl^ys-K+ytHB-;$qiXxvVecFveDn4&$8jIdlCz~esV7AonYhb{ zS28Hhf`%#OnSt|&w!{9GdJbLJeZwDy_cyP@w5!btS3Jb9(zh>0$O__$`|j#JI+u@n z&}CROC2;uAVYI=bK;dFxlbphvmF=&@%~Xw6rS#gg%M5c|mKHrMYwe-47XcXag#Cf> z_ivOY2M6enff_<&&ov0P>RnzsT~Jl_HRDSmRYh2@U!(Brp6HSKA|5y}Pxs*DF%e#c z_dN>VSr$d!qbKKORWol`xb@Fd7ivkNWDF-h-YkT3*P18TvA%vdSLrgPI<_)<>%#N% z;@LV#x|h_esG7y-v85f3*9R1x&ZJj5_vN0r53J|oM@I6%$~I~~TVeaC6Iw2O6`rT6$qmlOvSDETVoN2CRhmk9;&_Y98~jO3Nh!ANc3cK05(A&%TD>xU zOltuQ5kgWm0uqj89B)LeVpHS5t)?r8cSW%!##`EjEy~c&vZ0I1*WSv6oUieYc&-~1 zCK^}#f{?FMF+sT^J5TaHntulp=71z3Qz&b$#;9at3$(M19-enDp)(9cpW(c6rBI-` z9I&xWvpch_sw|&~LbA2ZBv_~?8vM*XVn8!?)@9dL62JRUQy&JH28c(L0*-?jezbjE z?$R4`cqJqgU$BWklwJ?0+{Qic?!OVPk)jarm4jVvAJiAakSB8pf`OOCp!^W4kJE3GY>Ze+8PhV z>(&#-eFjdx89T*)v_<;iG25cSg0^=>T#y)LR$th>{Jn#*RZRYoqL(~XRb3o!yQ$_C zcknxM7;iY!raPbdVFmn9(Dn(`Yh4}nzipR~&H8#n(?t+qcXs(I-#nsW!_v(i%BndE z>Q47+MwYQ8XHK%u3V1==h?#a5+fl#cNAU~DJ%(U!3KWP<5ooR`+DEx|7miMDJ@bCv z8Z!i*i2lZ7?XiQdDmL%~n8_2n77Xv!7a{-2^BQcO{hZ{8H*zHoU#)E{0_4QvuOVW1 zlkOSVkKw|L!z}uq4!gMYXAG~-$^^{`?QAOS_)Vs++qPKeI8B>q+Nsmnfc!UNs|wIF zas;{T`?aaP0X?%td@G9vKrvG6JLCV2$w+4WQ>=d%GG_|UKPNE7IE^aycp@#}a%k0Y zB&B8}gy;2*&L19{bgB2h%Pn|P6HXlF%^Ev3VVx2$#>9%>Qc~J*NSdh?UVgzDeP3v{ zXi#~V#eQBgjGNPVyrDf9bOvo);P`n;~2p64hFYU3RB55EYC@ zGdXCP3nytQL9(qX8XEqAJA;=3y;ow7Z^Gz|(nKGRR$tl?39`K=ss!(>yxU1F(K<9l zzljFZcIH{9f7~dca&9vR0NHH4VqD=GGG@;g@YY_fD?B9QxCy*l~q&AK|mRA=`J-)%zOwSCud4 z(4DwCR2DfGoohT|bBs|K-D_77ci8)c7xyQ>k#HiKO11}M9e8;4Ny5-!n4p%ttAm$3 zSFFbJcn6Psj(B^dgqBipN)lhMo_-pj>%p91t;w;&u zE%u~LUcWbfTptm2;~^41&MuGo_MN)}sHVGuGyO@bAKL44mr((oMEYlJoL?ALC?MSt zcjjLW=*21&SqsZo1%(y_i~((#pHN4}>l8MVcRt(8ZqyVO*;6zq%FY&gZh)w$rd8bx zA9iBgzA)TY;h8)Js+ueR^eJ7$d3!r0&~<#Ng4aESJ`S%xwDZoCGEwjl%h5qL730(= zO`V`>h5@Dc?5TPCA@}g5C}q1-03IibCadHQM6<_kf6mH53?5^-=}o0Sq6^AB;c?+D zWry)j1|@J>d3rvO6{C4N?g5;qIdhvJcr)U;O1OXzuaPLPbW%}Nbhh44vO>7B?s{h0 zSbcYXpGf%lXdaNGkO0KuDrqB4M4!Fb&Mat87 zGZ%iYIZ(bp$sX`l&5;`yA4N!DBwziMvj}tyU;WMj#@8EyD}paYggz(*QQte=$vcu~ zo!0DATT`x=0BP$G&B`W~= zU+nST`CJ#tbvDC@pB6_rV4wAM@#>HBsK6a{1@wAAg@%ggtuLxlXP>{U)jd@#zY$VO z;d^%~d()a}dql#y-TWNj7>>h+OrZIt*nq*3iR8;QKv(em4trbY;TNM59K$~8XE?*I zbFnFi2^I=|$KH@Iqjz6-h)d_iYY38LKNqBrf4GVZwUD-O${{|sq)iEX-;=U>#_-2L z(#aVV=U;46>^66Ftxb~!|4=gX*r$cy5s#5RYvU;H02+7t_SZ_e!Oj$>AbF}LBYR8B zpOS9qhgA5``!Jw z7FtnJ%M_ZDU7~mF;#Dp@S_%fcM9@mQ6iwi*Cae6+5~b4m4;icGZl0>MMX5j5ajss?-dT@kQ&Rn# z(#TWGdgjNU`<||sy>NS(ihzx)2F)D3*$$3R_ZzIATJjp5>HW@R-@0u5y`Vu+fTMNA zN?khb&#abrtHQs~4I0<* z-}q|e6V}jHl&*W0N#t8wdVA-%dR)@G6cNW9sjO_Edu(?ey<7+3-I6jTZ(qfvvdOmo zIzpLlQ3?1y&X9Xnl7&W~g|3@>R5`4!oVSV z*UmJ;9MWH>^lCf}@|xee_B3sgnOW^Q`>wBz^~w#Eo)S-Y+11si=29CZgBiV8EJ``e zVQe@ZMb_wqORmE^hcFrjU3Jn$-h3p@)y_jPg2?CUoL43-DWbvsgF9)hLbbr&&#p}CHn|q=X|8_KwSVQ!^^*9sFJ_I=Y`qdsdxvC7 zf|?r44G_Q)Qn4?bM}l|b`WfHlT5DP{iUv-tQyGr^;Q$xxK|Cepzq=`9Ey|v9CG#~W zP}iC9*N-1Jbgk&P5`1S_U61+ALQ{qO#?6B}J*6)<0vYe?Onrs{)yBz4Cr&=UMdzv| zP+wXuz){?twrdS(lPNSd2TRrToH(LBg%iLvJG4iNuSjMb4Sm4T+ABYQuqIzIH2%sb zVcyF$Cl#5f-Y^tpUI^*PXW#Nwl`O1^x)pil&6l_4C3cr1G!=w=GM?P}n8NRCcx=H# z0Z_jWo#(6^V{j|0Js{boyLY|)Jj8~nKX z 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

    a3~NBo}z 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 OE=-Ejt>-*LGXQpcYMHlw%K4*stQ? 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�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 W^O$5m?5e?2c7!&vLe&^}Cj1ZlQPvXx diff --git a/src/UI/dialog/optionBox.js b/src/UI/dialog/optionBox.js index d7142eb..4a1e4fc 100644 --- a/src/UI/dialog/optionBox.js +++ b/src/UI/dialog/optionBox.js @@ -107,17 +107,16 @@ export default class OptionBox extends DialogObject { activate(active) { // Es visible si el alpha de la caja es 1 let isVisible = this.box.alpha == 1; + this.box.disableInteractive(); // Si se va a activar y no es visible, aparece con animacion if (active && !isVisible) { - this.box.disableInteractive(); super.activate(true, [this.box, this.text], () => { this.box.setInteractive({ useHandCursor: true }); }, 0); } // Si se va a desactivar y es visible, desaparece con animacion else if (!active && isVisible) { - this.box.disableInteractive(); super.activate(false, [this.box, this.text]); } } diff --git a/src/UI/phone/chatScreen.js b/src/UI/phone/chatScreen.js index 4cdc99e..043e990 100644 --- a/src/UI/phone/chatScreen.js +++ b/src/UI/phone/chatScreen.js @@ -34,7 +34,7 @@ export default class ChatScreen extends BaseScreen { // Configuracion de texto para la el texto del titulo let textConfig = { ...scene.gameManager.textConfig }; - textConfig.fontFamily = 'roboto'; + textConfig.fontFamily = 'roboto-regular'; textConfig.color = '#000'; textConfig.fontStyle = 'bold'; @@ -253,12 +253,8 @@ export default class ChatScreen extends BaseScreen { * @param {DialogNode} node - nodo de dialogo que se va a reproducir */ setNode(node) { - this.canAnswer = true; - this.scene.dialogManager.setTalking(false); - this.scene.dialogManager.bgBlock.disableInteractive(); - // Si el nodo a poner es valido, cambia el nodo por el indicado - if (node) { + if (node !== null) { this.currNode = node; if (this.currNode.type === "chatMessage") { @@ -269,11 +265,10 @@ export default class ChatScreen extends BaseScreen { // Procesa el nodo de dialogo processNode() { - this.canAnswer = true; - this.scene.dialogManager.setTalking(false); - this.scene.dialogManager.bgBlock.disableInteractive(); - - if (this.currNode) { + if (this.currNode !== null) { + this.textBox.disableInteractive(); + this.canAnswer = false; + // Si el nodo es de tipo mensaje, con el retardo indicado, anade // el mensaje al chat, pasa al siguiente nodo, y lo procesa. if (this.currNode.type === "chatMessage") { @@ -304,9 +299,9 @@ export default class ChatScreen extends BaseScreen { this.currNode = this.currNode.next[0]; this.processNode(); } - // Si no, si es de cualquier otro tipo excepto de eleccion multiple, lo gestiona el dialogManager - else if (this.currNode.type !== "choice") { - this.scene.dialogManager.setNode(this.currNode); + else { + this.textBox.setInteractive(); + this.canAnswer = true; } } } diff --git a/src/managers/dialogManager.js b/src/managers/dialogManager.js index 8b30808..e8d8ef1 100644 --- a/src/managers/dialogManager.js +++ b/src/managers/dialogManager.js @@ -44,10 +44,9 @@ export default class DialogManager { if (this.textbox.box.input.enabled && this.textbox.box.alpha > 0) { this.nextDialog(); } - - if (!this.currNode) { - this.textbox.activate(false); - this.bgBlock.disableInteractive(); + else if (!this.currNode) { + // console.log("node null when clicking bgBlock"); + this.setNode(null); } }); @@ -76,10 +75,9 @@ export default class DialogManager { changeScene(scene) { accessibleXapiTracker.sendStatement(accessibleXapiTracker.Accessed(scene.scene.key, ACCESSIBLETYPE.SCREEN)); // Desactiva la caja de texto y las opciones (por si acaso) - if (this.textbox) { - this.textbox.activate(false); - this.bgBlock.disableInteractive(); - } + this.textbox.activate(false); + // console.log("bgBlock interactive disabled when changing scene"); + this.bgBlock.disableInteractive(); this.activateOptions(false); this.portraits.clear(); @@ -131,23 +129,27 @@ export default class DialogManager { */ setNode(node) { // Si no hay ningun dialogo activo y el nodo a poner es valido - if (!this.isTalking() && node) { + if (!this.isTalking() && node !== null) { // Indica que ha empezado un dialogo this.setTalking(true); // Desactiva la caja de texto y las opciones (por si acaso) - if (this.textbox) { - this.textbox.activate(false); - this.bgBlock.disableInteractive(); - } + this.textbox.activate(false); + // console.log("bgBlock interactive disabled when setting valid node"); + this.bgBlock.disableInteractive(); this.activateOptions(false); // Cambia el nodo por el indicado this.currNode = node; + this.lastCharacter = null; this.processNode(node); } else { + // Se resetea la configuracion del texto de la caja por si se habia cambiado a la de por defecto + this.currNode = null; + this.textbox.resetTextConfig(); this.textbox.activate(false); + // console.log("bgBlock interactive disabled when setting null node"); this.bgBlock.disableInteractive(); this.setTalking(false); } @@ -223,6 +225,7 @@ export default class DialogManager { setTimeout(() => { this.dispatcher.dispatch(evt.name, evt); + // console.log("Dispatching " + evt.name); // Si el evento establece el valor de una variable, lo cambia en la // blackboard correspondiente (la de la escena o la del gameManager) let blackboard = this.gameManager.blackboard; @@ -241,6 +244,7 @@ export default class DialogManager { // Si el nodo actual es valido if (this.currNode) { this.bgBlock.setInteractive(); + // Si el nodo es un nodo condicional if (this.currNode.type === "condition") { let i = this.processCondition(this.currNode); @@ -300,6 +304,7 @@ export default class DialogManager { else if (this.currNode.type === "chatMessage") { this.setTalking(false); this.scene.phoneManager.phone.setChatNode(this.currNode.chat, this.currNode); + // console.log("bgBlock interactive disabled when setting chatMessageNode"); this.bgBlock.disableInteractive(); } else if (this.currNode.type === "socialNetMessage") { @@ -330,12 +335,10 @@ export default class DialogManager { } } } + // Se ha acabado el dialogo o se ha pasado un nodo invalido else { - // Se resetea la configuracion del texto de la caja por si se habia cambiado a la de por defecto - this.textbox.resetTextConfig(); - this.textbox.activate(false); - this.bgBlock.disableInteractive(); - this.setTalking(false); + // console.log("node null when processing currentNode == null"); + this.setNode(null); } } diff --git a/src/managers/gameManager.js b/src/managers/gameManager.js index db45d50..9a28464 100644 --- a/src/managers/gameManager.js +++ b/src/managers/gameManager.js @@ -286,6 +286,28 @@ export default class GameManager { this.changeScene(sceneName, params); } + startTest() { + this.InitializedGame(); + this.blackboard.clear(); + let userInfo = { + name: "Pepe", + gender: "male", + } + this.setUserInfo(userInfo); + + let UIsceneName = 'UIManager'; + this.currentScene.scene.launch(UIsceneName); + this.UIManager = this.currentScene.scene.get(UIsceneName); + + let computerSceneName = 'ComputerScene'; + this.currentScene.scene.run(computerSceneName); + this.computerScene = this.currentScene.scene.get(computerSceneName); + this.computerScene.scene.sleep(); + + this.day = 3; + this.changeScene("BedroomAfternoonDay3"); + } + startGame(userInfo) { this.InitializedGame(); this.blackboard.clear(); @@ -320,7 +342,6 @@ export default class GameManager { }; this.changeScene(sceneName, params); - } /** diff --git a/src/scenes/bootScene.js b/src/scenes/bootScene.js index 5230793..3908b08 100644 --- a/src/scenes/bootScene.js +++ b/src/scenes/bootScene.js @@ -517,6 +517,7 @@ export default class BootScene extends Phaser.Scene { let gameManager = GameManager.create(this); gameManager.startLangMenu(); + // gameManager.startTest(); }) } } \ No newline at end of file diff --git a/src/scenes/gameLoop/day1/classFrontMorningDay1.js b/src/scenes/gameLoop/day1/classFrontMorningDay1.js index 1d238c4..ec5620c 100644 --- a/src/scenes/gameLoop/day1/classFrontMorningDay1.js +++ b/src/scenes/gameLoop/day1/classFrontMorningDay1.js @@ -100,7 +100,9 @@ export default class ClassFrontMorningDay1 extends ClassFrontBase { let nodes = this.cache.json.get('classFrontMorningDay1'); let teacherNode = super.readNodes(nodes, "day1\\classFrontMorningDay1", "teacher", true); - this.dialogManager.setNode(teacherNode); + setTimeout(() => { + this.dialogManager.setNode(teacherNode); + }, 50); } diff --git a/src/scenes/gameLoop/day2/classFrontMorningDay2.js b/src/scenes/gameLoop/day2/classFrontMorningDay2.js index 93b1a47..050cd38 100644 --- a/src/scenes/gameLoop/day2/classFrontMorningDay2.js +++ b/src/scenes/gameLoop/day2/classFrontMorningDay2.js @@ -87,7 +87,9 @@ export default class ClassFrontMorningDay2 extends ClassFrontBase { let nodes = this.cache.json.get('everydayDialog'); let teacherNode = super.readNodes(nodes, "everydayDialog", "class.late", true); - this.dialogManager.setNode(teacherNode); + setTimeout(() => { + this.dialogManager.setNode(teacherNode); + }, 50); } diff --git a/src/scenes/gameLoop/day3/classFrontMorningDay3.js b/src/scenes/gameLoop/day3/classFrontMorningDay3.js index 71c029e..1ed7e72 100644 --- a/src/scenes/gameLoop/day3/classFrontMorningDay3.js +++ b/src/scenes/gameLoop/day3/classFrontMorningDay3.js @@ -87,7 +87,9 @@ export default class ClassFrontMorningDay3 extends ClassFrontBase { let nodes = this.cache.json.get('everydayDialog'); let teacherNode = super.readNodes(nodes, "everydayDialog", "class.late", true); - this.dialogManager.setNode(teacherNode); + setTimeout(() => { + this.dialogManager.setNode(teacherNode); + }, 50); } diff --git a/src/scenes/gameLoop/day4/classFrontMorningDay4.js b/src/scenes/gameLoop/day4/classFrontMorningDay4.js index e1e7bc2..7dfe8de 100644 --- a/src/scenes/gameLoop/day4/classFrontMorningDay4.js +++ b/src/scenes/gameLoop/day4/classFrontMorningDay4.js @@ -87,7 +87,9 @@ export default class ClassFrontMorningDay4 extends ClassFrontBase { let nodes = this.cache.json.get('everydayDialog'); let teacherNode = super.readNodes(nodes, "everydayDialog", "class.late", true); - this.dialogManager.setNode(teacherNode); + setTimeout(() => { + this.dialogManager.setNode(teacherNode); + }, 50); } From c3055fde56cda53d57a52651634d6fda93a0ce5e Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Tue, 28 Jan 2025 10:02:50 +0100 Subject: [PATCH 54/86] fix bundle fix localization fix completed with sendBatch + adding params for batch update using enqueue instead of sendStatement to have more send fix oauth2 parameters needed fix xapi js from simva received data fix using function generateXAPITrackerFromURLParams instead fix default uri in bundle fix bundle fix bundle xapitracker fix bundle fix bundle removing exit menu in language menu + fix bundle fix bundle --- localization/fr/day5/corridorMorningDay5.json | 2 +- src/UI/computer/friendsTab.js | 2 +- src/UI/computer/loginScreen.js | 4 +- src/UI/computer/post.js | 2 +- src/UI/computer/socialNetworkScreen.js | 4 +- src/UI/phone/chatScreen.js | 4 +- src/UI/phone/messagesScreen.js | 2 +- src/UI/phone/phone.js | 12 ++--- src/UI/phone/settingsScreen.js | 4 +- src/gameObjects/character.js | 2 +- src/lib/xapi.js | 50 ++----------------- src/lib/xapiTracker.bundle.js | 2 +- src/managers/dialogManager.js | 10 ++-- src/managers/gameManager.js | 17 ++++--- src/managers/phoneManager.js | 8 +-- .../gameLoop/baseScenarios/bedroomBase.js | 26 +++++----- .../gameLoop/baseScenarios/classBackBase.js | 2 +- .../gameLoop/baseScenarios/classFrontBase.js | 2 +- .../gameLoop/baseScenarios/corridorBase.js | 8 +-- .../gameLoop/baseScenarios/livingroomBase.js | 4 +- .../gameLoop/baseScenarios/playgroundBase.js | 4 +- .../gameLoop/baseScenarios/restroomBase.js | 10 ++-- .../gameLoop/baseScenarios/stairsBase.js | 8 +-- .../gameLoop/day1/bedroomAfternoonDay1.js | 2 +- .../gameLoop/day1/bedroomMorningDay1.js | 2 +- src/scenes/gameLoop/day1/corridorBreakDay1.js | 2 +- src/scenes/gameLoop/day1/nightmareDay1.js | 4 +- .../gameLoop/day1/playgroundBreakDay1.js | 2 +- .../gameLoop/day2/bedroomAfternoonDay2.js | 2 +- .../gameLoop/day2/bedroomMorningDay2.js | 2 +- src/scenes/gameLoop/day2/nightmareDay2.js | 2 +- src/scenes/gameLoop/day2/restroomBreakDay2.js | 2 +- .../gameLoop/day3/bedroomMorningDay3.js | 2 +- .../gameLoop/day3/corridorMorningDay3.js | 2 +- src/scenes/gameLoop/day3/nightmareDay3.js | 2 +- .../gameLoop/day3/playgroundMorningDay3.js | 2 +- .../gameLoop/day4/bedroomAfternoonDay4.js | 2 +- .../gameLoop/day4/bedroomMorningDay4.js | 2 +- .../gameLoop/day4/corridorMorningDay4.js | 2 +- src/scenes/gameLoop/day4/nightmareDay4.js | 2 +- .../gameLoop/day4/playgroundMorningDay4.js | 2 +- .../gameLoop/day5/bedroomMorningDay5.js | 2 +- .../gameLoop/day5/restroomAfternoonDay5.js | 6 +-- src/scenes/gameLoop/oppositeRestroom.js | 8 +-- src/scenes/menus/languageMenu.js | 11 +--- src/scenes/menus/loginMenu.js | 2 +- 46 files changed, 104 insertions(+), 152 deletions(-) diff --git a/localization/fr/day5/corridorMorningDay5.json b/localization/fr/day5/corridorMorningDay5.json index b05fac8..33bd4bf 100644 --- a/localization/fr/day5/corridorMorningDay5.json +++ b/localization/fr/day5/corridorMorningDay5.json @@ -10,7 +10,7 @@ ], "phoneFound": [ { - "text": "Regardez tes commentaires dans le chat. Suface, tu nous as tous surpris." + "text": "Regarde tes commentaires dans le chat. Suface, tu nous as tous surpris." }, { "text": "Je ne m'attendais pas à ça de ta part, c'est comme si ce n'était pas toi qui les avait écrits hahaha." diff --git a/src/UI/computer/friendsTab.js b/src/UI/computer/friendsTab.js index 97299f0..3d665e8 100644 --- a/src/UI/computer/friendsTab.js +++ b/src/UI/computer/friendsTab.js @@ -136,7 +136,7 @@ export default class FriendsTab extends Phaser.GameObjects.Group { interacted(id) { try { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted(id, GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted(id, GAMEOBJECTTYPE.ITEM)); } catch(e) { console.debug(e); } diff --git a/src/UI/computer/loginScreen.js b/src/UI/computer/loginScreen.js index 1696841..ec277a5 100644 --- a/src/UI/computer/loginScreen.js +++ b/src/UI/computer/loginScreen.js @@ -63,11 +63,11 @@ export default class LoginScreen extends Phaser.GameObjects.Group { () => { // Se comprueba que los datos introducidos son correctos if (this.handleErrors(this.userInput, this.passwordInput)) { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("onComputer", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("onComputer", GAMEOBJECTTYPE.GAMEOBJECT)); this.scene.logIntoSocialNet(); } else { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("errorWhenIntroducedCredentialsonComputer", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("errorWhenIntroducedCredentialsonComputer", GAMEOBJECTTYPE.GAMEOBJECT)); this.errorText.setVisible(true); } }, diff --git a/src/UI/computer/post.js b/src/UI/computer/post.js index f44158b..66d0c96 100644 --- a/src/UI/computer/post.js +++ b/src/UI/computer/post.js @@ -84,7 +84,7 @@ export default class Post extends Phaser.GameObjects.Container { // Boton para comentar en el post offset = 10; this.commentButton = new ListViewButton(this.scene, photoBg.x + photoBg.displayWidth / 2 - offset, photoBg.y + offset, 0.65, () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted(`comment_button_${this.name}_${this.photo}`)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted(`comment_button_${this.name}_${this.photo}`)); if (this.commentNode !== null) { this.dialogManager.setNode(this.commentNode); } diff --git a/src/UI/computer/socialNetworkScreen.js b/src/UI/computer/socialNetworkScreen.js index c47618a..2010721 100644 --- a/src/UI/computer/socialNetworkScreen.js +++ b/src/UI/computer/socialNetworkScreen.js @@ -550,7 +550,7 @@ export default class SocialNetworkScreen extends Phaser.GameObjects.Group { * Cambiar a la pestana donde aparecen las solicitudes de amistad */ accessFriendsTab() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("ShowComputerFriends", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("ShowComputerFriends", GAMEOBJECTTYPE.GAMEOBJECT)); this.feedTab.setVisible(false); this.friendsTab.start(); } @@ -559,7 +559,7 @@ export default class SocialNetworkScreen extends Phaser.GameObjects.Group { * Cambiar a la pestana donde aparecen los posts de los amigos */ accessFeedTab() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("ShowComputerPublications", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("ShowComputerPublications", GAMEOBJECTTYPE.GAMEOBJECT)); this.friendsTab.setVisible(false); this.feedTab.setVisible(true); } diff --git a/src/UI/phone/chatScreen.js b/src/UI/phone/chatScreen.js index 043e990..dd81d39 100644 --- a/src/UI/phone/chatScreen.js +++ b/src/UI/phone/chatScreen.js @@ -129,7 +129,7 @@ export default class ChatScreen extends BaseScreen { // Al hacer click, vuelve a cambiar el color de la caja al original this.textBox.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("chatBoxScreen", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("chatBoxScreen", GAMEOBJECTTYPE.ITEM)); if (!this.scene.dialogManager.isTalking() && this.canAnswer) { let fadeColor = this.scene.tweens.addCounter({ targets: [this.textBox], @@ -200,7 +200,7 @@ export default class ChatScreen extends BaseScreen { }); this.returnButton.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("returnButton", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("returnButton", GAMEOBJECTTYPE.ITEM)); if (!this.scene.dialogManager.isTalking()) { let anim = this.scene.tweens.add({ targets: [this.returnButton], diff --git a/src/UI/phone/messagesScreen.js b/src/UI/phone/messagesScreen.js index 56435aa..2b176d0 100644 --- a/src/UI/phone/messagesScreen.js +++ b/src/UI/phone/messagesScreen.js @@ -83,7 +83,7 @@ export default class MessagesScreen extends BaseScreen { // Al hacer click, vuelve a cambiar el color de la caja al original button.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("messageButton", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("messageButton", GAMEOBJECTTYPE.ITEM)); let fadeColor = this.scene.tweens.addCounter({ targets: [button], from: 0, diff --git a/src/UI/phone/phone.js b/src/UI/phone/phone.js index b8c12c8..03cc7ac 100644 --- a/src/UI/phone/phone.js +++ b/src/UI/phone/phone.js @@ -111,7 +111,7 @@ export default class Phone extends Phaser.GameObjects.Container { // Pasa a la pantalla anterior toPrevScreen() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("toPrevScreen", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("toPrevScreen", GAMEOBJECTTYPE.GAMEOBJECT)); // Si la pantalla actual es la pantalla principal, se guarda el movil if (this.currScreen === this.mainScreen) { this.phoneManager.togglePhone(); @@ -129,19 +129,19 @@ export default class Phone extends Phaser.GameObjects.Container { // Cambia a la pantalla principal toMainScreen() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("toMainScreen", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("toMainScreen", GAMEOBJECTTYPE.GAMEOBJECT)); this.changeScreen(this.mainScreen); } // Cambia a la pantalla de estado toStatusScreen() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("openFriendsApp", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("openFriendsApp", GAMEOBJECTTYPE.GAMEOBJECT)); this.changeScreen(this.statusScreen); } // Cambia a la pantalla de mensajes toMsgScreen() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("openMobileChat", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("openMobileChat", GAMEOBJECTTYPE.GAMEOBJECT)); this.changeScreen(this.messagesScreen); } @@ -150,7 +150,7 @@ export default class Phone extends Phaser.GameObjects.Container { * @param {String} chat - id del chat */ toChatScreen(chat) { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted(`chat_${chat}`, GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted(`chat_${chat}`, GAMEOBJECTTYPE.GAMEOBJECT)); if (this.chats.has(chat)) { this.changeScreen(this.chats.get(chat)); this.chats.get(chat).clearNotifications(); @@ -159,7 +159,7 @@ export default class Phone extends Phaser.GameObjects.Container { // Cambia a la pantalla de ajustes toSettingsScreen() { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("openMobileSettings", GAMEOBJECTTYPE.GAMEOBJECT)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("openMobileSettings", GAMEOBJECTTYPE.GAMEOBJECT)); this.changeScreen(this.settingsScreen); } diff --git a/src/UI/phone/settingsScreen.js b/src/UI/phone/settingsScreen.js index 7c13107..c45f924 100644 --- a/src/UI/phone/settingsScreen.js +++ b/src/UI/phone/settingsScreen.js @@ -32,7 +32,7 @@ export default class SettingsScreen extends BaseScreen { let yesText = this.i18next.t("settings.yes", { ns: "phoneInfo" }) let yesButton = new Button(scene, this.BG_X, this.BG_Y * 1.1, 1, () => { - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Selected("setting_reset_game", "yes", ALTERNATIVETYPE.MENU)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Selected("setting_reset_game", "yes", ALTERNATIVETYPE.MENU)); this.gameManager.CompletedGame(false); yesButton.reset(); this.gameManager.startLangMenu(); @@ -50,7 +50,7 @@ export default class SettingsScreen extends BaseScreen { let noText = this.i18next.t("settings.no", { ns: "phoneInfo" }) let noButton = new Button(scene, this.BG_X, this.BG_Y * 1.4, 1, () => { - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Selected("setting_reset_game", "no", ALTERNATIVETYPE.MENU)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Selected("setting_reset_game", "no", ALTERNATIVETYPE.MENU)); noButton.reset(); phone.toPrevScreen(); }, diff --git a/src/gameObjects/character.js b/src/gameObjects/character.js index 7025d58..eb1a78a 100644 --- a/src/gameObjects/character.js +++ b/src/gameObjects/character.js @@ -26,7 +26,7 @@ export default class Character { this.dialog = dialog; this.char.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted(this.key, GAMEOBJECTTYPE.NPC)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted(this.key, GAMEOBJECTTYPE.NPC)); this.dialog(); }); diff --git a/src/lib/xapi.js b/src/lib/xapi.js index f2b2167..bffc8eb 100644 --- a/src/lib/xapi.js +++ b/src/lib/xapi.js @@ -1,49 +1,9 @@ -const xAPIConfig = { - "grant_type": "code", - "auth_endpoint": "https://sso.simva-beta2.e-ucm.es:443/realms/simva/protocol/openid-connect/auth", - "token_endpoint": "https://sso.simva-beta2.e-ucm.es:443/realms/simva/protocol/openid-connect/token", - "client_id": "simva-plugin", - "code_challenge_method": "S256", - "redirect_uri":"https://simva-beta2.e-ucm.es/" -} -const urlParams = new URLSearchParams(window.location.search); -var simvaResultUri, simvaBackupUri, authToken, username, homepage,debug; -if(urlParams.size > 0) { - simvaResultUri = urlParams.get('url'); - simvaBackupUri=simvaResultUri + "/result"; - var token = urlParams.get('authToken'); - if(token) { - authToken = "Bearer " + token; - } else { - authToken = null; - } - username = urlParams.get('username'); - homepage = urlParams.get('homepage'); - debug=urlParams.get('debug'); - if(debug !== null && debug == "true") { - debug = Boolean(debug); - console.debug(simvaBackupUri); - console.debug(simvaResultUri); - console.debug(authToken); - console.debug(username); - console.debug(homepage); - console.debug(debug); - } -} else { - simvaResultUri = null; - simvaBackupUri = null; - authToken = null; - username = null; - homepage = null; - debug = false; -} -export var xapiTracker = new xAPITrackerAsset(simvaResultUri, simvaBackupUri, authToken, homepage, username, "ConectadoWeb", debug); -//export var xapiTracker = new xAPITrackerAssetOAuth2(simvaResultUri, null, xAPIConfig, homepage, username, "ConectadoWeb"); +export var xapiTracker = new generateXAPITrackerFromURLParams("ConectadoWeb"); export var accessibleXapiTracker = new AccessibleTracker(xapiTracker); export var alternativeXapiTracker = new AlternativeTracker(xapiTracker); export var completableXapiTracker = new CompletableTracker(xapiTracker); export var gameObjectXapiTracker = new GameObjectTracker(xapiTracker); -//completableXapiTracker.sendStatement(completableXapiTracker.Initialized("ConectadoWeb", COMPLETABLETYPE.GAME)); -//completableXapiTracker.sendStatement(completableXapiTracker.Progressed("ConectadoWeb", COMPLETABLETYPE.GAME, 0.5)); -//completableXapiTracker.sendStatement(completableXapiTracker.Completed("ConectadoWeb", COMPLETABLETYPE.GAME, true, false)); -//completableXapiTracker.sendStatement(completableXapiTracker.Completed("ConectadoWeb", COMPLETABLETYPE.GAME, true, true)); \ No newline at end of file +//completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConectadoWeb", COMPLETABLETYPE.GAME)); +//completableXapiTracker.enqueue(completableXapiTracker.Progressed("ConectadoWeb", COMPLETABLETYPE.GAME, 0.5)); +//completableXapiTracker.enqueue(completableXapiTracker.Completed("ConectadoWeb", COMPLETABLETYPE.GAME, true, false)); +//completableXapiTracker.enqueue(completableXapiTracker.Completed("ConectadoWeb", COMPLETABLETYPE.GAME, true, true)); \ No newline at end of file diff --git a/src/lib/xapiTracker.bundle.js b/src/lib/xapiTracker.bundle.js index 845f560..5eb1027 100644 --- a/src/lib/xapiTracker.bundle.js +++ b/src/lib/xapiTracker.bundle.js @@ -1,2 +1,2 @@ /*! For license information please see xapiTracker.bundle.js.LICENSE.txt */ -!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(self,(()=>(()=>{var __webpack_modules__={"./node_modules/@xapi/xapi/dist/XAPI.umd.js":function(module,__unused_webpack_exports,__webpack_require__){eval('!function(e,t){ true?module.exports=t():0}(this,(function(){"use strict";let e=function(e){return e.SIGNATURE="http://adlnet.gov/expapi/attachments/signature",e.CERTIFICATE_OF_COMPLETION="http://id.tincanapi.com/attachment/certificate-of-completion",e.CONTRACT="http://id.tincanapi.com/attachment/contract",e.SUPPORTING_MEDIA="http://id.tincanapi.com/attachment/supporting_media",e}({}),t=function(e){return e.ABOUT="about",e.AGENTS="agents",e.ACTIVITIES="activities",e.ACTIVITY_PROFILE="activities/profile",e.STATE="activities/state",e.AGENT_PROFILE="agents/profile",e.STATEMENT="statements",e}({});class n{static INITIALIZED={id:"http://adlnet.gov/expapi/verbs/initialized",display:{"en-US":"initialized"}};static TERMINATED={id:"http://adlnet.gov/expapi/verbs/terminated",display:{"en-US":"terminated"}};static SUSPENDED={id:"http://adlnet.gov/expapi/verbs/suspended",display:{"en-US":"suspended"}};static RESUMED={id:"http://adlnet.gov/expapi/verbs/resumed",display:{"en-US":"resumed"}};static PASSED={id:"http://adlnet.gov/expapi/verbs/passed",display:{"en-US":"passed"}};static FAILED={id:"http://adlnet.gov/expapi/verbs/failed",display:{"en-US":"failed"}};static SCORED={id:"http://adlnet.gov/expapi/verbs/scored",display:{"en-US":"scored"}};static COMPLETED={id:"http://adlnet.gov/expapi/verbs/completed",display:{"en-US":"completed"}};static RESPONDED={id:"http://adlnet.gov/expapi/verbs/responded",display:{"en-US":"responded"}};static COMMENTED={id:"http://adlnet.gov/expapi/verbs/commented",display:{"en-US":"commented"}};static VOIDED={id:"http://adlnet.gov/expapi/verbs/voided",display:{"en-US":"voided"}};static PROGRESSED={id:"http://adlnet.gov/expapi/verbs/progressed",display:{"en-US":"progressed"}};static ANSWERED={id:"http://adlnet.gov/expapi/verbs/answered",display:{"en-US":"answered"}}}const r="\\r\\n";function o(e,t){const n=[],o=(Math.random()+" ").substring(2,10)+(Math.random()+" ").substring(2,10),s={"Content-Type":`multipart/mixed; boundary=${o}`};n.push(function(e,t){return[`--${t}`,"Content-Type: application/json",\'Content-Disposition: form-data; name="statement"\',"",JSON.stringify(e)].join(r)+r}(e,o));const i=Array.isArray(e)?e.reduce(((e,t)=>e.concat(t.attachments)),[]):e.attachments;return t.forEach(((e,t)=>{const s=i[t];n.push(function(e,t){return[`--${t}`,`Content-Type: ${e.contentType}`,"Content-Transfer-Encoding: binary",`X-Experience-API-Hash: ${e.sha2}`].join(r)+r+r}(s,o)),n.push(e)})),n.push(`${r}--${o}--${r}`),{header:s,blob:new Blob(n)}}function s(e){const t={};if(-1===e.indexOf("?"))return t;let n=e.substring(e.indexOf("?"));if(n=n.split("#").shift(),!n)return t;return new URLSearchParams(n).forEach(((e,n)=>{try{t[n]=JSON.parse(e)}catch{t[n]=e}var r;"actor"===n&&(t.actor=(r=t.actor,["name","mbox","account"].forEach((e=>{Array.isArray(r[e])&&(r[e]="account"===e?{...!!r.account[0].accountServiceHomePage&&{homePage:r.account[0].accountServiceHomePage},...!!r.account[0].accountName&&{name:r.account[0].accountName}}:r[e][0])})),r))})),t}const i=6e4,a=36e5,c=864e5;function u(e,t){const n=t.getTime()-e.getTime();if(n<=0)return"PT0S";const r=Math.floor(n/c),o=n%c,s=Math.floor(o/a),u=o%a,l=Math.floor(u/i),d=u%i/1e3;return`P${r?r+"D":""}T${s?s+"H":""}${l?l+"M":""}${d?d+"S":""}`}function l(e,t){return function(){return e.apply(t,arguments)}}const{toString:d}=Object.prototype,{getPrototypeOf:f}=Object,p=(h=Object.create(null),e=>{const t=d.call(e);return h[t]||(h[t]=t.slice(8,-1).toLowerCase())});var h;const m=e=>(e=e.toLowerCase(),t=>p(t)===e),y=e=>t=>typeof t===e,{isArray:g}=Array,E=y("undefined");const b=m("ArrayBuffer");const T=y("string"),S=y("function"),w=y("number"),O=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==p(e))return!1;const t=f(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},R=m("Date"),A=m("File"),P=m("Blob"),C=m("FileList"),I=m("URLSearchParams"),[q,x,N,L]=["ReadableStream","Request","Response","Headers"].map(m);function j(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),g(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:__webpack_require__.g,_=e=>!E(e)&&e!==B;const D=(F="undefined"!=typeof Uint8Array&&f(Uint8Array),e=>F&&e instanceof F);var F;const k=m("HTMLFormElement"),M=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),H=m("RegExp"),$=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};j(n,((n,o)=>{let s;!1!==(s=t(n,o,e))&&(r[o]=s||n)})),Object.defineProperties(e,r)},z="abcdefghijklmnopqrstuvwxyz",V="0123456789",J={DIGIT:V,ALPHA:z,ALPHA_DIGIT:z+z.toUpperCase()+V};const G=m("AsyncFunction"),W=(K="function"==typeof setImmediate,X=S(B.postMessage),K?setImmediate:X?(Y=`axios@${Math.random()}`,Q=[],B.addEventListener("message",(({source:e,data:t})=>{e===B&&t===Y&&Q.length&&Q.shift()()}),!1),e=>{Q.push(e),B.postMessage(Y,"*")}):e=>setTimeout(e));var K,X,Y,Q;const Z="undefined"!=typeof queueMicrotask?queueMicrotask.bind(B):"undefined"!=typeof process&&process.nextTick||W;var ee={isArray:g,isArrayBuffer:b,isBuffer:function(e){return null!==e&&!E(e)&&null!==e.constructor&&!E(e.constructor)&&S(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||S(e.append)&&("formdata"===(t=p(e))||"object"===t&&S(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&b(e.buffer),t},isString:T,isNumber:w,isBoolean:e=>!0===e||!1===e,isObject:O,isPlainObject:v,isReadableStream:q,isRequest:x,isResponse:N,isHeaders:L,isUndefined:E,isDate:R,isFile:A,isBlob:P,isRegExp:H,isFunction:S,isStream:e=>O(e)&&S(e.pipe),isURLSearchParams:I,isTypedArray:D,isFileList:C,forEach:j,merge:function e(){const{caseless:t}=_(this)&&this||{},n={},r=(r,o)=>{const s=t&&U(n,o)||o;v(n[s])&&v(r)?n[s]=e(n[s],r):v(r)?n[s]=e({},r):g(r)?n[s]=r.slice():n[s]=r};for(let e=0,t=arguments.length;e(j(t,((t,r)=>{n&&S(t)?e[r]=l(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,s,i;const a={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)i=o[s],r&&!r(i,e,t)||a[i]||(t[i]=e[i],a[i]=!0);e=!1!==n&&f(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:p,kindOfTest:m,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(g(e))return e;let t=e.length;if(!w(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:k,hasOwnProperty:M,hasOwnProp:M,reduceDescriptors:$,freezeMethods:e=>{$(e,((t,n)=>{if(S(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];S(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method \'"+n+"\'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return g(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:U,global:B,isContextDefined:_,ALPHABET:J,generateString:(e=16,t=J.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&S(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(O(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=g(e)?[]:{};return j(e,((e,t)=>{const s=n(e,r+1);!E(s)&&(o[t]=s)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:G,isThenable:e=>e&&(O(e)||S(e))&&S(e.then)&&S(e.catch),setImmediate:W,asap:Z};function te(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}ee.inherits(te,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ee.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ne=te.prototype,re={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{re[e]={value:e}})),Object.defineProperties(te,re),Object.defineProperty(ne,"isAxiosError",{value:!0}),te.from=(e,t,n,r,o,s)=>{const i=Object.create(ne);return ee.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),te.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};function oe(e){return ee.isPlainObject(e)||ee.isArray(e)}function se(e){return ee.endsWith(e,"[]")?e.slice(0,-2):e}function ie(e,t,n){return e?e.concat(t).map((function(e,t){return e=se(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const ae=ee.toFlatObject(ee,{},null,(function(e){return/^is[A-Z]/.test(e)}));function ce(e,t,n){if(!ee.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=ee.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ee.isUndefined(t[e])}))).metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&ee.isSpecCompliantForm(t);if(!ee.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(ee.isDate(e))return e.toISOString();if(!a&&ee.isBlob(e))throw new te("Blob is not supported. Use a Buffer instead.");return ee.isArrayBuffer(e)||ee.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,n,o){let a=e;if(e&&!o&&"object"==typeof e)if(ee.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(ee.isArray(e)&&function(e){return ee.isArray(e)&&!e.some(oe)}(e)||(ee.isFileList(e)||ee.endsWith(n,"[]"))&&(a=ee.toArray(e)))return n=se(n),a.forEach((function(e,r){!ee.isUndefined(e)&&null!==e&&t.append(!0===i?ie([n],r,s):null===i?n:n+"[]",c(e))})),!1;return!!oe(e)||(t.append(ie(o,n,s),c(e)),!1)}const l=[],d=Object.assign(ae,{defaultVisitor:u,convertValue:c,isVisitable:oe});if(!ee.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!ee.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),ee.forEach(n,(function(n,s){!0===(!(ee.isUndefined(n)||null===n)&&o.call(t,n,ee.isString(s)?s.trim():s,r,d))&&e(n,r?r.concat(s):[s])})),l.pop()}}(e),t}function ue(e){const t={"!":"%21","\'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\\0"};return encodeURIComponent(e).replace(/[!\'()~]|%20|%00/g,(function(e){return t[e]}))}function le(e,t){this._pairs=[],e&&ce(e,this,t)}const de=le.prototype;function fe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function pe(e,t,n){if(!t)return e;const r=n&&n.encode||fe,o=n&&n.serialize;let s;if(s=o?o(t,n):ee.isURLSearchParams(t)?t.toString():new le(t,n).toString(r),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}de.append=function(e,t){this._pairs.push([e,t])},de.toString=function(e){const t=e?function(t){return e.call(this,t,ue)}:ue;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class he{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){ee.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var me={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ye={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:le,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ge="undefined"!=typeof window&&"undefined"!=typeof document,Ee=(be="undefined"!=typeof navigator&&navigator.product,ge&&["ReactNative","NativeScript","NS"].indexOf(be)<0);var be;const Te="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Se=ge&&window.location.href||"http://localhost";var we={...Object.freeze({__proto__:null,hasBrowserEnv:ge,hasStandardBrowserEnv:Ee,hasStandardBrowserWebWorkerEnv:Te,origin:Se}),...ye};function Oe(e){function t(e,n,r,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&ee.isArray(r)?r.length:s,a)return ee.hasOwnProp(r,s)?r[s]=[r[s],n]:r[s]=n,!i;r[s]&&ee.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&ee.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r{t(function(e){return ee.matchAll(/\\w+|\\[(\\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ve={transitional:me,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=ee.isObject(e);o&&ee.isHTMLForm(e)&&(e=new FormData(e));if(ee.isFormData(e))return r?JSON.stringify(Oe(e)):e;if(ee.isArrayBuffer(e)||ee.isBuffer(e)||ee.isStream(e)||ee.isFile(e)||ee.isBlob(e)||ee.isReadableStream(e))return e;if(ee.isArrayBufferView(e))return e.buffer;if(ee.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ce(e,new we.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return we.isNode&&ee.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=ee.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ce(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(ee.isString(e))try{return(t||JSON.parse)(e),ee.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ve.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(ee.isResponse(e)||ee.isReadableStream(e))return e;if(e&&ee.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw te.from(e,te.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:we.classes.FormData,Blob:we.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ee.forEach(["delete","get","head","post","put","patch"],(e=>{ve.headers[e]={}}));var Re=ve;const Ae=ee.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Pe=Symbol("internals");function Ce(e){return e&&String(e).trim().toLowerCase()}function Ie(e){return!1===e||null==e?e:ee.isArray(e)?e.map(Ie):String(e)}function qe(e,t,n,r,o){return ee.isFunction(r)?r.call(this,t,n):(o&&(t=n),ee.isString(t)?ee.isString(r)?-1!==t.indexOf(r):ee.isRegExp(r)?r.test(t):void 0:void 0)}class xe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Ce(t);if(!o)throw new Error("header name must be a non-empty string");const s=ee.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=Ie(e))}const s=(e,t)=>ee.forEach(e,((e,n)=>o(e,n,t)));if(ee.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(ee.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&\'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,o;return e&&e.split("\\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&Ae[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(ee.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=Ce(e)){const n=ee.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(ee.isFunction(t))return t.call(this,e,n);if(ee.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ce(e)){const n=ee.findKey(this,e);return!(!n||void 0===this[n]||t&&!qe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Ce(e)){const o=ee.findKey(n,e);!o||t&&!qe(0,n[o],o,t)||(delete n[o],r=!0)}}return ee.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!qe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return ee.forEach(this,((r,o)=>{const s=ee.findKey(n,o);if(s)return t[s]=Ie(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();i!==o&&delete t[o],t[i]=Ie(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ee.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&ee.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Pe]=this[Pe]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Ce(e);t[r]||(!function(e,t){const n=ee.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return ee.isArray(e)?e.forEach(r):r(e),this}}xe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ee.reduceDescriptors(xe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),ee.freezeMethods(xe);var Ne=xe;function Le(e,t){const n=this||Re,r=t||n,o=Ne.from(r.headers);let s=r.data;return ee.forEach(e,(function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function je(e){return!(!e||!e.__CANCEL__)}function Ue(e,t,n){te.call(this,null==e?"canceled":e,te.ERR_CANCELED,t,n),this.name="CanceledError"}function Be(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new te("Request failed with status code "+n.status,[te.ERR_BAD_REQUEST,te.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}ee.inherits(Ue,te,{__CANCEL__:!0});const _e=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),u=r[i];o||(o=c),n[s]=a,r[s]=c;let l=i,d=0;for(;l!==s;)d+=n[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o{o=s,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(n=e,r||(r=setTimeout((()=>{r=null,i(n)}),s-a)))},()=>n&&i(n)]}((n=>{const s=n.loaded,i=n.lengthComputable?n.total:void 0,a=s-r,c=o(a);r=s;e({loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:n,lengthComputable:null!=i,[t?"download":"upload"]:!0})}),n)},De=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Fe=e=>(...t)=>ee.asap((()=>e(...t)));var ke=we.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=ee.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Me=we.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];ee.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),ee.isString(r)&&i.push("path="+r),ee.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function He(e,t){return e&&!/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t)?function(e,t){return t?e.replace(/\\/?\\/$/,"")+"/"+t.replace(/^\\/+/,""):e}(e,t):t}const $e=e=>e instanceof Ne?{...e}:e;function ze(e,t){t=t||{};const n={};function r(e,t,n){return ee.isPlainObject(e)&&ee.isPlainObject(t)?ee.merge.call({caseless:n},e,t):ee.isPlainObject(t)?ee.merge({},t):ee.isArray(t)?t.slice():t}function o(e,t,n){return ee.isUndefined(t)?ee.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function s(e,t){if(!ee.isUndefined(t))return r(void 0,t)}function i(e,t){return ee.isUndefined(t)?ee.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return s in t?r(n,o):s in e?r(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>o($e(e),$e(t),!0)};return ee.forEach(Object.keys(Object.assign({},e,t)),(function(r){const s=c[r]||o,i=s(e[r],t[r],r);ee.isUndefined(i)&&s!==a||(n[r]=i)})),n}var Ve=e=>{const t=ze({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:c}=t;if(t.headers=a=Ne.from(a),t.url=pe(He(t.baseURL,t.url),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ee.isFormData(r))if(we.hasStandardBrowserEnv||we.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(n=a.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(we.hasStandardBrowserEnv&&(o&&ee.isFunction(o)&&(o=o(t)),o||!1!==o&&ke(t.url))){const e=s&&i&&Me.read(i);e&&a.set(s,e)}return t};var Je="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=Ve(e);let o=r.data;const s=Ne.from(r.headers).normalize();let i,a,c,u,l,{responseType:d,onUploadProgress:f,onDownloadProgress:p}=r;function h(){u&&u(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(i),r.signal&&r.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function y(){if(!m)return;const r=Ne.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Be((function(e){t(e),h()}),(function(e){n(e),h()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(n(new te("Request aborted",te.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new te("Network Error",te.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||me;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new te(t,o.clarifyTimeoutError?te.ETIMEDOUT:te.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&ee.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),ee.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([c,l]=_e(p,!0),m.addEventListener("progress",c)),f&&m.upload&&([a,u]=_e(f),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",u)),(r.cancelToken||r.signal)&&(i=t=>{m&&(n(!t||t.type?new Ue(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(i),r.signal&&(r.signal.aborted?i():r.signal.addEventListener("abort",i)));const g=function(e){const t=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(e);return t&&t[1]||""}(r.url);g&&-1===we.protocols.indexOf(g)?n(new te("Unsupported protocol "+g+":",te.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Ge=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,i();const t=e instanceof Error?e:this.reason;r.abort(t instanceof te?t:new Ue(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{o(new te(`timeout ${t} of ms exceeded`,te.ETIMEDOUT))}),t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:a}=r;return a.unsubscribe=i,[a,()=>{s&&clearTimeout(s),s=null}]},We=function*(e,t){let n=e.byteLength;if(!t||n{const s=async function*(e,t,n){for await(const r of e)yield*We(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let i,a=0,c=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await s.next();if(t)return c(),void e.close();let o=r.byteLength;if(n){let e=a+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw c(e),e}},cancel:e=>(c(e),s.return())},{highWaterMark:2})},Xe="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Ye=Xe&&"function"==typeof ReadableStream,Qe=Xe&&("function"==typeof TextEncoder?(Ze=new TextEncoder,e=>Ze.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ze;const et=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},tt=Ye&&et((()=>{let e=!1;const t=new Request(we.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),nt=Ye&&et((()=>ee.isReadableStream(new Response("").body))),rt={stream:nt&&(e=>e.body)};var ot;Xe&&(ot=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!rt[e]&&(rt[e]=ee.isFunction(ot[e])?t=>t[e]():(t,n)=>{throw new te(`Response type \'${e}\' is not supported`,te.ERR_NOT_SUPPORT,n)})})));const st=async(e,t)=>{const n=ee.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:ee.isBlob(e)?e.size:ee.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:ee.isArrayBufferView(e)||ee.isArrayBuffer(e)?e.byteLength:(ee.isURLSearchParams(e)&&(e+=""),ee.isString(e)?(await Qe(e)).byteLength:void 0))(t):n};const it={http:null,xhr:Je,fetch:Xe&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:s,timeout:i,onDownloadProgress:a,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:f}=Ve(e);u=u?(u+"").toLowerCase():"text";let p,h,[m,y]=o||s||i?Ge([o,s],i):[];const g=()=>{!p&&setTimeout((()=>{m&&m.unsubscribe()})),p=!0};let E;try{if(c&&tt&&"get"!==n&&"head"!==n&&0!==(E=await st(l,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(ee.isFormData(r)&&(e=n.headers.get("content-type"))&&l.setContentType(e),n.body){const[e,t]=De(E,_e(Fe(c)));r=Ke(n.body,65536,e,t,Qe)}}ee.isString(d)||(d=d?"include":"omit"),h=new Request(t,{...f,signal:m,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:r,duplex:"half",credentials:d});let o=await fetch(h);const s=nt&&("stream"===u||"response"===u);if(nt&&(a||s)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=ee.toFiniteNumber(o.headers.get("content-length")),[n,r]=a&&De(t,_e(Fe(a),!0))||[];o=new Response(Ke(o.body,65536,n,(()=>{r&&r(),s&&g()}),Qe),e)}u=u||"text";let i=await rt[ee.findKey(rt,u)||"text"](o,e);return!s&&g(),y&&y(),await new Promise(((t,n)=>{Be(t,n,{data:i,headers:Ne.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:h})}))}catch(t){if(g(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new te("Network Error",te.ERR_NETWORK,e,h),{cause:t.cause||t});throw te.from(t,t&&t.code,e,h)}})};ee.forEach(it,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const at=e=>`- ${e}`,ct=e=>ee.isFunction(e)||null===e||!1===e;var ut=e=>{e=ee.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let s=0;s`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new te("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\\n"+e.map(at).join("\\n"):" "+at(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function lt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ue(null,e)}function dt(e){lt(e),e.headers=Ne.from(e.headers),e.data=Le.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ut(e.adapter||Re.adapter)(e).then((function(t){return lt(e),t.data=Le.call(e,e.transformResponse,t),t.headers=Ne.from(t.headers),t}),(function(t){return je(t)||(lt(e),t&&t.response&&(t.response.data=Le.call(e,e.transformResponse,t.response),t.response.headers=Ne.from(t.response.headers))),Promise.reject(t)}))}const ft="1.7.4",pt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{pt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const ht={};pt.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.4] Transitional option \'"+e+"\'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new te(r(o," has been removed"+(t?" in "+t:"")),te.ERR_DEPRECATED);return t&&!ht[o]&&(ht[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,s)}};var mt={assertOptions:function(e,t,n){if("object"!=typeof e)throw new te("options must be an object",te.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new te("option "+s+" must be "+n,te.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new te("Unknown option "+s,te.ERR_BAD_OPTION)}},validators:pt};const yt=mt.validators;class gt{constructor(e){this.defaults=e,this.interceptors={request:new he,response:new he}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\\n.+\\n/,""))&&(e.stack+="\\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=ze(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&mt.assertOptions(n,{silentJSONParsing:yt.transitional(yt.boolean),forcedJSONParsing:yt.transitional(yt.boolean),clarifyTimeoutError:yt.transitional(yt.boolean)},!1),null!=r&&(ee.isFunction(r)?t.paramsSerializer={serialize:r}:mt.assertOptions(r,{encode:yt.function,serialize:yt.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&ee.merge(o.common,o[t.method]);o&&ee.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Ne.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!a){const e=[dt.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new Ue(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new bt((function(t){e=t})),cancel:e}}}var Tt=bt;const St={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(St).forEach((([e,t])=>{St[t]=e}));var wt=St;const Ot=function e(t){const n=new Et(t),r=l(Et.prototype.request,n);return ee.extend(r,Et.prototype,n,{allOwnKeys:!0}),ee.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(ze(t,n))},r}(Re);Ot.Axios=Et,Ot.CanceledError=Ue,Ot.CancelToken=Tt,Ot.isCancel=je,Ot.VERSION=ft,Ot.toFormData=ce,Ot.AxiosError=te,Ot.Cancel=Ot.CanceledError,Ot.all=function(e){return Promise.all(e)},Ot.spread=function(e){return function(t){return e.apply(null,t)}},Ot.isAxiosError=function(e){return ee.isObject(e)&&!0===e.isAxiosError},Ot.mergeConfig=ze,Ot.AxiosHeaders=Ne,Ot.formToJSON=e=>Oe(ee.isHTMLForm(e)?new FormData(e):e),Ot.getAdapter=ut,Ot.HttpStatusCode=wt,Ot.default=Ot;const vt=({url:e,method:t,data:n,headers:r})=>Ot.request({url:e,method:t,data:n,headers:r}).then((({data:e,headers:t,status:n})=>({data:e,headers:t,status:n}))),Rt=async({url:e,method:t,data:n,headers:r})=>{let o=n;"application/json"===r["Content-Type"]&&(o=JSON.stringify(o));const s=await fetch(e,{method:t,body:o,headers:r});if(!s.ok){const e=await s.text();throw new Error(e)}let i=await s.text();try{i=JSON.parse(i)}catch{}return{data:i,headers:Object.fromEntries(s.headers.entries()),status:s.status}},At=e=>"function"==typeof e?e:"fetch"===e?Rt:vt;function Pt(e){if("undefined"==typeof location)return Promise.reject(new Error("Environment does not support location.search"));const t=s(location.search);if(!t.xAPILaunchService)return Promise.reject(new Error("xAPILaunchService parameter not found in URL."));const n=new URL(t.xAPILaunchService);n.pathname+=`launch/${t.xAPILaunchKey}`;return At(e.adapter)({method:"POST",url:n.toString()}).then((e=>e.data))}function Ct(){if("undefined"==typeof location)throw new Error("Environment does not support location.search");return s(location.search)}function It(e,t){const n=`${e}:${t}`;if("function"==typeof btoa)return`Basic ${btoa(n)}`;if("undefined"!=typeof Buffer)return`Basic ${Buffer.from(n,"binary").toString("base64")}`;throw new Error("Environment does not support base64 conversion.")}class qt{static default=qt;static AttachmentUsages=e;static Verbs=n;static calculateISO8601Duration=u;static getSearchQueryParamsAsObject=s;static getXAPILaunchData=Pt;static getTinCanLaunchData=Ct;static toBasicAuth=It;constructor(e){const t=e.version||"1.0.3";var n;this.endpoint=(n=e.endpoint).endsWith("/")?n:`${n}/`,this.headers={"X-Experience-API-Version":t,"Content-Type":"application/json",Authorization:e.auth?e.auth:It("","")},this.adapter=At(e.adapter)}requestResource(e){var t;const n=Object.assign({},e.queryParams);null!==(t=e.requestOptions)&&void 0!==t&&t.useCacheBuster&&(n.cachebuster=(new Date).getTime().toString());const r=this.generateURL(e.resource,n);return this.requestURL(r,e.requestConfig)}requestURL(e,t){return this.adapter({url:e,method:(null==t?void 0:t.method)||"GET",headers:{...this.headers,...null==t?void 0:t.headers},data:null==t?void 0:t.data}).then((e=>{const t=e.headers["content-type"];return e.data&&t&&-1!==t.indexOf("multipart/mixed")&&(e.data=function(e){const t=e.trim().split(r)[0].trim(),n=e.split(t).map((e=>e.trim())).filter((e=>""!==e&&"--"!==e)),o=[];for(let e=0;e-1&&(i=JSON.parse(i)),o.push(i)}return o}(e.data)),e}))}generateURL(e,t){const n=Object.keys(t).map((e=>{let n="agent"===e?JSON.stringify(t[e]):t[e];return n=encodeURIComponent(n),`${e}=${n}`})).join("&");return`${this.endpoint}${e}${n?"?"+n:""}`}}return qt.prototype.getAbout=function(e){return this.requestResource({resource:t.ABOUT,requestOptions:{useCacheBuster:null==e?void 0:e.useCacheBuster}})},qt.prototype.getActivity=function(e){return this.requestResource({resource:t.ACTIVITIES,queryParams:{activityId:e.activityId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getAgent=function(e){return this.requestResource({resource:t.AGENTS,queryParams:{agent:e.agent},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.createActivityProfile=function(e){const n={};return e.etag&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"POST",data:e.profile,headers:n}})},qt.prototype.setActivityProfile=function(e){const n={};return n[e.matchHeader]=e.etag,e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"PUT",data:e.profile,headers:n}})},qt.prototype.getActivityProfiles=function(e){return this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getActivityProfile=function(e){return this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteActivityProfile=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.createAgentProfile=function(e){const n={};return e.etag&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"POST",data:e.profile,headers:n}})},qt.prototype.setAgentProfile=function(e){const n={};return n[e.matchHeader]=e.etag,e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"PUT",data:e.profile,headers:n}})},qt.prototype.getAgentProfiles=function(e){return this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getAgentProfile=function(e){return this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteAgentProfile=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.createState=function(e){const n={};return e.etag&&e.matchHeader&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"POST",data:e.state,headers:n}})},qt.prototype.setState=function(e){const n={};return e.etag&&e.matchHeader&&(n[e.matchHeader]=e.etag),e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"PUT",data:e.state,headers:n}})},qt.prototype.getStates=function(e){return this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,...!!e.registration&&{registration:e.registration},...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getState=function(e){return this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteState=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.deleteStates=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.getStatement=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{statementId:e.statementId,...!!e.attachments&&{attachments:e.attachments},...!!e.format&&{format:e.format}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getVoidedStatement=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{voidedStatementId:e.voidedStatementId,...!!e.attachments&&{attachments:e.attachments},...!!e.format&&{format:e.format}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getStatements=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{...!(null==e||!e.activity)&&{activity:e.activity},...!(null==e||!e.agent)&&{agent:e.agent},...!(null==e||!e.ascending)&&{ascending:e.ascending},...!(null==e||!e.attachments)&&{attachments:e.attachments},...!(null==e||!e.format)&&{format:e.format},...!(null==e||!e.limit)&&{limit:e.limit},...!(null==e||!e.registration)&&{registration:e.registration},...!(null==e||!e.related_activities)&&{related_activities:e.related_activities},...!(null==e||!e.related_agents)&&{related_agents:e.related_agents},...!(null==e||!e.since)&&{since:e.since},...!(null==e||!e.until)&&{until:e.until},...!(null==e||!e.verb)&&{verb:e.verb}},requestOptions:{useCacheBuster:null==e?void 0:e.useCacheBuster}})},qt.prototype.getMoreStatements=function(e){const t=new URL(this.endpoint),n=`${t.protocol}//${t.host}${e.more}`;return this.requestURL(n)},qt.prototype.sendStatement=function(e){var n;if(null===(n=e.attachments)||void 0===n?void 0:n.length){const n=o(e.statement,e.attachments);return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",headers:n.header,data:n.blob}})}return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",data:e.statement}})},qt.prototype.sendStatements=function(e){var n;if(null===(n=e.attachments)||void 0===n?void 0:n.length){const n=o(e.statements,e.attachments);return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",headers:n.header,data:n.blob}})}return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",data:e.statements}})},qt.prototype.voidStatement=function(e){const t={actor:e.actor,verb:n.VOIDED,object:{objectType:"StatementRef",id:e.statementId}};return this.sendStatement({statement:t})},qt.prototype.voidStatements=function(e){const t=e.statementIds.map((t=>({actor:e.actor,verb:n.VOIDED,object:{objectType:"StatementRef",id:t}})));return this.sendStatements({statements:t})},qt}));\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/@xapi/xapi/dist/XAPI.umd.js?')},"./node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n randomUUID\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/native.js?")},"./node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/regex.js?')},"./node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/rng.js?")},"./node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/stringify.js?")},"./node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "./node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "./node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "./node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/v4.js?')},"./node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "./node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/validate.js?')},"./node_modules/axios/lib/adapters/adapters.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./http.js */ "./node_modules/axios/lib/helpers/null.js");\n/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/axios/lib/adapters/xhr.js");\n/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fetch.js */ "./node_modules/axios/lib/adapters/fetch.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n\n\n\n\n\n\nconst knownAdapters = {\n http: _http_js__WEBPACK_IMPORTED_MODULE_0__["default"],\n xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n fetch: _fetch_js__WEBPACK_IMPORTED_MODULE_2__["default"]\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, \'name\', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, \'adapterName\', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(adapter) || adapter === null || adapter === false;\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n getAdapter: (adapters) => {\n adapters = _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"](`Unknown adapter \'${id}\'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || \'#\' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? \'is not supported by the environment\' : \'is not available in the build\')\n );\n\n let s = length ?\n (reasons.length > 1 ? \'since :\\n\' + reasons.map(renderReason).join(\'\\n\') : \' \' + renderReason(reasons[0])) :\n \'as no adapter specified\';\n\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"](\n `There is no suitable adapter to dispatch the request ` + s,\n \'ERR_NOT_SUPPORT\'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/adapters.js?')},"./node_modules/axios/lib/adapters/fetch.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/composeSignals.js */ "./node_modules/axios/lib/helpers/composeSignals.js");\n/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/trackStream.js */ "./node_modules/axios/lib/helpers/trackStream.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/axios/lib/core/settle.js");\n\n\n\n\n\n\n\n\n\n\nconst isFetchSupported = typeof fetch === \'function\' && typeof Request === \'function\' && typeof Response === \'function\';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === \'function\';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === \'function\' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {\n body: new ReadableStream(),\n method: \'POST\',\n get duplex() {\n duplexAccessed = true;\n return \'half\';\n },\n }).headers.has(\'Content-Type\');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isReadableStream(new Response(\'\').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n [\'text\', \'arrayBuffer\', \'blob\', \'formData\', \'stream\'].forEach(type => {\n !resolvers[type] && (resolvers[type] = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](`Response type \'${type}\' is not supported`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isBlob(body)) {\n return body.size;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isSpecCompliantForm(body)) {\n const _request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {\n method: \'POST\',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBufferView(body) || _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isURLSearchParams(body)) {\n body = body + \'\';\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = \'same-origin\',\n fetchOptions\n } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(config);\n\n responseType = responseType ? (responseType + \'\').toLowerCase() : \'text\';\n\n let composedSignal = (0,_helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__["default"])([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== \'get\' && method !== \'head\' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: \'POST\',\n body: data,\n duplex: "half"\n });\n\n let contentTypeHeader;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data) && (contentTypeHeader = _request.headers.get(\'content-type\'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n requestContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onUploadProgress))\n );\n\n data = (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(withCredentials)) {\n withCredentials = withCredentials ? \'include\' : \'omit\';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = "credentials" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: "half",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === \'stream\' || responseType === \'response\');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n [\'status\', \'statusText\', \'headers\'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get(\'content-length\'));\n\n const [onProgress, flush] = onDownloadProgress && (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n responseContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || \'text\';\n\n let responseData = await resolvers[_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].findKey(resolvers, responseType) || \'text\'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_7__["default"])(resolve, reject, {\n data: responseData,\n headers: _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === \'TypeError\' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](\'Network Error\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].from(err, err && err.code, config, request);\n }\n}));\n\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/fetch.js?')},"./node_modules/axios/lib/adapters/xhr.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../core/settle.js */ "./node_modules/axios/lib/core/settle.js");\n/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/axios/lib/helpers/parseProtocol.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js");\n\n\n\n\n\n\n\n\n\n\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== \'undefined\';\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])(config);\n let requestData = _config.data;\n const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener(\'abort\', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(\n \'getAllResponseHeaders\' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === \'text\' || responseType === \'json\' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if (\'onloadend\' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn\'t get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it\'s a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf(\'file:\') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next \'tick\'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Request aborted\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it\'s a network error\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Network Error\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? \'timeout of \' + _config.timeout + \'ms exceeded\' : \'timeout exceeded\';\n const transitional = _config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__["default"];\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if (\'setRequestHeader\' in request) {\n _utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== \'json\') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onDownloadProgress, true));\n request.addEventListener(\'progress\', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onUploadProgress));\n\n request.upload.addEventListener(\'progress\', uploadThrottled);\n\n request.upload.addEventListener(\'loadend\', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__["default"](null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener(\'abort\', onCanceled);\n }\n }\n\n const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__["default"])(_config.url);\n\n if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_9__["default"].protocols.indexOf(protocol) === -1) {\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Unsupported protocol \' + protocol + \':\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/xhr.js?')},"./node_modules/axios/lib/axios.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js");\n/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/axios/lib/core/Axios.js");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/axios/lib/cancel/CancelToken.js");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/axios/lib/env/data.js");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/axios/lib/helpers/spread.js");\n/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/axios/lib/helpers/isAxiosError.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");\n/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/axios/lib/helpers/HttpStatusCode.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"](defaultConfig);\n const instance = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.request, context);\n\n // Copy axios.prototype to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance((0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"]);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"];\n\n// Expose Cancel & CancelToken\naxios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__["default"];\naxios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__["default"];\naxios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__["default"];\naxios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_8__.VERSION;\naxios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__["default"];\n\n// Expose AxiosError class\naxios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__["default"];\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__["default"];\n\n// Expose isAxiosError\naxios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__["default"];\n\n// Expose mergeConfig\naxios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"];\n\naxios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__["default"];\n\naxios.formToJSON = thing => (0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__["default"])(_utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__["default"].getAdapter;\n\naxios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__["default"];\n\naxios.default = axios;\n\n// this module should only have a default export\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (axios);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/axios.js?')},"./node_modules/axios/lib/cancel/CancelToken.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n\n\n\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== \'function\') {\n throw new TypeError(\'executor must be a function.\');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CancelToken);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/CancelToken.js?')},"./node_modules/axios/lib/cancel/CanceledError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(this, message == null ? \'canceled\' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_CANCELED, config, request);\n this.name = \'CanceledError\';\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"], {\n __CANCEL__: true\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CanceledError);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/CanceledError.js?')},"./node_modules/axios/lib/cancel/isCancel.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isCancel)\n/* harmony export */ });\n\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/isCancel.js?')},"./node_modules/axios/lib/core/Axios.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");\n/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/axios/lib/core/InterceptorManager.js");\n/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/axios/lib/core/dispatchRequest.js");\n/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");\n/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/axios/lib/helpers/validator.js");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\n\n\n\n\n\n\nconst validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"](),\n response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"]()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, \'\') : \'\';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, \'\'))) {\n err.stack += \'\\n\' + stack\n }\n } catch (e) {\n // ignore the case where "stack" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios(\'example/url\'[, config]) a la fetch API\n if (typeof configOrUrl === \'string\') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || \'get\').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].merge(\n headers.common,\n headers[config.method]\n );\n\n headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(\n [\'delete\', \'get\', \'head\', \'post\', \'put\', \'patch\', \'common\'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === \'function\' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config);\n const fullPath = (0,_buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__["default"])(config.baseURL, config.url);\n return (0,_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach([\'delete\', \'get\', \'head\', \'options\'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach([\'post\', \'put\', \'patch\'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, {\n method,\n headers: isForm ? {\n \'Content-Type\': \'multipart/form-data\'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + \'Form\'] = generateHTTPMethod(true);\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/Axios.js?')},"./node_modules/axios/lib/core/AxiosError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"./node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/AxiosError.js?")},"./node_modules/axios/lib/core/AxiosHeaders.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/axios/lib/helpers/parseHeaders.js");\n\n\n\n\n\nconst $internals = Symbol(\'internals\');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&\'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(value)) return;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toCamelCase(\' \' + header);\n\n [\'get\', \'set\', \'has\'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error(\'header name must be a non-empty string\');\n }\n\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders((0,_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"])(header), valueOrRewrite);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError(\'parser must be boolean|regexp|function\');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.join(\', \') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + \': \' + value).join(\'\\n\');\n }\n\n get [Symbol.toStringTag]() {\n return \'AxiosHeaders\';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\'Content-Type\', \'Content-Length\', \'Accept\', \'Accept-Encoding\', \'User-Agent\', \'Authorization\']);\n\n// reserved names hotfix\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].freezeMethods(AxiosHeaders);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosHeaders);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/AxiosHeaders.js?')},"./node_modules/axios/lib/core/InterceptorManager.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterceptorManager);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/InterceptorManager.js?')},"./node_modules/axios/lib/core/buildFullPath.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ buildFullPath)\n/* harmony export */ });\n/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");\n/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/axios/lib/helpers/combineURLs.js");\n\n\n\n\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL)) {\n return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/buildFullPath.js?')},"./node_modules/axios/lib/core/dispatchRequest.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ dispatchRequest)\n/* harmony export */ });\n/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/axios/lib/core/transformData.js");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");\n\n\n\n\n\n\n\n\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(config.headers);\n\n // Transform request data\n config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformRequest\n );\n\n if ([\'post\', \'put\', \'patch\'].indexOf(config.method) !== -1) {\n config.headers.setContentType(\'application/x-www-form-urlencoded\', false);\n }\n\n const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__["default"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!(0,_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__["default"])(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/dispatchRequest.js?')},"./node_modules/axios/lib/core/mergeConfig.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ mergeConfig)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\nconst headersToObject = (thing) => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call({caseless}, target, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge({}, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/mergeConfig.js?')},"./node_modules/axios/lib/core/settle.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ settle)\n/* harmony export */ });\n/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n\n\n\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](\n \'Request failed with status code \' + response.status,\n [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/settle.js?')},"./node_modules/axios/lib/core/transformData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ transformData)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__["default"];\n const context = response || config;\n const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(context.headers);\n let data = context.data;\n\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/transformData.js?')},"./node_modules/axios/lib/defaults/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/axios/lib/helpers/toURLEncodedForm.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");\n\n\n\n\n\n\n\n\n\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].trim(rawValue);\n } catch (e) {\n if (e.name !== \'SyntaxError\') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n\n adapter: [\'xhr\', \'http\', \'fetch\'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || \'\';\n const hasJSONContentType = contentType.indexOf(\'application/json\') > -1;\n const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(data);\n\n if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify((0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__["default"])(data)) : data;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isStream(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFile(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)\n ) {\n return data;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBufferView(data)) {\n return data.buffer;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(data)) {\n headers.setContentType(\'application/x-www-form-urlencoded;charset=utf-8\', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf(\'application/x-www-form-urlencoded\') > -1) {\n return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__["default"])(data, this.formSerializer).toString();\n }\n\n if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) || contentType.indexOf(\'multipart/form-data\') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__["default"])(\n isFileList ? {\'files[]\': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType(\'application/json\', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === \'json\';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)) {\n return data;\n }\n\n if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === \'SyntaxError\') {\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: \'XSRF-TOKEN\',\n xsrfHeaderName: \'X-XSRF-TOKEN\',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.FormData,\n Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n \'Accept\': \'application/json, text/plain, */*\',\n \'Content-Type\': undefined\n }\n }\n};\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach([\'delete\', \'get\', \'head\', \'post\', \'put\', \'patch\'], (method) => {\n defaults.headers[method] = {};\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaults);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/defaults/index.js?')},"./node_modules/axios/lib/defaults/transitional.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/defaults/transitional.js?')},"./node_modules/axios/lib/env/data.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VERSION: () => (/* binding */ VERSION)\n/* harmony export */ });\nconst VERSION = "1.7.7";\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/env/data.js?')},"./node_modules/axios/lib/helpers/AxiosURLSearchParams.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ \"./node_modules/axios/lib/helpers/toFormData.js\");\n\n\n\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosURLSearchParams);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js?")},"./node_modules/axios/lib/helpers/HttpStatusCode.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/HttpStatusCode.js?')},"./node_modules/axios/lib/helpers/bind.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ bind)\n/* harmony export */ });\n\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/bind.js?')},"./node_modules/axios/lib/helpers/buildURL.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ buildURL)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ \"./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(params) ?\n params.toString() :\n new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/buildURL.js?")},"./node_modules/axios/lib/helpers/combineURLs.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ combineURLs)\n/* harmony export */ });\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/combineURLs.js?")},"./node_modules/axios/lib/helpers/composeSignals.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? err : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__["default"](err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](`timeout ${timeout} of ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener(\'abort\', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener(\'abort\', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(unsubscribe);\n\n return signal;\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/composeSignals.js?')},"./node_modules/axios/lib/helpers/cookies.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"./node_modules/axios/lib/platform/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(path) && cookie.push('path=' + path);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n });\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/cookies.js?")},"./node_modules/axios/lib/helpers/formDataToJSON.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `[\'foo\', \'x\', \'y\', \'z\']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === \'[]\' ? \'\' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === \'__proto__\') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target) ? target.length : name;\n\n if (isLast) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(formData.entries)) {\n const obj = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formDataToJSON);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/formDataToJSON.js?')},"./node_modules/axios/lib/helpers/isAbsoluteURL.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isAbsoluteURL)\n/* harmony export */ });\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isAbsoluteURL.js?')},"./node_modules/axios/lib/helpers/isAxiosError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isAxiosError)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(payload) && (payload.isAxiosError === true);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isAxiosError.js?')},"./node_modules/axios/lib/helpers/isURLSameOrigin.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"./node_modules/axios/lib/platform/index.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator && /(msie|trident)/i.test(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })());\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isURLSameOrigin.js?")},"./node_modules/axios/lib/helpers/null.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// eslint-disable-next-line strict\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/null.js?')},"./node_modules/axios/lib/helpers/parseHeaders.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n\n\n\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/parseHeaders.js?")},"./node_modules/axios/lib/helpers/parseProtocol.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ parseProtocol)\n/* harmony export */ });\n\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/parseProtocol.js?")},"./node_modules/axios/lib/helpers/progressEventReducer.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ asyncDecorator: () => (/* binding */ asyncDecorator),\n/* harmony export */ progressEventDecorator: () => (/* binding */ progressEventDecorator),\n/* harmony export */ progressEventReducer: () => (/* binding */ progressEventReducer)\n/* harmony export */ });\n/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ "./node_modules/axios/lib/helpers/speedometer.js");\n/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ "./node_modules/axios/lib/helpers/throttle.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250);\n\n return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? \'download\' : \'upload\']: true\n };\n\n listener(data);\n }, freq);\n}\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nconst asyncDecorator = (fn) => (...args) => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(() => fn(...args));\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/progressEventReducer.js?')},"./node_modules/axios/lib/helpers/resolveConfig.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isURLSameOrigin.js */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");\n/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cookies.js */ "./node_modules/axios/lib/helpers/cookies.js");\n/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => {\n const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(headers);\n\n newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__["default"])(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\'Authorization\', \'Basic \' +\n btoa((auth.username || \'\') + \':\' + (auth.password ? unescape(encodeURIComponent(auth.password)) : \'\'))\n );\n }\n\n let contentType;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFormData(data)) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(\';\').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || \'multipart/form-data\', ...tokens].join(\'; \'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we\'re in a web worker, or react-native.\n\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv) {\n withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__["default"])(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_7__["default"].read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n});\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/resolveConfig.js?')},"./node_modules/axios/lib/helpers/speedometer.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (speedometer);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/speedometer.js?')},"./node_modules/axios/lib/helpers/spread.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ spread)\n/* harmony export */ });\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/spread.js?')},"./node_modules/axios/lib/helpers/throttle.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/throttle.js?')},"./node_modules/axios/lib/helpers/toFormData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/axios/lib/helpers/null.js");\n\n\n\n\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\n\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'[]\') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? \'[\' + token + \']\' : token;\n }).join(dots ? \'.\' : \'\');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it\'s a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"], {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {\n throw new TypeError(\'target must be an object\');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"] || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== \'undefined\' && Blob;\n const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData);\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) {\n throw new TypeError(\'visitor must be a function\');\n }\n\n function convertValue(value) {\n if (value === null) return \'\';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(value)) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](\'Blob is not supported. Use a Buffer instead.\');\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isTypedArray(value)) {\n return useBlob && typeof Blob === \'function\' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === \'object\') {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'{}\')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) && isFlatArray(value)) ||\n ((_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'[]\')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + \'[]\'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error(\'Circular reference detected in \' + path.join(\'.\'));\n }\n\n stack.push(value);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(value, function each(el, key) {\n const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && visitor.call(\n formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {\n throw new TypeError(\'data must be an object\');\n }\n\n build(obj);\n\n return formData;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toFormData);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/toFormData.js?')},"./node_modules/axios/lib/helpers/toURLEncodedForm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ toURLEncodedForm)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n\n\n\n\n\n\nfunction toURLEncodedForm(data, options) {\n return (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__["default"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isBuffer(value)) {\n this.append(key, value.toString(\'base64\'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/toURLEncodedForm.js?')},"./node_modules/axios/lib/helpers/trackStream.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ readBytes: () => (/* binding */ readBytes),\n/* harmony export */ streamChunk: () => (/* binding */ streamChunk),\n/* harmony export */ trackStream: () => (/* binding */ trackStream)\n/* harmony export */ });\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/trackStream.js?")},"./node_modules/axios/lib/helpers/validator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ \"./node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__.VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION);\n }\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n assertOptions,\n validators\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/validator.js?")},"./node_modules/axios/lib/platform/browser/classes/Blob.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof Blob !== 'undefined' ? Blob : null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/Blob.js?")},"./node_modules/axios/lib/platform/browser/classes/FormData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof FormData !== 'undefined' ? FormData : null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/FormData.js?")},"./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof URLSearchParams !== \'undefined\' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"]);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js?')},"./node_modules/axios/lib/platform/browser/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js");\n/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/axios/lib/platform/browser/classes/FormData.js");\n/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/axios/lib/platform/browser/classes/Blob.js");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isBrowser: true,\n classes: {\n URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"],\n FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__["default"]\n },\n protocols: [\'http\', \'https\', \'file\', \'blob\', \'url\', \'data\']\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/index.js?')},"./node_modules/axios/lib/platform/common/utils.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasBrowserEnv: () => (/* binding */ hasBrowserEnv),\n/* harmony export */ hasStandardBrowserEnv: () => (/* binding */ hasStandardBrowserEnv),\n/* harmony export */ hasStandardBrowserWebWorkerEnv: () => (/* binding */ hasStandardBrowserWebWorkerEnv),\n/* harmony export */ navigator: () => (/* binding */ _navigator),\n/* harmony export */ origin: () => (/* binding */ origin)\n/* harmony export */ });\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/common/utils.js?")},"./node_modules/axios/lib/platform/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/axios/lib/platform/browser/index.js");\n/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/axios/lib/platform/common/utils.js");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n ..._common_utils_js__WEBPACK_IMPORTED_MODULE_0__,\n ..._node_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/index.js?')},"./node_modules/axios/lib/utils.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ \"./node_modules/axios/lib/helpers/bind.js\");\n\n\n\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/utils.js?")},"./node_modules/keycloak-js/lib/keycloak.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/*\n * Copyright 2016 Red Hat, Inc. and/or its affiliates\n * and other contributors as indicated by the @author tags.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction Keycloak (config) {\n if (!(this instanceof Keycloak)) {\n throw new Error(\"The 'Keycloak' constructor must be invoked with 'new'.\")\n }\n\n if (typeof config !== 'string' && !isObject(config)) {\n throw new Error(\"The 'Keycloak' constructor must be provided with a configuration object, or a URL to a JSON configuration file.\");\n }\n\n if (isObject(config)) {\n const requiredProperties = 'oidcProvider' in config\n ? ['clientId']\n : ['url', 'realm', 'clientId'];\n\n for (const property of requiredProperties) {\n if (!config[property]) {\n throw new Error(`The configuration object is missing the required '${property}' property.`);\n }\n }\n }\n\n var kc = this;\n var adapter;\n var refreshQueue = [];\n var callbackStorage;\n\n var loginIframe = {\n enable: true,\n callbackList: [],\n interval: 5\n };\n\n kc.didInitialize = false;\n\n var useNonce = true;\n var logInfo = createLogger(console.info);\n var logWarn = createLogger(console.warn);\n\n if (!globalThis.isSecureContext) {\n logWarn(\n \"[KEYCLOAK] Keycloak JS must be used in a 'secure context' to function properly as it relies on browser APIs that are otherwise not available.\\n\" +\n \"Continuing to run your application insecurely will lead to unexpected behavior and breakage.\\n\\n\" +\n \"For more information see: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts\"\n );\n }\n\n kc.init = function (initOptions = {}) {\n if (kc.didInitialize) {\n throw new Error(\"A 'Keycloak' instance can only be initialized once.\");\n }\n\n kc.didInitialize = true;\n\n kc.authenticated = false;\n\n callbackStorage = createCallbackStorage();\n var adapters = ['default', 'cordova', 'cordova-native'];\n\n if (adapters.indexOf(initOptions.adapter) > -1) {\n adapter = loadAdapter(initOptions.adapter);\n } else if (typeof initOptions.adapter === \"object\") {\n adapter = initOptions.adapter;\n } else {\n if (window.Cordova || window.cordova) {\n adapter = loadAdapter('cordova');\n } else {\n adapter = loadAdapter();\n }\n }\n\n if (typeof initOptions.useNonce !== 'undefined') {\n useNonce = initOptions.useNonce;\n }\n\n if (typeof initOptions.checkLoginIframe !== 'undefined') {\n loginIframe.enable = initOptions.checkLoginIframe;\n }\n\n if (initOptions.checkLoginIframeInterval) {\n loginIframe.interval = initOptions.checkLoginIframeInterval;\n }\n\n if (initOptions.onLoad === 'login-required') {\n kc.loginRequired = true;\n }\n\n if (initOptions.responseMode) {\n if (initOptions.responseMode === 'query' || initOptions.responseMode === 'fragment') {\n kc.responseMode = initOptions.responseMode;\n } else {\n throw 'Invalid value for responseMode';\n }\n }\n\n if (initOptions.flow) {\n switch (initOptions.flow) {\n case 'standard':\n kc.responseType = 'code';\n break;\n case 'implicit':\n kc.responseType = 'id_token token';\n break;\n case 'hybrid':\n kc.responseType = 'code id_token token';\n break;\n default:\n throw 'Invalid value for flow';\n }\n kc.flow = initOptions.flow;\n }\n\n if (initOptions.timeSkew != null) {\n kc.timeSkew = initOptions.timeSkew;\n }\n\n if(initOptions.redirectUri) {\n kc.redirectUri = initOptions.redirectUri;\n }\n\n if (initOptions.silentCheckSsoRedirectUri) {\n kc.silentCheckSsoRedirectUri = initOptions.silentCheckSsoRedirectUri;\n }\n\n if (typeof initOptions.silentCheckSsoFallback === 'boolean') {\n kc.silentCheckSsoFallback = initOptions.silentCheckSsoFallback;\n } else {\n kc.silentCheckSsoFallback = true;\n }\n\n if (typeof initOptions.pkceMethod !== \"undefined\") {\n if (initOptions.pkceMethod !== \"S256\" && initOptions.pkceMethod !== false) {\n throw new TypeError(`Invalid value for pkceMethod', expected 'S256' or false but got ${initOptions.pkceMethod}.`);\n }\n\n kc.pkceMethod = initOptions.pkceMethod;\n } else {\n kc.pkceMethod = \"S256\";\n }\n\n if (typeof initOptions.enableLogging === 'boolean') {\n kc.enableLogging = initOptions.enableLogging;\n } else {\n kc.enableLogging = false;\n }\n\n if (initOptions.logoutMethod === 'POST') {\n kc.logoutMethod = 'POST';\n } else {\n kc.logoutMethod = 'GET';\n }\n\n if (typeof initOptions.scope === 'string') {\n kc.scope = initOptions.scope;\n }\n\n if (typeof initOptions.acrValues === 'string') {\n kc.acrValues = initOptions.acrValues;\n }\n\n if (typeof initOptions.messageReceiveTimeout === 'number' && initOptions.messageReceiveTimeout > 0) {\n kc.messageReceiveTimeout = initOptions.messageReceiveTimeout;\n } else {\n kc.messageReceiveTimeout = 10000;\n }\n\n if (!kc.responseMode) {\n kc.responseMode = 'fragment';\n }\n if (!kc.responseType) {\n kc.responseType = 'code';\n kc.flow = 'standard';\n }\n\n var promise = createPromise();\n\n var initPromise = createPromise();\n initPromise.promise.then(function() {\n kc.onReady && kc.onReady(kc.authenticated);\n promise.setSuccess(kc.authenticated);\n }).catch(function(error) {\n promise.setError(error);\n });\n\n var configPromise = loadConfig();\n\n function onLoad() {\n var doLogin = function(prompt) {\n if (!prompt) {\n options.prompt = 'none';\n }\n\n if (initOptions.locale) {\n options.locale = initOptions.locale;\n }\n kc.login(options).then(function () {\n initPromise.setSuccess();\n }).catch(function (error) {\n initPromise.setError(error);\n });\n }\n\n var checkSsoSilently = async function() {\n var ifrm = document.createElement(\"iframe\");\n var src = await kc.createLoginUrl({prompt: 'none', redirectUri: kc.silentCheckSsoRedirectUri});\n ifrm.setAttribute(\"src\", src);\n ifrm.setAttribute(\"sandbox\", \"allow-storage-access-by-user-activation allow-scripts allow-same-origin\");\n ifrm.setAttribute(\"title\", \"keycloak-silent-check-sso\");\n ifrm.style.display = \"none\";\n document.body.appendChild(ifrm);\n\n var messageCallback = function(event) {\n if (event.origin !== window.location.origin || ifrm.contentWindow !== event.source) {\n return;\n }\n\n var oauth = parseCallback(event.data);\n processCallback(oauth, initPromise);\n\n document.body.removeChild(ifrm);\n window.removeEventListener(\"message\", messageCallback);\n };\n\n window.addEventListener(\"message\", messageCallback);\n };\n\n var options = {};\n switch (initOptions.onLoad) {\n case 'check-sso':\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (!unchanged) {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n }\n break;\n case 'login-required':\n doLogin(true);\n break;\n default:\n throw 'Invalid value for onLoad';\n }\n }\n\n function processInit() {\n var callback = parseCallback(window.location.href);\n\n if (callback) {\n window.history.replaceState(window.history.state, null, callback.newUrl);\n }\n\n if (callback && callback.valid) {\n return setupCheckLoginIframe().then(function() {\n processCallback(callback, initPromise);\n }).catch(function (error) {\n initPromise.setError(error);\n });\n }\n\n if (initOptions.token && initOptions.refreshToken) {\n setToken(initOptions.token, initOptions.refreshToken, initOptions.idToken);\n\n if (loginIframe.enable) {\n setupCheckLoginIframe().then(function() {\n checkLoginIframe().then(function (unchanged) {\n if (unchanged) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n scheduleCheckIframe();\n } else {\n initPromise.setSuccess();\n }\n }).catch(function (error) {\n initPromise.setError(error);\n });\n });\n } else {\n kc.updateToken(-1).then(function() {\n kc.onAuthSuccess && kc.onAuthSuccess();\n initPromise.setSuccess();\n }).catch(function(error) {\n kc.onAuthError && kc.onAuthError();\n if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setError(error);\n }\n });\n }\n } else if (initOptions.onLoad) {\n onLoad();\n } else {\n initPromise.setSuccess();\n }\n }\n\n configPromise.then(function () {\n check3pCookiesSupported()\n .then(processInit)\n .catch(function (error) {\n promise.setError(error);\n });\n });\n configPromise.catch(function (error) {\n promise.setError(error);\n });\n\n return promise.promise;\n }\n\n kc.login = function (options) {\n return adapter.login(options);\n }\n\n function generateRandomData(len) {\n if (typeof crypto === \"undefined\" || typeof crypto.getRandomValues === \"undefined\") {\n throw new Error(\"Web Crypto API is not available.\");\n }\n\n return crypto.getRandomValues(new Uint8Array(len));\n }\n\n function generateCodeVerifier(len) {\n return generateRandomString(len, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');\n }\n\n function generateRandomString(len, alphabet){\n var randomData = generateRandomData(len);\n var chars = new Array(len);\n for (var i = 0; i < len; i++) {\n chars[i] = alphabet.charCodeAt(randomData[i] % alphabet.length);\n }\n return String.fromCharCode.apply(null, chars);\n }\n\n async function generatePkceChallenge(pkceMethod, codeVerifier) {\n if (pkceMethod !== \"S256\") {\n throw new TypeError(`Invalid value for 'pkceMethod', expected 'S256' but got '${pkceMethod}'.`);\n }\n\n // hash codeVerifier, then encode as url-safe base64 without padding\n const hashBytes = new Uint8Array(await sha256Digest(codeVerifier));\n const encodedHash = bytesToBase64(hashBytes)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/\\=/g, '');\n\n return encodedHash;\n }\n\n function buildClaimsParameter(requestedAcr){\n var claims = {\n id_token: {\n acr: requestedAcr\n }\n }\n return JSON.stringify(claims);\n }\n\n kc.createLoginUrl = async function(options) {\n var state = createUUID();\n var nonce = createUUID();\n\n var redirectUri = adapter.redirectUri(options);\n\n var callbackState = {\n state: state,\n nonce: nonce,\n redirectUri: encodeURIComponent(redirectUri),\n loginOptions: options\n };\n\n if (options && options.prompt) {\n callbackState.prompt = options.prompt;\n }\n\n var baseUrl;\n if (options && options.action == 'register') {\n baseUrl = kc.endpoints.register();\n } else {\n baseUrl = kc.endpoints.authorize();\n }\n\n var scope = options && options.scope || kc.scope;\n if (!scope) {\n // if scope is not set, default to \"openid\"\n scope = \"openid\";\n } else if (scope.indexOf(\"openid\") === -1) {\n // if openid scope is missing, prefix the given scopes with it\n scope = \"openid \" + scope;\n }\n\n var url = baseUrl\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&redirect_uri=' + encodeURIComponent(redirectUri)\n + '&state=' + encodeURIComponent(state)\n + '&response_mode=' + encodeURIComponent(kc.responseMode)\n + '&response_type=' + encodeURIComponent(kc.responseType)\n + '&scope=' + encodeURIComponent(scope);\n if (useNonce) {\n url = url + '&nonce=' + encodeURIComponent(nonce);\n }\n\n if (options && options.prompt) {\n url += '&prompt=' + encodeURIComponent(options.prompt);\n }\n\n if (options && typeof options.maxAge === 'number') {\n url += '&max_age=' + encodeURIComponent(options.maxAge);\n }\n\n if (options && options.loginHint) {\n url += '&login_hint=' + encodeURIComponent(options.loginHint);\n }\n\n if (options && options.idpHint) {\n url += '&kc_idp_hint=' + encodeURIComponent(options.idpHint);\n }\n\n if (options && options.action && options.action != 'register') {\n url += '&kc_action=' + encodeURIComponent(options.action);\n }\n\n if (options && options.locale) {\n url += '&ui_locales=' + encodeURIComponent(options.locale);\n }\n\n if (options && options.acr) {\n var claimsParameter = buildClaimsParameter(options.acr);\n url += '&claims=' + encodeURIComponent(claimsParameter);\n }\n\n if ((options && options.acrValues) || kc.acrValues) {\n url += '&acr_values=' + encodeURIComponent(options.acrValues || kc.acrValues);\n }\n\n if (kc.pkceMethod) {\n try {\n const codeVerifier = generateCodeVerifier(96);\n const pkceChallenge = await generatePkceChallenge(kc.pkceMethod, codeVerifier);\n\n callbackState.pkceCodeVerifier = codeVerifier;\n\n url += '&code_challenge=' + pkceChallenge;\n url += '&code_challenge_method=' + kc.pkceMethod;\n } catch (error) {\n throw new Error(\"Failed to generate PKCE challenge.\", { cause: error });\n }\n }\n\n callbackStorage.add(callbackState);\n\n return url;\n }\n\n kc.logout = function(options) {\n return adapter.logout(options);\n }\n\n kc.createLogoutUrl = function(options) {\n\n const logoutMethod = options?.logoutMethod ?? kc.logoutMethod;\n if (logoutMethod === 'POST') {\n return kc.endpoints.logout();\n }\n\n var url = kc.endpoints.logout()\n + '?client_id=' + encodeURIComponent(kc.clientId)\n + '&post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));\n\n if (kc.idToken) {\n url += '&id_token_hint=' + encodeURIComponent(kc.idToken);\n }\n\n return url;\n }\n\n kc.register = function (options) {\n return adapter.register(options);\n }\n\n kc.createRegisterUrl = async function(options) {\n if (!options) {\n options = {};\n }\n options.action = 'register';\n return await kc.createLoginUrl(options);\n }\n\n kc.createAccountUrl = function(options) {\n var realm = getRealmUrl();\n var url = undefined;\n if (typeof realm !== 'undefined') {\n url = realm\n + '/account'\n + '?referrer=' + encodeURIComponent(kc.clientId)\n + '&referrer_uri=' + encodeURIComponent(adapter.redirectUri(options));\n }\n return url;\n }\n\n kc.accountManagement = function() {\n return adapter.accountManagement();\n }\n\n kc.hasRealmRole = function (role) {\n var access = kc.realmAccess;\n return !!access && access.roles.indexOf(role) >= 0;\n }\n\n kc.hasResourceRole = function(role, resource) {\n if (!kc.resourceAccess) {\n return false;\n }\n\n var access = kc.resourceAccess[resource || kc.clientId];\n return !!access && access.roles.indexOf(role) >= 0;\n }\n\n kc.loadUserProfile = function() {\n var url = getRealmUrl() + '/account';\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.profile = JSON.parse(req.responseText);\n promise.setSuccess(kc.profile);\n } else {\n promise.setError();\n }\n }\n }\n\n req.send();\n\n return promise.promise;\n }\n\n kc.loadUserInfo = function() {\n var url = kc.endpoints.userinfo();\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.setRequestHeader('Accept', 'application/json');\n req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n var promise = createPromise();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n kc.userInfo = JSON.parse(req.responseText);\n promise.setSuccess(kc.userInfo);\n } else {\n promise.setError();\n }\n }\n }\n\n req.send();\n\n return promise.promise;\n }\n\n kc.isTokenExpired = function(minValidity) {\n if (!kc.tokenParsed || (!kc.refreshToken && kc.flow != 'implicit' )) {\n throw 'Not authenticated';\n }\n\n if (kc.timeSkew == null) {\n logInfo('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');\n return true;\n }\n\n var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;\n if (minValidity) {\n if (isNaN(minValidity)) {\n throw 'Invalid minValidity';\n }\n expiresIn -= minValidity;\n }\n return expiresIn < 0;\n }\n\n kc.updateToken = function(minValidity) {\n var promise = createPromise();\n\n if (!kc.refreshToken) {\n promise.setError();\n return promise.promise;\n }\n\n minValidity = minValidity || 5;\n\n var exec = function() {\n var refreshToken = false;\n if (minValidity == -1) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: forced refresh');\n } else if (!kc.tokenParsed || kc.isTokenExpired(minValidity)) {\n refreshToken = true;\n logInfo('[KEYCLOAK] Refreshing token: token expired');\n }\n\n if (!refreshToken) {\n promise.setSuccess(false);\n } else {\n var params = 'grant_type=refresh_token&' + 'refresh_token=' + kc.refreshToken;\n var url = kc.endpoints.token();\n\n refreshQueue.push(promise);\n\n if (refreshQueue.length == 1) {\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n req.withCredentials = true;\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n\n var timeLocal = new Date().getTime();\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200) {\n logInfo('[KEYCLOAK] Token refreshed');\n\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n var tokenResponse = JSON.parse(req.responseText);\n\n setToken(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], timeLocal);\n\n kc.onAuthRefreshSuccess && kc.onAuthRefreshSuccess();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setSuccess(true);\n }\n } else {\n logWarn('[KEYCLOAK] Failed to refresh token');\n\n if (req.status == 400) {\n kc.clearToken();\n }\n\n kc.onAuthRefreshError && kc.onAuthRefreshError();\n for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n p.setError(true);\n }\n }\n }\n };\n\n req.send(params);\n }\n }\n }\n\n if (loginIframe.enable) {\n var iframePromise = checkLoginIframe();\n iframePromise.then(function() {\n exec();\n }).catch(function(error) {\n promise.setError(error);\n });\n } else {\n exec();\n }\n\n return promise.promise;\n }\n\n kc.clearToken = function() {\n if (kc.token) {\n setToken(null, null, null);\n kc.onAuthLogout && kc.onAuthLogout();\n if (kc.loginRequired) {\n kc.login();\n }\n }\n }\n\n function getRealmUrl() {\n if (typeof kc.authServerUrl !== 'undefined') {\n if (kc.authServerUrl.charAt(kc.authServerUrl.length - 1) == '/') {\n return kc.authServerUrl + 'realms/' + encodeURIComponent(kc.realm);\n } else {\n return kc.authServerUrl + '/realms/' + encodeURIComponent(kc.realm);\n }\n } else {\n return undefined;\n }\n }\n\n function getOrigin() {\n if (!window.location.origin) {\n return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');\n } else {\n return window.location.origin;\n }\n }\n\n function processCallback(oauth, promise) {\n var code = oauth.code;\n var error = oauth.error;\n var prompt = oauth.prompt;\n\n var timeLocal = new Date().getTime();\n\n if (oauth['kc_action_status']) {\n kc.onActionUpdate && kc.onActionUpdate(oauth['kc_action_status'], oauth['kc_action']);\n }\n\n if (error) {\n if (prompt != 'none') {\n if (oauth.error_description && oauth.error_description === \"authentication_expired\") {\n kc.login(oauth.loginOptions);\n } else {\n var errorData = { error: error, error_description: oauth.error_description };\n kc.onAuthError && kc.onAuthError(errorData);\n promise && promise.setError(errorData);\n }\n } else {\n promise && promise.setSuccess();\n }\n return;\n } else if ((kc.flow != 'standard') && (oauth.access_token || oauth.id_token)) {\n authSuccess(oauth.access_token, null, oauth.id_token, true);\n }\n\n if ((kc.flow != 'implicit') && code) {\n var params = 'code=' + code + '&grant_type=authorization_code';\n var url = kc.endpoints.token();\n\n var req = new XMLHttpRequest();\n req.open('POST', url, true);\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n params += '&client_id=' + encodeURIComponent(kc.clientId);\n params += '&redirect_uri=' + oauth.redirectUri;\n\n if (oauth.pkceCodeVerifier) {\n params += '&code_verifier=' + oauth.pkceCodeVerifier;\n }\n\n req.withCredentials = true;\n\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n if (req.status == 200) {\n\n var tokenResponse = JSON.parse(req.responseText);\n authSuccess(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], kc.flow === 'standard');\n scheduleCheckIframe();\n } else {\n kc.onAuthError && kc.onAuthError();\n promise && promise.setError();\n }\n }\n };\n\n req.send(params);\n }\n\n function authSuccess(accessToken, refreshToken, idToken, fulfillPromise) {\n timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n setToken(accessToken, refreshToken, idToken, timeLocal);\n\n if (useNonce && (kc.idTokenParsed && kc.idTokenParsed.nonce != oauth.storedNonce)) {\n logInfo('[KEYCLOAK] Invalid nonce, clearing token');\n kc.clearToken();\n promise && promise.setError();\n } else {\n if (fulfillPromise) {\n kc.onAuthSuccess && kc.onAuthSuccess();\n promise && promise.setSuccess();\n }\n }\n }\n\n }\n\n function loadConfig() {\n var promise = createPromise();\n var configUrl;\n\n if (typeof config === 'string') {\n configUrl = config;\n }\n\n function setupOidcEndoints(oidcConfiguration) {\n if (! oidcConfiguration) {\n kc.endpoints = {\n authorize: function() {\n return getRealmUrl() + '/protocol/openid-connect/auth';\n },\n token: function() {\n return getRealmUrl() + '/protocol/openid-connect/token';\n },\n logout: function() {\n return getRealmUrl() + '/protocol/openid-connect/logout';\n },\n checkSessionIframe: function() {\n return getRealmUrl() + '/protocol/openid-connect/login-status-iframe.html';\n },\n thirdPartyCookiesIframe: function() {\n return getRealmUrl() + '/protocol/openid-connect/3p-cookies/step1.html';\n },\n register: function() {\n return getRealmUrl() + '/protocol/openid-connect/registrations';\n },\n userinfo: function() {\n return getRealmUrl() + '/protocol/openid-connect/userinfo';\n }\n };\n } else {\n kc.endpoints = {\n authorize: function() {\n return oidcConfiguration.authorization_endpoint;\n },\n token: function() {\n return oidcConfiguration.token_endpoint;\n },\n logout: function() {\n if (!oidcConfiguration.end_session_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.end_session_endpoint;\n },\n checkSessionIframe: function() {\n if (!oidcConfiguration.check_session_iframe) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.check_session_iframe;\n },\n register: function() {\n throw 'Redirection to \"Register user\" page not supported in standard OIDC mode';\n },\n userinfo: function() {\n if (!oidcConfiguration.userinfo_endpoint) {\n throw \"Not supported by the OIDC server\";\n }\n return oidcConfiguration.userinfo_endpoint;\n }\n }\n }\n }\n\n if (configUrl) {\n var req = new XMLHttpRequest();\n req.open('GET', configUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var config = JSON.parse(req.responseText);\n\n kc.authServerUrl = config['auth-server-url'];\n kc.realm = config['realm'];\n kc.clientId = config['resource'];\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n kc.clientId = config.clientId;\n\n var oidcProvider = config['oidcProvider'];\n if (!oidcProvider) {\n kc.authServerUrl = config.url;\n kc.realm = config.realm;\n setupOidcEndoints(null);\n promise.setSuccess();\n } else {\n if (typeof oidcProvider === 'string') {\n var oidcProviderConfigUrl;\n if (oidcProvider.charAt(oidcProvider.length - 1) == '/') {\n oidcProviderConfigUrl = oidcProvider + '.well-known/openid-configuration';\n } else {\n oidcProviderConfigUrl = oidcProvider + '/.well-known/openid-configuration';\n }\n var req = new XMLHttpRequest();\n req.open('GET', oidcProviderConfigUrl, true);\n req.setRequestHeader('Accept', 'application/json');\n\n req.onreadystatechange = function () {\n if (req.readyState == 4) {\n if (req.status == 200 || fileLoaded(req)) {\n var oidcProviderConfig = JSON.parse(req.responseText);\n setupOidcEndoints(oidcProviderConfig);\n promise.setSuccess();\n } else {\n promise.setError();\n }\n }\n };\n\n req.send();\n } else {\n setupOidcEndoints(oidcProvider);\n promise.setSuccess();\n }\n }\n }\n\n return promise.promise;\n }\n\n function fileLoaded(xhr) {\n return xhr.status == 0 && xhr.responseText && xhr.responseURL.startsWith('file:');\n }\n\n function setToken(token, refreshToken, idToken, timeLocal) {\n if (kc.tokenTimeoutHandle) {\n clearTimeout(kc.tokenTimeoutHandle);\n kc.tokenTimeoutHandle = null;\n }\n\n if (refreshToken) {\n kc.refreshToken = refreshToken;\n kc.refreshTokenParsed = decodeToken(refreshToken);\n } else {\n delete kc.refreshToken;\n delete kc.refreshTokenParsed;\n }\n\n if (idToken) {\n kc.idToken = idToken;\n kc.idTokenParsed = decodeToken(idToken);\n } else {\n delete kc.idToken;\n delete kc.idTokenParsed;\n }\n\n if (token) {\n kc.token = token;\n kc.tokenParsed = decodeToken(token);\n kc.sessionId = kc.tokenParsed.sid;\n kc.authenticated = true;\n kc.subject = kc.tokenParsed.sub;\n kc.realmAccess = kc.tokenParsed.realm_access;\n kc.resourceAccess = kc.tokenParsed.resource_access;\n\n if (timeLocal) {\n kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;\n }\n\n if (kc.timeSkew != null) {\n logInfo('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');\n\n if (kc.onTokenExpired) {\n var expiresIn = (kc.tokenParsed['exp'] - (new Date().getTime() / 1000) + kc.timeSkew) * 1000;\n logInfo('[KEYCLOAK] Token expires in ' + Math.round(expiresIn / 1000) + ' s');\n if (expiresIn <= 0) {\n kc.onTokenExpired();\n } else {\n kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);\n }\n }\n }\n } else {\n delete kc.token;\n delete kc.tokenParsed;\n delete kc.subject;\n delete kc.realmAccess;\n delete kc.resourceAccess;\n\n kc.authenticated = false;\n }\n }\n\n function createUUID() {\n if (typeof crypto === \"undefined\" || typeof crypto.randomUUID === \"undefined\") {\n throw new Error(\"Web Crypto API is not available.\");\n }\n\n return crypto.randomUUID();\n }\n\n function parseCallback(url) {\n var oauth = parseCallbackUrl(url);\n if (!oauth) {\n return;\n }\n\n var oauthState = callbackStorage.get(oauth.state);\n\n if (oauthState) {\n oauth.valid = true;\n oauth.redirectUri = oauthState.redirectUri;\n oauth.storedNonce = oauthState.nonce;\n oauth.prompt = oauthState.prompt;\n oauth.pkceCodeVerifier = oauthState.pkceCodeVerifier;\n oauth.loginOptions = oauthState.loginOptions;\n }\n\n return oauth;\n }\n\n function parseCallbackUrl(url) {\n var supportedParams;\n switch (kc.flow) {\n case 'standard':\n supportedParams = ['code', 'state', 'session_state', 'kc_action_status', 'kc_action', 'iss'];\n break;\n case 'implicit':\n supportedParams = ['access_token', 'token_type', 'id_token', 'state', 'session_state', 'expires_in', 'kc_action_status', 'kc_action', 'iss'];\n break;\n case 'hybrid':\n supportedParams = ['access_token', 'token_type', 'id_token', 'code', 'state', 'session_state', 'expires_in', 'kc_action_status', 'kc_action', 'iss'];\n break;\n }\n\n supportedParams.push('error');\n supportedParams.push('error_description');\n supportedParams.push('error_uri');\n\n var queryIndex = url.indexOf('?');\n var fragmentIndex = url.indexOf('#');\n\n var newUrl;\n var parsed;\n\n if (kc.responseMode === 'query' && queryIndex !== -1) {\n newUrl = url.substring(0, queryIndex);\n parsed = parseCallbackParams(url.substring(queryIndex + 1, fragmentIndex !== -1 ? fragmentIndex : url.length), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '?' + parsed.paramsString;\n }\n if (fragmentIndex !== -1) {\n newUrl += url.substring(fragmentIndex);\n }\n } else if (kc.responseMode === 'fragment' && fragmentIndex !== -1) {\n newUrl = url.substring(0, fragmentIndex);\n parsed = parseCallbackParams(url.substring(fragmentIndex + 1), supportedParams);\n if (parsed.paramsString !== '') {\n newUrl += '#' + parsed.paramsString;\n }\n }\n\n if (parsed && parsed.oauthParams) {\n if (kc.flow === 'standard' || kc.flow === 'hybrid') {\n if ((parsed.oauthParams.code || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n } else if (kc.flow === 'implicit') {\n if ((parsed.oauthParams.access_token || parsed.oauthParams.error) && parsed.oauthParams.state) {\n parsed.oauthParams.newUrl = newUrl;\n return parsed.oauthParams;\n }\n }\n }\n }\n\n function parseCallbackParams(paramsString, supportedParams) {\n var p = paramsString.split('&');\n var result = {\n paramsString: '',\n oauthParams: {}\n }\n for (var i = 0; i < p.length; i++) {\n var split = p[i].indexOf(\"=\");\n var key = p[i].slice(0, split);\n if (supportedParams.indexOf(key) !== -1) {\n result.oauthParams[key] = p[i].slice(split + 1);\n } else {\n if (result.paramsString !== '') {\n result.paramsString += '&';\n }\n result.paramsString += p[i];\n }\n }\n return result;\n }\n\n function createPromise() {\n // Need to create a native Promise which also preserves the\n // interface of the custom promise type previously used by the API\n var p = {\n setSuccess: function(result) {\n p.resolve(result);\n },\n\n setError: function(result) {\n p.reject(result);\n }\n };\n p.promise = new Promise(function(resolve, reject) {\n p.resolve = resolve;\n p.reject = reject;\n });\n\n return p;\n }\n\n // Function to extend existing native Promise with timeout\n function applyTimeoutToPromise(promise, timeout, errorMessage) {\n var timeoutHandle = null;\n var timeoutPromise = new Promise(function (resolve, reject) {\n timeoutHandle = setTimeout(function () {\n reject({ \"error\": errorMessage || \"Promise is not settled within timeout of \" + timeout + \"ms\" });\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]).finally(function () {\n clearTimeout(timeoutHandle);\n });\n }\n\n function setupCheckLoginIframe() {\n var promise = createPromise();\n\n if (!loginIframe.enable) {\n promise.setSuccess();\n return promise.promise;\n }\n\n if (loginIframe.iframe) {\n promise.setSuccess();\n return promise.promise;\n }\n\n var iframe = document.createElement('iframe');\n loginIframe.iframe = iframe;\n\n iframe.onload = function() {\n var authUrl = kc.endpoints.authorize();\n if (authUrl.charAt(0) === '/') {\n loginIframe.iframeOrigin = getOrigin();\n } else {\n loginIframe.iframeOrigin = authUrl.substring(0, authUrl.indexOf('/', 8));\n }\n promise.setSuccess();\n }\n\n var src = kc.endpoints.checkSessionIframe();\n iframe.setAttribute('src', src );\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-session-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if ((event.origin !== loginIframe.iframeOrigin) || (loginIframe.iframe.contentWindow !== event.source)) {\n return;\n }\n\n if (!(event.data == 'unchanged' || event.data == 'changed' || event.data == 'error')) {\n return;\n }\n\n\n if (event.data != 'unchanged') {\n kc.clearToken();\n }\n\n var callbacks = loginIframe.callbackList.splice(0, loginIframe.callbackList.length);\n\n for (var i = callbacks.length - 1; i >= 0; --i) {\n var promise = callbacks[i];\n if (event.data == 'error') {\n promise.setError();\n } else {\n promise.setSuccess(event.data == 'unchanged');\n }\n }\n };\n\n window.addEventListener('message', messageCallback, false);\n\n return promise.promise;\n }\n\n function scheduleCheckIframe() {\n if (loginIframe.enable) {\n if (kc.token) {\n setTimeout(function() {\n checkLoginIframe().then(function(unchanged) {\n if (unchanged) {\n scheduleCheckIframe();\n }\n });\n }, loginIframe.interval * 1000);\n }\n }\n }\n\n function checkLoginIframe() {\n var promise = createPromise();\n\n if (loginIframe.iframe && loginIframe.iframeOrigin ) {\n var msg = kc.clientId + ' ' + (kc.sessionId ? kc.sessionId : '');\n loginIframe.callbackList.push(promise);\n var origin = loginIframe.iframeOrigin;\n if (loginIframe.callbackList.length == 1) {\n loginIframe.iframe.contentWindow.postMessage(msg, origin);\n }\n } else {\n promise.setSuccess();\n }\n\n return promise.promise;\n }\n\n function check3pCookiesSupported() {\n var promise = createPromise();\n\n if ((loginIframe.enable || kc.silentCheckSsoRedirectUri) && typeof kc.endpoints.thirdPartyCookiesIframe === 'function') {\n var iframe = document.createElement('iframe');\n iframe.setAttribute('src', kc.endpoints.thirdPartyCookiesIframe());\n iframe.setAttribute('sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin');\n iframe.setAttribute('title', 'keycloak-3p-check-iframe' );\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n var messageCallback = function(event) {\n if (iframe.contentWindow !== event.source) {\n return;\n }\n\n if (event.data !== \"supported\" && event.data !== \"unsupported\") {\n return;\n } else if (event.data === \"unsupported\") {\n logWarn(\n \"[KEYCLOAK] Your browser is blocking access to 3rd-party cookies, this means:\\n\\n\" +\n \" - It is not possible to retrieve tokens without redirecting to the Keycloak server (a.k.a. no support for silent authentication).\\n\" +\n \" - It is not possible to automatically detect changes to the session status (such as the user logging out in another tab).\\n\\n\" +\n \"For more information see: https://www.keycloak.org/docs/latest/securing_apps/#_modern_browsers\"\n );\n\n loginIframe.enable = false;\n if (kc.silentCheckSsoFallback) {\n kc.silentCheckSsoRedirectUri = false;\n }\n }\n\n document.body.removeChild(iframe);\n window.removeEventListener(\"message\", messageCallback);\n promise.setSuccess();\n };\n\n window.addEventListener('message', messageCallback, false);\n } else {\n promise.setSuccess();\n }\n\n return applyTimeoutToPromise(promise.promise, kc.messageReceiveTimeout, \"Timeout when waiting for 3rd party check iframe message.\");\n }\n\n function loadAdapter(type) {\n if (!type || type == 'default') {\n return {\n login: async function(options) {\n window.location.assign(await kc.createLoginUrl(options));\n return createPromise().promise;\n },\n\n logout: async function(options) {\n\n const logoutMethod = options?.logoutMethod ?? kc.logoutMethod;\n if (logoutMethod === \"GET\") {\n window.location.replace(kc.createLogoutUrl(options));\n return;\n }\n\n const logoutUrl = kc.createLogoutUrl(options);\n const response = await fetch(logoutUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n id_token_hint: kc.idToken,\n client_id: kc.clientId,\n post_logout_redirect_uri: adapter.redirectUri(options, false)\n })\n });\n\n if (response.redirected) {\n window.location.href = response.url;\n return;\n }\n\n if (response.ok) {\n window.location.reload();\n return;\n }\n\n throw new Error(\"Logout failed, request returned an error code.\");\n },\n\n register: async function(options) {\n window.location.assign(await kc.createRegisterUrl(options));\n return createPromise().promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.location.href = accountUrl;\n } else {\n throw \"Not supported by the OIDC server\";\n }\n return createPromise().promise;\n },\n\n redirectUri: function(options, encodeHash) {\n if (arguments.length == 1) {\n encodeHash = true;\n }\n\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return location.href;\n }\n }\n };\n }\n\n if (type == 'cordova') {\n loginIframe.enable = false;\n var cordovaOpenWindowWrapper = function(loginUrl, target, options) {\n if (window.cordova && window.cordova.InAppBrowser) {\n // Use inappbrowser for IOS and Android if available\n return window.cordova.InAppBrowser.open(loginUrl, target, options);\n } else {\n return window.open(loginUrl, target, options);\n }\n };\n\n var shallowCloneCordovaOptions = function (userOptions) {\n if (userOptions && userOptions.cordovaOptions) {\n return Object.keys(userOptions.cordovaOptions).reduce(function (options, optionName) {\n options[optionName] = userOptions.cordovaOptions[optionName];\n return options;\n }, {});\n } else {\n return {};\n }\n };\n\n var formatCordovaOptions = function (cordovaOptions) {\n return Object.keys(cordovaOptions).reduce(function (options, optionName) {\n options.push(optionName+\"=\"+cordovaOptions[optionName]);\n return options;\n }, []).join(\",\");\n };\n\n var createCordovaOptions = function (userOptions) {\n var cordovaOptions = shallowCloneCordovaOptions(userOptions);\n cordovaOptions.location = 'no';\n if (userOptions && userOptions.prompt == 'none') {\n cordovaOptions.hidden = 'yes';\n }\n return formatCordovaOptions(cordovaOptions);\n };\n\n var getCordovaRedirectUri = function() {\n return kc.redirectUri || 'http://localhost';\n }\n\n return {\n login: async function(options) {\n var promise = createPromise();\n\n var cordovaOptions = createCordovaOptions(options);\n var loginUrl = await kc.createLoginUrl(options);\n var ref = cordovaOpenWindowWrapper(loginUrl, '_blank', cordovaOptions);\n var completed = false;\n\n var closed = false;\n var closeBrowser = function() {\n closed = true;\n ref.close();\n };\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (!completed) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n var callback = parseCallback(event.url);\n processCallback(callback, promise);\n closeBrowser();\n completed = true;\n } else {\n promise.setError();\n closeBrowser();\n }\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (!closed) {\n promise.setError({\n reason: \"closed_by_user\"\n });\n }\n });\n\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n\n var logoutUrl = kc.createLogoutUrl(options);\n var ref = cordovaOpenWindowWrapper(logoutUrl, '_blank', 'location=no,hidden=yes,clearcache=yes');\n\n var error;\n\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n\n ref.addEventListener('loaderror', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n } else {\n error = true;\n ref.close();\n }\n });\n\n ref.addEventListener('exit', function(event) {\n if (error) {\n promise.setError();\n } else {\n kc.clearToken();\n promise.setSuccess();\n }\n });\n\n return promise.promise;\n },\n\n register : async function(options) {\n var promise = createPromise();\n var registerUrl = await kc.createRegisterUrl();\n var cordovaOptions = createCordovaOptions(options);\n var ref = cordovaOpenWindowWrapper(registerUrl, '_blank', cordovaOptions);\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n }\n });\n return promise.promise;\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n var ref = cordovaOpenWindowWrapper(accountUrl, '_blank', 'location=no');\n ref.addEventListener('loadstart', function(event) {\n if (event.url.indexOf(getCordovaRedirectUri()) == 0) {\n ref.close();\n }\n });\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n return getCordovaRedirectUri();\n }\n }\n }\n\n if (type == 'cordova-native') {\n loginIframe.enable = false;\n\n return {\n login: async function(options) {\n var promise = createPromise();\n var loginUrl = await kc.createLoginUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n\n window.cordova.plugins.browsertab.openUrl(loginUrl);\n return promise.promise;\n },\n\n logout: function(options) {\n var promise = createPromise();\n var logoutUrl = kc.createLogoutUrl(options);\n\n universalLinks.subscribe('keycloak', function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n kc.clearToken();\n promise.setSuccess();\n });\n\n window.cordova.plugins.browsertab.openUrl(logoutUrl);\n return promise.promise;\n },\n\n register : async function(options) {\n var promise = createPromise();\n var registerUrl = await kc.createRegisterUrl(options);\n universalLinks.subscribe('keycloak' , function(event) {\n universalLinks.unsubscribe('keycloak');\n window.cordova.plugins.browsertab.close();\n var oauth = parseCallback(event.url);\n processCallback(oauth, promise);\n });\n window.cordova.plugins.browsertab.openUrl(registerUrl);\n return promise.promise;\n\n },\n\n accountManagement : function() {\n var accountUrl = kc.createAccountUrl();\n if (typeof accountUrl !== 'undefined') {\n window.cordova.plugins.browsertab.openUrl(accountUrl);\n } else {\n throw \"Not supported by the OIDC server\";\n }\n },\n\n redirectUri: function(options) {\n if (options && options.redirectUri) {\n return options.redirectUri;\n } else if (kc.redirectUri) {\n return kc.redirectUri;\n } else {\n return \"http://localhost\";\n }\n }\n }\n }\n\n throw 'invalid adapter type: ' + type;\n }\n\n const STORAGE_KEY_PREFIX = 'kc-callback-';\n\n var LocalStorage = function() {\n if (!(this instanceof LocalStorage)) {\n return new LocalStorage();\n }\n\n localStorage.setItem('kc-test', 'test');\n localStorage.removeItem('kc-test');\n\n var cs = this;\n\n /**\n * Clears all values from local storage that are no longer valid.\n */\n function clearInvalidValues() {\n const currentTime = Date.now();\n\n for (const [key, value] of getStoredEntries()) {\n // Attempt to parse the expiry time from the value.\n const expiry = parseExpiry(value);\n\n // Discard the value if it is malformed or expired.\n if (expiry === null || expiry < currentTime) {\n localStorage.removeItem(key);\n }\n }\n }\n\n /**\n * Clears all known values from local storage.\n */\n function clearAllValues() {\n for (const [key] of getStoredEntries()) {\n localStorage.removeItem(key);\n }\n }\n\n /**\n * Gets all entries stored in local storage that are known to be managed by this class.\n * @returns {Array<[string, unknown]>} An array of key-value pairs.\n */\n function getStoredEntries() {\n return Object.entries(localStorage).filter(([key]) => key.startsWith(STORAGE_KEY_PREFIX));\n }\n\n /**\n * Parses the expiry time from a value stored in local storage.\n * @param {unknown} value\n * @returns {number | null} The expiry time in milliseconds, or `null` if the value is malformed.\n */\n function parseExpiry(value) {\n let parsedValue;\n\n // Attempt to parse the value as JSON.\n try {\n parsedValue = JSON.parse(value);\n } catch (error) {\n return null;\n }\n\n // Attempt to extract the 'expires' property.\n if (isObject(parsedValue) && 'expires' in parsedValue && typeof parsedValue.expires === 'number') {\n return parsedValue.expires;\n }\n\n return null;\n }\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var key = STORAGE_KEY_PREFIX + state;\n var value = localStorage.getItem(key);\n if (value) {\n localStorage.removeItem(key);\n value = JSON.parse(value);\n }\n\n clearInvalidValues();\n return value;\n };\n\n cs.add = function(state) {\n clearInvalidValues();\n\n const key = STORAGE_KEY_PREFIX + state.state;\n const value = JSON.stringify({\n ...state,\n // Set the expiry time to 1 hour from now.\n expires: Date.now() + (60 * 60 * 1000)\n });\n\n try {\n localStorage.setItem(key, value);\n } catch (error) {\n // If the storage is full, clear all known values and try again.\n clearAllValues();\n localStorage.setItem(key, value);\n }\n };\n };\n\n var CookieStorage = function() {\n if (!(this instanceof CookieStorage)) {\n return new CookieStorage();\n }\n\n var cs = this;\n\n cs.get = function(state) {\n if (!state) {\n return;\n }\n\n var value = getCookie(STORAGE_KEY_PREFIX + state);\n setCookie(STORAGE_KEY_PREFIX + state, '', cookieExpiration(-100));\n if (value) {\n return JSON.parse(value);\n }\n };\n\n cs.add = function(state) {\n setCookie(STORAGE_KEY_PREFIX + state.state, JSON.stringify(state), cookieExpiration(60));\n };\n\n cs.removeItem = function(key) {\n setCookie(key, '', cookieExpiration(-100));\n };\n\n var cookieExpiration = function (minutes) {\n var exp = new Date();\n exp.setTime(exp.getTime() + (minutes*60*1000));\n return exp;\n };\n\n var getCookie = function (key) {\n var name = key + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n };\n\n var setCookie = function (key, value, expirationDate) {\n var cookie = key + '=' + value + '; '\n + 'expires=' + expirationDate.toUTCString() + '; ';\n document.cookie = cookie;\n }\n };\n\n function createCallbackStorage() {\n try {\n return new LocalStorage();\n } catch (err) {\n }\n\n return new CookieStorage();\n }\n\n function createLogger(fn) {\n return function() {\n if (kc.enableLogging) {\n fn.apply(console, Array.prototype.slice.call(arguments));\n }\n };\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Keycloak);\n\n/**\n * @param {ArrayBuffer} bytes\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n */\nfunction bytesToBase64(bytes) {\n const binString = String.fromCodePoint(...bytes);\n return btoa(binString);\n}\n\n/**\n * @param {string} message\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest#basic_example\n */\nasync function sha256Digest(message) {\n const encoder = new TextEncoder();\n const data = encoder.encode(message);\n\n if (typeof crypto === \"undefined\" || typeof crypto.subtle === \"undefined\") {\n throw new Error(\"Web Crypto API is not available.\");\n }\n\n return await crypto.subtle.digest(\"SHA-256\", data);\n}\n\n/**\n * @param {string} token\n */\nfunction decodeToken(token) {\n const [header, payload] = token.split(\".\");\n\n if (typeof payload !== \"string\") {\n throw new Error(\"Unable to decode token, payload not found.\");\n }\n\n let decoded;\n\n try {\n decoded = base64UrlDecode(payload);\n } catch (error) {\n throw new Error(\"Unable to decode token, payload is not a valid Base64URL value.\", { cause: error });\n }\n\n try {\n return JSON.parse(decoded);\n } catch (error) {\n throw new Error(\"Unable to decode token, payload is not a valid JSON value.\", { cause: error });\n }\n}\n\n/**\n * @param {string} input\n */\nfunction base64UrlDecode(input) {\n let output = input\n .replaceAll(\"-\", \"+\")\n .replaceAll(\"_\", \"/\");\n\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"Input is not of the correct length.\");\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (error) {\n return atob(output);\n }\n}\n\n/**\n * @param {string} input\n */\nfunction b64DecodeUnicode(input) {\n return decodeURIComponent(atob(input).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n\n if (code.length < 2) {\n code = \"0\" + code;\n }\n\n return \"%\" + code;\n }));\n}\n\n/**\n * Check if the input is an object that can be operated on.\n * @param {unknown} input\n */\nfunction isObject(input) {\n return typeof input === 'object' && input !== null;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/keycloak-js/lib/keycloak.js?")},"./src/Auth/OAuth1.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ xAPITrackerAssetOAuth1)\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../xAPITrackerAsset.js */ "./src/xAPITrackerAsset.js");\n/* harmony import */ var _xapi_xapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @xapi/xapi */ "./node_modules/@xapi/xapi/dist/XAPI.umd.js");\n\r\n\r\n\r\nclass xAPITrackerAssetOAuth1 extends _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__["default"] {\r\n constructor(endpoint, backup_endpoint, username, password, homePage, token, defaultUri) {\r\n var auth = _xapi_xapi__WEBPACK_IMPORTED_MODULE_1__.toBasicAuth(username, password);\r\n super(endpoint, backup_endpoint, auth, homePage, token, defaultUri);\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth1.js?')},"./src/Auth/OAuth2.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ xAPITrackerAssetOAuth2)\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../xAPITrackerAsset.js */ "./src/xAPITrackerAsset.js");\n/* harmony import */ var _OAuth2Keycloak_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OAuth2Keycloak.js */ "./src/Auth/OAuth2Keycloak.js");\n\r\n\r\n\r\nclass xAPITrackerAssetOAuth2 extends _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__["default"] {\r\n constructor(endpoint, backup_endpoint, config, homePage, token, defaultUri) {\r\n // Call the parent constructor without the token (since we don\'t have it yet\r\n super(endpoint, null, homePage, token, defaultUri);\r\n\r\n // Fetch token after object construction\r\n this.initAuth(endpoint, backup_endpoint, config, homePage, token, defaultUri);\r\n }\r\n\r\n async getToken(config) {\r\n try {\r\n var oauth2 = new _OAuth2Keycloak_js__WEBPACK_IMPORTED_MODULE_1__["default"]();\r\n await oauth2.init(config);\r\n return oauth2.token.access_token; // Return the access token\r\n } catch(e) {\r\n console.error(e);\r\n return null;\r\n }\r\n }\r\n\r\n async initAuth(endpoint, backup_endpoint, config, homePage, token, defaultUri) {\r\n const oAuth2Token = await this.getToken(config);\r\n if(oAuth2Token !== null) {\r\n const auth = "Bearer " + oAuth2Token;\r\n console.log(auth);\r\n // Now that we have the token, update the authorization in the super class\r\n this.updateAuth(endpoint, backup_endpoint, auth, homePage, token, defaultUri);\r\n }\r\n }\r\n \r\n // Assuming this method updates the auth in the super class\r\n updateAuth(endpoint, backup_endpoint, auth, homePage, token, defaultUri) {\r\n // Update the authorization or reinitialize xAPITrackerAsset with the token\r\n super.updateAuth(endpoint, backup_endpoint, auth, homePage, token, defaultUri);\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth2.js?')},"./src/Auth/OAuth2Keycloak.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ OAuth2Keycloak)\n/* harmony export */ });\n/* harmony import */ var keycloak_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! keycloak-js */ \"./node_modules/keycloak-js/lib/keycloak.js\");\n\r\n\r\nclass OAuth2Keycloak {\r\n constructor() {\r\n this.fieldMissingMessage = 'Field \"{0}\" required for \"OAuth 2.0\" authentication is missing!';\r\n this.unsupportedGrantTypeMessage = 'Grant type \"{0}\" not supported. Please use either \"code\" type or \"password\" type.';\r\n this.unsupportedCodeChallengeMethodMessage = 'Code challenge (PKCE) method \"{0}\" not supported. Please use \"S256\" method or disable it.';\r\n this.clientId = null;\r\n this.baseUrl = null;\r\n this.realmName = null;\r\n this.token = null;\r\n this.keycloak = null;\r\n\r\n }\r\n \r\n // Function to initiate login\r\n login() {\r\n this.keycloak.login({\r\n redirectUri: window.location.href // Redirect back to the current page after login\r\n }).then(() => {\r\n console.log('Logged in successfully');\r\n // Proceed with your game initialization\r\n this.token = { access_token : this.keycloak.token };\r\n }).catch(error => {\r\n console.error('Failed to log in', error);\r\n });\r\n }\r\n\r\n async init(config) {\r\n const url = config.auth_endpoint;\r\n const regex = /^(https?:\\/\\/[^/]+)(\\/realms\\/([^/]+))/;\r\n const match = url.match(regex);\r\n if (match) {\r\n this.baseUrl = match[1]; // URL before '/realms'\r\n this.realmName = match[3]; // Realm name after '/realms/'\r\n this.clientId = config.client_id;\r\n\r\n console.log('Base URL:', this.baseUrl);\r\n console.log('Realm Name:', this.realmName);\r\n this.keycloak = new keycloak_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\r\n url: this.baseUrl,\r\n realm: this.realmName,\r\n clientId: this.clientId\r\n });\r\n this.keycloak.onAuthSuccess = () => this.token = { access_token : this.keycloak.token };\r\n // Initialize Keycloak\r\n this.keycloak.init({ \r\n onLoad: 'check-sso', \r\n //silentCheckSsoRedirectUri: window.location.origin + \"/silent-check-sso.html\",\r\n }).then(authenticated => {\r\n if (authenticated) {\r\n console.log('Authenticated');\r\n // Proceed with your game initialization\r\n this.token = { access_token : this.keycloak.token };\r\n } else {\r\n // User is not authenticated, initiate login\r\n this.login();\r\n }\r\n }).catch(error => {\r\n console.error('Failed to initialize Keycloak', error);\r\n });\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth2Keycloak.js?")},"./src/HighLevel/Accessible.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESSIBLETYPE: () => (/* binding */ ACCESSIBLETYPE),\n/* harmony export */ AccessibleTracker: () => (/* binding */ AccessibleTracker)\n/* harmony export */ });\nclass AccessibleTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n AccessibleType = ['screen', 'area', 'zone', 'cutscene', 'accessible']\r\n\r\n Accessed(accessibleId, type) {\r\n if (typeof type === 'undefined') {type = 4;}\r\n\r\n var statement = this.tracker.Trace('accessed',this.AccessibleType[type],accessibleId);\r\n return statement;\r\n };\r\n\r\n Skipped(accessibleId, type) {\r\n if (typeof type === 'undefined') {type = 4;}\r\n\r\n var statement = this.tracker.Trace('skipped',this.AccessibleType[type],accessibleId);\r\n return statement;\r\n };\r\n\r\n async sendStatement(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst ACCESSIBLETYPE = Object.freeze({\r\n SCREEN: 0,\r\n AREA: 1,\r\n ZONE: 2,\r\n CUTSCENE: 3,\r\n ACCESSIBLE: 4\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Accessible.js?")},"./src/HighLevel/Alternative.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALTERNATIVETYPE: () => (/* binding */ ALTERNATIVETYPE),\n/* harmony export */ AlternativeTracker: () => (/* binding */ AlternativeTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass AlternativeTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n\r\n AlternativeType = ['question', 'menu', 'dialog', 'path', 'arena', 'alternative']\r\n\r\n Selected(alternativeId, optionId, type) {\r\n if (typeof type === 'undefined') {type = 5;}\r\n \r\n var statement = this.tracker.Trace('selected',this.AlternativeType[type],alternativeId);\r\n statement.setResponse(optionId);\r\n return statement;\r\n };\r\n\r\n Unlocked(alternativeId, optionId, type) {\r\n if (typeof type === 'undefined') {type = 5;}\r\n \r\n var statement = this.tracker.Trace('unlocked',this.AlternativeType[type],alternativeId);\r\n statement.setResponse(optionId);\r\n return statement;\r\n };\r\n\r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async sendStatement(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst ALTERNATIVETYPE = Object.freeze({\r\n QUESTION: 0,\r\n MENU: 1,\r\n DIALOG: 2,\r\n PATH: 3,\r\n ARENA: 4,\r\n ALTERNATIVE: 5\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Alternative.js?")},"./src/HighLevel/Completable.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ COMPLETABLETYPE: () => (/* binding */ COMPLETABLETYPE),\n/* harmony export */ CompletableTracker: () => (/* binding */ CompletableTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass CompletableTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n CompletableType = ['game', 'session', 'level', 'quest', 'stage', 'combat', 'storynode', 'race', 'completable'];\r\n\r\n Initialized(completableId, type) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n\r\n var statement = this.tracker.Trace('initialized',this.CompletableType[type],completableId);\r\n return statement;\r\n };\r\n\r\n Progressed(completableId, type, progress) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n\r\n var statement = this.tracker.Trace('progressed',this.CompletableType[type],completableId);\r\n statement.setProgress(progress);\r\n return statement;\r\n };\r\n\r\n Completed(completableId, type, success, completion, score) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n if (typeof success === 'undefined') {success = true;}\r\n if (typeof completion === 'undefined') {completion = false;}\r\n if (typeof score === 'undefined') {score = 1;}\r\n\r\n var statement = this.tracker.Trace('completed',this.CompletableType[type],completableId);\r\n statement.setSuccess(success);\r\n statement.setCompletion(completion);\r\n statement.setScore(score);\r\n return statement;\r\n };\r\n \r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async sendStatement(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst COMPLETABLETYPE = Object.freeze({\r\n GAME: 0,\r\n SESSION: 1,\r\n LEVEL: 2,\r\n QUEST: 3,\r\n STAGE: 4,\r\n COMBAT: 5,\r\n STORYNODE: 6,\r\n RACE: 7,\r\n COMPLETABLE: 8\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Completable.js?")},"./src/HighLevel/GameObject.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GAMEOBJECTTYPE: () => (/* binding */ GAMEOBJECTTYPE),\n/* harmony export */ GameObjectTracker: () => (/* binding */ GameObjectTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass GameObjectTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n\r\n GameObjectType = ['enemy', 'npc', 'item', 'gameobject'];\r\n\r\n Interacted(gameobjectId, type) {\r\n if (typeof type === 'undefined') {type = 3;}\r\n\r\n var statement = this.tracker.Trace('interacted',this.GameObjectType[type],gameobjectId);\r\n return statement;\r\n };\r\n\r\n Used(gameobjectId, type) {\r\n if (typeof type === 'undefined') {type = 3;}\r\n\r\n var statement = this.tracker.Trace('used',this.GameObjectType[type],gameobjectId);\r\n return statement;\r\n };\r\n \r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async sendStatement(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst GAMEOBJECTTYPE = Object.freeze({\r\n ENEMY: 0,\r\n NPC: 1,\r\n ITEM: 2,\r\n GAMEOBJECT: 3,\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/GameObject.js?")},"./src/HighLevel/Statement/ActorStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ActorStatement)\n/* harmony export */ });\nclass ActorStatement {\r\n constructor(token, accountName, homepage) {\r\n this.token = token;\r\n this.accountName = accountName;\r\n this.homepage = homepage;\r\n }\r\n token;\r\n accountName;\r\n homepage;\r\n \r\n toXAPI() {\r\n return {\r\n name: this.token,\r\n account: {\r\n name: this.accountName,\r\n homePage: this.homepage\r\n }\r\n }\r\n }\r\n \r\n toCSV() {\r\n return this.token.replaceAll(',', '\\\\,') ;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ActorStatement.js?")},"./src/HighLevel/Statement/ContextStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContextStatement)\n/* harmony export */ });\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\n\r\n\r\nclass ContextStatement {\r\n constructor() {\r\n this.registration=(0,uuid__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\r\n }\r\n registration;\r\n\r\n categoryIDs = {\r\n seriousgame : 'https://w3id.org/xapi/seriousgame'\r\n };\r\n \r\n toXAPI() {\r\n return {\r\n registration: this.registration,\r\n contextActivities: { \r\n category:[{\r\n id: this.categoryIDs.seriousgame\r\n }]\r\n }\r\n }\r\n }\r\n\r\n toCSV() {\r\n return this.registration.replaceAll(',', '\\\\,') ;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ContextStatement.js?")},"./src/HighLevel/Statement/ObjectStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ObjectStatement)\n/* harmony export */ });\nclass ObjectStatement {\r\n constructor(id, type, name = null, description = null) {\r\n this.id = id;\r\n this.type = type;\r\n this.name = name;\r\n this.description = description\r\n }\r\n \r\n typeIds = {\r\n // Completable\r\n game: 'https://w3id.org/xapi/seriousgames/activity-types/serious-game' ,\r\n session: 'https://w3id.org/xapi/seriousgames/activity-types/session',\r\n level: 'https://w3id.org/xapi/seriousgames/activity-types/level',\r\n quest: 'https://w3id.org/xapi/seriousgames/activity-types/quest',\r\n stage: 'https://w3id.org/xapi/seriousgames/activity-types/stage',\r\n combat: 'https://w3id.org/xapi/seriousgames/activity-types/combat',\r\n storynode: 'https://w3id.org/xapi/seriousgames/activity-types/story-node',\r\n race: 'https://w3id.org/xapi/seriousgames/activity-types/race',\r\n completable: 'https://w3id.org/xapi/seriousgames/activity-types/completable',\r\n \r\n // Acceesible\r\n screen: 'https://w3id.org/xapi/seriousgames/activity-types/screen' ,\r\n area: 'https://w3id.org/xapi/seriousgames/activity-types/area',\r\n zone: 'https://w3id.org/xapi/seriousgames/activity-types/zone',\r\n cutscene: 'https://w3id.org/xapi/seriousgames/activity-types/cutscene',\r\n accessible: 'https://w3id.org/xapi/seriousgames/activity-types/accessible',\r\n \r\n // Alternative\r\n question: 'http://adlnet.gov/expapi/activities/question' ,\r\n menu: 'https://w3id.org/xapi/seriousgames/activity-types/menu',\r\n dialog: 'https://w3id.org/xapi/seriousgames/activity-types/dialog-tree',\r\n path: 'https://w3id.org/xapi/seriousgames/activity-types/path',\r\n arena: 'https://w3id.org/xapi/seriousgames/activity-types/arena',\r\n alternative: 'https://w3id.org/xapi/seriousgames/activity-types/alternative',\r\n \r\n // GameObject\r\n enemy: 'https://w3id.org/xapi/seriousgames/activity-types/enemy' ,\r\n npc: 'https://w3id.org/xapi/seriousgames/activity-types/non-player-character',\r\n item: 'https://w3id.org/xapi/seriousgames/activity-types/item',\r\n gameobject: 'https://w3id.org/xapi/seriousgames/activity-types/game-object'\r\n };\r\n id;\r\n type;\r\n name;\r\n description;\r\n\r\n toXAPI() {\r\n var object= {}\r\n if(this.id) {\r\n object.id = this.id;\r\n }\r\n object.definition={}\r\n if(this.name) {\r\n object.definition.name = { \"en-US\": this.name };\r\n }\r\n if(this.description) {\r\n object.definition.description = { \"en-US\": this.description };\r\n }\r\n if(this.type) {\r\n object.definition.type = this.typeIds[this.type];\r\n }\r\n return object;\r\n }\r\n\r\n toCSV() {\r\n return this.typeIds[this.type].replaceAll(',','\\\\,') + ',' + this.id.replaceAll(',', '\\\\,');\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ObjectStatement.js?")},"./src/HighLevel/Statement/ResultStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResultStatements)\n/* harmony export */ });\nclass ResultStatements {\r\n constructor(defautURI) {\r\n this.defautURI = defautURI;\r\n this.parent = null;\r\n this.Score = null;\r\n this.Success = null;\r\n this.Completion = null;\r\n this.Response = null;\r\n this.Duration = null;\r\n this.Extensions = {};\r\n }\r\n\r\n isEmpty() {\r\n return (this.parent == null) && (this.Score == null) && (this.Duration == null) && (this.Success == null) && (this.Completion == null) && (this.Response == null) && (Object.keys(this.Extensions).length == 0);\r\n }\r\n\r\n ExtensionIDs = {\r\n health: 'https://w3id.org/xapi/seriousgames/extensions/health',\r\n position: 'https://w3id.org/xapi/seriousgames/extensions/position',\r\n progress: 'https://w3id.org/xapi/seriousgames/extensions/progress'\r\n };\r\n\r\n setExtensions(extensions) {\r\n this.Extensions = {};\r\n for (var key in extensions) {\r\n setExtension(key,extensions[key]);\r\n }\r\n }\r\n\r\n setExtension(key, value) {\r\n switch (key.toLowerCase()) {\r\n case 'success': { this.Success = value; break; }\r\n case 'completion': { this.Completion = value; break; }\r\n case 'response': { this.Response = value; break; }\r\n case 'score': { this.Score = value; break; }\r\n case 'duration': { this.Duration = value; break; }\r\n default: { this.Extensions[key] = value; break; }\r\n }\r\n };\r\n\r\n setAsUri(id) {\r\n if(this.isUri(id)) {\r\n return id;\r\n } else {\r\n return `${this.defautURI}://${id}`;\r\n }\r\n }\r\n \r\n isUri(id) {\r\n const pattern = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\/[^\\s/$.?#].[^\\s]*$/i;\r\n return pattern.test(id);\r\n }\r\n\r\n setScoreValue(key, value) {\r\n if(! this.Score) {\r\n this.Score = {};\r\n }\r\n this.Score[key] = Number(value);\r\n };\r\n\r\n toXAPI() {\r\n var ret = {};\r\n\r\n if (this.Success !== null) {\r\n ret.success = (this.Success) ? true : false;\r\n }\r\n\r\n if (this.Completion !== null) {\r\n ret.completion = (this.Completion) ? true : false;\r\n }\r\n\r\n if (this.Response) {\r\n ret.response = this.Response.toString();\r\n }\r\n\r\n if (this.Score !== null) {\r\n ret.score = this.Score;\r\n }\r\n\r\n if (this.Duration !== null) {\r\n ret.duration = this.Duration;\r\n }\r\n\r\n\r\n if (this.Extensions !== null && obsize(this.Extensions) > 0) {\r\n ret.extensions = this.Extensions;\r\n\r\n for (var key in this.Extensions) {\r\n if (this.ExtensionIDs.hasOwnProperty(key)) {\r\n this.Extensions[this.ExtensionIDs[key]] = this.Extensions[key];\r\n delete this.Extensions[key];\r\n } else {\r\n var newuri= this.setAsUri(key);\r\n this.Extensions[newuri] = this.Extensions[key];\r\n if(newuri !== key) {\r\n delete this.Extensions[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n };\r\n \r\n toCSV() {\r\n var success = (this.Success !== null) ? ',success,' + this.Success.toString() : '';\r\n var completion = (this.Completion !== null) ? ',completion,' + this.Completion.toString() : '';\r\n var response = (this.Response) ? ',response,' + this.Response.replaceAll(',', '\\\\,') : '';\r\n var score = '';\r\n\r\n if (exists(this.Score)) {\r\n if (exists(this.Score.raw)) {\r\n score += ',score,' + this.Score.raw;\r\n }\r\n\r\n if (exists(this.Score.min)) {\r\n score += ',score_min,' + this.Score.min;\r\n }\r\n\r\n if (exists(this.Score.max)) {\r\n score += ',score_max,' + this.Score.max;\r\n }\r\n\r\n if (exists(this.Score.scaled)) {\r\n score += ',score_scaled,' + this.Score.scaled;\r\n }\r\n }\r\n\r\n var result = success + completion + response + score;\r\n\r\n if (this.Extensions !== null && obsize(this.Extensions) > 0) {\r\n for (var key in this.Extensions) {\r\n result += ',' + key.replaceAll(',', '\\\\,') + ',';\r\n if (this.Extensions[key] !== null) {\r\n if (typeof this.Extensions[key] === 'number') {\r\n result += this.Extensions[key];\r\n } else if (typeof this.Extensions[key] === 'string') {\r\n result += this.Extensions[key].replaceAll(',', '\\\\,');\r\n } else if (typeof this.Extensions[key] === 'object') {\r\n if (ismap(this.Extensions[key])) {\r\n var smap = '';\r\n\r\n for (var k in this.Extensions[key]) {\r\n if (typeof this.Extensions[key][k] === 'number') {\r\n smap += k + '=' + this.Extensions[key][k] + '-';\r\n } else {\r\n smap += k + '=' + this.Extensions[key][k].replaceAll(',', '\\\\,') + '-';\r\n }\r\n }\r\n\r\n result += smap.slice(0,-1);\r\n }\r\n } else {\r\n result += this.Extensions[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n};\r\nvar obsize = function(obj) {\r\n var size = 0, key;\r\n for (key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n size++;\r\n }\r\n }\r\n return size;\r\n};\r\n\r\nvar ismap = function(obj) {\r\n for (var key in obj) {\r\n if (typeof obj[key] === 'object') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\nvar exists = function(value) {\r\n return !(typeof value === 'undefined' || value === null);\r\n};\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ResultStatement.js?")},"./src/HighLevel/Statement/Statement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ Statement)\n/* harmony export */ });\n/* harmony import */ var _VerbStatement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VerbStatement.js */ "./src/HighLevel/Statement/VerbStatement.js");\n/* harmony import */ var _ObjectStatement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ObjectStatement.js */ "./src/HighLevel/Statement/ObjectStatement.js");\n/* harmony import */ var _ResultStatement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ResultStatement.js */ "./src/HighLevel/Statement/ResultStatement.js");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/dist/esm-browser/v4.js");\n\r\n\r\n\r\n\r\n\r\nclass Statement {\r\n constructor(actor, verbId, objectId, objectType, context, defautURI) {\r\n this.id = (0,uuid__WEBPACK_IMPORTED_MODULE_3__["default"])();\r\n this.actor = actor;\r\n this.verb = new _VerbStatement_js__WEBPACK_IMPORTED_MODULE_0__["default"](verbId);\r\n this.defautURI = defautURI;\r\n this.object = new _ObjectStatement_js__WEBPACK_IMPORTED_MODULE_1__["default"](this.setAsUri(objectId), objectType);\r\n this.timestamp = new Date();\r\n this.context = context;\r\n this.version = "1.0.3";\r\n this.result = new _ResultStatement_js__WEBPACK_IMPORTED_MODULE_2__["default"](this.defautURI);\r\n }\r\n \r\n actor;\r\n verb;\r\n object;\r\n timestamp;\r\n context;\r\n result;\r\n\r\n setAsUri(id) {\r\n if(this.isUri(id)) {\r\n return id;\r\n } else {\r\n return `${this.defautURI}://${id}`;\r\n }\r\n }\r\n \r\n isUri(id) {\r\n const pattern = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\/[^\\s/$.?#].[^\\s]*$/i;\r\n return pattern.test(id);\r\n }\r\n\r\n setScore(raw, min, max, scaled) {\r\n if (raw) {\r\n this.setScoreRaw(raw);\r\n }\r\n\r\n if (min) {\r\n this.setScoreMin(min);\r\n }\r\n\r\n if (max) {\r\n this.setScoreMax(max);\r\n }\r\n\r\n if (scaled) {\r\n this.setScoreScaled(scaled);\r\n }\r\n };\r\n\r\n setScoreRaw(raw) {\r\n this.result.setScoreValue(\'raw\', raw);\r\n\r\n };\r\n\r\n setScoreMin(min) {\r\n this.result.setScoreValue(\'min\', min);\r\n };\r\n\r\n setScoreMax(max) {\r\n this.result.setScoreValue(\'max\', max);\r\n };\r\n\r\n setScoreScaled(scaled) {\r\n this.result.setScoreValue(\'scaled\', scaled);\r\n };\r\n\r\n setCompletion(value) {\r\n this.addResultExtension(\'completion\', value);\r\n };\r\n\r\n setSuccess(value) {\r\n this.addResultExtension(\'success\', value);\r\n };\r\n\r\n setDuration(diffInSeconds) {\r\n const seconds = diffInSeconds % 60;\r\n const minutes = Math.floor(diffInSeconds / 60) % 60;\r\n const hours = Math.floor(diffInSeconds / 3600) % 24;\r\n const days = Math.floor(diffInSeconds / 86400);\r\n\r\n // Construct the ISO 8601 duration string\r\n const isoDuration = `P${days}DT${hours}H${minutes}M${seconds}S`;\r\n this.addResultExtension(\'duration\', isoDuration);\r\n };\r\n\r\n setResponse(value) {\r\n this.addResultExtension(\'response\', value);\r\n };\r\n\r\n setProgress(value) {\r\n this.addResultExtension(\'progress\', value);\r\n };\r\n\r\n setVar(key,value) {\r\n this.addResultExtension(key,value);\r\n };\r\n\r\n addResultExtension(key,value) {\r\n this.result.setExtension(key, value);\r\n };\r\n\r\n toXAPI() {\r\n var xapiTrace={}\r\n if(this.id) {\r\n xapiTrace.id = this.id;\r\n }\r\n if(this.actor) {\r\n xapiTrace.actor = this.actor.toXAPI();\r\n }\r\n if(this.verb) {\r\n xapiTrace.verb = this.verb.toXAPI();\r\n }\r\n if(this.object) {\r\n xapiTrace.object = this.object.toXAPI();\r\n }\r\n if(this.timestamp) {\r\n xapiTrace.timestamp = this.timestamp.toISOString();\r\n }\r\n if(this.context) {\r\n xapiTrace.context = this.context.toXAPI();\r\n }\r\n if(this.version) {\r\n xapiTrace.version = this.version;\r\n }\r\n if(!this.result.isEmpty()) {\r\n xapiTrace.result = this.result.toXAPI();\r\n }\r\n return xapiTrace;\r\n }\r\n\r\n toCSV() {\r\n var csv=[];\r\n csv.push(this.timestamp.toISOString());\r\n csv.push(this.verb.toCSV());\r\n csv.push(this.object.toCSV());\r\n var result=\'\';\r\n if(!this.result.isEmpty()) {\r\n result=this.result.toCSV();\r\n }\r\n return `${csv.join(",")}${result}`;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/Statement.js?')},"./src/HighLevel/Statement/VerbStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ VerbStatement)\n/* harmony export */ });\nclass VerbStatement {\r\n constructor(verbId) {\r\n this.verbId = this.verbIds[verbId];\r\n this.verbDisplay = verbId;\r\n }\r\n verbIds = {\r\n //Completable Verbs\r\n initialized: 'http://adlnet.gov/expapi/verbs/initialized',\r\n progressed: 'http://adlnet.gov/expapi/verbs/progressed',\r\n completed: 'http://adlnet.gov/expapi/verbs/completed',\r\n //Accessible Verbs\r\n accessed: 'https://w3id.org/xapi/seriousgames/verbs/accessed',\r\n skipped: 'http://id.tincanapi.com/verb/skipped',\r\n //Alternative Verbs\r\n selected: 'https://w3id.org/xapi/adb/verbs/selected',\r\n unlocked: 'https://w3id.org/xapi/seriousgames/verbs/unlocked',\r\n //GameObject Verbs\r\n interacted: 'http://adlnet.gov/expapi/verbs/interacted',\r\n used: 'https://w3id.org/xapi/seriousgames/verbs/used'\r\n };\r\n verbId;\r\n verbDisplay;\r\n\r\n toXAPI() {\r\n var verb = {}\r\n if(this.verbId) {\r\n verb.id = this.verbId;\r\n }\r\n \r\n if(this.verbDisplay) {\r\n verb.display = { \"en\": this.verbDisplay };\r\n }\r\n return verb;\r\n }\r\n\r\n toCSV() {\r\n return this.verbId;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/VerbStatement.js?")},"./src/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESSIBLETYPE: () => (/* reexport safe */ _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__.ACCESSIBLETYPE),\n/* harmony export */ ALTERNATIVETYPE: () => (/* reexport safe */ _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__.ALTERNATIVETYPE),\n/* harmony export */ AccessibleTracker: () => (/* reexport safe */ _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__.AccessibleTracker),\n/* harmony export */ AlternativeTracker: () => (/* reexport safe */ _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__.AlternativeTracker),\n/* harmony export */ COMPLETABLETYPE: () => (/* reexport safe */ _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__.COMPLETABLETYPE),\n/* harmony export */ CompletableTracker: () => (/* reexport safe */ _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__.CompletableTracker),\n/* harmony export */ GAMEOBJECTTYPE: () => (/* reexport safe */ _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__.GAMEOBJECTTYPE),\n/* harmony export */ GameObjectTracker: () => (/* reexport safe */ _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__.GameObjectTracker),\n/* harmony export */ xAPITrackerAsset: () => (/* reexport safe */ _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__["default"]),\n/* harmony export */ xAPITrackerAssetOAuth1: () => (/* reexport safe */ _Auth_OAuth1_js__WEBPACK_IMPORTED_MODULE_1__["default"]),\n/* harmony export */ xAPITrackerAssetOAuth2: () => (/* reexport safe */ _Auth_OAuth2_js__WEBPACK_IMPORTED_MODULE_2__["default"])\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./xAPITrackerAsset.js */ "./src/xAPITrackerAsset.js");\n/* harmony import */ var _Auth_OAuth1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Auth/OAuth1.js */ "./src/Auth/OAuth1.js");\n/* harmony import */ var _Auth_OAuth2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Auth/OAuth2.js */ "./src/Auth/OAuth2.js");\n/* harmony import */ var _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HighLevel/Accessible.js */ "./src/HighLevel/Accessible.js");\n/* harmony import */ var _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HighLevel/Completable.js */ "./src/HighLevel/Completable.js");\n/* harmony import */ var _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HighLevel/Alternative.js */ "./src/HighLevel/Alternative.js");\n/* harmony import */ var _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./HighLevel/GameObject.js */ "./src/HighLevel/GameObject.js");\n// src/index.js\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/index.js?')},"./src/xAPITrackerAsset.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ xAPITrackerAsset)\n/* harmony export */ });\n/* harmony import */ var _xapi_xapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @xapi/xapi */ \"./node_modules/@xapi/xapi/dist/XAPI.umd.js\");\n/* harmony import */ var _HighLevel_Statement_ActorStatement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HighLevel/Statement/ActorStatement.js */ \"./src/HighLevel/Statement/ActorStatement.js\");\n/* harmony import */ var _HighLevel_Statement_ContextStatement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HighLevel/Statement/ContextStatement.js */ \"./src/HighLevel/Statement/ContextStatement.js\");\n/* harmony import */ var _HighLevel_Statement_Statement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HighLevel/Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nclass xAPITrackerAsset {\r\n constructor(endpoint, backup_endpoint, auth, homePage, token, defaultUri, debug) {\r\n this.updateAuth(endpoint, backup_endpoint, auth, homePage, token, defaultUri, debug);\r\n }\r\n\r\n updateAuth(endpoint, backup_endpoint, auth, homePage, token, defaultUri, debug) {\r\n this.online=false;\r\n this.endpoint = endpoint;\r\n if(backup_endpoint) {\r\n this.backup = true;\r\n this.backupType = \"CSV\";\r\n this.backup_endpoint = backup_endpoint;\r\n }\r\n this.auth = auth;\r\n this.homePage = homePage;\r\n this.token = token;\r\n this.actor=new _HighLevel_Statement_ActorStatement_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](token, token, homePage);\r\n this.context = new _HighLevel_Statement_ContextStatement_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\r\n if(this.auth != null) {\r\n this.xapi = new _xapi_xapi__WEBPACK_IMPORTED_MODULE_0__({\r\n endpoint: endpoint,\r\n auth: auth\r\n });\r\n }\r\n this.defaultUri=defaultUri;\r\n this.debug=debug;\r\n this.statementsToSend=[];\r\n this.backupToSend=[];\r\n if(this.auth) {\r\n this.online=true;\r\n console.log(\"XAPI Tracker for Serious Games Online\");\r\n if(this.statementsToSend.length > 0) {\r\n this.sendEnqueuedStatements();\r\n }\r\n } else {\r\n console.log(\"XAPI Tracker for Serious Games Offline\");\r\n }\r\n }\r\n \r\n xapi;\r\n endpoint;\r\n auth;\r\n homePage;\r\n token;\r\n defaultUri;\r\n debug;\r\n backup_endpoint;\r\n backup=false;\r\n backupType;\r\n statementsToSend=[];\r\n backupToSend=[];\r\n backupRequestParameters;\r\n Trace(verbId, objectType, objectId) {\r\n var statement=new _HighLevel_Statement_Statement_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this.actor, verbId, objectId, objectType, this.context, this.defaultUri);\r\n return statement;\r\n }\r\n\r\n async sendBackup(traceFormat=\"CSV\") {\r\n if (this.backup_endpoint && this.backup_endpoint.trim()) {\r\n let contentType;\r\n switch (traceFormat) {\r\n case 'XAPI':\r\n contentType = 'application/json';\r\n break;\r\n case 'CSV':\r\n contentType = 'text/csv';\r\n break;\r\n }\r\n const body = {\r\n tofile: true,\r\n result: this.backupToSend.join('\\n'),\r\n contentType: contentType\r\n };\r\n\r\n // Initialize request object\r\n const myRequest = {\r\n url: this.backup_endpoint,\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': this.auth || '',\r\n 'Content-Type': 'application/json'\r\n },\r\n data: JSON.stringify(body, null, 2)\r\n };\r\n\r\n // Add custom parameters from config file\r\n if (this.backupRequestParameters) {\r\n // Content type\r\n if (this.backupRequestParameters.content_type) {\r\n myRequest.headers['Content-Type'] = this.backupRequestParameters.content_type;\r\n }\r\n\r\n // Request headers\r\n if (this.backupRequestParameters.headers && typeof this.backupRequestParameters.headers === 'object') {\r\n Object.entries(this.backupRequestParameters.headers).forEach(([key, value]) => {\r\n myRequest.headers[key] = value;\r\n });\r\n }\r\n\r\n // Request query parameters\r\n if (this.backupRequestParameters.query_parameters && typeof this.backupRequestParameters.query_parameters === 'object') {\r\n const queryParams = new URLSearchParams(this.backupRequestParameters.query_parameters).toString();\r\n myRequest.url += `?${queryParams}`;\r\n }\r\n }\r\n\r\n try {\r\n // Perform the HTTP request\r\n const response = await (0,axios__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(myRequest);\r\n console.log(response);\r\n } catch (error) {\r\n if (error.response) {\r\n const status = error.response.status;\r\n const errorMessage = error.response.data || error.message;\r\n\r\n switch (status) {\r\n case 401: // Unauthorized\r\n State = 'Errored';\r\n ErrorMessage = `Unauthorized: ${errorMessage}`;\r\n if (authorization) authorization.unauthorized(error);\r\n break;\r\n case 403: // Forbidden\r\n State = 'Errored';\r\n ErrorMessage = `Forbidden: ${errorMessage}`;\r\n if (authorization) authorization.forbidden(error);\r\n break;\r\n default:\r\n State = 'Errored';\r\n console.error(`[TRACKER: Backup Processor] Backup upload returned status ${status} with message: ${errorMessage}`);\r\n break;\r\n }\r\n\r\n throw error;\r\n } else {\r\n throw new Error(`Request failed: ${error.message}`);\r\n }\r\n }\r\n }\r\n }\r\n \r\n async sendEnqueuedStatements() {\r\n await this.xapi.sendStatements({statements: this.statementsToSend})\r\n .then((result) => {\r\n this.statementsToSend = [];\r\n }).catch(console.error);\r\n }\r\n\r\n async sendbackupStatements() {\r\n this.backupToSend;\r\n }\r\n\r\n async enqueue(statement) {\r\n if(this.debug !== null && this.debug) {\r\n console.debug(statement.toXAPI());\r\n console.debug(statement.toCSV());\r\n }\r\n if(this.online) {\r\n var statements = [statement.toXAPI()];\r\n await this.xapi.sendStatements({statements: statements})\r\n .then((result) => {\r\n if(this.debug !== null && this.debug) {\r\n console.debug(result);\r\n }\r\n }).catch(async (error) => {\r\n console.error(error);\r\n this.statementsToSend.push(statement.toXAPI());\r\n await this.sendEnqueuedStatements();\r\n });\r\n } else {\r\n this.statementsToSend.push(statement.toXAPI());\r\n };\r\n if((this.backupType == \"CSV\")) {\r\n this.backupToSend.push(statement.toCSV());\r\n } else if((this.backupType == \"XAPI\")) {\r\n this.backupToSend.push(statement.toXAPI());\r\n }\r\n \r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/xAPITrackerAsset.js?")}},__webpack_module_cache__={};function __webpack_require__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/index.js");return __webpack_exports__})())); \ No newline at end of file +!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(self,(()=>(()=>{var __webpack_modules__={"./node_modules/@xapi/xapi/dist/XAPI.umd.js":function(module,__unused_webpack_exports,__webpack_require__){eval('!function(e,t){ true?module.exports=t():0}(this,(function(){"use strict";let e=function(e){return e.SIGNATURE="http://adlnet.gov/expapi/attachments/signature",e.CERTIFICATE_OF_COMPLETION="http://id.tincanapi.com/attachment/certificate-of-completion",e.CONTRACT="http://id.tincanapi.com/attachment/contract",e.SUPPORTING_MEDIA="http://id.tincanapi.com/attachment/supporting_media",e}({}),t=function(e){return e.ABOUT="about",e.AGENTS="agents",e.ACTIVITIES="activities",e.ACTIVITY_PROFILE="activities/profile",e.STATE="activities/state",e.AGENT_PROFILE="agents/profile",e.STATEMENT="statements",e}({});class n{static INITIALIZED={id:"http://adlnet.gov/expapi/verbs/initialized",display:{"en-US":"initialized"}};static TERMINATED={id:"http://adlnet.gov/expapi/verbs/terminated",display:{"en-US":"terminated"}};static SUSPENDED={id:"http://adlnet.gov/expapi/verbs/suspended",display:{"en-US":"suspended"}};static RESUMED={id:"http://adlnet.gov/expapi/verbs/resumed",display:{"en-US":"resumed"}};static PASSED={id:"http://adlnet.gov/expapi/verbs/passed",display:{"en-US":"passed"}};static FAILED={id:"http://adlnet.gov/expapi/verbs/failed",display:{"en-US":"failed"}};static SCORED={id:"http://adlnet.gov/expapi/verbs/scored",display:{"en-US":"scored"}};static COMPLETED={id:"http://adlnet.gov/expapi/verbs/completed",display:{"en-US":"completed"}};static RESPONDED={id:"http://adlnet.gov/expapi/verbs/responded",display:{"en-US":"responded"}};static COMMENTED={id:"http://adlnet.gov/expapi/verbs/commented",display:{"en-US":"commented"}};static VOIDED={id:"http://adlnet.gov/expapi/verbs/voided",display:{"en-US":"voided"}};static PROGRESSED={id:"http://adlnet.gov/expapi/verbs/progressed",display:{"en-US":"progressed"}};static ANSWERED={id:"http://adlnet.gov/expapi/verbs/answered",display:{"en-US":"answered"}}}const r="\\r\\n";function o(e,t){const n=[],o=(Math.random()+" ").substring(2,10)+(Math.random()+" ").substring(2,10),s={"Content-Type":`multipart/mixed; boundary=${o}`};n.push(function(e,t){return[`--${t}`,"Content-Type: application/json",\'Content-Disposition: form-data; name="statement"\',"",JSON.stringify(e)].join(r)+r}(e,o));const i=Array.isArray(e)?e.reduce(((e,t)=>e.concat(t.attachments)),[]):e.attachments;return t.forEach(((e,t)=>{const s=i[t];n.push(function(e,t){return[`--${t}`,`Content-Type: ${e.contentType}`,"Content-Transfer-Encoding: binary",`X-Experience-API-Hash: ${e.sha2}`].join(r)+r+r}(s,o)),n.push(e)})),n.push(`${r}--${o}--${r}`),{header:s,blob:new Blob(n)}}function s(e){const t={};if(-1===e.indexOf("?"))return t;let n=e.substring(e.indexOf("?"));if(n=n.split("#").shift(),!n)return t;return new URLSearchParams(n).forEach(((e,n)=>{try{t[n]=JSON.parse(e)}catch{t[n]=e}var r;"actor"===n&&(t.actor=(r=t.actor,["name","mbox","account"].forEach((e=>{Array.isArray(r[e])&&(r[e]="account"===e?{...!!r.account[0].accountServiceHomePage&&{homePage:r.account[0].accountServiceHomePage},...!!r.account[0].accountName&&{name:r.account[0].accountName}}:r[e][0])})),r))})),t}const i=6e4,a=36e5,c=864e5;function u(e,t){const n=t.getTime()-e.getTime();if(n<=0)return"PT0S";const r=Math.floor(n/c),o=n%c,s=Math.floor(o/a),u=o%a,l=Math.floor(u/i),d=u%i/1e3;return`P${r?r+"D":""}T${s?s+"H":""}${l?l+"M":""}${d?d+"S":""}`}function l(e,t){return function(){return e.apply(t,arguments)}}const{toString:d}=Object.prototype,{getPrototypeOf:f}=Object,p=(h=Object.create(null),e=>{const t=d.call(e);return h[t]||(h[t]=t.slice(8,-1).toLowerCase())});var h;const m=e=>(e=e.toLowerCase(),t=>p(t)===e),y=e=>t=>typeof t===e,{isArray:g}=Array,E=y("undefined");const b=m("ArrayBuffer");const T=y("string"),S=y("function"),w=y("number"),O=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==p(e))return!1;const t=f(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},R=m("Date"),A=m("File"),P=m("Blob"),C=m("FileList"),I=m("URLSearchParams"),[q,x,N,L]=["ReadableStream","Request","Response","Headers"].map(m);function j(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),g(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:__webpack_require__.g,_=e=>!E(e)&&e!==B;const D=(F="undefined"!=typeof Uint8Array&&f(Uint8Array),e=>F&&e instanceof F);var F;const k=m("HTMLFormElement"),M=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),H=m("RegExp"),$=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};j(n,((n,o)=>{let s;!1!==(s=t(n,o,e))&&(r[o]=s||n)})),Object.defineProperties(e,r)},z="abcdefghijklmnopqrstuvwxyz",V="0123456789",J={DIGIT:V,ALPHA:z,ALPHA_DIGIT:z+z.toUpperCase()+V};const G=m("AsyncFunction"),W=(K="function"==typeof setImmediate,X=S(B.postMessage),K?setImmediate:X?(Y=`axios@${Math.random()}`,Q=[],B.addEventListener("message",(({source:e,data:t})=>{e===B&&t===Y&&Q.length&&Q.shift()()}),!1),e=>{Q.push(e),B.postMessage(Y,"*")}):e=>setTimeout(e));var K,X,Y,Q;const Z="undefined"!=typeof queueMicrotask?queueMicrotask.bind(B):"undefined"!=typeof process&&process.nextTick||W;var ee={isArray:g,isArrayBuffer:b,isBuffer:function(e){return null!==e&&!E(e)&&null!==e.constructor&&!E(e.constructor)&&S(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||S(e.append)&&("formdata"===(t=p(e))||"object"===t&&S(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&b(e.buffer),t},isString:T,isNumber:w,isBoolean:e=>!0===e||!1===e,isObject:O,isPlainObject:v,isReadableStream:q,isRequest:x,isResponse:N,isHeaders:L,isUndefined:E,isDate:R,isFile:A,isBlob:P,isRegExp:H,isFunction:S,isStream:e=>O(e)&&S(e.pipe),isURLSearchParams:I,isTypedArray:D,isFileList:C,forEach:j,merge:function e(){const{caseless:t}=_(this)&&this||{},n={},r=(r,o)=>{const s=t&&U(n,o)||o;v(n[s])&&v(r)?n[s]=e(n[s],r):v(r)?n[s]=e({},r):g(r)?n[s]=r.slice():n[s]=r};for(let e=0,t=arguments.length;e(j(t,((t,r)=>{n&&S(t)?e[r]=l(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,s,i;const a={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)i=o[s],r&&!r(i,e,t)||a[i]||(t[i]=e[i],a[i]=!0);e=!1!==n&&f(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:p,kindOfTest:m,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(g(e))return e;let t=e.length;if(!w(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:k,hasOwnProperty:M,hasOwnProp:M,reduceDescriptors:$,freezeMethods:e=>{$(e,((t,n)=>{if(S(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];S(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method \'"+n+"\'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return g(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:U,global:B,isContextDefined:_,ALPHABET:J,generateString:(e=16,t=J.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&S(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(O(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=g(e)?[]:{};return j(e,((e,t)=>{const s=n(e,r+1);!E(s)&&(o[t]=s)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:G,isThenable:e=>e&&(O(e)||S(e))&&S(e.then)&&S(e.catch),setImmediate:W,asap:Z};function te(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}ee.inherits(te,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ee.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ne=te.prototype,re={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{re[e]={value:e}})),Object.defineProperties(te,re),Object.defineProperty(ne,"isAxiosError",{value:!0}),te.from=(e,t,n,r,o,s)=>{const i=Object.create(ne);return ee.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),te.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};function oe(e){return ee.isPlainObject(e)||ee.isArray(e)}function se(e){return ee.endsWith(e,"[]")?e.slice(0,-2):e}function ie(e,t,n){return e?e.concat(t).map((function(e,t){return e=se(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const ae=ee.toFlatObject(ee,{},null,(function(e){return/^is[A-Z]/.test(e)}));function ce(e,t,n){if(!ee.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=ee.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ee.isUndefined(t[e])}))).metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&ee.isSpecCompliantForm(t);if(!ee.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(ee.isDate(e))return e.toISOString();if(!a&&ee.isBlob(e))throw new te("Blob is not supported. Use a Buffer instead.");return ee.isArrayBuffer(e)||ee.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,n,o){let a=e;if(e&&!o&&"object"==typeof e)if(ee.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(ee.isArray(e)&&function(e){return ee.isArray(e)&&!e.some(oe)}(e)||(ee.isFileList(e)||ee.endsWith(n,"[]"))&&(a=ee.toArray(e)))return n=se(n),a.forEach((function(e,r){!ee.isUndefined(e)&&null!==e&&t.append(!0===i?ie([n],r,s):null===i?n:n+"[]",c(e))})),!1;return!!oe(e)||(t.append(ie(o,n,s),c(e)),!1)}const l=[],d=Object.assign(ae,{defaultVisitor:u,convertValue:c,isVisitable:oe});if(!ee.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!ee.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),ee.forEach(n,(function(n,s){!0===(!(ee.isUndefined(n)||null===n)&&o.call(t,n,ee.isString(s)?s.trim():s,r,d))&&e(n,r?r.concat(s):[s])})),l.pop()}}(e),t}function ue(e){const t={"!":"%21","\'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\\0"};return encodeURIComponent(e).replace(/[!\'()~]|%20|%00/g,(function(e){return t[e]}))}function le(e,t){this._pairs=[],e&&ce(e,this,t)}const de=le.prototype;function fe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function pe(e,t,n){if(!t)return e;const r=n&&n.encode||fe,o=n&&n.serialize;let s;if(s=o?o(t,n):ee.isURLSearchParams(t)?t.toString():new le(t,n).toString(r),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}de.append=function(e,t){this._pairs.push([e,t])},de.toString=function(e){const t=e?function(t){return e.call(this,t,ue)}:ue;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class he{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){ee.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var me={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ye={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:le,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ge="undefined"!=typeof window&&"undefined"!=typeof document,Ee=(be="undefined"!=typeof navigator&&navigator.product,ge&&["ReactNative","NativeScript","NS"].indexOf(be)<0);var be;const Te="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Se=ge&&window.location.href||"http://localhost";var we={...Object.freeze({__proto__:null,hasBrowserEnv:ge,hasStandardBrowserEnv:Ee,hasStandardBrowserWebWorkerEnv:Te,origin:Se}),...ye};function Oe(e){function t(e,n,r,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&ee.isArray(r)?r.length:s,a)return ee.hasOwnProp(r,s)?r[s]=[r[s],n]:r[s]=n,!i;r[s]&&ee.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&ee.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r{t(function(e){return ee.matchAll(/\\w+|\\[(\\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ve={transitional:me,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=ee.isObject(e);o&&ee.isHTMLForm(e)&&(e=new FormData(e));if(ee.isFormData(e))return r?JSON.stringify(Oe(e)):e;if(ee.isArrayBuffer(e)||ee.isBuffer(e)||ee.isStream(e)||ee.isFile(e)||ee.isBlob(e)||ee.isReadableStream(e))return e;if(ee.isArrayBufferView(e))return e.buffer;if(ee.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return ce(e,new we.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return we.isNode&&ee.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=ee.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return ce(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(ee.isString(e))try{return(t||JSON.parse)(e),ee.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ve.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(ee.isResponse(e)||ee.isReadableStream(e))return e;if(e&&ee.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw te.from(e,te.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:we.classes.FormData,Blob:we.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ee.forEach(["delete","get","head","post","put","patch"],(e=>{ve.headers[e]={}}));var Re=ve;const Ae=ee.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Pe=Symbol("internals");function Ce(e){return e&&String(e).trim().toLowerCase()}function Ie(e){return!1===e||null==e?e:ee.isArray(e)?e.map(Ie):String(e)}function qe(e,t,n,r,o){return ee.isFunction(r)?r.call(this,t,n):(o&&(t=n),ee.isString(t)?ee.isString(r)?-1!==t.indexOf(r):ee.isRegExp(r)?r.test(t):void 0:void 0)}class xe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Ce(t);if(!o)throw new Error("header name must be a non-empty string");const s=ee.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=Ie(e))}const s=(e,t)=>ee.forEach(e,((e,n)=>o(e,n,t)));if(ee.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(ee.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&\'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,o;return e&&e.split("\\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&Ae[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(ee.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=Ce(e)){const n=ee.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(ee.isFunction(t))return t.call(this,e,n);if(ee.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ce(e)){const n=ee.findKey(this,e);return!(!n||void 0===this[n]||t&&!qe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Ce(e)){const o=ee.findKey(n,e);!o||t&&!qe(0,n[o],o,t)||(delete n[o],r=!0)}}return ee.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!qe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return ee.forEach(this,((r,o)=>{const s=ee.findKey(n,o);if(s)return t[s]=Ie(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();i!==o&&delete t[o],t[i]=Ie(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ee.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&ee.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Pe]=this[Pe]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Ce(e);t[r]||(!function(e,t){const n=ee.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return ee.isArray(e)?e.forEach(r):r(e),this}}xe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ee.reduceDescriptors(xe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),ee.freezeMethods(xe);var Ne=xe;function Le(e,t){const n=this||Re,r=t||n,o=Ne.from(r.headers);let s=r.data;return ee.forEach(e,(function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function je(e){return!(!e||!e.__CANCEL__)}function Ue(e,t,n){te.call(this,null==e?"canceled":e,te.ERR_CANCELED,t,n),this.name="CanceledError"}function Be(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new te("Request failed with status code "+n.status,[te.ERR_BAD_REQUEST,te.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}ee.inherits(Ue,te,{__CANCEL__:!0});const _e=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),u=r[i];o||(o=c),n[s]=a,r[s]=c;let l=i,d=0;for(;l!==s;)d+=n[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o{o=s,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(n=e,r||(r=setTimeout((()=>{r=null,i(n)}),s-a)))},()=>n&&i(n)]}((n=>{const s=n.loaded,i=n.lengthComputable?n.total:void 0,a=s-r,c=o(a);r=s;e({loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:n,lengthComputable:null!=i,[t?"download":"upload"]:!0})}),n)},De=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Fe=e=>(...t)=>ee.asap((()=>e(...t)));var ke=we.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=ee.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Me=we.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];ee.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),ee.isString(r)&&i.push("path="+r),ee.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function He(e,t){return e&&!/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t)?function(e,t){return t?e.replace(/\\/?\\/$/,"")+"/"+t.replace(/^\\/+/,""):e}(e,t):t}const $e=e=>e instanceof Ne?{...e}:e;function ze(e,t){t=t||{};const n={};function r(e,t,n){return ee.isPlainObject(e)&&ee.isPlainObject(t)?ee.merge.call({caseless:n},e,t):ee.isPlainObject(t)?ee.merge({},t):ee.isArray(t)?t.slice():t}function o(e,t,n){return ee.isUndefined(t)?ee.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function s(e,t){if(!ee.isUndefined(t))return r(void 0,t)}function i(e,t){return ee.isUndefined(t)?ee.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return s in t?r(n,o):s in e?r(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>o($e(e),$e(t),!0)};return ee.forEach(Object.keys(Object.assign({},e,t)),(function(r){const s=c[r]||o,i=s(e[r],t[r],r);ee.isUndefined(i)&&s!==a||(n[r]=i)})),n}var Ve=e=>{const t=ze({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:c}=t;if(t.headers=a=Ne.from(a),t.url=pe(He(t.baseURL,t.url),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ee.isFormData(r))if(we.hasStandardBrowserEnv||we.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(n=a.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(we.hasStandardBrowserEnv&&(o&&ee.isFunction(o)&&(o=o(t)),o||!1!==o&&ke(t.url))){const e=s&&i&&Me.read(i);e&&a.set(s,e)}return t};var Je="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=Ve(e);let o=r.data;const s=Ne.from(r.headers).normalize();let i,a,c,u,l,{responseType:d,onUploadProgress:f,onDownloadProgress:p}=r;function h(){u&&u(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(i),r.signal&&r.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function y(){if(!m)return;const r=Ne.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Be((function(e){t(e),h()}),(function(e){n(e),h()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(n(new te("Request aborted",te.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new te("Network Error",te.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||me;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new te(t,o.clarifyTimeoutError?te.ETIMEDOUT:te.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&ee.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),ee.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([c,l]=_e(p,!0),m.addEventListener("progress",c)),f&&m.upload&&([a,u]=_e(f),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",u)),(r.cancelToken||r.signal)&&(i=t=>{m&&(n(!t||t.type?new Ue(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(i),r.signal&&(r.signal.aborted?i():r.signal.addEventListener("abort",i)));const g=function(e){const t=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(e);return t&&t[1]||""}(r.url);g&&-1===we.protocols.indexOf(g)?n(new te("Unsupported protocol "+g+":",te.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Ge=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,i();const t=e instanceof Error?e:this.reason;r.abort(t instanceof te?t:new Ue(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{o(new te(`timeout ${t} of ms exceeded`,te.ETIMEDOUT))}),t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:a}=r;return a.unsubscribe=i,[a,()=>{s&&clearTimeout(s),s=null}]},We=function*(e,t){let n=e.byteLength;if(!t||n{const s=async function*(e,t,n){for await(const r of e)yield*We(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let i,a=0,c=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await s.next();if(t)return c(),void e.close();let o=r.byteLength;if(n){let e=a+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw c(e),e}},cancel:e=>(c(e),s.return())},{highWaterMark:2})},Xe="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Ye=Xe&&"function"==typeof ReadableStream,Qe=Xe&&("function"==typeof TextEncoder?(Ze=new TextEncoder,e=>Ze.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ze;const et=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},tt=Ye&&et((()=>{let e=!1;const t=new Request(we.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),nt=Ye&&et((()=>ee.isReadableStream(new Response("").body))),rt={stream:nt&&(e=>e.body)};var ot;Xe&&(ot=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!rt[e]&&(rt[e]=ee.isFunction(ot[e])?t=>t[e]():(t,n)=>{throw new te(`Response type \'${e}\' is not supported`,te.ERR_NOT_SUPPORT,n)})})));const st=async(e,t)=>{const n=ee.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:ee.isBlob(e)?e.size:ee.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:ee.isArrayBufferView(e)||ee.isArrayBuffer(e)?e.byteLength:(ee.isURLSearchParams(e)&&(e+=""),ee.isString(e)?(await Qe(e)).byteLength:void 0))(t):n};const it={http:null,xhr:Je,fetch:Xe&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:s,timeout:i,onDownloadProgress:a,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:f}=Ve(e);u=u?(u+"").toLowerCase():"text";let p,h,[m,y]=o||s||i?Ge([o,s],i):[];const g=()=>{!p&&setTimeout((()=>{m&&m.unsubscribe()})),p=!0};let E;try{if(c&&tt&&"get"!==n&&"head"!==n&&0!==(E=await st(l,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(ee.isFormData(r)&&(e=n.headers.get("content-type"))&&l.setContentType(e),n.body){const[e,t]=De(E,_e(Fe(c)));r=Ke(n.body,65536,e,t,Qe)}}ee.isString(d)||(d=d?"include":"omit"),h=new Request(t,{...f,signal:m,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:r,duplex:"half",credentials:d});let o=await fetch(h);const s=nt&&("stream"===u||"response"===u);if(nt&&(a||s)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=ee.toFiniteNumber(o.headers.get("content-length")),[n,r]=a&&De(t,_e(Fe(a),!0))||[];o=new Response(Ke(o.body,65536,n,(()=>{r&&r(),s&&g()}),Qe),e)}u=u||"text";let i=await rt[ee.findKey(rt,u)||"text"](o,e);return!s&&g(),y&&y(),await new Promise(((t,n)=>{Be(t,n,{data:i,headers:Ne.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:h})}))}catch(t){if(g(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new te("Network Error",te.ERR_NETWORK,e,h),{cause:t.cause||t});throw te.from(t,t&&t.code,e,h)}})};ee.forEach(it,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const at=e=>`- ${e}`,ct=e=>ee.isFunction(e)||null===e||!1===e;var ut=e=>{e=ee.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let s=0;s`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new te("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\\n"+e.map(at).join("\\n"):" "+at(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function lt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ue(null,e)}function dt(e){lt(e),e.headers=Ne.from(e.headers),e.data=Le.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ut(e.adapter||Re.adapter)(e).then((function(t){return lt(e),t.data=Le.call(e,e.transformResponse,t),t.headers=Ne.from(t.headers),t}),(function(t){return je(t)||(lt(e),t&&t.response&&(t.response.data=Le.call(e,e.transformResponse,t.response),t.response.headers=Ne.from(t.response.headers))),Promise.reject(t)}))}const ft="1.7.4",pt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{pt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const ht={};pt.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.4] Transitional option \'"+e+"\'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new te(r(o," has been removed"+(t?" in "+t:"")),te.ERR_DEPRECATED);return t&&!ht[o]&&(ht[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,s)}};var mt={assertOptions:function(e,t,n){if("object"!=typeof e)throw new te("options must be an object",te.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new te("option "+s+" must be "+n,te.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new te("Unknown option "+s,te.ERR_BAD_OPTION)}},validators:pt};const yt=mt.validators;class gt{constructor(e){this.defaults=e,this.interceptors={request:new he,response:new he}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\\n.+\\n/,""))&&(e.stack+="\\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=ze(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&mt.assertOptions(n,{silentJSONParsing:yt.transitional(yt.boolean),forcedJSONParsing:yt.transitional(yt.boolean),clarifyTimeoutError:yt.transitional(yt.boolean)},!1),null!=r&&(ee.isFunction(r)?t.paramsSerializer={serialize:r}:mt.assertOptions(r,{encode:yt.function,serialize:yt.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&ee.merge(o.common,o[t.method]);o&&ee.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Ne.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!a){const e=[dt.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new Ue(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new bt((function(t){e=t})),cancel:e}}}var Tt=bt;const St={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(St).forEach((([e,t])=>{St[t]=e}));var wt=St;const Ot=function e(t){const n=new Et(t),r=l(Et.prototype.request,n);return ee.extend(r,Et.prototype,n,{allOwnKeys:!0}),ee.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(ze(t,n))},r}(Re);Ot.Axios=Et,Ot.CanceledError=Ue,Ot.CancelToken=Tt,Ot.isCancel=je,Ot.VERSION=ft,Ot.toFormData=ce,Ot.AxiosError=te,Ot.Cancel=Ot.CanceledError,Ot.all=function(e){return Promise.all(e)},Ot.spread=function(e){return function(t){return e.apply(null,t)}},Ot.isAxiosError=function(e){return ee.isObject(e)&&!0===e.isAxiosError},Ot.mergeConfig=ze,Ot.AxiosHeaders=Ne,Ot.formToJSON=e=>Oe(ee.isHTMLForm(e)?new FormData(e):e),Ot.getAdapter=ut,Ot.HttpStatusCode=wt,Ot.default=Ot;const vt=({url:e,method:t,data:n,headers:r})=>Ot.request({url:e,method:t,data:n,headers:r}).then((({data:e,headers:t,status:n})=>({data:e,headers:t,status:n}))),Rt=async({url:e,method:t,data:n,headers:r})=>{let o=n;"application/json"===r["Content-Type"]&&(o=JSON.stringify(o));const s=await fetch(e,{method:t,body:o,headers:r});if(!s.ok){const e=await s.text();throw new Error(e)}let i=await s.text();try{i=JSON.parse(i)}catch{}return{data:i,headers:Object.fromEntries(s.headers.entries()),status:s.status}},At=e=>"function"==typeof e?e:"fetch"===e?Rt:vt;function Pt(e){if("undefined"==typeof location)return Promise.reject(new Error("Environment does not support location.search"));const t=s(location.search);if(!t.xAPILaunchService)return Promise.reject(new Error("xAPILaunchService parameter not found in URL."));const n=new URL(t.xAPILaunchService);n.pathname+=`launch/${t.xAPILaunchKey}`;return At(e.adapter)({method:"POST",url:n.toString()}).then((e=>e.data))}function Ct(){if("undefined"==typeof location)throw new Error("Environment does not support location.search");return s(location.search)}function It(e,t){const n=`${e}:${t}`;if("function"==typeof btoa)return`Basic ${btoa(n)}`;if("undefined"!=typeof Buffer)return`Basic ${Buffer.from(n,"binary").toString("base64")}`;throw new Error("Environment does not support base64 conversion.")}class qt{static default=qt;static AttachmentUsages=e;static Verbs=n;static calculateISO8601Duration=u;static getSearchQueryParamsAsObject=s;static getXAPILaunchData=Pt;static getTinCanLaunchData=Ct;static toBasicAuth=It;constructor(e){const t=e.version||"1.0.3";var n;this.endpoint=(n=e.endpoint).endsWith("/")?n:`${n}/`,this.headers={"X-Experience-API-Version":t,"Content-Type":"application/json",Authorization:e.auth?e.auth:It("","")},this.adapter=At(e.adapter)}requestResource(e){var t;const n=Object.assign({},e.queryParams);null!==(t=e.requestOptions)&&void 0!==t&&t.useCacheBuster&&(n.cachebuster=(new Date).getTime().toString());const r=this.generateURL(e.resource,n);return this.requestURL(r,e.requestConfig)}requestURL(e,t){return this.adapter({url:e,method:(null==t?void 0:t.method)||"GET",headers:{...this.headers,...null==t?void 0:t.headers},data:null==t?void 0:t.data}).then((e=>{const t=e.headers["content-type"];return e.data&&t&&-1!==t.indexOf("multipart/mixed")&&(e.data=function(e){const t=e.trim().split(r)[0].trim(),n=e.split(t).map((e=>e.trim())).filter((e=>""!==e&&"--"!==e)),o=[];for(let e=0;e-1&&(i=JSON.parse(i)),o.push(i)}return o}(e.data)),e}))}generateURL(e,t){const n=Object.keys(t).map((e=>{let n="agent"===e?JSON.stringify(t[e]):t[e];return n=encodeURIComponent(n),`${e}=${n}`})).join("&");return`${this.endpoint}${e}${n?"?"+n:""}`}}return qt.prototype.getAbout=function(e){return this.requestResource({resource:t.ABOUT,requestOptions:{useCacheBuster:null==e?void 0:e.useCacheBuster}})},qt.prototype.getActivity=function(e){return this.requestResource({resource:t.ACTIVITIES,queryParams:{activityId:e.activityId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getAgent=function(e){return this.requestResource({resource:t.AGENTS,queryParams:{agent:e.agent},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.createActivityProfile=function(e){const n={};return e.etag&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"POST",data:e.profile,headers:n}})},qt.prototype.setActivityProfile=function(e){const n={};return n[e.matchHeader]=e.etag,e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"PUT",data:e.profile,headers:n}})},qt.prototype.getActivityProfiles=function(e){return this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getActivityProfile=function(e){return this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteActivityProfile=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.ACTIVITY_PROFILE,queryParams:{activityId:e.activityId,profileId:e.profileId},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.createAgentProfile=function(e){const n={};return e.etag&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"POST",data:e.profile,headers:n}})},qt.prototype.setAgentProfile=function(e){const n={};return n[e.matchHeader]=e.etag,e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"PUT",data:e.profile,headers:n}})},qt.prototype.getAgentProfiles=function(e){return this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getAgentProfile=function(e){return this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteAgentProfile=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.AGENT_PROFILE,queryParams:{agent:e.agent,profileId:e.profileId},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.createState=function(e){const n={};return e.etag&&e.matchHeader&&(n[e.matchHeader]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"POST",data:e.state,headers:n}})},qt.prototype.setState=function(e){const n={};return e.etag&&e.matchHeader&&(n[e.matchHeader]=e.etag),e.contentType&&(n["Content-Type"]=e.contentType),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"PUT",data:e.state,headers:n}})},qt.prototype.getStates=function(e){return this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,...!!e.registration&&{registration:e.registration},...!!e.since&&{since:e.since}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getState=function(e){return this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.deleteState=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,stateId:e.stateId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.deleteStates=function(e){const n={};return e.etag&&(n["If-Match"]=e.etag),this.requestResource({resource:t.STATE,queryParams:{agent:e.agent,activityId:e.activityId,...!!e.registration&&{registration:e.registration}},requestConfig:{method:"DELETE",headers:n}})},qt.prototype.getStatement=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{statementId:e.statementId,...!!e.attachments&&{attachments:e.attachments},...!!e.format&&{format:e.format}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getVoidedStatement=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{voidedStatementId:e.voidedStatementId,...!!e.attachments&&{attachments:e.attachments},...!!e.format&&{format:e.format}},requestOptions:{useCacheBuster:e.useCacheBuster}})},qt.prototype.getStatements=function(e){return this.requestResource({resource:t.STATEMENT,queryParams:{...!(null==e||!e.activity)&&{activity:e.activity},...!(null==e||!e.agent)&&{agent:e.agent},...!(null==e||!e.ascending)&&{ascending:e.ascending},...!(null==e||!e.attachments)&&{attachments:e.attachments},...!(null==e||!e.format)&&{format:e.format},...!(null==e||!e.limit)&&{limit:e.limit},...!(null==e||!e.registration)&&{registration:e.registration},...!(null==e||!e.related_activities)&&{related_activities:e.related_activities},...!(null==e||!e.related_agents)&&{related_agents:e.related_agents},...!(null==e||!e.since)&&{since:e.since},...!(null==e||!e.until)&&{until:e.until},...!(null==e||!e.verb)&&{verb:e.verb}},requestOptions:{useCacheBuster:null==e?void 0:e.useCacheBuster}})},qt.prototype.getMoreStatements=function(e){const t=new URL(this.endpoint),n=`${t.protocol}//${t.host}${e.more}`;return this.requestURL(n)},qt.prototype.sendStatement=function(e){var n;if(null===(n=e.attachments)||void 0===n?void 0:n.length){const n=o(e.statement,e.attachments);return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",headers:n.header,data:n.blob}})}return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",data:e.statement}})},qt.prototype.sendStatements=function(e){var n;if(null===(n=e.attachments)||void 0===n?void 0:n.length){const n=o(e.statements,e.attachments);return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",headers:n.header,data:n.blob}})}return this.requestResource({resource:t.STATEMENT,requestConfig:{method:"POST",data:e.statements}})},qt.prototype.voidStatement=function(e){const t={actor:e.actor,verb:n.VOIDED,object:{objectType:"StatementRef",id:e.statementId}};return this.sendStatement({statement:t})},qt.prototype.voidStatements=function(e){const t=e.statementIds.map((t=>({actor:e.actor,verb:n.VOIDED,object:{objectType:"StatementRef",id:t}})));return this.sendStatements({statements:t})},qt}));\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/@xapi/xapi/dist/XAPI.umd.js?')},"./node_modules/ms/index.js":module=>{eval("/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/ms/index.js?")},"./node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n randomUUID\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/native.js?")},"./node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/regex.js?')},"./node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/rng.js?")},"./node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/stringify.js?")},"./node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "./node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "./node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "./node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/v4.js?')},"./node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "./node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/uuid/dist/esm-browser/validate.js?')},"./node_modules/axios/lib/adapters/adapters.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./http.js */ "./node_modules/axios/lib/helpers/null.js");\n/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/axios/lib/adapters/xhr.js");\n/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fetch.js */ "./node_modules/axios/lib/adapters/fetch.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n\n\n\n\n\n\nconst knownAdapters = {\n http: _http_js__WEBPACK_IMPORTED_MODULE_0__["default"],\n xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n fetch: _fetch_js__WEBPACK_IMPORTED_MODULE_2__["default"]\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, \'name\', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, \'adapterName\', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(adapter) || adapter === null || adapter === false;\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n getAdapter: (adapters) => {\n adapters = _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"](`Unknown adapter \'${id}\'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || \'#\' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? \'is not supported by the environment\' : \'is not available in the build\')\n );\n\n let s = length ?\n (reasons.length > 1 ? \'since :\\n\' + reasons.map(renderReason).join(\'\\n\') : \' \' + renderReason(reasons[0])) :\n \'as no adapter specified\';\n\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"](\n `There is no suitable adapter to dispatch the request ` + s,\n \'ERR_NOT_SUPPORT\'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/adapters.js?')},"./node_modules/axios/lib/adapters/fetch.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/composeSignals.js */ "./node_modules/axios/lib/helpers/composeSignals.js");\n/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/trackStream.js */ "./node_modules/axios/lib/helpers/trackStream.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/axios/lib/core/settle.js");\n\n\n\n\n\n\n\n\n\n\nconst isFetchSupported = typeof fetch === \'function\' && typeof Request === \'function\' && typeof Response === \'function\';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === \'function\';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === \'function\' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {\n body: new ReadableStream(),\n method: \'POST\',\n get duplex() {\n duplexAccessed = true;\n return \'half\';\n },\n }).headers.has(\'Content-Type\');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isReadableStream(new Response(\'\').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n [\'text\', \'arrayBuffer\', \'blob\', \'formData\', \'stream\'].forEach(type => {\n !resolvers[type] && (resolvers[type] = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](`Response type \'${type}\' is not supported`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isBlob(body)) {\n return body.size;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isSpecCompliantForm(body)) {\n const _request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, {\n method: \'POST\',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBufferView(body) || _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isURLSearchParams(body)) {\n body = body + \'\';\n }\n\n if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = \'same-origin\',\n fetchOptions\n } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(config);\n\n responseType = responseType ? (responseType + \'\').toLowerCase() : \'text\';\n\n let composedSignal = (0,_helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__["default"])([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== \'get\' && method !== \'head\' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: \'POST\',\n body: data,\n duplex: "half"\n });\n\n let contentTypeHeader;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data) && (contentTypeHeader = _request.headers.get(\'content-type\'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n requestContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onUploadProgress))\n );\n\n data = (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(withCredentials)) {\n withCredentials = withCredentials ? \'include\' : \'omit\';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = "credentials" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: "half",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === \'stream\' || responseType === \'response\');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n [\'status\', \'statusText\', \'headers\'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get(\'content-length\'));\n\n const [onProgress, flush] = onDownloadProgress && (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)(\n responseContentLength,\n (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || \'text\';\n\n let responseData = await resolvers[_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].findKey(resolvers, responseType) || \'text\'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_7__["default"])(resolve, reject, {\n data: responseData,\n headers: _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === \'TypeError\' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](\'Network Error\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].from(err, err && err.code, config, request);\n }\n}));\n\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/fetch.js?')},"./node_modules/axios/lib/adapters/xhr.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../core/settle.js */ "./node_modules/axios/lib/core/settle.js");\n/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/axios/lib/helpers/parseProtocol.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js");\n\n\n\n\n\n\n\n\n\n\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== \'undefined\';\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])(config);\n let requestData = _config.data;\n const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener(\'abort\', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(\n \'getAllResponseHeaders\' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === \'text\' || responseType === \'json\' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if (\'onloadend\' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn\'t get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it\'s a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf(\'file:\') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next \'tick\'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Request aborted\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it\'s a network error\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Network Error\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? \'timeout of \' + _config.timeout + \'ms exceeded\' : \'timeout exceeded\';\n const transitional = _config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__["default"];\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if (\'setRequestHeader\' in request) {\n _utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== \'json\') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onDownloadProgress, true));\n request.addEventListener(\'progress\', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onUploadProgress));\n\n request.upload.addEventListener(\'progress\', uploadThrottled);\n\n request.upload.addEventListener(\'loadend\', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__["default"](null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener(\'abort\', onCanceled);\n }\n }\n\n const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__["default"])(_config.url);\n\n if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_9__["default"].protocols.indexOf(protocol) === -1) {\n reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](\'Unsupported protocol \' + protocol + \':\', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/adapters/xhr.js?')},"./node_modules/axios/lib/axios.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js");\n/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/axios/lib/core/Axios.js");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/axios/lib/cancel/CancelToken.js");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/axios/lib/env/data.js");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/axios/lib/helpers/spread.js");\n/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/axios/lib/helpers/isAxiosError.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");\n/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/axios/lib/helpers/HttpStatusCode.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"](defaultConfig);\n const instance = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.request, context);\n\n // Copy axios.prototype to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance((0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"]);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"];\n\n// Expose Cancel & CancelToken\naxios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__["default"];\naxios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__["default"];\naxios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__["default"];\naxios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_8__.VERSION;\naxios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__["default"];\n\n// Expose AxiosError class\naxios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__["default"];\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__["default"];\n\n// Expose isAxiosError\naxios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__["default"];\n\n// Expose mergeConfig\naxios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"];\n\naxios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__["default"];\n\naxios.formToJSON = thing => (0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__["default"])(_utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__["default"].getAdapter;\n\naxios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__["default"];\n\naxios.default = axios;\n\n// this module should only have a default export\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (axios);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/axios.js?')},"./node_modules/axios/lib/cancel/CancelToken.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n\n\n\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== \'function\') {\n throw new TypeError(\'executor must be a function.\');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CancelToken);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/CancelToken.js?')},"./node_modules/axios/lib/cancel/CanceledError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(this, message == null ? \'canceled\' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_CANCELED, config, request);\n this.name = \'CanceledError\';\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"], {\n __CANCEL__: true\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CanceledError);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/CanceledError.js?')},"./node_modules/axios/lib/cancel/isCancel.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isCancel)\n/* harmony export */ });\n\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/cancel/isCancel.js?')},"./node_modules/axios/lib/core/Axios.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");\n/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/axios/lib/core/InterceptorManager.js");\n/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/axios/lib/core/dispatchRequest.js");\n/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");\n/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/axios/lib/helpers/validator.js");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\n\n\n\n\n\n\nconst validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"](),\n response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"]()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, \'\') : \'\';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, \'\'))) {\n err.stack += \'\\n\' + stack\n }\n } catch (e) {\n // ignore the case where "stack" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios(\'example/url\'[, config]) a la fetch API\n if (typeof configOrUrl === \'string\') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || \'get\').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].merge(\n headers.common,\n headers[config.method]\n );\n\n headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(\n [\'delete\', \'get\', \'head\', \'post\', \'put\', \'patch\', \'common\'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === \'function\' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config);\n const fullPath = (0,_buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__["default"])(config.baseURL, config.url);\n return (0,_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach([\'delete\', \'get\', \'head\', \'options\'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach([\'post\', \'put\', \'patch\'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, {\n method,\n headers: isForm ? {\n \'Content-Type\': \'multipart/form-data\'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + \'Form\'] = generateHTTPMethod(true);\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/Axios.js?')},"./node_modules/axios/lib/core/AxiosError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"./node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/AxiosError.js?")},"./node_modules/axios/lib/core/AxiosHeaders.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/axios/lib/helpers/parseHeaders.js");\n\n\n\n\n\nconst $internals = Symbol(\'internals\');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&\'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(value)) return;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toCamelCase(\' \' + header);\n\n [\'get\', \'set\', \'has\'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error(\'header name must be a non-empty string\');\n }\n\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders((0,_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"])(header), valueOrRewrite);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError(\'parser must be boolean|regexp|function\');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {\n const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.join(\', \') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + \': \' + value).join(\'\\n\');\n }\n\n get [Symbol.toStringTag]() {\n return \'AxiosHeaders\';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\'Content-Type\', \'Content-Length\', \'Accept\', \'Accept-Encoding\', \'User-Agent\', \'Authorization\']);\n\n// reserved names hotfix\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].freezeMethods(AxiosHeaders);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosHeaders);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/AxiosHeaders.js?')},"./node_modules/axios/lib/core/InterceptorManager.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterceptorManager);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/InterceptorManager.js?')},"./node_modules/axios/lib/core/buildFullPath.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ buildFullPath)\n/* harmony export */ });\n/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");\n/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/axios/lib/helpers/combineURLs.js");\n\n\n\n\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL)) {\n return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/buildFullPath.js?')},"./node_modules/axios/lib/core/dispatchRequest.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ dispatchRequest)\n/* harmony export */ });\n/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/axios/lib/core/transformData.js");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js");\n\n\n\n\n\n\n\n\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(config.headers);\n\n // Transform request data\n config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformRequest\n );\n\n if ([\'post\', \'put\', \'patch\'].indexOf(config.method) !== -1) {\n config.headers.setContentType(\'application/x-www-form-urlencoded\', false);\n }\n\n const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__["default"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!(0,_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__["default"])(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/dispatchRequest.js?')},"./node_modules/axios/lib/core/mergeConfig.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ mergeConfig)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\nconst headersToObject = (thing) => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call({caseless}, target, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge({}, source);\n } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/mergeConfig.js?')},"./node_modules/axios/lib/core/settle.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ settle)\n/* harmony export */ });\n/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n\n\n\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](\n \'Request failed with status code \' + response.status,\n [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/settle.js?')},"./node_modules/axios/lib/core/transformData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ transformData)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n\n\n\n\n\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__["default"];\n const context = response || config;\n const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(context.headers);\n let data = context.data;\n\n _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/core/transformData.js?')},"./node_modules/axios/lib/defaults/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/axios/lib/defaults/transitional.js");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/axios/lib/helpers/toURLEncodedForm.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js");\n\n\n\n\n\n\n\n\n\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].trim(rawValue);\n } catch (e) {\n if (e.name !== \'SyntaxError\') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n\n adapter: [\'xhr\', \'http\', \'fetch\'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || \'\';\n const hasJSONContentType = contentType.indexOf(\'application/json\') > -1;\n const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(data);\n\n if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify((0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__["default"])(data)) : data;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isStream(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFile(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(data) ||\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)\n ) {\n return data;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBufferView(data)) {\n return data.buffer;\n }\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(data)) {\n headers.setContentType(\'application/x-www-form-urlencoded;charset=utf-8\', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf(\'application/x-www-form-urlencoded\') > -1) {\n return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__["default"])(data, this.formSerializer).toString();\n }\n\n if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) || contentType.indexOf(\'multipart/form-data\') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__["default"])(\n isFileList ? {\'files[]\': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType(\'application/json\', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === \'json\';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)) {\n return data;\n }\n\n if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === \'SyntaxError\') {\n throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: \'XSRF-TOKEN\',\n xsrfHeaderName: \'X-XSRF-TOKEN\',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.FormData,\n Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n \'Accept\': \'application/json, text/plain, */*\',\n \'Content-Type\': undefined\n }\n }\n};\n\n_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach([\'delete\', \'get\', \'head\', \'post\', \'put\', \'patch\'], (method) => {\n defaults.headers[method] = {};\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaults);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/defaults/index.js?')},"./node_modules/axios/lib/defaults/transitional.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/defaults/transitional.js?')},"./node_modules/axios/lib/env/data.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VERSION: () => (/* binding */ VERSION)\n/* harmony export */ });\nconst VERSION = "1.7.7";\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/env/data.js?')},"./node_modules/axios/lib/helpers/AxiosURLSearchParams.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ \"./node_modules/axios/lib/helpers/toFormData.js\");\n\n\n\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosURLSearchParams);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js?")},"./node_modules/axios/lib/helpers/HttpStatusCode.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/HttpStatusCode.js?')},"./node_modules/axios/lib/helpers/bind.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ bind)\n/* harmony export */ });\n\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/bind.js?')},"./node_modules/axios/lib/helpers/buildURL.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ buildURL)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ \"./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(params) ?\n params.toString() :\n new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/buildURL.js?")},"./node_modules/axios/lib/helpers/combineURLs.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ combineURLs)\n/* harmony export */ });\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/combineURLs.js?")},"./node_modules/axios/lib/helpers/composeSignals.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? err : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__["default"](err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](`timeout ${timeout} of ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener(\'abort\', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener(\'abort\', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(unsubscribe);\n\n return signal;\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/composeSignals.js?')},"./node_modules/axios/lib/helpers/cookies.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"./node_modules/axios/lib/platform/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(path) && cookie.push('path=' + path);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n });\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/cookies.js?")},"./node_modules/axios/lib/helpers/formDataToJSON.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `[\'foo\', \'x\', \'y\', \'z\']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === \'[]\' ? \'\' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === \'__proto__\') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target) ? target.length : name;\n\n if (isLast) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(formData.entries)) {\n const obj = {};\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formDataToJSON);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/formDataToJSON.js?')},"./node_modules/axios/lib/helpers/isAbsoluteURL.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isAbsoluteURL)\n/* harmony export */ });\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isAbsoluteURL.js?')},"./node_modules/axios/lib/helpers/isAxiosError.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isAxiosError)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(payload) && (payload.isAxiosError === true);\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isAxiosError.js?')},"./node_modules/axios/lib/helpers/isURLSameOrigin.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"./node_modules/axios/lib/platform/index.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator && /(msie|trident)/i.test(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })());\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/isURLSameOrigin.js?")},"./node_modules/axios/lib/helpers/null.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// eslint-disable-next-line strict\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/null.js?')},"./node_modules/axios/lib/helpers/parseHeaders.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"./node_modules/axios/lib/utils.js\");\n\n\n\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/parseHeaders.js?")},"./node_modules/axios/lib/helpers/parseProtocol.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ parseProtocol)\n/* harmony export */ });\n\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/parseProtocol.js?")},"./node_modules/axios/lib/helpers/progressEventReducer.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ asyncDecorator: () => (/* binding */ asyncDecorator),\n/* harmony export */ progressEventDecorator: () => (/* binding */ progressEventDecorator),\n/* harmony export */ progressEventReducer: () => (/* binding */ progressEventReducer)\n/* harmony export */ });\n/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ "./node_modules/axios/lib/helpers/speedometer.js");\n/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ "./node_modules/axios/lib/helpers/throttle.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n\n\n\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250);\n\n return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? \'download\' : \'upload\']: true\n };\n\n listener(data);\n }, freq);\n}\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nconst asyncDecorator = (fn) => (...args) => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(() => fn(...args));\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/progressEventReducer.js?')},"./node_modules/axios/lib/helpers/resolveConfig.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isURLSameOrigin.js */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");\n/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cookies.js */ "./node_modules/axios/lib/helpers/cookies.js");\n/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js");\n/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => {\n const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(headers);\n\n newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__["default"])(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\'Authorization\', \'Basic \' +\n btoa((auth.username || \'\') + \':\' + (auth.password ? unescape(encodeURIComponent(auth.password)) : \'\'))\n );\n }\n\n let contentType;\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFormData(data)) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(\';\').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || \'multipart/form-data\', ...tokens].join(\'; \'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we\'re in a web worker, or react-native.\n\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv) {\n withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__["default"])(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_7__["default"].read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n});\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/resolveConfig.js?')},"./node_modules/axios/lib/helpers/speedometer.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (speedometer);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/speedometer.js?')},"./node_modules/axios/lib/helpers/spread.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ spread)\n/* harmony export */ });\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/spread.js?')},"./node_modules/axios/lib/helpers/throttle.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/throttle.js?')},"./node_modules/axios/lib/helpers/toFormData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js");\n/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/axios/lib/helpers/null.js");\n\n\n\n\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\n\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'[]\') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? \'[\' + token + \']\' : token;\n }).join(dots ? \'.\' : \'\');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it\'s a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"], {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {\n throw new TypeError(\'target must be an object\');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"] || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== \'undefined\' && Blob;\n const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData);\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) {\n throw new TypeError(\'visitor must be a function\');\n }\n\n function convertValue(value) {\n if (value === null) return \'\';\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(value)) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](\'Blob is not supported. Use a Buffer instead.\');\n }\n\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isTypedArray(value)) {\n return useBlob && typeof Blob === \'function\' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === \'object\') {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'{}\')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) && isFlatArray(value)) ||\n ((_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, \'[]\')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + \'[]\'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error(\'Circular reference detected in \' + path.join(\'.\'));\n }\n\n stack.push(value);\n\n _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(value, function each(el, key) {\n const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && visitor.call(\n formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) {\n throw new TypeError(\'data must be an object\');\n }\n\n build(obj);\n\n return formData;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toFormData);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/toFormData.js?')},"./node_modules/axios/lib/helpers/toURLEncodedForm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ toURLEncodedForm)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js");\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js");\n\n\n\n\n\n\nfunction toURLEncodedForm(data, options) {\n return (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__["default"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isBuffer(value)) {\n this.append(key, value.toString(\'base64\'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/toURLEncodedForm.js?')},"./node_modules/axios/lib/helpers/trackStream.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ readBytes: () => (/* binding */ readBytes),\n/* harmony export */ streamChunk: () => (/* binding */ streamChunk),\n/* harmony export */ trackStream: () => (/* binding */ trackStream)\n/* harmony export */ });\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/trackStream.js?")},"./node_modules/axios/lib/helpers/validator.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ \"./node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__.VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION);\n }\n }\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n assertOptions,\n validators\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/helpers/validator.js?")},"./node_modules/axios/lib/platform/browser/classes/Blob.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof Blob !== 'undefined' ? Blob : null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/Blob.js?")},"./node_modules/axios/lib/platform/browser/classes/FormData.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof FormData !== 'undefined' ? FormData : null);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/FormData.js?")},"./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof URLSearchParams !== \'undefined\' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"]);\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js?')},"./node_modules/axios/lib/platform/browser/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js");\n/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/axios/lib/platform/browser/classes/FormData.js");\n/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/axios/lib/platform/browser/classes/Blob.js");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isBrowser: true,\n classes: {\n URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"],\n FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"],\n Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__["default"]\n },\n protocols: [\'http\', \'https\', \'file\', \'blob\', \'url\', \'data\']\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/browser/index.js?')},"./node_modules/axios/lib/platform/common/utils.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasBrowserEnv: () => (/* binding */ hasBrowserEnv),\n/* harmony export */ hasStandardBrowserEnv: () => (/* binding */ hasStandardBrowserEnv),\n/* harmony export */ hasStandardBrowserWebWorkerEnv: () => (/* binding */ hasStandardBrowserWebWorkerEnv),\n/* harmony export */ navigator: () => (/* binding */ _navigator),\n/* harmony export */ origin: () => (/* binding */ origin)\n/* harmony export */ });\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\n\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/common/utils.js?")},"./node_modules/axios/lib/platform/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/axios/lib/platform/browser/index.js");\n/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/axios/lib/platform/common/utils.js");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n ..._common_utils_js__WEBPACK_IMPORTED_MODULE_0__,\n ..._node_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/platform/index.js?')},"./node_modules/axios/lib/utils.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ \"./node_modules/axios/lib/helpers/bind.js\");\n\n\n\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n});\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./node_modules/axios/lib/utils.js?")},"./src/Auth/OAuth1.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ xAPITrackerAssetOAuth1)\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../xAPITrackerAsset.js */ "./src/xAPITrackerAsset.js");\n/* harmony import */ var _xapi_xapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @xapi/xapi */ "./node_modules/@xapi/xapi/dist/XAPI.umd.js");\n\r\n\r\n\r\nclass xAPITrackerAssetOAuth1 extends _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__["default"] {\r\n constructor(endpoint, backupEndpoint, backupType, actor_homePage, actor_name, username, password, defaultUri, debug, batchLength, batchTimeout, maxRetryDelay) {\r\n super(endpoint, backupEndpoint, backupType, actor_homePage, actor_name, _xapi_xapi__WEBPACK_IMPORTED_MODULE_1__.toBasicAuth(username, password), defaultUri, debug, batchLength, batchTimeout, maxRetryDelay);\r\n window.addEventListener(\'beforeunload\', () => {\r\n if (this.auth_token) {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n async refreshAuth() {\r\n super.refreshAuth();\r\n }\r\n\r\n logout() {\r\n super.logout();\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth1.js?')},"./src/Auth/OAuth2.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ xAPITrackerAssetOAuth2)\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../xAPITrackerAsset.js */ "./src/xAPITrackerAsset.js");\n/* harmony import */ var _OAuth2Protocol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OAuth2Protocol.js */ "./src/Auth/OAuth2Protocol.js");\n\r\n//import OAuth2Keycloak from "./OAuth2Keycloak.js";\r\n\r\n\r\nclass xAPITrackerAssetOAuth2 extends _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__["default"] {\r\n oauth2Config;\r\n oauth2;\r\n constructor(endpoint, backupEndpoint, backupType, actor_homePage, actor_name, config, defaultUri, debug, batchLength, batchTimeout, maxRetryDelay) {\r\n // Call the parent constructor without the token (since we don\'t have it yet)\r\n super(endpoint, backupEndpoint, backupType, actor_homePage, actor_name, null, defaultUri, debug, batchLength, batchTimeout, maxRetryDelay);\r\n\r\n this.oauth2Config=config;\r\n this.oauth2=null;\r\n // Fetch token after object construction\r\n this.initAuth();\r\n window.addEventListener(\'beforeunload\', () => {\r\n if (this.auth_token) {\r\n this.logout();\r\n }\r\n });\r\n }\r\n\r\n async getToken() {\r\n try {\r\n this.oauth2 = new _OAuth2Protocol_js__WEBPACK_IMPORTED_MODULE_1__["default"]();\r\n await this.oauth2.init(this.oauth2Config);\r\n return this.oauth2.token.access_token; // Return the access token\r\n } catch(e) {\r\n console.error(e);\r\n return null;\r\n }\r\n }\r\n\r\n async initAuth() {\r\n const oAuth2Token = await this.getToken();\r\n if(oAuth2Token !== null) {\r\n this.auth_token = "Bearer " + oAuth2Token;\r\n console.debug(this.auth_token);\r\n // Now that we have the token, update the authorization in the super class\r\n this.updateAuth();\r\n }\r\n }\r\n\r\n async refreshAuth() {\r\n const oAuth2Token = await this.oauth2.refreshToken();\r\n if(oAuth2Token) {\r\n this.auth_token = "Bearer " + oAuth2Token;\r\n console.debug(this.auth_token);\r\n // Now that we have the token, update the authorization in the super class\r\n this.updateAuth();\r\n }\r\n }\r\n\r\n // Assuming this method updates the auth in the super class\r\n updateAuth() {\r\n // Update the authorization or reinitialize xAPITrackerAsset with the token\r\n super.updateAuth();\r\n }\r\n\r\n // Assuming this method updates the auth in the super class\r\n async logout() {\r\n await this.oauth2.logout();\r\n // logout\r\n super.logout();\r\n }\r\n\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth2.js?')},"./src/Auth/OAuth2Protocol.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ OAuth2Protocol)\n/* harmony export */ });\nclass OAuth2Protocol {\r\n constructor() {\r\n this.fieldMissingMessage = \'Field "{0}" required for "OAuth 2.0" authentication is missing!\';\r\n this.unsupportedGrantTypeMessage = \'Grant type "{0}" not supported. Please use either "code" type or "password" type.\';\r\n this.unsupportedCodeChallengeMethodMessage = \'Code challenge (PKCE) method "{0}" not supported. Please use "S256" method or disable it.\';\r\n\r\n this.authEndpoint = null;\r\n this.tokenEndpoint = null;\r\n this.grantType = null;\r\n this.username = null;\r\n this.password = null;\r\n this.clientId = null;\r\n this.scope = null;\r\n this.state = null;\r\n this.login_hint=null;\r\n this.codeChallengeMethod = null;\r\n this.token = null;\r\n this.tokenRefreshInProgress=false;\r\n\r\n this.onAuthorizationInfoUpdate = null;\r\n }\r\n\r\n async init(config) {\r\n console.log("[OAuth2] Starting");\r\n this.tokenEndpoint = this.getRequiredValue(config, \'token_endpoint\');\r\n this.grantType = this.getRequiredValue(config, \'grant_type\').toLowerCase();\r\n this.clientId = this.getRequiredValue(config, \'client_id\');\r\n this.scope = config.scope || null;\r\n this.state = config.state || null;\r\n\r\n // Parse PKCE\r\n if (config.code_challenge_method) {\r\n const codeChallengeMethodString = config.code_challenge_method.toUpperCase();\r\n if (codeChallengeMethodString === \'S256\') {\r\n this.codeChallengeMethod = \'S256\';\r\n } else {\r\n throw new Error(this.unsupportedCodeChallengeMethodMessage.replace(\'{0}\', codeChallengeMethodString));\r\n }\r\n }\r\n\r\n switch (this.grantType) {\r\n case "refresh_token":\r\n const refreshToken = this.getRequiredValue(config, \'refresh_token\');\r\n this.token = await this.doRefreshToken(this.tokenEndpoint, this.clientId, refreshToken);\r\n break;\r\n case "password":\r\n this.username = this.getRequiredValue(config, \'username\');\r\n this.password = this.getRequiredValue(config, \'password\');\r\n this.login_hint = this.getRequiredValue(config, \'login_hint\');\r\n this.token = await this.doResourceOwnedPasswordCredentialsFlow(\r\n this.tokenEndpoint,\r\n this.clientId,\r\n this.username,\r\n this.password,\r\n this.scope,\r\n this.state,\r\n this.login_hint\r\n );\r\n break;\r\n default:\r\n throw new Error(this.unsupportedGrantTypeMessage.replace(\'{0}\', this.grantType));\r\n }\r\n\r\n if (this.token) {\r\n console.log("[OAuth2] Token obtained: " + this.token.access_token);\r\n }\r\n }\r\n\r\n getRequiredValue(config, key) {\r\n if (!config[key]) {\r\n throw new Error(this.fieldMissingMessage.replace(\'{0}\', key));\r\n }\r\n return config[key];\r\n }\r\n\r\n async doResourceOwnedPasswordCredentialsFlow(tokenUrl, clientId, username, password, scope, state, login_hint) {\r\n const form = {\r\n username,\r\n password,\r\n login_hint\r\n };\r\n if(scope) {\r\n form.scope=scope;\r\n }\r\n if(state) {\r\n form.state=state;\r\n }\r\n return await this.doTokenRequest(tokenUrl, clientId, "password", form);\r\n }\r\n\r\n async doTokenRequest(tokenUrl, clientId, grantType, otherParams) {\r\n const form = {\r\n grant_type: grantType,\r\n client_id: clientId,\r\n ...otherParams\r\n };\r\n\r\n try {\r\n const response = await fetch(tokenUrl, {\r\n method: "POST",\r\n headers: { "Content-Type": "application/x-www-form-urlencoded" },\r\n body: new URLSearchParams(form),\r\n });\r\n const data = await response.json();\r\n return data;\r\n } catch (error) {\r\n if (error.response && error.response.data) {\r\n throw new Error(error.response.data.error || \'Error during token request\');\r\n } else {\r\n throw error;\r\n }\r\n }\r\n }\r\n\r\n async doRefreshToken(tokenUrl, clientId, refreshToken) {\r\n return await this.doTokenRequest(tokenUrl, clientId, "refresh_token", { refresh_token: refreshToken });\r\n }\r\n\r\n async refreshToken() {\r\n if(this.tokenRefreshInProgress == false) {\r\n try {\r\n this.tokenRefreshInProgress=true;\r\n this.token = await this.doRefreshToken(this.tokenEndpoint, this.clientId, this.token.refresh_token);\r\n this.tokenRefreshInProgress=false;\r\n return this.token.access_token;\r\n } catch(error) {\r\n this.tokenRefreshInProgress=false;\r\n console.error(error);\r\n }\r\n } else {\r\n while(this.tokenRefreshInProgress == true) {\r\n await new Promise(r => setTimeout(r, 2000));\r\n }\r\n }\r\n }\r\n\r\n hasTokenExpired() {\r\n let expiredTime = new Date(this.token.requestTime.getTime() + this.token.expires_in*1000);\r\n let now = new Date();\r\n if(expiredTime > now) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n async updateParamsForAuth(request) {\r\n if (this.hasTokenExpired()) {\r\n this.token = await this.doRefreshToken(this.tokenEndpoint, this.clientId, this.token.refresh_token);\r\n if (this.onAuthorizationInfoUpdate) {\r\n this.onAuthorizationInfoUpdate(this.token);\r\n }\r\n }\r\n\r\n request.headers = {\r\n ...request.headers,\r\n \'Authorization\': `${this.token.token_type.charAt(0).toUpperCase() + this.token.token_type.slice(1)} ${this.token.access_token}`\r\n };\r\n }\r\n\r\n registerAuthInfoUpdate(callback) {\r\n if (callback) {\r\n this.onAuthorizationInfoUpdate = callback;\r\n if (this.token) {\r\n callback(this.token);\r\n }\r\n }\r\n }\r\n\r\n async logout() {\r\n const form = {\r\n grant_type: "refresh_token",\r\n client_id: this.clientId,\r\n refresh_token: this.token.refresh_token\r\n };\r\n\r\n try {\r\n const response = await fetch(this.tokenEndpoint.replace("/token", "/logout"), {\r\n method: "POST",\r\n headers: { "Content-Type": "application/x-www-form-urlencoded" },\r\n body: new URLSearchParams(form),\r\n });\r\n const data = await response.json();\r\n console.log(data);\r\n console.log("[OAuth2] Logged out successfully");\r\n } catch(error) {\r\n if (error.response && error.response.data) {\r\n throw new Error(error.response.data.error || \'[OAuth2] Error during logout\');\r\n } else {\r\n throw error;\r\n }\r\n }\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/Auth/OAuth2Protocol.js?')},"./src/HighLevel/Accessible.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESSIBLETYPE: () => (/* binding */ ACCESSIBLETYPE),\n/* harmony export */ AccessibleTracker: () => (/* binding */ AccessibleTracker)\n/* harmony export */ });\nclass AccessibleTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n AccessibleType = ['screen', 'area', 'zone', 'cutscene', 'accessible']\r\n\r\n Accessed(accessibleId, type) {\r\n if (typeof type === 'undefined') {type = 4;}\r\n\r\n var statement = this.tracker.Trace('accessed',this.AccessibleType[type],accessibleId);\r\n return statement;\r\n };\r\n\r\n Skipped(accessibleId, type) {\r\n if (typeof type === 'undefined') {type = 4;}\r\n\r\n var statement = this.tracker.Trace('skipped',this.AccessibleType[type],accessibleId);\r\n return statement;\r\n };\r\n\r\n async enqueue(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst ACCESSIBLETYPE = Object.freeze({\r\n SCREEN: 0,\r\n AREA: 1,\r\n ZONE: 2,\r\n CUTSCENE: 3,\r\n ACCESSIBLE: 4\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Accessible.js?")},"./src/HighLevel/Alternative.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALTERNATIVETYPE: () => (/* binding */ ALTERNATIVETYPE),\n/* harmony export */ AlternativeTracker: () => (/* binding */ AlternativeTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass AlternativeTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n\r\n AlternativeType = ['question', 'menu', 'dialog', 'path', 'arena', 'alternative']\r\n\r\n Selected(alternativeId, optionId, type) {\r\n if (typeof type === 'undefined') {type = 5;}\r\n \r\n var statement = this.tracker.Trace('selected',this.AlternativeType[type],alternativeId);\r\n statement.setResponse(optionId);\r\n return statement;\r\n };\r\n\r\n Unlocked(alternativeId, optionId, type) {\r\n if (typeof type === 'undefined') {type = 5;}\r\n \r\n var statement = this.tracker.Trace('unlocked',this.AlternativeType[type],alternativeId);\r\n statement.setResponse(optionId);\r\n return statement;\r\n };\r\n\r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async enqueue(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst ALTERNATIVETYPE = Object.freeze({\r\n QUESTION: 0,\r\n MENU: 1,\r\n DIALOG: 2,\r\n PATH: 3,\r\n ARENA: 4,\r\n ALTERNATIVE: 5\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Alternative.js?")},"./src/HighLevel/Completable.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ COMPLETABLETYPE: () => (/* binding */ COMPLETABLETYPE),\n/* harmony export */ CompletableTracker: () => (/* binding */ CompletableTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass CompletableTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n CompletableType = ['game', 'session', 'level', 'quest', 'stage', 'combat', 'storynode', 'race', 'completable'];\r\n\r\n Initialized(completableId, type) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n\r\n var statement = this.tracker.Trace('initialized',this.CompletableType[type],completableId);\r\n return statement;\r\n };\r\n\r\n Progressed(completableId, type, progress) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n\r\n var statement = this.tracker.Trace('progressed',this.CompletableType[type],completableId);\r\n statement.setProgress(progress);\r\n return statement;\r\n };\r\n\r\n Completed(completableId, type, success, completion, score) {\r\n if (typeof type === 'undefined') {type = 8;}\r\n if (typeof success === 'undefined') {success = true;}\r\n if (typeof completion === 'undefined') {completion = false;}\r\n if (typeof score === 'undefined') {score = 1;}\r\n\r\n var statement = this.tracker.Trace('completed',this.CompletableType[type],completableId);\r\n statement.setSuccess(success);\r\n statement.setCompletion(completion);\r\n statement.setScore(score);\r\n return statement;\r\n };\r\n \r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async enqueue(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst COMPLETABLETYPE = Object.freeze({\r\n GAME: 0,\r\n SESSION: 1,\r\n LEVEL: 2,\r\n QUEST: 3,\r\n STAGE: 4,\r\n COMBAT: 5,\r\n STORYNODE: 6,\r\n RACE: 7,\r\n COMPLETABLE: 8\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Completable.js?")},"./src/HighLevel/GameObject.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GAMEOBJECTTYPE: () => (/* binding */ GAMEOBJECTTYPE),\n/* harmony export */ GameObjectTracker: () => (/* binding */ GameObjectTracker)\n/* harmony export */ });\n/* harmony import */ var _Statement_Statement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Statement/Statement.js */ \"./src/HighLevel/Statement/Statement.js\");\n\r\n\r\nclass GameObjectTracker {\r\n constructor(tracker) {\r\n this.tracker = tracker;\r\n }\r\n \r\n tracker;\r\n\r\n GameObjectType = ['enemy', 'npc', 'item', 'gameobject'];\r\n\r\n Interacted(gameobjectId, type) {\r\n if (typeof type === 'undefined') {type = 3;}\r\n\r\n var statement = this.tracker.Trace('interacted',this.GameObjectType[type],gameobjectId);\r\n return statement;\r\n };\r\n\r\n Used(gameobjectId, type) {\r\n if (typeof type === 'undefined') {type = 3;}\r\n\r\n var statement = this.tracker.Trace('used',this.GameObjectType[type],gameobjectId);\r\n return statement;\r\n };\r\n \r\n /**\r\n * @param {Statement} statement\r\n * \r\n */\r\n async enqueue(statement) {\r\n await this.tracker.enqueue(statement);\r\n }\r\n}\r\n\r\nconst GAMEOBJECTTYPE = Object.freeze({\r\n ENEMY: 0,\r\n NPC: 1,\r\n ITEM: 2,\r\n GAMEOBJECT: 3,\r\n});\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/GameObject.js?")},"./src/HighLevel/Statement/ActorStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ActorStatement)\n/* harmony export */ });\nclass ActorStatement {\r\n constructor(token, accountName, homepage) {\r\n this.token = token;\r\n this.accountName = accountName;\r\n this.homepage = homepage;\r\n }\r\n token;\r\n accountName;\r\n homepage;\r\n \r\n toXAPI() {\r\n return {\r\n name: this.token,\r\n account: {\r\n name: this.accountName,\r\n homePage: this.homepage\r\n }\r\n }\r\n }\r\n \r\n toCSV() {\r\n return this.token.replaceAll(',', '\\\\,') ;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ActorStatement.js?")},"./src/HighLevel/Statement/ContextStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContextStatement)\n/* harmony export */ });\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\n\r\n\r\nclass ContextStatement {\r\n constructor() {\r\n this.registration=(0,uuid__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\r\n }\r\n registration;\r\n\r\n categoryIDs = {\r\n seriousgame : 'https://w3id.org/xapi/seriousgame'\r\n };\r\n \r\n toXAPI() {\r\n return {\r\n registration: this.registration,\r\n contextActivities: { \r\n category:[{\r\n id: this.categoryIDs.seriousgame\r\n }]\r\n }\r\n }\r\n }\r\n\r\n toCSV() {\r\n return this.registration.replaceAll(',', '\\\\,') ;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ContextStatement.js?")},"./src/HighLevel/Statement/ObjectStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ObjectStatement)\n/* harmony export */ });\nclass ObjectStatement {\r\n constructor(id, type, name = null, description = null) {\r\n this.id = id;\r\n this.type = type;\r\n this.name = name;\r\n this.description = description\r\n }\r\n \r\n typeIds = {\r\n // Completable\r\n game: 'https://w3id.org/xapi/seriousgames/activity-types/serious-game' ,\r\n session: 'https://w3id.org/xapi/seriousgames/activity-types/session',\r\n level: 'https://w3id.org/xapi/seriousgames/activity-types/level',\r\n quest: 'https://w3id.org/xapi/seriousgames/activity-types/quest',\r\n stage: 'https://w3id.org/xapi/seriousgames/activity-types/stage',\r\n combat: 'https://w3id.org/xapi/seriousgames/activity-types/combat',\r\n storynode: 'https://w3id.org/xapi/seriousgames/activity-types/story-node',\r\n race: 'https://w3id.org/xapi/seriousgames/activity-types/race',\r\n completable: 'https://w3id.org/xapi/seriousgames/activity-types/completable',\r\n \r\n // Acceesible\r\n screen: 'https://w3id.org/xapi/seriousgames/activity-types/screen' ,\r\n area: 'https://w3id.org/xapi/seriousgames/activity-types/area',\r\n zone: 'https://w3id.org/xapi/seriousgames/activity-types/zone',\r\n cutscene: 'https://w3id.org/xapi/seriousgames/activity-types/cutscene',\r\n accessible: 'https://w3id.org/xapi/seriousgames/activity-types/accessible',\r\n \r\n // Alternative\r\n question: 'http://adlnet.gov/expapi/activities/question' ,\r\n menu: 'https://w3id.org/xapi/seriousgames/activity-types/menu',\r\n dialog: 'https://w3id.org/xapi/seriousgames/activity-types/dialog-tree',\r\n path: 'https://w3id.org/xapi/seriousgames/activity-types/path',\r\n arena: 'https://w3id.org/xapi/seriousgames/activity-types/arena',\r\n alternative: 'https://w3id.org/xapi/seriousgames/activity-types/alternative',\r\n \r\n // GameObject\r\n enemy: 'https://w3id.org/xapi/seriousgames/activity-types/enemy' ,\r\n npc: 'https://w3id.org/xapi/seriousgames/activity-types/non-player-character',\r\n item: 'https://w3id.org/xapi/seriousgames/activity-types/item',\r\n gameobject: 'https://w3id.org/xapi/seriousgames/activity-types/game-object'\r\n };\r\n id;\r\n type;\r\n name;\r\n description;\r\n\r\n toXAPI() {\r\n var object= {}\r\n if(this.id) {\r\n object.id = this.id;\r\n }\r\n object.definition={}\r\n if(this.name) {\r\n object.definition.name = { \"en-US\": this.name };\r\n }\r\n if(this.description) {\r\n object.definition.description = { \"en-US\": this.description };\r\n }\r\n if(this.type) {\r\n object.definition.type = this.typeIds[this.type];\r\n }\r\n return object;\r\n }\r\n\r\n toCSV() {\r\n return this.typeIds[this.type].replaceAll(',','\\\\,') + ',' + this.id.replaceAll(',', '\\\\,');\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ObjectStatement.js?")},"./src/HighLevel/Statement/ResultStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResultStatements)\n/* harmony export */ });\nclass ResultStatements {\r\n constructor(defautURI) {\r\n this.defautURI = defautURI;\r\n this.parent = null;\r\n this.Score = null;\r\n this.Success = null;\r\n this.Completion = null;\r\n this.Response = null;\r\n this.Duration = null;\r\n this.Extensions = {};\r\n }\r\n\r\n isEmpty() {\r\n return (this.parent == null) && (this.Score == null) && (this.Duration == null) && (this.Success == null) && (this.Completion == null) && (this.Response == null) && (Object.keys(this.Extensions).length == 0);\r\n }\r\n\r\n ExtensionIDs = {\r\n health: 'https://w3id.org/xapi/seriousgames/extensions/health',\r\n position: 'https://w3id.org/xapi/seriousgames/extensions/position',\r\n progress: 'https://w3id.org/xapi/seriousgames/extensions/progress'\r\n };\r\n\r\n setExtensions(extensions) {\r\n this.Extensions = {};\r\n for (var key in extensions) {\r\n setExtension(key,extensions[key]);\r\n }\r\n }\r\n\r\n setExtension(key, value) {\r\n switch (key.toLowerCase()) {\r\n case 'success': { this.Success = value; break; }\r\n case 'completion': { this.Completion = value; break; }\r\n case 'response': { this.Response = value; break; }\r\n case 'score': { this.Score = value; break; }\r\n case 'duration': { this.Duration = value; break; }\r\n default: { this.Extensions[key] = value; break; }\r\n }\r\n };\r\n\r\n setAsUri(id) {\r\n if(this.isUri(id)) {\r\n return id;\r\n } else {\r\n return `${this.defautURI}://${id}`;\r\n }\r\n }\r\n \r\n isUri(id) {\r\n const pattern = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\/[^\\s/$.?#].[^\\s]*$/i;\r\n return pattern.test(id);\r\n }\r\n\r\n setScoreValue(key, value) {\r\n if(! this.Score) {\r\n this.Score = {};\r\n }\r\n this.Score[key] = Number(value);\r\n };\r\n\r\n toXAPI() {\r\n var ret = {};\r\n\r\n if (this.Success !== null) {\r\n ret.success = (this.Success) ? true : false;\r\n }\r\n\r\n if (this.Completion !== null) {\r\n ret.completion = (this.Completion) ? true : false;\r\n }\r\n\r\n if (this.Response) {\r\n ret.response = this.Response.toString();\r\n }\r\n\r\n if (this.Score !== null) {\r\n ret.score = this.Score;\r\n }\r\n\r\n if (this.Duration !== null) {\r\n ret.duration = this.Duration;\r\n }\r\n\r\n\r\n if (this.Extensions !== null && obsize(this.Extensions) > 0) {\r\n ret.extensions = this.Extensions;\r\n\r\n for (var key in this.Extensions) {\r\n if (this.ExtensionIDs.hasOwnProperty(key)) {\r\n this.Extensions[this.ExtensionIDs[key]] = this.Extensions[key];\r\n delete this.Extensions[key];\r\n } else {\r\n var newuri= this.setAsUri(key);\r\n this.Extensions[newuri] = this.Extensions[key];\r\n if(newuri !== key) {\r\n delete this.Extensions[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n };\r\n \r\n toCSV() {\r\n var success = (this.Success !== null) ? ',success,' + this.Success.toString() : '';\r\n var completion = (this.Completion !== null) ? ',completion,' + this.Completion.toString() : '';\r\n var response = (this.Response) ? ',response,' + this.Response.replaceAll(',', '\\\\,') : '';\r\n var score = '';\r\n\r\n if (exists(this.Score)) {\r\n if (exists(this.Score.raw)) {\r\n score += ',score,' + this.Score.raw;\r\n }\r\n\r\n if (exists(this.Score.min)) {\r\n score += ',score_min,' + this.Score.min;\r\n }\r\n\r\n if (exists(this.Score.max)) {\r\n score += ',score_max,' + this.Score.max;\r\n }\r\n\r\n if (exists(this.Score.scaled)) {\r\n score += ',score_scaled,' + this.Score.scaled;\r\n }\r\n }\r\n\r\n var result = success + completion + response + score;\r\n\r\n if (this.Extensions !== null && obsize(this.Extensions) > 0) {\r\n for (var key in this.Extensions) {\r\n result += ',' + key.replaceAll(',', '\\\\,') + ',';\r\n if (this.Extensions[key] !== null) {\r\n if (typeof this.Extensions[key] === 'number') {\r\n result += this.Extensions[key];\r\n } else if (typeof this.Extensions[key] === 'string') {\r\n result += this.Extensions[key].replaceAll(',', '\\\\,');\r\n } else if (typeof this.Extensions[key] === 'object') {\r\n if (ismap(this.Extensions[key])) {\r\n var smap = '';\r\n\r\n for (var k in this.Extensions[key]) {\r\n if (typeof this.Extensions[key][k] === 'number') {\r\n smap += k + '=' + this.Extensions[key][k] + '-';\r\n } else {\r\n smap += k + '=' + this.Extensions[key][k].replaceAll(',', '\\\\,') + '-';\r\n }\r\n }\r\n\r\n result += smap.slice(0,-1);\r\n }\r\n } else {\r\n result += this.Extensions[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n};\r\nvar obsize = function(obj) {\r\n var size = 0, key;\r\n for (key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n size++;\r\n }\r\n }\r\n return size;\r\n};\r\n\r\nvar ismap = function(obj) {\r\n for (var key in obj) {\r\n if (typeof obj[key] === 'object') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\nvar exists = function(value) {\r\n return !(typeof value === 'undefined' || value === null);\r\n};\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/ResultStatement.js?")},"./src/HighLevel/Statement/Statement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ Statement)\n/* harmony export */ });\n/* harmony import */ var _VerbStatement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VerbStatement.js */ "./src/HighLevel/Statement/VerbStatement.js");\n/* harmony import */ var _ObjectStatement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ObjectStatement.js */ "./src/HighLevel/Statement/ObjectStatement.js");\n/* harmony import */ var _ResultStatement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ResultStatement.js */ "./src/HighLevel/Statement/ResultStatement.js");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/dist/esm-browser/v4.js");\n\r\n\r\n\r\n\r\n\r\nclass Statement {\r\n constructor(actor, verbId, objectId, objectType, context, defautURI) {\r\n this.id = (0,uuid__WEBPACK_IMPORTED_MODULE_3__["default"])();\r\n this.actor = actor;\r\n this.verb = new _VerbStatement_js__WEBPACK_IMPORTED_MODULE_0__["default"](verbId);\r\n this.defautURI = defautURI;\r\n this.object = new _ObjectStatement_js__WEBPACK_IMPORTED_MODULE_1__["default"](this.setAsUri(objectId), objectType);\r\n this.timestamp = new Date();\r\n this.context = context;\r\n this.version = "1.0.3";\r\n this.result = new _ResultStatement_js__WEBPACK_IMPORTED_MODULE_2__["default"](this.defautURI);\r\n }\r\n \r\n actor;\r\n verb;\r\n object;\r\n timestamp;\r\n context;\r\n result;\r\n\r\n setAsUri(id) {\r\n if(this.isUri(id)) {\r\n return id;\r\n } else {\r\n return `${this.defautURI}://${id}`;\r\n }\r\n }\r\n \r\n isUri(id) {\r\n const pattern = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\/[^\\s/$.?#].[^\\s]*$/i;\r\n return pattern.test(id);\r\n }\r\n\r\n setScore(raw, min, max, scaled) {\r\n if (raw) {\r\n this.setScoreRaw(raw);\r\n }\r\n\r\n if (min) {\r\n this.setScoreMin(min);\r\n }\r\n\r\n if (max) {\r\n this.setScoreMax(max);\r\n }\r\n\r\n if (scaled) {\r\n this.setScoreScaled(scaled);\r\n }\r\n };\r\n\r\n setScoreRaw(raw) {\r\n this.result.setScoreValue(\'raw\', raw);\r\n\r\n };\r\n\r\n setScoreMin(min) {\r\n this.result.setScoreValue(\'min\', min);\r\n };\r\n\r\n setScoreMax(max) {\r\n this.result.setScoreValue(\'max\', max);\r\n };\r\n\r\n setScoreScaled(scaled) {\r\n this.result.setScoreValue(\'scaled\', scaled);\r\n };\r\n\r\n setCompletion(value) {\r\n this.addResultExtension(\'completion\', value);\r\n };\r\n\r\n setSuccess(value) {\r\n this.addResultExtension(\'success\', value);\r\n };\r\n\r\n setDuration(diffInSeconds) {\r\n const seconds = diffInSeconds % 60;\r\n const minutes = Math.floor(diffInSeconds / 60) % 60;\r\n const hours = Math.floor(diffInSeconds / 3600) % 24;\r\n const days = Math.floor(diffInSeconds / 86400);\r\n\r\n // Construct the ISO 8601 duration string\r\n const isoDuration = `P${days}DT${hours}H${minutes}M${seconds}S`;\r\n this.addResultExtension(\'duration\', isoDuration);\r\n };\r\n\r\n setResponse(value) {\r\n this.addResultExtension(\'response\', value);\r\n };\r\n\r\n setProgress(value) {\r\n this.addResultExtension(\'progress\', value);\r\n };\r\n\r\n setVar(key,value) {\r\n this.addResultExtension(key,value);\r\n };\r\n\r\n addResultExtension(key,value) {\r\n this.result.setExtension(key, value);\r\n };\r\n\r\n toXAPI() {\r\n var xapiTrace={}\r\n if(this.id) {\r\n xapiTrace.id = this.id;\r\n }\r\n if(this.actor) {\r\n xapiTrace.actor = this.actor.toXAPI();\r\n }\r\n if(this.verb) {\r\n xapiTrace.verb = this.verb.toXAPI();\r\n }\r\n if(this.object) {\r\n xapiTrace.object = this.object.toXAPI();\r\n }\r\n if(this.timestamp) {\r\n xapiTrace.timestamp = this.timestamp.toISOString();\r\n }\r\n if(this.context) {\r\n xapiTrace.context = this.context.toXAPI();\r\n }\r\n if(this.version) {\r\n xapiTrace.version = this.version;\r\n }\r\n if(!this.result.isEmpty()) {\r\n xapiTrace.result = this.result.toXAPI();\r\n }\r\n return xapiTrace;\r\n }\r\n\r\n toCSV() {\r\n var csv=[];\r\n csv.push(this.timestamp.toISOString());\r\n csv.push(this.verb.toCSV());\r\n csv.push(this.object.toCSV());\r\n var result=\'\';\r\n if(!this.result.isEmpty()) {\r\n result=this.result.toCSV();\r\n }\r\n return `${csv.join(",")}${result}`;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/Statement.js?')},"./src/HighLevel/Statement/VerbStatement.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ VerbStatement)\n/* harmony export */ });\nclass VerbStatement {\r\n constructor(verbId) {\r\n this.verbId = this.verbIds[verbId];\r\n this.verbDisplay = verbId;\r\n }\r\n verbIds = {\r\n //Completable Verbs\r\n initialized: 'http://adlnet.gov/expapi/verbs/initialized',\r\n progressed: 'http://adlnet.gov/expapi/verbs/progressed',\r\n completed: 'http://adlnet.gov/expapi/verbs/completed',\r\n //Accessible Verbs\r\n accessed: 'https://w3id.org/xapi/seriousgames/verbs/accessed',\r\n skipped: 'http://id.tincanapi.com/verb/skipped',\r\n //Alternative Verbs\r\n selected: 'https://w3id.org/xapi/adb/verbs/selected',\r\n unlocked: 'https://w3id.org/xapi/seriousgames/verbs/unlocked',\r\n //GameObject Verbs\r\n interacted: 'http://adlnet.gov/expapi/verbs/interacted',\r\n used: 'https://w3id.org/xapi/seriousgames/verbs/used'\r\n };\r\n verbId;\r\n verbDisplay;\r\n\r\n toXAPI() {\r\n var verb = {}\r\n if(this.verbId) {\r\n verb.id = this.verbId;\r\n }\r\n \r\n if(this.verbDisplay) {\r\n verb.display = { \"en\": this.verbDisplay };\r\n }\r\n return verb;\r\n }\r\n\r\n toCSV() {\r\n return this.verbId;\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/HighLevel/Statement/VerbStatement.js?")},"./src/index.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESSIBLETYPE: () => (/* reexport safe */ _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__.ACCESSIBLETYPE),\n/* harmony export */ ALTERNATIVETYPE: () => (/* reexport safe */ _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__.ALTERNATIVETYPE),\n/* harmony export */ AccessibleTracker: () => (/* reexport safe */ _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__.AccessibleTracker),\n/* harmony export */ AlternativeTracker: () => (/* reexport safe */ _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__.AlternativeTracker),\n/* harmony export */ COMPLETABLETYPE: () => (/* reexport safe */ _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__.COMPLETABLETYPE),\n/* harmony export */ CompletableTracker: () => (/* reexport safe */ _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__.CompletableTracker),\n/* harmony export */ GAMEOBJECTTYPE: () => (/* reexport safe */ _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__.GAMEOBJECTTYPE),\n/* harmony export */ GameObjectTracker: () => (/* reexport safe */ _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__.GameObjectTracker),\n/* harmony export */ generateXAPITrackerFromURLParams: () => (/* binding */ generateXAPITrackerFromURLParams)\n/* harmony export */ });\n/* harmony import */ var _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./xAPITrackerAsset.js */ \"./src/xAPITrackerAsset.js\");\n/* harmony import */ var _Auth_OAuth1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Auth/OAuth1.js */ \"./src/Auth/OAuth1.js\");\n/* harmony import */ var _Auth_OAuth2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Auth/OAuth2.js */ \"./src/Auth/OAuth2.js\");\n/* harmony import */ var _HighLevel_Accessible_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HighLevel/Accessible.js */ \"./src/HighLevel/Accessible.js\");\n/* harmony import */ var _HighLevel_Completable_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HighLevel/Completable.js */ \"./src/HighLevel/Completable.js\");\n/* harmony import */ var _HighLevel_Alternative_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HighLevel/Alternative.js */ \"./src/HighLevel/Alternative.js\");\n/* harmony import */ var _HighLevel_GameObject_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./HighLevel/GameObject.js */ \"./src/HighLevel/GameObject.js\");\n// src/index.js\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction generateXAPITrackerFromURLParams(default_uri) {\r\n const xAPIConfig = {}\r\n const urlParams = new URLSearchParams(window.location.search);\r\n var result_uri,backup_uri, backup_type, actor_username, actor_homepage, debug, batchLength, batchTimeout, maxRetryDelay;\r\n var username, password, auth_token;\r\n if(urlParams.size > 0) {\r\n //RESULT URI\r\n result_uri = urlParams.get('result_uri');\r\n\r\n //BACKUP URI\r\n backup_uri=urlParams.get('backup_uri');\r\n backup_type=urlParams.get('backup_type');\r\n \r\n //ACTOR DATA\r\n actor_homepage = urlParams.get('actor_homepage');\r\n actor_username = urlParams.get('actor_user');\r\n \r\n //SSO OAUTH 2.0 DATA\r\n const sso_token_endpoint = urlParams.get('sso_token_endpoint');\r\n if(sso_token_endpoint) {\r\n xAPIConfig.token_endpoint=sso_token_endpoint;\r\n }\r\n const sso_client_id = urlParams.get('sso_client_id');\r\n if(sso_client_id) {\r\n xAPIConfig.client_id=sso_client_id;\r\n }\r\n const sso_login_hint = urlParams.get('sso_login_hint');\r\n if(sso_login_hint) {\r\n xAPIConfig.login_hint=sso_login_hint;\r\n }\r\n const sso_grant_type = urlParams.get('sso_grant_type');\r\n if(sso_grant_type) {\r\n xAPIConfig.grant_type=sso_grant_type;\r\n }\r\n const sso_scope = urlParams.get('sso_scope');\r\n if(sso_scope) {\r\n xAPIConfig.scope=sso_scope;\r\n }\r\n const sso_username = urlParams.get('sso_username');\r\n if(sso_username) {\r\n xAPIConfig.username=sso_username;\r\n }\r\n const sso_password = urlParams.get('sso_password');\r\n if(sso_password) {\r\n xAPIConfig.password=sso_password;\r\n } else {\r\n if(sso_username) {\r\n xAPIConfig.password=sso_username;\r\n }\r\n }\r\n\r\n // OAUTH 1.0 DATA \r\n username = urlParams.get('username');\r\n password = urlParams.get('password');\r\n // OAUTH 0 : VIA AUTHTOKEN DIRECTLY NOT RECOMENDED\r\n auth_token = urlParams.get('auth_token');\r\n // DEBUG \r\n debug=urlParams.get('debug');\r\n // BATCH\r\n batchLength=urlParams.get('batch_length');\r\n batchTimeout=urlParams.get('batch_timeout');\r\n maxRetryDelay=urlParams.get('max_retry_delay');\r\n if(debug !== null && debug == \"true\") {\r\n debug = Boolean(debug);\r\n console.debug(result_uri);\r\n console.debug(result_uri);\r\n console.debug(backup_type);\r\n console.debug(actor_username);\r\n console.debug(actor_homepage);\r\n console.debug(debug);\r\n console.debug(batchLength);\r\n console.debug(batchTimeout);\r\n console.debug(maxRetryDelay);\r\n //console.debug(xAPIConfig);\r\n }\r\n } else {\r\n result_uri = null;\r\n result_uri = null;\r\n backup_type=\"XAPI\";\r\n actor_homepage= null;\r\n actor_username= null;\r\n debug = false;\r\n }\r\n\r\n if(xAPIConfig.token_endpoint) {\r\n return new _Auth_OAuth2_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](result_uri, backup_uri, backup_type, actor_homepage, actor_username, xAPIConfig, default_uri, debug, batchLength, batchTimeout, maxRetryDelay);\r\n } else if(username && password) {\r\n return new _Auth_OAuth1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](result_uri, backup_uri, backup_type, actor_homepage, actor_username, username, password, default_uri, debug, batchLength, batchTimeout, maxRetryDelay);\r\n } else {\r\n return new _xAPITrackerAsset_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](result_uri, backup_uri, backup_type, actor_homepage, actor_username, auth_token, default_uri, debug, batchLength, batchTimeout, maxRetryDelay);\r\n }\r\n}\r\n\r\n\r\n\r\n\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/index.js?")},"./src/xAPITrackerAsset.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ xAPITrackerAsset)\n/* harmony export */ });\n/* harmony import */ var _xapi_xapi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @xapi/xapi */ "./node_modules/@xapi/xapi/dist/XAPI.umd.js");\n/* harmony import */ var _HighLevel_Statement_ActorStatement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HighLevel/Statement/ActorStatement.js */ "./src/HighLevel/Statement/ActorStatement.js");\n/* harmony import */ var _HighLevel_Statement_ContextStatement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HighLevel/Statement/ContextStatement.js */ "./src/HighLevel/Statement/ContextStatement.js");\n/* harmony import */ var _HighLevel_Statement_Statement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HighLevel/Statement/Statement.js */ "./src/HighLevel/Statement/Statement.js");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js");\n/* harmony import */ var ms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ms */ "./node_modules/ms/index.js");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass xAPITrackerAsset {\r\n //XAPI PARAMETERS\r\n xapi;\r\n endpoint;\r\n auth_token;\r\n online;\r\n //STATEMENTS PARAMETERS\r\n statementsToSend;\r\n sendingInProgress;\r\n offset;\r\n //BACKUP PARAMETERS\r\n backup;\r\n backup_endpoint;\r\n backup_type;\r\n backupRequestParameters;\r\n //ACTOR PARAMETERS\r\n actor;\r\n actor_homePage;\r\n actor_name;\r\n context;\r\n //DEFAULT_URI PARAMETERS\r\n default_uri;\r\n //DEBUG PARAMETERS\r\n debug;\r\n //BATCH AND RETRY PARAMETERS\r\n batchlength;\r\n batchtimeout;\r\n retryDelay;\r\n maxRetryDelay;\r\n timer;\r\n\r\n constructor(endpoint, backup_endpoint, backup_type, actor_homePage, actor_name, auth_token, default_uri, debug, batchLength, batchTimeout, maxRetryDelay) {\r\n this.default_uri=default_uri;\r\n this.debug=debug;\r\n this.online=false;\r\n this.endpoint = endpoint;\r\n if(backup_endpoint) {\r\n this.backup = true;\r\n if(backup_type == null) {\r\n backup_type="CSV";\r\n }\r\n this.backup_type = backup_type;\r\n this.backup_endpoint = backup_endpoint;\r\n }\r\n this.batchlength = parseInt(batchLength) || 100; // Default batch length (100 statements)\r\n this.batchtimeout = batchTimeout ? ms__WEBPACK_IMPORTED_MODULE_4__(batchTimeout) : ms__WEBPACK_IMPORTED_MODULE_4__("30sec"); // Default timeout in milliseconds (30 seconds)\r\n this.offset = 0; // Tracks the starting index of the next batch\r\n\r\n this.retryDelay = null;\r\n this.maxRetryDelay = maxRetryDelay ? ms__WEBPACK_IMPORTED_MODULE_4__(maxRetryDelay) : ms__WEBPACK_IMPORTED_MODULE_4__("2min"); // Maximum retry delay (120 seconds)\r\n this.statementsToSend=[];\r\n this.timer = null;\r\n this.xapi=null;\r\n this.auth_token = auth_token;\r\n this.actor_homePage = actor_homePage;\r\n this.actor_name = actor_name;\r\n this.actor=new _HighLevel_Statement_ActorStatement_js__WEBPACK_IMPORTED_MODULE_1__["default"](this.actor_name, this.actor_name, this.actor_homePage);\r\n this.context = new _HighLevel_Statement_ContextStatement_js__WEBPACK_IMPORTED_MODULE_2__["default"]();\r\n this.updateAuth();\r\n }\r\n\r\n logout() {\r\n this.auth_token = null;\r\n onOffline();\r\n }\r\n\r\n // Event handler: When the client goes offline\r\n onOffline() {\r\n this.online = false;\r\n if (this.debug) console.warn("XAPI Tracker for Serious Games went offline");\r\n }\r\n\r\n // Event handler: When the client comes online\r\n async onOnline() {\r\n this.online = true;\r\n if (this.debug) console.info("XAPI Tracker for Serious Games back Online");\r\n }\r\n\r\n updateAuth() {\r\n if(this.auth_token != null) {\r\n this.xapi = new _xapi_xapi__WEBPACK_IMPORTED_MODULE_0__({\r\n endpoint: this.endpoint,\r\n auth: this.auth_token\r\n });\r\n if(this.xapi != null) {\r\n this.onOnline();\r\n } else {\r\n this.onOffline();\r\n }\r\n } else {\r\n this.onOffline();\r\n }\r\n }\r\n\r\n async sendBatch() {\r\n if (!this.online) return; // Skip if offline\r\n if (this.offset >= this.statementsToSend.length) return; // No statements to send\r\n \r\n const end = Math.min(this.offset + this.batchlength, this.statementsToSend.length);\r\n const batch = this.statementsToSend.slice(this.offset, end);\r\n const statements = batch.map(statement => statement.toXAPI());\r\n\r\n try {\r\n if(!this.sendingInProgress) {\r\n this.sendingInProgress=true;\r\n const result = await this.xapi.sendStatements({statements: statements });\r\n this.sendingInProgress=false;\r\n if (this.debug) {\r\n console.debug("Batch sent successfully:", result);\r\n }\r\n // Move the offset forward\r\n this.offset += batch.length;\r\n // Reset retry delay on success\r\n this.retryDelay = null;\r\n }\r\n } catch (error) {\r\n console.error("Error sending batch:", error.response);\r\n const status = error.response.status;\r\n const errorMessage = error.response.data.message || error.message;\r\n switch (status) {\r\n case 401: // Unauthorized\r\n console.error(`Unauthorized: ${errorMessage}`);\r\n this.onOffline();\r\n await this.refreshAuth();\r\n this.sendingInProgress=false;\r\n // Attempt to send queued statements\r\n await this.sendBatch();\r\n break;\r\n case 403: // Forbidden\r\n console.error(`Forbidden: ${errorMessage}`);\r\n this.onOffline();\r\n await this.refreshAuth();\r\n this.sendingInProgress=false;\r\n // Attempt to send queued statements\r\n await this.sendBatch();\r\n break;\r\n default:\r\n console.error(`[TRACKER: Batch Processor] Batch upload returned status ${status} with message: ${errorMessage}`);\r\n this.sendingInProgress=false;\r\n this.onOffline();\r\n break;\r\n }\r\n\r\n if(this.retryDelay == null) {\r\n this.retryDelay=this.batchtimeout;\r\n }\r\n // Retry logic: Increase delay and retry sending\r\n this.retryDelay = Math.min(this.retryDelay * 2, this.maxRetryDelay); // Exponential backoff with a cap\r\n this.timer=null; // Reset timer\r\n }\r\n\r\n // Continue sending if more items are in the queue\r\n if (this.offset < this.statementsToSend.length) {\r\n this.startTimer(); // Start a new timer to process the next batch\r\n }\r\n }\r\n\r\n async refreshAuth() {\r\n // Now that we have the token, update the authorization in the super class\r\n this.updateAuth();\r\n }\r\n\r\n startTimer() {\r\n if (this.timer) return; // Timer already running\r\n let timeout=this.batchtimeout;\r\n if(this.retryDelay) {\r\n timeout=this.retryDelay;\r\n }\r\n this.timer = setTimeout(async () => {\r\n await this.sendBatch();\r\n this.timer = null; // Reset timer\r\n if (this.offset < this.statementsToSend.length) {\r\n this.startTimer(); // Restart timer if more statements are queued\r\n }\r\n }, timeout);\r\n }\r\n\r\n Trace(verbId, objectType, objectId) {\r\n var statement=new _HighLevel_Statement_Statement_js__WEBPACK_IMPORTED_MODULE_3__["default"](this.actor, verbId, objectId, objectType, this.context, this.default_uri);\r\n return statement;\r\n }\r\n\r\n async sendBackup() {\r\n if (this.online && this.backup_endpoint && this.backup_endpoint.trim()) {\r\n let contentType;\r\n let statements;\r\n switch (this.backup_type) {\r\n case \'XAPI\':\r\n statements = this.statementsToSend.map(statement => JSON.stringify(statement.toXAPI()));\r\n contentType = \'application/json\';\r\n break;\r\n case \'CSV\':\r\n statements = this.statementsToSend.map(statement => statement.toCSV());\r\n contentType = \'text/csv\';\r\n break;\r\n default: \r\n return;\r\n }\r\n const body = {\r\n tofile: true,\r\n result: statements.join(\'\\n\'),\r\n contentType: contentType\r\n };\r\n\r\n // Initialize request object\r\n const myRequest = {\r\n url: this.backup_endpoint,\r\n method: \'POST\',\r\n headers: {\r\n \'Authorization\': this.auth_token || \'\',\r\n \'Content-Type\': \'application/json\'\r\n },\r\n data: JSON.stringify(body, null, 2)\r\n };\r\n\r\n // Add custom parameters from config file\r\n if (this.backupRequestParameters) {\r\n // Content type\r\n if (this.backupRequestParameters.content_type) {\r\n myRequest.headers[\'Content-Type\'] = this.backupRequestParameters.content_type;\r\n }\r\n\r\n // Request headers\r\n if (this.backupRequestParameters.headers && typeof this.backupRequestParameters.headers === \'object\') {\r\n Object.entries(this.backupRequestParameters.headers).forEach(([key, value]) => {\r\n myRequest.headers[key] = value;\r\n });\r\n }\r\n\r\n // Request query parameters\r\n if (this.backupRequestParameters.query_parameters && typeof this.backupRequestParameters.query_parameters === \'object\') {\r\n const queryParams = new URLSearchParams(this.backupRequestParameters.query_parameters).toString();\r\n myRequest.url += `?${queryParams}`;\r\n }\r\n }\r\n\r\n try {\r\n // Perform the HTTP request\r\n const response = await (0,axios__WEBPACK_IMPORTED_MODULE_5__["default"])(myRequest);\r\n console.log(response);\r\n } catch (error) {\r\n if (error.response) {\r\n const status = error.response.status;\r\n const errorMessage = error.response.data.message || error.message;\r\n\r\n switch (status) {\r\n case 401: // Unauthorized\r\n this.onOffline();\r\n console.error(`Unauthorized: ${errorMessage}`);\r\n await this.refreshAuth();\r\n await this.sendBackup();\r\n break;\r\n case 403: // Forbidden\r\n this.onOffline();\r\n console.error(`Forbidden: ${errorMessage}`);\r\n await this.refreshAuth();\r\n await this.sendBackup();\r\n break;\r\n default:\r\n console.error(`[TRACKER: Backup Processor] Backup upload returned status ${status} with message: ${errorMessage}`);\r\n break;\r\n }\r\n } else {\r\n throw new Error(`Request failed: ${error.message}`);\r\n }\r\n }\r\n }\r\n }\r\n \r\n async enqueue(statement) {\r\n if(this.debug !== null && this.debug) {\r\n console.debug(statement.toXAPI());\r\n console.debug(statement.toCSV());\r\n }\r\n \r\n // Add statement to queue\r\n this.statementsToSend.push(statement);\r\n\r\n // Start sending immediately if online and batch size is reached\r\n if (this.online && this.statementsToSend.length >= this.offset + this.batchlength) {\r\n await this.sendBatch();\r\n }\r\n\r\n // Start the timer for timeout-based sending\r\n this.startTimer();\r\n }\r\n}\n\n//# sourceURL=webpack://xapi-sg-tracker-js/./src/xAPITrackerAsset.js?')}},__webpack_module_cache__={};function __webpack_require__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/index.js");return __webpack_exports__})())); \ No newline at end of file diff --git a/src/managers/dialogManager.js b/src/managers/dialogManager.js index e8d8ef1..eddb31e 100644 --- a/src/managers/dialogManager.js +++ b/src/managers/dialogManager.js @@ -73,7 +73,7 @@ export default class DialogManager { * @param {Phaser.Scene} scene - escena a la que se va a pasar */ changeScene(scene) { - accessibleXapiTracker.sendStatement(accessibleXapiTracker.Accessed(scene.scene.key, ACCESSIBLETYPE.SCREEN)); + accessibleXapiTracker.enqueue(accessibleXapiTracker.Accessed(scene.scene.key, ACCESSIBLETYPE.SCREEN)); // Desactiva la caja de texto y las opciones (por si acaso) this.textbox.activate(false); // console.log("bgBlock interactive disabled when changing scene"); @@ -262,7 +262,7 @@ export default class DialogManager { else if (this.currNode.type === "text") { if(!this.launched) { var dialog = this.currNode.dialogs[0]; - completableXapiTracker.sendStatement(completableXapiTracker.Initialized(`${dialog.name} ${dialog.text}`, COMPLETABLETYPE.STORYNODE)); + completableXapiTracker.enqueue(completableXapiTracker.Initialized(`${dialog.name} ${dialog.text}`, COMPLETABLETYPE.STORYNODE)); this.launched=true; } // Si el nodo no tiene texto, se lo salta y pasa al siguiente nodo @@ -310,7 +310,7 @@ export default class DialogManager { else if (this.currNode.type === "socialNetMessage") { // Funcion comun (se anade el comentario al post y se procesa el nodo) let fnAux = () => { - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Selected(this.currNode.postName, this.currNode.text, ALTERNATIVETYPE.DIALOG)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Selected(this.currNode.postName, this.currNode.text, ALTERNATIVETYPE.DIALOG)); this.gameManager.computerScene.socialNetScreen.addCommentToPost(this.currNode.owner, this.currNode.postName, this.currNode.character, this.currNode.name, this.currNode.text); @@ -363,7 +363,7 @@ export default class DialogManager { // Actualiza el ultimo personaje que se ha hablado this.lastCharacter = this.currNode.character; var dialog = this.currNode.dialogs[this.currNode.currDialog-1]; - completableXapiTracker.sendStatement(completableXapiTracker.Completed(`${dialog.name} ${dialog.text}`, COMPLETABLETYPE.STORYNODE,true, true)); + completableXapiTracker.enqueue(completableXapiTracker.Completed(`${dialog.name} ${dialog.text}`, COMPLETABLETYPE.STORYNODE,true, true)); this.launched=false; // Se reinicia el dialogo del nodo actual y actualiza el nodo al siguiente // IMPORTANTE: DESPUES DE UN NODO DE DIALOGO SOLO HAY UN NODO, POR LO QUE @@ -435,7 +435,7 @@ export default class DialogManager { this.activateOptions(false); let next = this.currNode.next[index]; - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Selected(this.currNode.fullId, this.currNode.choices[index].text, ALTERNATIVETYPE.DIALOG)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Selected(this.currNode.fullId, this.currNode.choices[index].text, ALTERNATIVETYPE.DIALOG)); // Si la opcion no se puede elegir de nuevo, elimina tanto la opcion // como el nodo al que lleva de sus arrays correspondientes if (!this.currNode.choices[index].repeat) { diff --git a/src/managers/gameManager.js b/src/managers/gameManager.js index 9a28464..d51533d 100644 --- a/src/managers/gameManager.js +++ b/src/managers/gameManager.js @@ -389,7 +389,7 @@ export default class GameManager { } switchToComputer() { - gameObjectXapiTracker.sendStatement(this.Interacted("ShowComputerLogin", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.Interacted("ShowComputerLogin", GAMEOBJECTTYPE.ITEM)); // Se desactiva la interfaz del telefono this.UIManager.phoneManager.activate(false); @@ -402,7 +402,7 @@ export default class GameManager { } leaveComputer() { - gameObjectXapiTracker.sendStatement(this.Interacted("offComputer", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.Interacted("offComputer", GAMEOBJECTTYPE.ITEM)); // Se reactiva la interfaz del telefono this.UIManager.phoneManager.activate(true); @@ -470,8 +470,8 @@ export default class GameManager { // Si no se encuentra el personaje en la blackboard, se anade con 50 de amistad por defecto if (!this.getValue(varName)) { - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Unlocked("friend", character, ALTERNATIVETYPE.ALTERNATIVE)); - completableXapiTracker.sendStatement(completableXapiTracker.Initialized(varName, COMPLETABLETYPE.COMPLETABLE)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Unlocked("friend", character, ALTERNATIVETYPE.ALTERNATIVE)); + completableXapiTracker.enqueue(completableXapiTracker.Initialized(varName, COMPLETABLETYPE.COMPLETABLE)); this.setValue(varName, 50); } @@ -479,7 +479,7 @@ export default class GameManager { let val = this.getValue(varName) val += amount; this.setValue(varName, val); - completableXapiTracker.sendStatement(completableXapiTracker.Progressed(varName, COMPLETABLETYPE.COMPLETABLE, val)); + completableXapiTracker.enqueue(completableXapiTracker.Progressed(varName, COMPLETABLETYPE.COMPLETABLE, val)); // Actualiza el valor tambien en la pantalla de relaciones del movil this.UIManager.phoneManager.phone.updateRelationShip(character, val); } @@ -525,7 +525,7 @@ export default class GameManager { InitializedGame() { this.startedTime=new Date(); this.Initialized=true; - completableXapiTracker.sendStatement(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)) + completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)) } ProgressedGame() { @@ -535,13 +535,14 @@ export default class GameManager { var duration = durationInMs/1000; statement.setDuration(duration); statement = this.AddStateExtensions(statement); - completableXapiTracker.sendStatement(statement); + completableXapiTracker.enqueue(statement); } CompletedGame(completion) { this.Initialized=false; var statement = this.Completed("ConnectadoWeb",COMPLETABLETYPE.GAME, completion); - completableXapiTracker.sendStatement(statement); + completableXapiTracker.enqueue(statement); xapiTracker.sendBackup(); + xapiTracker.sendBatch(); } } \ No newline at end of file diff --git a/src/managers/phoneManager.js b/src/managers/phoneManager.js index 1eca8af..c9a0a70 100644 --- a/src/managers/phoneManager.js +++ b/src/managers/phoneManager.js @@ -139,7 +139,7 @@ export default class PhoneManager { // Si el telefono es visible if (this.phone.visible) { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("hideMobile", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("hideMobile", GAMEOBJECTTYPE.ITEM)); this.phone.setScale(this.PHONE_SCALE); let x = { from: this.PHONE_VISIBLE.x, to: this.PHONE_HIDDEN.x }; let y = { from: this.PHONE_VISIBLE.y, to: this.PHONE_HIDDEN.y }; @@ -172,7 +172,7 @@ export default class PhoneManager { } // Si el telefono no es visible else { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("toggleMobile", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("toggleMobile", GAMEOBJECTTYPE.ITEM)); // Se hace visible y se bloquea la interaccion con los elementos del fondo this.phone.visible = true; this.bgBlock.setInteractive({ useHandCursor: true }); @@ -420,7 +420,7 @@ export default class PhoneManager { } var statement = this.gameManager.Interacted("Sleep_phone", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("isLate",this.gameManager.getValue("isLate")); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); } // Funcion llamada al apagar la alarma y despertarse @@ -446,7 +446,7 @@ export default class PhoneManager { } var statement = this.gameManager.Interacted("wake_up_phone", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("isLate",this.gameManager.getValue("isLate")); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); } diff --git a/src/scenes/gameLoop/baseScenarios/bedroomBase.js b/src/scenes/gameLoop/baseScenarios/bedroomBase.js index cc256ff..5308048 100644 --- a/src/scenes/gameLoop/baseScenarios/bedroomBase.js +++ b/src/scenes/gameLoop/baseScenarios/bedroomBase.js @@ -30,11 +30,11 @@ export default class BedroomBase extends BaseScene { super.toggleDoor(door1Closed, door1Opened, () => { var statement = this.gameManager.Interacted("wardrobeDoor1", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("wardrobeDoor1", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); // Puerta izquierda del armario @@ -43,11 +43,11 @@ export default class BedroomBase extends BaseScene { super.toggleDoor(door2Closed, door2Opened, () => { var statement = this.gameManager.Interacted("wardrobeDoor2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("wardrobeDoor2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); // Puerta derecha del armario @@ -56,11 +56,11 @@ export default class BedroomBase extends BaseScene { super.toggleDoor(door3Closed, door3Opened, () => { var statement = this.gameManager.Interacted("wardrobeDoor3", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("wardrobeDoor3", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); @@ -78,7 +78,7 @@ export default class BedroomBase extends BaseScene { wardrobe1.setInteractive({ useHandCursor: true }); wardrobe1.on('pointerdown', () => { if (door1Opened.visible) { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("wardrobe1", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("wardrobe1", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.wardrobe1Node); } @@ -92,7 +92,7 @@ export default class BedroomBase extends BaseScene { wardrobe2.setInteractive(); wardrobe2.on('pointerdown', () => { if (door2Opened.visible || door3Opened.visible) { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("wardrobe2", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("wardrobe2", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.wardrobe2Node); } }) @@ -106,7 +106,7 @@ export default class BedroomBase extends BaseScene { // Al hacer click sobre el, se cambia el nodo en el dialogManager, y si // se lanza el evento turnPC, se cambia a la escena del ordenador pc.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("computer", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("computer", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.pcNode); }); this.dispatcher.add("turnPC", this, (obj) => { @@ -124,7 +124,7 @@ export default class BedroomBase extends BaseScene { let params = { camPos: "right" }; - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("livingroomDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("livingroomDoor", GAMEOBJECTTYPE.ITEM)); this.gameManager.changeScene(this.livingroom, params, true); }, false); @@ -137,7 +137,7 @@ export default class BedroomBase extends BaseScene { this.bed.setDepth(10); this.bedNode = null; this.bed.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bed", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bed", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.bedNode); }) @@ -149,8 +149,8 @@ export default class BedroomBase extends BaseScene { this.phoneManager.topLid.y = -this.CANVAS_HEIGHT / 2; this.phoneManager.botLid.y = this.CANVAS_HEIGHT; let anim = this.phoneManager.closeEyesAnimation(false); - completableXapiTracker.sendStatement(this.gameManager.AddStateExtensions(this.gameManager.Completed(`scene ${this.scene.key}`, COMPLETABLETYPE.COMPLETABLE,true, true))); - completableXapiTracker.sendStatement(this.gameManager.Completed(this.scene.key, COMPLETABLETYPE.STORYNODE,true)); + completableXapiTracker.enqueue(this.gameManager.AddStateExtensions(this.gameManager.Completed(`scene ${this.scene.key}`, COMPLETABLETYPE.COMPLETABLE,true, true))); + completableXapiTracker.enqueue(this.gameManager.Completed(this.scene.key, COMPLETABLETYPE.STORYNODE,true)); this.gameManager.ProgressedGame(); anim.on('complete', () => { setTimeout(() => { diff --git a/src/scenes/gameLoop/baseScenarios/classBackBase.js b/src/scenes/gameLoop/baseScenarios/classBackBase.js index d3889f9..4064dc2 100644 --- a/src/scenes/gameLoop/baseScenarios/classBackBase.js +++ b/src/scenes/gameLoop/baseScenarios/classBackBase.js @@ -36,7 +36,7 @@ export default class ClassBackBase extends BaseScene { // Al hacer click, si hay algun dialogo que mostrar (para indicar que no se puede salir), se // mostrara. En caso contrario, se pasara a la escena del pasillo y se elimina esta escena super.toggleDoor(doorClosed, doorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("classDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("classDoor", GAMEOBJECTTYPE.ITEM)); if (this.doorNode) { this.dialogManager.setNode(this.doorNode); } diff --git a/src/scenes/gameLoop/baseScenarios/classFrontBase.js b/src/scenes/gameLoop/baseScenarios/classFrontBase.js index 87cccb4..e33a523 100644 --- a/src/scenes/gameLoop/baseScenarios/classFrontBase.js +++ b/src/scenes/gameLoop/baseScenarios/classFrontBase.js @@ -86,7 +86,7 @@ export default class ClassFrontBase extends BaseScene { tables.input.cursor = 'pointer'; tables.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("tables", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("tables", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.tablesNode); }); diff --git a/src/scenes/gameLoop/baseScenarios/corridorBase.js b/src/scenes/gameLoop/baseScenarios/corridorBase.js index 4528b7b..d0fc391 100644 --- a/src/scenes/gameLoop/baseScenarios/corridorBase.js +++ b/src/scenes/gameLoop/baseScenarios/corridorBase.js @@ -48,7 +48,7 @@ export default class CorridorBase extends BaseScene { // Al hacer click, si hay algun dialogo que mostrar (para indicar que no se puede salir), se // mostrara. En caso contrario, se pasara a la escena de las escaleras sin eliminar esta escena this.stairsDoor.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); if (this.stairsNode) { this.dialogManager.setNode(this.stairsNode); } @@ -67,7 +67,7 @@ export default class CorridorBase extends BaseScene { // Al hacer click, si hay algun dialogo que mostrar (para indicar que no se puede entrar), se // mostrara. En caso contrario, se pasara a la escena del bano sin eliminar esta escena super.toggleDoor(boysRestroomdoorClosed, boysRestroomDoorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("boysRestroom", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("boysRestroom", GAMEOBJECTTYPE.ITEM)); if (this.boysRestroomNode) { this.dialogManager.setNode(this.boysRestroomNode); } @@ -90,7 +90,7 @@ export default class CorridorBase extends BaseScene { // Al hacer click, si hay algun dialogo que mostrar (para indicar que no se puede entrar), se // mostrara. En caso contrario, se pasara a la escena del bano sin eliminar esta escena super.toggleDoor(girlsRestroomDoorClosed, girlsRestroomDoorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("girlsRestroom", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("girlsRestroom", GAMEOBJECTTYPE.ITEM)); if (this.girlsRestroomNode) { this.dialogManager.setNode(this.girlsRestroomNode); } @@ -115,7 +115,7 @@ export default class CorridorBase extends BaseScene { // Al hacer click, si hay algun dialogo que mostrar, se mostrara. // En caso contrario, se pasara a la escena de la clase y se borrara esta escena super.toggleDoor(classDoorClosed, classDoorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("classDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("classDoor", GAMEOBJECTTYPE.ITEM)); if (this.classNode) { this.dialogManager.setNode(this.classNode); } diff --git a/src/scenes/gameLoop/baseScenarios/livingroomBase.js b/src/scenes/gameLoop/baseScenarios/livingroomBase.js index 8bb1e6a..ec40900 100644 --- a/src/scenes/gameLoop/baseScenarios/livingroomBase.js +++ b/src/scenes/gameLoop/baseScenarios/livingroomBase.js @@ -38,7 +38,7 @@ export default class LivingroomBase extends BaseScene { // Al hacer click sobre la puerta abierta, si hay algun dialogo que mostrar (para indicar que no se puede salir), se // mostrara. En caso contrario, se pasara a la escena del patio con la camara a la izquierda y se eliminara esta escena super.toggleDoor(playgroundDoorClosed, playgroundDoorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("exitHomeDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("exitHomeDoor", GAMEOBJECTTYPE.ITEM)); if (this.doorNode) { this.dialogManager.setNode(this.doorNode); } @@ -56,7 +56,7 @@ export default class LivingroomBase extends BaseScene { let bedroomDoorOpened = this.add.image(3956 * this.scale - 4, 175 * this.scale - 2, this.atlasName, 'bedroomDoorOpened').setOrigin(0, 0).setScale(this.scale); // Al hacer click sobre la puerta abierta, se pasa a la habitacion con la camara en la izquierda super.toggleDoor(bedroomDoorClosed, bedroomDoorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bedroomDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bedroomDoor", GAMEOBJECTTYPE.ITEM)); let params = { camPos: "left" }; diff --git a/src/scenes/gameLoop/baseScenarios/playgroundBase.js b/src/scenes/gameLoop/baseScenarios/playgroundBase.js index c5b5c0b..cd23421 100644 --- a/src/scenes/gameLoop/baseScenarios/playgroundBase.js +++ b/src/scenes/gameLoop/baseScenarios/playgroundBase.js @@ -34,7 +34,7 @@ export default class PlaygroundBase extends BaseScene { // Al hacer click sobre la zona de salida si hay algun dialogo que mostrar (para indicar que no se puede salir), se // mostrara. En caso contrario, se pasara a la escena del salon con la camara a la izquierda y se eliminara esta escena exit.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("exit", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("exit", GAMEOBJECTTYPE.ITEM)); if (this.homeNode) { this.dialogManager.setNode(this.homeNode); } @@ -54,7 +54,7 @@ export default class PlaygroundBase extends BaseScene { // Al hacer click sobre la zona de la puerta, si hay algun dialogo que mostrar, (para indicar que // no se puede entrar), se mostrara. En caso contrario, se pasara a la escena de las escaleras doors.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("doors", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("doors", GAMEOBJECTTYPE.ITEM)); if (!this.doorNode && this.bgImg === 'playgroundOpened') { this.gameManager.changeScene(this.stairs, { } , true); } diff --git a/src/scenes/gameLoop/baseScenarios/restroomBase.js b/src/scenes/gameLoop/baseScenarios/restroomBase.js index 17728c2..48e17ac 100644 --- a/src/scenes/gameLoop/baseScenarios/restroomBase.js +++ b/src/scenes/gameLoop/baseScenarios/restroomBase.js @@ -38,7 +38,7 @@ export default class RestroomBase extends BaseScene { let doorOpened = this.add.image(doorPos.x, doorPos.y, this.atlasName, 'restroomDoorOpened').setOrigin(0, 0).setScale(this.scale); // Al hacer click, se pasara a la escena del pasillo sin eliminar esta escena super.toggleDoor(doorClosed, doorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("corridorDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("corridorDoor", GAMEOBJECTTYPE.ITEM)); let params = { camPos: "left" } @@ -52,11 +52,11 @@ export default class RestroomBase extends BaseScene { super.toggleDoor(stall1DoorClosed, stall1DoorOpened, () => { var statement = this.gameManager.Interacted("restroomStall1", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("restroomStall1", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); // Puerta del segundo cubiculo @@ -66,11 +66,11 @@ export default class RestroomBase extends BaseScene { super.toggleDoor(stall2DoorClosed, stall2DoorOpened, () => { var statement = this.gameManager.Interacted("restroomStall2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("restroomStall2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); // Tercer cubiculo (puerta cerrada siempre) diff --git a/src/scenes/gameLoop/baseScenarios/stairsBase.js b/src/scenes/gameLoop/baseScenarios/stairsBase.js index 4ed72ed..491fea0 100644 --- a/src/scenes/gameLoop/baseScenarios/stairsBase.js +++ b/src/scenes/gameLoop/baseScenarios/stairsBase.js @@ -33,7 +33,7 @@ export default class StairsBase extends BaseScene { wallTag.setInteractive({ useHandCursor: true }); wallTag.on('pointerdown', () => { this.dialogManager.setNode(wallTagNode); - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("wallTag", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("wallTag", GAMEOBJECTTYPE.ITEM)); }); // Puerta del despacho @@ -46,7 +46,7 @@ export default class StairsBase extends BaseScene { let doorOpened = this.add.image(doorPos.x, doorPos.y, 'stairsDoorOpened').setOrigin(0, 0).setScale(this.scale); // Al hacer click en la puerta, se muestra un dialogo super.toggleDoor(doorClosed, doorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(this.doorNode); }, false); @@ -58,7 +58,7 @@ export default class StairsBase extends BaseScene { // Al hacer click sobre las escaleras de bajada, si hay algun dialogo que mostrar (para indicar que no se puede bajar), se // mostrara. En caso contrario, se pasara a la escena del patio con la camara a la derecha sin eliminar esta escena playgroundStairs.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("playgroundStairs", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("playgroundStairs", GAMEOBJECTTYPE.ITEM)); if (this.playgroundNode) { this.dialogManager.setNode(this.playgroundNode); } @@ -77,7 +77,7 @@ export default class StairsBase extends BaseScene { // Al hacer click sobre las escaleras de subida, si hay algun dialogo que mostrar (para indicar que no se puede subir), se // mostrara. En caso contrario, se pasara a la escena del pasillo sin eliminar esta escena corridorStairs.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("corridorStairs", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("corridorStairs", GAMEOBJECTTYPE.ITEM)); if (this.corridorNode) { this.dialogManager.setNode(this.corridorNode); } diff --git a/src/scenes/gameLoop/day1/bedroomAfternoonDay1.js b/src/scenes/gameLoop/day1/bedroomAfternoonDay1.js index 2ec3778..ff3190e 100644 --- a/src/scenes/gameLoop/day1/bedroomAfternoonDay1.js +++ b/src/scenes/gameLoop/day1/bedroomAfternoonDay1.js @@ -31,7 +31,7 @@ export default class BedroomAfternoonDay1 extends BedroomBase { let bag = this.add.image(1900 * this.scale, 1035 * this.scale, this.atlasName, 'bag').setOrigin(0, 0).setScale(-this.scale * 0.9, this.scale * 0.9); bag.setInteractive({ useHandCursor: true }); bag.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day1/bedroomMorningDay1.js b/src/scenes/gameLoop/day1/bedroomMorningDay1.js index aef84fb..093e048 100644 --- a/src/scenes/gameLoop/day1/bedroomMorningDay1.js +++ b/src/scenes/gameLoop/day1/bedroomMorningDay1.js @@ -26,7 +26,7 @@ export default class BedroomMorningDay1 extends BedroomBase { bag.on('pointerdown', () => { var statement = this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("bagPicked", true); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day1/corridorBreakDay1.js b/src/scenes/gameLoop/day1/corridorBreakDay1.js index 9eeb494..b82eefd 100644 --- a/src/scenes/gameLoop/day1/corridorBreakDay1.js +++ b/src/scenes/gameLoop/day1/corridorBreakDay1.js @@ -61,7 +61,7 @@ export default class CorridorBreakDay1 extends CorridorBase { // Al salir a las escaleras, aparece Alison this.stairsDoor.once('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("stairsDoor", GAMEOBJECTTYPE.ITEM)); alison.char.visible = true; }); diff --git a/src/scenes/gameLoop/day1/nightmareDay1.js b/src/scenes/gameLoop/day1/nightmareDay1.js index f7bb61b..7b8023c 100644 --- a/src/scenes/gameLoop/day1/nightmareDay1.js +++ b/src/scenes/gameLoop/day1/nightmareDay1.js @@ -105,11 +105,11 @@ export default class NightmareDay1 extends NightmareMinigame { chair.removeInteractive(); if (node) { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("chair_with_dialog", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("chair_with_dialog", GAMEOBJECTTYPE.ITEM)); this.lastTouchedChair = chair; this.dialogManager.setNode(node); } else { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("chair_without_dialog", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("chair_without_dialog", GAMEOBJECTTYPE.ITEM)); this.chairFadesOut(chair); } }); diff --git a/src/scenes/gameLoop/day1/playgroundBreakDay1.js b/src/scenes/gameLoop/day1/playgroundBreakDay1.js index eb45ca3..9bd3f09 100644 --- a/src/scenes/gameLoop/day1/playgroundBreakDay1.js +++ b/src/scenes/gameLoop/day1/playgroundBreakDay1.js @@ -69,7 +69,7 @@ export default class PlaygroundBreakDay1 extends PlaygroundBase { }); earring.setInteractive(); earring.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("earring", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("earring", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(earringNode); }); diff --git a/src/scenes/gameLoop/day2/bedroomAfternoonDay2.js b/src/scenes/gameLoop/day2/bedroomAfternoonDay2.js index e1340ca..b10e1ae 100644 --- a/src/scenes/gameLoop/day2/bedroomAfternoonDay2.js +++ b/src/scenes/gameLoop/day2/bedroomAfternoonDay2.js @@ -27,7 +27,7 @@ export default class BedroomAfternoonDay2 extends BedroomBase { let bag = this.add.image(this.rightBound * 0.17, this.CANVAS_HEIGHT * 0.76, this.atlasName, 'bag').setOrigin(0, 0).setScale(this.scale * 1.1); bag.setInteractive({ useHandCursor: true }); bag.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day2/bedroomMorningDay2.js b/src/scenes/gameLoop/day2/bedroomMorningDay2.js index c833399..39ae047 100644 --- a/src/scenes/gameLoop/day2/bedroomMorningDay2.js +++ b/src/scenes/gameLoop/day2/bedroomMorningDay2.js @@ -26,7 +26,7 @@ export default class BedroomMorningDay2 extends BedroomBase { bag.on('pointerdown', () => { var statement = this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("bagPicked", true); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day2/nightmareDay2.js b/src/scenes/gameLoop/day2/nightmareDay2.js index a3f2102..0fced03 100644 --- a/src/scenes/gameLoop/day2/nightmareDay2.js +++ b/src/scenes/gameLoop/day2/nightmareDay2.js @@ -170,7 +170,7 @@ export default class NightmareDay2 extends NightmareMinigame { gum.setInteractive({ useHandCursor: true }); gum.on('pointerup', () => { var statement = gameObjectXapiTracker.Interacted("gum", GAMEOBJECTTYPE.ITEM); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); // Si se clica, se elmina del grupo y se destruye this.gums.remove(gum, true, true); diff --git a/src/scenes/gameLoop/day2/restroomBreakDay2.js b/src/scenes/gameLoop/day2/restroomBreakDay2.js index 1034858..ed307a8 100644 --- a/src/scenes/gameLoop/day2/restroomBreakDay2.js +++ b/src/scenes/gameLoop/day2/restroomBreakDay2.js @@ -35,7 +35,7 @@ export default class RestroomBreakDay2 extends RestroomBase { sink.input.cursor = 'pointer'; sink.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("sink", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("sink", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(sinkNode); }); diff --git a/src/scenes/gameLoop/day3/bedroomMorningDay3.js b/src/scenes/gameLoop/day3/bedroomMorningDay3.js index 8e77474..c1ad186 100644 --- a/src/scenes/gameLoop/day3/bedroomMorningDay3.js +++ b/src/scenes/gameLoop/day3/bedroomMorningDay3.js @@ -26,7 +26,7 @@ export default class BedroomMorningDay3 extends BedroomBase { bag.on('pointerdown', () => { var statement = this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("bagPicked", true); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day3/corridorMorningDay3.js b/src/scenes/gameLoop/day3/corridorMorningDay3.js index a4fde49..ae7b423 100644 --- a/src/scenes/gameLoop/day3/corridorMorningDay3.js +++ b/src/scenes/gameLoop/day3/corridorMorningDay3.js @@ -39,7 +39,7 @@ export default class CorridorMorningDay3 extends CorridorBase { let bulletinBoard = this.add.rectangle(2261 * this.scale, 388 * this.scale, 570 * this.scale, 590 * this.scale, 0xfff, 0).setOrigin(0, 0); bulletinBoard.setInteractive({ useHandCursor: true }); bulletinBoard.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); this.photo.visible = true; this.dialogManager.setNode(boardNode); }) diff --git a/src/scenes/gameLoop/day3/nightmareDay3.js b/src/scenes/gameLoop/day3/nightmareDay3.js index 77a6ab2..c1ec9f6 100644 --- a/src/scenes/gameLoop/day3/nightmareDay3.js +++ b/src/scenes/gameLoop/day3/nightmareDay3.js @@ -115,7 +115,7 @@ export default class NightmareDay3 extends NightmareMinigame { character.char.setInteractive({ useHandCursor: true }); character.char.once('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted(charName, GAMEOBJECTTYPE.NPC)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted(charName, GAMEOBJECTTYPE.NPC)); character.char.removeInteractive(); this.dialogManager.setNode(node); }) diff --git a/src/scenes/gameLoop/day3/playgroundMorningDay3.js b/src/scenes/gameLoop/day3/playgroundMorningDay3.js index c02b480..897435a 100644 --- a/src/scenes/gameLoop/day3/playgroundMorningDay3.js +++ b/src/scenes/gameLoop/day3/playgroundMorningDay3.js @@ -107,7 +107,7 @@ export default class PlaygroundMorningDay3 extends PlaygroundBase { let bulletinBoard = this.add.rectangle(1221 * this.scale, 1027 * this.scale, 190 * this.scale, 161 * this.scale, 0xfff, 0).setOrigin(0, 0); bulletinBoard.setInteractive({ useHandCursor: true }); bulletinBoard.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); this.photo.visible = true; this.dialogManager.setNode(boardNode); }) diff --git a/src/scenes/gameLoop/day4/bedroomAfternoonDay4.js b/src/scenes/gameLoop/day4/bedroomAfternoonDay4.js index cf9c6b4..88b7f92 100644 --- a/src/scenes/gameLoop/day4/bedroomAfternoonDay4.js +++ b/src/scenes/gameLoop/day4/bedroomAfternoonDay4.js @@ -35,7 +35,7 @@ export default class BedroomAfternoonDay4 extends BedroomBase { bag.flipX = true; bag.setInteractive({ useHandCursor: true }); bag.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day4/bedroomMorningDay4.js b/src/scenes/gameLoop/day4/bedroomMorningDay4.js index 313e141..3abba54 100644 --- a/src/scenes/gameLoop/day4/bedroomMorningDay4.js +++ b/src/scenes/gameLoop/day4/bedroomMorningDay4.js @@ -29,7 +29,7 @@ export default class BedroomMorningDay4 extends BedroomBase { bag.on('pointerdown', () => { var statement = this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("bagPicked", true); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day4/corridorMorningDay4.js b/src/scenes/gameLoop/day4/corridorMorningDay4.js index 6f0ae5e..425e5d8 100644 --- a/src/scenes/gameLoop/day4/corridorMorningDay4.js +++ b/src/scenes/gameLoop/day4/corridorMorningDay4.js @@ -17,7 +17,7 @@ export default class CorridorMorningDay4 extends CorridorBase { let bulletinBoard = this.add.rectangle(2261 * this.scale, 388 * this.scale, 570 * this.scale, 590 * this.scale, 0xfff, 0).setOrigin(0, 0); bulletinBoard.setInteractive({ useHandCursor: true }); bulletinBoard.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(boardNode); }) diff --git a/src/scenes/gameLoop/day4/nightmareDay4.js b/src/scenes/gameLoop/day4/nightmareDay4.js index 0ac2fef..5be8e0f 100644 --- a/src/scenes/gameLoop/day4/nightmareDay4.js +++ b/src/scenes/gameLoop/day4/nightmareDay4.js @@ -76,7 +76,7 @@ export default class NightmareDay4 extends NightmareMinigame { // Se crea la foto segun los parametros let photo = new ReportablePhoto(this, photosParams.scale, this.sprites[randomSprite], photosParams.speed, photosParams.minTouches, photosParams.maxTouches, () => { - gameObjectXapiTracker.sendStatement(gameObjectXapiTracker.Interacted("photo_" + photo.frame, GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(gameObjectXapiTracker.Interacted("photo_" + photo.frame, GAMEOBJECTTYPE.ITEM)); // Cuando se ha pulsado un numero determinado de clics... // Se produce un terremoto if (this.shakeCompleted) { diff --git a/src/scenes/gameLoop/day4/playgroundMorningDay4.js b/src/scenes/gameLoop/day4/playgroundMorningDay4.js index aee9553..c7e8b26 100644 --- a/src/scenes/gameLoop/day4/playgroundMorningDay4.js +++ b/src/scenes/gameLoop/day4/playgroundMorningDay4.js @@ -30,7 +30,7 @@ export default class PlaygroundMorningDay4 extends PlaygroundBase { let bulletinBoard = this.add.rectangle(1221 * this.scale, 1027 * this.scale, 190 * this.scale, 161 * this.scale, 0xfff, 0).setOrigin(0, 0); bulletinBoard.setInteractive({ useHandCursor: true }); bulletinBoard.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("bulletinBoard", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(boardNode); }) diff --git a/src/scenes/gameLoop/day5/bedroomMorningDay5.js b/src/scenes/gameLoop/day5/bedroomMorningDay5.js index cb90ec6..c731f68 100644 --- a/src/scenes/gameLoop/day5/bedroomMorningDay5.js +++ b/src/scenes/gameLoop/day5/bedroomMorningDay5.js @@ -28,7 +28,7 @@ export default class BedroomMorningDay5 extends BedroomBase { bag.on('pointerdown', () => { var statement = this.gameManager.Interacted("bag", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("bagPicked", true); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); this.dialogManager.setNode(bagNode) }); diff --git a/src/scenes/gameLoop/day5/restroomAfternoonDay5.js b/src/scenes/gameLoop/day5/restroomAfternoonDay5.js index 588a761..10a95ac 100644 --- a/src/scenes/gameLoop/day5/restroomAfternoonDay5.js +++ b/src/scenes/gameLoop/day5/restroomAfternoonDay5.js @@ -20,7 +20,7 @@ export default class RestroomAfternoonDay5 extends RestroomBase { let doorClosed = this.add.image(doorPos.x, doorPos.y, this.atlasName, 'restroomDoorClosed').setOrigin(0, 0).setScale(this.scale); doorClosed.setInteractive({ useHandCursor: true }); doorClosed.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("restroomDoorclosed", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("restroomDoorclosed", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(doorNode); }); @@ -78,7 +78,7 @@ export default class RestroomAfternoonDay5 extends RestroomBase { sink.setInteractive(sinkPolygon, Phaser.Geom.Polygon.Contains); sink.input.cursor = 'pointer'; sink.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("sink", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("sink", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(sinkNode); }); @@ -101,7 +101,7 @@ export default class RestroomAfternoonDay5 extends RestroomBase { floor.setInteractive(floorPolygon, Phaser.Geom.Polygon.Contains); floor.input.cursor = 'pointer'; floor.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("floor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("floor", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(floorNode); }); diff --git a/src/scenes/gameLoop/oppositeRestroom.js b/src/scenes/gameLoop/oppositeRestroom.js index c86b39e..91d80f1 100644 --- a/src/scenes/gameLoop/oppositeRestroom.js +++ b/src/scenes/gameLoop/oppositeRestroom.js @@ -35,7 +35,7 @@ export default class OppositeRestroom extends BaseScene { let doorOpened = this.add.image(doorPos.x, doorPos.y, this.atlasName, 'restroomDoorOpened').setOrigin(0, 0).setScale(this.scale); // Al hacer click, se pasara a la escena del pasillo sin eliminar esta escena super.toggleDoor(doorClosed, doorOpened, () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("restroomDoor", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("restroomDoor", GAMEOBJECTTYPE.ITEM)); let params = { camPos: "left" } @@ -49,11 +49,11 @@ export default class OppositeRestroom extends BaseScene { super.toggleDoor(stall2DoorClosed, stall2DoorOpened, () => { var statement = this.gameManager.Interacted("restroomStall2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "closed"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }, true, () => { var statement = this.gameManager.Interacted("restroomStall2", GAMEOBJECTTYPE.ITEM); statement.addResultExtension("status", "opened"); - gameObjectXapiTracker.sendStatement(statement); + gameObjectXapiTracker.enqueue(statement); }); stall2DoorClosed.flipX = true; stall2DoorOpened.flipX = true; @@ -63,7 +63,7 @@ export default class OppositeRestroom extends BaseScene { let phone = this.add.image(2100 * this.scale, 1280 * this.scale, this.atlasName, 'stolenPhone').setOrigin(0, 0).setScale(this.scale * 1.7); phone.setInteractive({ useHandCursor: true }); phone.on('pointerdown', () => { - gameObjectXapiTracker.sendStatement(this.gameManager.Interacted("phone", GAMEOBJECTTYPE.ITEM)); + gameObjectXapiTracker.enqueue(this.gameManager.Interacted("phone", GAMEOBJECTTYPE.ITEM)); this.dialogManager.setNode(phoneNode); }) diff --git a/src/scenes/menus/languageMenu.js b/src/scenes/menus/languageMenu.js index ba28a1c..94df5f4 100644 --- a/src/scenes/menus/languageMenu.js +++ b/src/scenes/menus/languageMenu.js @@ -45,7 +45,6 @@ export default class LanguageMenu extends Phaser.Scene { height, 'UK', 'en', tweenTime, increase); // Boton de salir - let exitTranslation = "Exit"; let exitButton = new Button(this, 100, 3 * CANVAS_HEIGHT / 4 + 10, 0.5, () => { if(!this.gameManager.initialized) { @@ -55,14 +54,6 @@ export default class LanguageMenu extends Phaser.Scene { }, 'powerOff', { R: 64, G: 142, B: 134 }, { R: 0, G: 104, B: 93 }, { R: 200, G: 200, B: 200 } ); - - // Texto que esta al lado del boton de salir - let exitTextStyle = { ...this.gameManager.textConfig }; - exitTextStyle.fontFamily = 'kimberley'; - exitTextStyle.fontSize = '40px'; - exitTextStyle.color = '#004E46'; - - this.add.text(exitButton.x + 60, exitButton.y, exitTranslation, exitTextStyle).setOrigin(0, 0.5); } /** @@ -100,7 +91,7 @@ export default class LanguageMenu extends Phaser.Scene { }); }); button.on('pointerdown', () => { - alternativeXapiTracker.sendStatement(alternativeXapiTracker.Selected("language", language, ALTERNATIVETYPE.MENU)); + alternativeXapiTracker.enqueue(alternativeXapiTracker.Selected("language", language, ALTERNATIVETYPE.MENU)); // Se cambia el idioma y se pasa a la pantalla de titulo this.i18next.changeLanguage(language); this.gameManager.startTitleMenu(); diff --git a/src/scenes/menus/loginMenu.js b/src/scenes/menus/loginMenu.js index bbf1c54..94d257e 100644 --- a/src/scenes/menus/loginMenu.js +++ b/src/scenes/menus/loginMenu.js @@ -122,7 +122,7 @@ export default class LoginMenu extends Phaser.Scene { var statement = accessibleXapiTracker.Accessed("StartGame"); statement.addResultExtension("gender", userInfo.gender); statement.addResultExtension("password", userInfo.password); - accessibleXapiTracker.sendStatement(statement); + accessibleXapiTracker.enqueue(statement); this.gameManager.startGame(userInfo); } From 7862eb5120826124916fd1ed34e546cdcc137ebc Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Thu, 27 Feb 2025 11:35:53 +0100 Subject: [PATCH 55/86] fix localization in french + adding new line to be able to read correctlyu --- localization/fr/computer/posts.json | 2 +- .../fr/day1/livingroomAfternoonDay1.json | 6 +++--- .../fr/day4/livingroomAfternoonDay4.json | 4 ++-- localization/fr/day4/livingroomMorningDay4.json | 4 ++-- localization/fr/day4/stairsMorningDay4.json | 1 - localization/fr/menus/creditsScene.json | 6 +++--- localization/fr/names.json | 4 ++-- localization/fr/phoneInfo.json | 16 ++++++++-------- 8 files changed, 21 insertions(+), 22 deletions(-) diff --git a/localization/fr/computer/posts.json b/localization/fr/computer/posts.json index c828071..cbd1526 100644 --- a/localization/fr/computer/posts.json +++ b/localization/fr/computer/posts.json @@ -124,7 +124,7 @@ }, "insultReply": { "text": "", - "text_male": "Je suis sûre que tu es celui qui s'est pissé dessus la nuit, hahaha", + "text_male": "Je suis sûr que tu es celui qui s'est pissé dessus la nuit, hahaha", "text_female": "Je suis sûre que tu es celle qui s'est pissée dessus la nuit, hahaha" }, "snitch": { diff --git a/localization/fr/day1/livingroomAfternoonDay1.json b/localization/fr/day1/livingroomAfternoonDay1.json index c7d25af..3a864a5 100644 --- a/localization/fr/day1/livingroomAfternoonDay1.json +++ b/localization/fr/day1/livingroomAfternoonDay1.json @@ -169,7 +169,7 @@ }, { "text": "", - "text_male": "Tout cela parce que je me suis assis à sa place.", + "text_male": "Tout cela parce que je me suis assis à sa place.", "text_female": "Tout cela parce que je me suis assise à sa place." }, { @@ -205,10 +205,10 @@ }, "schoolChoices": [ { - "text": "Le cadre est sympa... les bâtiments sont neufs et les salles de classe sont bien équipées (ordis, vidéoprojecteurs, ...). On a un terrain de foot, un terrain de basket, des tables de ping-pong... c'est super!" + "text": "Le cadre est sympa... les bâtiments sont neufs et les salles de classe sont bien équipées.\nC'est super!" }, { - "text": "Ouais, il est beaucoup moins bien équipé que mon ancien lycée!...même pas de salle pour étudier, ni de salle pour se retrouver entre nous, ni de MDL (Maison Des Lycéens)." + "text": "Ouais, il est beaucoup moins bien équipé que mon ancien lycée!" } ] } diff --git a/localization/fr/day4/livingroomAfternoonDay4.json b/localization/fr/day4/livingroomAfternoonDay4.json index 842ec27..1f664a6 100644 --- a/localization/fr/day4/livingroomAfternoonDay4.json +++ b/localization/fr/day4/livingroomAfternoonDay4.json @@ -150,11 +150,11 @@ "text": "D'accord, on n'y va pas pour l'instant." }, "rejectMeeting2": { - "text": "Mais si quelque chose de grave arrive... nous ne serons pas arrêtés." + "text": "Mais si quelque chose de grave arrive... rien ne nous arrêtera." }, "meetingSuccess": { - "text": "Raison de plus pour aller demain au table du directeur et régler tout ça." + "text": "Raison de plus pour aller voir demain ton directeur et régler tout ça." } }, diff --git a/localization/fr/day4/livingroomMorningDay4.json b/localization/fr/day4/livingroomMorningDay4.json index 7271706..dacb63a 100644 --- a/localization/fr/day4/livingroomMorningDay4.json +++ b/localization/fr/day4/livingroomMorningDay4.json @@ -16,8 +16,8 @@ ], "thanks": { "text": "", - "text_male": "Pas du tout chéri, nous voulons que tu ailles bien.", - "text¨_female": "Pas du tout chérie, nous voulons que tu ailles bien." + "text_male": "De rien chéri, nous voulons que tu ailles bien.", + "text¨_female": "De rien chérie, nous voulons que tu ailles bien." }, "thanks2": { "text": "Nous essaierons d'avoir ce rendez-vous demain au plus tard." diff --git a/localization/fr/day4/stairsMorningDay4.json b/localization/fr/day4/stairsMorningDay4.json index 678b062..45f736c 100644 --- a/localization/fr/day4/stairsMorningDay4.json +++ b/localization/fr/day4/stairsMorningDay4.json @@ -17,7 +17,6 @@ "text": "", "text_male": "Je suis pressé, la cloche a déjà sonné. On se parle plus tard.", "text_female": "Je suis pressée, la cloche a déjà sonné. On se parle plus tard." - } ], diff --git a/localization/fr/menus/creditsScene.json b/localization/fr/menus/creditsScene.json index f891f3e..cd1b9cb 100644 --- a/localization/fr/menus/creditsScene.json +++ b/localization/fr/menus/creditsScene.json @@ -7,11 +7,11 @@ "webVersionText": "Version web", "originalConceptText": "Concept original", "acknowledgmentsText": "Remerciement", - "libraryText": "pour sa magnifique bibliothèque de dialogues", - "hackatonText": "pour ce hackaton qui a tout déclenché", + "libraryText": "Pour sa magnifique bibliothèque de dialogues", + "hackatonText": "Pour ce hackaton qui a tout déclenché", "betaTestersText": "Beta testers", "localizationText": "Équipe de traduction", - "frenchText": "Textes en Français", + "frenchText": "Traduction en Français", "collaboratorsText": "Collaborateurs", "schoolsText": "Établissements d'enseignement", "schoolCollabText": "Ont collaboré à la validation du jeu:", diff --git a/localization/fr/names.json b/localization/fr/names.json index 89cb048..6442ae7 100644 --- a/localization/fr/names.json +++ b/localization/fr/names.json @@ -10,8 +10,8 @@ "Jose": "Joseph", "Ester": "Esther", "Alicia": "Alice", - "Miguel": "Miguel", - "Jesus": "Jesús", + "Miguel": "Michel", + "Jesus": "Jules", "teacher": "Professeur", "computer": "PC", "voices": "Des voix", diff --git a/localization/fr/phoneInfo.json b/localization/fr/phoneInfo.json index 181bf6c..efa688c 100644 --- a/localization/fr/phoneInfo.json +++ b/localization/fr/phoneInfo.json @@ -1,7 +1,7 @@ { "alarm": { "title": "Alarme", - "message": "Vous êtes incapable de dormir davantage. Vous devriez vous réveiller maintenant" + "message": "Vous êtes incapable de dormir davantage.\n Vous devriez vous réveiller maintenant" }, "clock": { "days": [ @@ -20,16 +20,16 @@ "classStart": "08:30", "playgroundMorningLate": "08:40", - "startBreak": "11:05", - "midBreak": "11:10", - "endBreak": "11:20", + "startBreak": "12:01", + "midBreak": "12:30", + "endBreak": "13:02", - "endClass": "14:02", - "returnHome": "15:00", + "endClass": "17:30", + "returnHome": "18:02", "afternoon": { - "endClass": "14:05", - "corridor": "14:08" + "endClass": "17:00", + "corridor": "17:08" }, "night": "21:30" From 68d6aef611c8ae0d113d5416fc45708bfb83eaba Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Thu, 27 Mar 2025 11:46:38 +0100 Subject: [PATCH 56/86] send batch directly when initialized and progressed --- src/managers/gameManager.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/managers/gameManager.js b/src/managers/gameManager.js index d51533d..810fbd5 100644 --- a/src/managers/gameManager.js +++ b/src/managers/gameManager.js @@ -525,7 +525,8 @@ export default class GameManager { InitializedGame() { this.startedTime=new Date(); this.Initialized=true; - completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)) + completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)); + xapiTracker.sendBatch(); } ProgressedGame() { @@ -536,6 +537,7 @@ export default class GameManager { statement.setDuration(duration); statement = this.AddStateExtensions(statement); completableXapiTracker.enqueue(statement); + xapiTracker.sendBatch(); } CompletedGame(completion) { From ccf2d049342484bb8ca897ddf2d9c50747f3cc44 Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:00:36 +0200 Subject: [PATCH 57/86] fix initialized before completed and await in language menu --- src/managers/gameManager.js | 6 +++--- src/scenes/menus/languageMenu.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/managers/gameManager.js b/src/managers/gameManager.js index 810fbd5..1c8cacb 100644 --- a/src/managers/gameManager.js +++ b/src/managers/gameManager.js @@ -522,11 +522,11 @@ export default class GameManager { return statement; } - InitializedGame() { + async InitializedGame() { this.startedTime=new Date(); this.Initialized=true; - completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)); - xapiTracker.sendBatch(); + await completableXapiTracker.enqueue(completableXapiTracker.Initialized("ConnectadoWeb",COMPLETABLETYPE.GAME)); + await xapiTracker.sendBatch(); } ProgressedGame() { diff --git a/src/scenes/menus/languageMenu.js b/src/scenes/menus/languageMenu.js index 94df5f4..b9d91da 100644 --- a/src/scenes/menus/languageMenu.js +++ b/src/scenes/menus/languageMenu.js @@ -46,9 +46,9 @@ export default class LanguageMenu extends Phaser.Scene { // Boton de salir let exitButton = new Button(this, 100, 3 * CANVAS_HEIGHT / 4 + 10, 0.5, - () => { + async () => { if(!this.gameManager.initialized) { - this.gameManager.InitializedGame(); + await this.gameManager.InitializedGame(); } this.gameManager.CompletedGame(true); }, From f410fa5d4ba639bad7a9195f1d1a39966a10bab6 Mon Sep 17 00:00:00 2001 From: Julio SANTILARIO BERTHILIER <62715763+jujusb@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:16:39 +0200 Subject: [PATCH 58/86] fix conectadoWeb tracker new version --- index.html | 9 +- src/UI/computer/friendsTab.js | 4 +- src/UI/computer/loginScreen.js | 6 +- src/UI/computer/post.js | 4 +- src/UI/computer/socialNetworkScreen.js | 6 +- src/UI/phone/chatScreen.js | 6 +- src/UI/phone/messagesScreen.js | 4 +- src/UI/phone/phone.js | 14 +- src/UI/phone/settingsScreen.js | 6 +- src/gameObjects/character.js | 4 +- src/lib/js-tracker-webpack.bundle.js | 2 + .../js-tracker-webpack.bundle.js.LICENSE.txt | 291 ++++++++++++++++++ src/lib/xapi.js | 13 +- src/lib/xapiTracker.bundle.js | 2 - src/managers/dialogManager.js | 14 +- src/managers/gameManager.js | 26 +- src/managers/phoneManager.js | 14 +- .../gameLoop/baseScenarios/bedroomBase.js | 40 +-- .../gameLoop/baseScenarios/classBackBase.js | 4 +- .../gameLoop/baseScenarios/classFrontBase.js | 4 +- .../gameLoop/baseScenarios/corridorBase.js | 10 +- .../gameLoop/baseScenarios/livingroomBase.js | 6 +- .../gameLoop/baseScenarios/nightmareBase.js | 2 +- .../baseScenarios/nightmareMinigame.js | 2 +- .../gameLoop/baseScenarios/playgroundBase.js | 6 +- .../gameLoop/baseScenarios/restroomBase.js | 20 +- .../gameLoop/baseScenarios/stairsBase.js | 10 +- .../gameLoop/day1/bedroomAfternoonDay1.js | 4 +- .../gameLoop/day1/bedroomMorningDay1.js | 6 +- src/scenes/gameLoop/day1/corridorBreakDay1.js | 4 +- src/scenes/gameLoop/day1/nightmareDay1.js | 6 +- .../gameLoop/day1/playgroundBreakDay1.js | 4 +- .../gameLoop/day2/bedroomAfternoonDay2.js | 4 +- .../gameLoop/day2/bedroomMorningDay2.js | 6 +- src/scenes/gameLoop/day2/nightmareDay2.js | 6 +- src/scenes/gameLoop/day2/restroomBreakDay2.js | 4 +- .../gameLoop/day3/bedroomMorningDay3.js | 6 +- .../gameLoop/day3/corridorMorningDay3.js | 4 +- src/scenes/gameLoop/day3/nightmareDay3.js | 4 +- .../gameLoop/day3/playgroundMorningDay3.js | 4 +- .../gameLoop/day4/bedroomAfternoonDay4.js | 4 +- .../gameLoop/day4/bedroomMorningDay4.js | 6 +- .../gameLoop/day4/corridorMorningDay4.js | 4 +- src/scenes/gameLoop/day4/nightmareDay4.js | 5 +- .../gameLoop/day4/playgroundMorningDay4.js | 4 +- .../gameLoop/day5/bedroomMorningDay5.js | 6 +- .../gameLoop/day5/restroomAfternoonDay5.js | 8 +- src/scenes/gameLoop/oppositeRestroom.js | 14 +- src/scenes/menus/languageMenu.js | 4 +- src/scenes/menus/loginMenu.js | 6 +- 50 files changed, 464 insertions(+), 188 deletions(-) create mode 100644 src/lib/js-tracker-webpack.bundle.js create mode 100644 src/lib/js-tracker-webpack.bundle.js.LICENSE.txt delete mode 100644 src/lib/xapiTracker.bundle.js diff --git a/index.html b/index.html index e8c6cd9..827ae71 100644 --- a/index.html +++ b/index.html @@ -12,14 +12,7 @@ - - +

    kiIQ33=CnO$1KpfEhTplQ}LO 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 e(Lfs_DJ|=&?O%C4=}m2*6`=d#Wzp$P!xR)C5C diff --git a/assets/backgrounds/classFront/desks/frontRow4Tables.png b/assets/backgrounds/classFront/desks/frontRow4Tables.png index eb96cfebd0a1caff711bb7ab4cf2afaabe1ea00b..a28e59fac87e9bc01a14b987e4b77f863df3f53a 100644 GIT binary patch literal 103472 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 z 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𝔐L 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 literal 100558 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 Owy9>@$aN-OiT@9Mxvug6 literal 93417 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