diff --git a/package-lock.json b/package-lock.json index a8dbfa69c..abb7f0cb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "bootstrap": "^5.1.1", "canvas-confetti": "^1.4.0", "core-js": "^3.6.5", + "http-status-codes": "^2.1.4", "vue": "^3.0.0", "vue-router": "^4.0.11", "vuex": "^4.0.2", @@ -438,7 +439,9 @@ "version": "7.15.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "bin": "./bin/babel-parser.js", + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { "node": ">=6.0.0" } @@ -2526,7 +2529,7 @@ "dev": true, "optional": true, "bin": { - "prettier": "./bin-prettier.js" + "prettier": "bin-prettier.js" }, "engines": { "node": ">=4" @@ -2923,12 +2926,14 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.21.3" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { @@ -2936,9 +2941,11 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-html": { @@ -2950,7 +2957,7 @@ "node >= 0.8.0" ], "bin": { - "ansi-html": "./bin/ansi-html" + "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { @@ -3928,9 +3935,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-api": { @@ -4272,12 +4281,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cli-highlight/node_modules/chalk": { @@ -4285,13 +4296,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/cli-highlight/node_modules/color-convert": { @@ -4338,9 +4351,11 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-width": { @@ -4885,7 +4900,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/copy-webpack-plugin/node_modules/slash": { @@ -5016,7 +5031,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/crypto-browserify": { @@ -5456,12 +5471,14 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/is-stream": { @@ -5469,9 +5486,11 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/mimic-fn": { @@ -5500,12 +5519,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-gateway/node_modules/p-finally": { @@ -5556,7 +5577,7 @@ "isexe": "^2.0.0" }, "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" }, "engines": { "node": ">= 8" @@ -5759,11 +5780,13 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, - "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domain-browser": { @@ -5989,7 +6012,9 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "funding": "https://github.com/fb55/entities?sponsor=1" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/errno": { "version": "0.1.8", @@ -6099,7 +6124,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, - "funding": "https://opencollective.com/eslint", "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -6140,10 +6164,13 @@ "v8-compile-cache": "^2.0.3" }, "bin": { - "eslint": "./bin/eslint.js" + "eslint": "bin/eslint.js" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { @@ -6223,12 +6250,14 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/eslint-scope": { @@ -6295,12 +6324,14 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/import-fresh": { @@ -6308,13 +6339,15 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/resolve-from": { @@ -6355,8 +6388,8 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { - "esparse": "./bin/esparse.js", - "esvalidate": "./bin/esvalidate.js" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" @@ -6860,12 +6893,14 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -6986,7 +7021,6 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "funding": "https://github.com/avajs/find-cache-dir?sponsor=1", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -6994,6 +7028,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-up": { @@ -7032,7 +7069,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/flatted": { @@ -7675,7 +7712,7 @@ "uglify-js": "3.4.x" }, "bin": { - "html-minifier": "./cli.js" + "html-minifier": "cli.js" }, "engines": { "node": ">=4" @@ -7907,6 +7944,11 @@ "npm": ">=1.3.7" } }, + "node_modules/http-status-codes": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.1.4.tgz", + "integrity": "sha512-MZVIsLKGVOVE1KEnldppe6Ij+vmemMuApDfjhVSLzyYP+td0bREEYyAoIw9yFePoBXManCuBqmiNP5FqJS5Xkg==" + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -8173,12 +8215,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/inquirer/node_modules/chalk": { @@ -8186,13 +8230,15 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/cli-cursor": { @@ -8257,12 +8303,14 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/restore-cursor": { @@ -8574,12 +8622,14 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { @@ -8722,9 +8772,11 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { @@ -9271,12 +9323,14 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/map-cache": { @@ -9812,7 +9866,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/normalize-path": { @@ -10271,12 +10325,14 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { @@ -10538,9 +10594,11 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, - "funding": "https://github.com/sponsors/jonschlinkert", "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -11683,7 +11741,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -11692,6 +11749,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/readable-stream": { @@ -12049,7 +12109,7 @@ "glob": "^7.1.3" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" } }, "node_modules/ripemd160": { @@ -12210,7 +12270,7 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "semver": "./bin/semver.js" + "semver": "bin/semver.js" } }, "node_modules/send": { @@ -12418,7 +12478,7 @@ "safe-buffer": "^5.0.1" }, "bin": { - "sha.js": "./bin.js" + "sha.js": "bin.js" } }, "node_modules/shallow-clone": { @@ -13249,9 +13309,11 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "funding": "https://github.com/sponsors/sindresorhus", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stylehacks": { @@ -13322,7 +13384,7 @@ "util.promisify": "~1.0.0" }, "bin": { - "svgo": "./bin/svgo" + "svgo": "bin/svgo" }, "engines": { "node": ">=4.0.0" @@ -13345,9 +13407,11 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true, - "funding": "https://github.com/sponsors/fb55", "engines": { "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/svgo/node_modules/dom-serializer": { @@ -13583,7 +13647,7 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" } }, "node_modules/terser-webpack-plugin/node_modules/source-map": { @@ -14245,7 +14309,7 @@ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "bin": { - "uuid": "./bin/uuid" + "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { @@ -14324,7 +14388,6 @@ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", "dev": true, - "funding": "https://github.com/sponsors/mysticatea", "dependencies": { "debug": "^4.1.1", "eslint-scope": "^5.1.1", @@ -14337,6 +14400,9 @@ "engines": { "node": ">=8.10" }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, "peerDependencies": { "eslint": ">=5.0.0" } @@ -14412,13 +14478,15 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "optional": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/vue-loader-v16/node_modules/chalk": { @@ -14426,7 +14494,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": "https://github.com/chalk/chalk?sponsor=1", "optional": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -14434,6 +14501,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/vue-loader-v16/node_modules/color-convert": { @@ -15356,7 +15426,7 @@ "isexe": "^2.0.0" }, "bin": { - "which": "./bin/which" + "which": "bin/which" } }, "node_modules/which-boxed-primitive": { @@ -15427,12 +15497,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/color-convert": { @@ -15577,12 +15649,14 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/yargs/node_modules/cliui": { @@ -15654,7 +15728,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15662,6 +15735,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/yargs/node_modules/y18n": { @@ -21961,6 +22037,11 @@ "sshpk": "^1.7.0" } }, + "http-status-codes": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.1.4.tgz", + "integrity": "sha512-MZVIsLKGVOVE1KEnldppe6Ij+vmemMuApDfjhVSLzyYP+td0bREEYyAoIw9yFePoBXManCuBqmiNP5FqJS5Xkg==" + }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", diff --git a/package.json b/package.json index b68a43b15..b4af1e8cd 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "bootstrap": "^5.1.1", "canvas-confetti": "^1.4.0", "core-js": "^3.6.5", + "http-status-codes": "^2.1.4", "vue": "^3.0.0", "vue-router": "^4.0.11", "vuex": "^4.0.2", diff --git a/src/global-methods.js b/src/global-methods.js new file mode 100644 index 000000000..ddd6f072e --- /dev/null +++ b/src/global-methods.js @@ -0,0 +1,60 @@ +import axios from 'axios'; +import { StatusCodes } from 'http-status-codes'; + +export default { + callHttpClient({ + method, + endpoint, + payload, + responseType = {}, + ignoreErrors = false + }) { + return new Promise((resolve, reject) => { + // Grab our accessToken from Okta. + const accessToken = this.getBearerTokenForStorage(); + + // Merge payload with analytics data + const payloadAndAnalyticsData = Object.assign({}, payload, { + AppName: "Agency Advantage Dashboard" + }); + + axios({ + method: method, + url: endpoint, + //data: payloadAndAnalyticsData, + crossdomain: true, + responseType: responseType + // headers: { + // Authorization: `Bearer ${accessToken}` + // } + }) + .then(function(response) { + if (response.data.isSuccess || (response.status == 200)) { + resolve(response); + } else { + reject(response); + } + }, error => { + let statusCode = error.response.status; + let message = 'Sorry, something happened on our end. Please try again'; + if (!ignoreErrors) { + switch (statusCode) { + case StatusCodes.UNAUTHORIZED: + this.createPromiseRejection("Unauthorized, routing back to login page.", error.response, reject, true, false); + break; + case StatusCodes.BAD_REQUEST: + this.createPromiseRejection(error.response.data, error.response, reject, true, false); + break; + } + } + }); + }) + }, + getBearerTokenForStorage() { + try { + return JSON.parse(localStorage.getItem('okta-token-storage')).accessToken.accessToken; + } catch (error) { + return ''; + } + } +} \ No newline at end of file diff --git a/src/layouts/CarFunnel/BaseTemplate.vue b/src/layouts/FMG/BaseTemplate.vue similarity index 100% rename from src/layouts/CarFunnel/BaseTemplate.vue rename to src/layouts/FMG/BaseTemplate.vue diff --git a/src/layouts/CarFunnel/Damage/SelectDamage.vue b/src/layouts/FMG/Damage/SelectDamage.vue similarity index 100% rename from src/layouts/CarFunnel/Damage/SelectDamage.vue rename to src/layouts/FMG/Damage/SelectDamage.vue diff --git a/src/layouts/CarFunnel/SelectCar/CarAttributes.vue b/src/layouts/FMG/Vehicle/CarAttributes.vue similarity index 100% rename from src/layouts/CarFunnel/SelectCar/CarAttributes.vue rename to src/layouts/FMG/Vehicle/CarAttributes.vue diff --git a/src/layouts/CarFunnel/SelectCar/SelectMake.vue b/src/layouts/FMG/Vehicle/SelectMake.vue similarity index 100% rename from src/layouts/CarFunnel/SelectCar/SelectMake.vue rename to src/layouts/FMG/Vehicle/SelectMake.vue diff --git a/src/layouts/CarFunnel/SelectCar/SelectModel.vue b/src/layouts/FMG/Vehicle/SelectModel.vue similarity index 100% rename from src/layouts/CarFunnel/SelectCar/SelectModel.vue rename to src/layouts/FMG/Vehicle/SelectModel.vue diff --git a/src/layouts/CarFunnel/SelectCar/SelectStyle.vue b/src/layouts/FMG/Vehicle/SelectStyle.vue similarity index 100% rename from src/layouts/CarFunnel/SelectCar/SelectStyle.vue rename to src/layouts/FMG/Vehicle/SelectStyle.vue diff --git a/src/layouts/CarFunnel/SelectCar/SelectYear.vue b/src/layouts/FMG/Vehicle/SelectYear.vue similarity index 100% rename from src/layouts/CarFunnel/SelectCar/SelectYear.vue rename to src/layouts/FMG/Vehicle/SelectYear.vue diff --git a/src/store/index.js b/src/store/index.js index c956742bd..423914f0d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,6 +1,7 @@ import { createStore } from 'vuex'; import createPersistedState from 'vuex-persistedstate'; import axios from 'axios'; +import globalMethods from '../global-methods' import router from '@/router'; export default createStore({ @@ -22,7 +23,7 @@ export default createStore({ mutations: { updateYear(state, data){ state.year = data.year; - state.makes = data.makes.data.Result; + state.makes = data.makes; state.slideTransition = 'slide' }, updateMake(state, data){ @@ -49,7 +50,15 @@ export default createStore({ }, actions: { async selectYear(context, year){ - const makes = await axios.get(`https://mockey.qa.sagaws.net/service/makes/year=${year}`); + let makes = []; + await globalMethods.callHttpClient({ + method: 'GET', + endpoint: `https://mockey.qa.sagaws.net/service/makes/year=${year}`, + payload: {}, + }) + .then(function (response) { + makes = response.data.Result; + }); context.commit('updateYear', {year, makes}); router.push(`/select-make?year=${year}`); },