diff --git a/client/.eslintrc.json b/client/.eslintrc.json new file mode 100644 index 0000000..62e25d8 --- /dev/null +++ b/client/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "env": { + "node": true + }, + "parserOptions": { + "ecmaVersion": 6, + "ecmaFeatures": { + "impliedStrict": true + } + }, + "extends": [ + "plugin:vue/vue3-recommended", + "eslint:recommended" + ], + "rules": { + "indent": ["error", 2], + "accessor-pairs": "warn", + "array-callback-return": "error", + "brace-style": "warn", + "consistent-return": "error", + "default-case": "error", + "eqeqeq": "warn", + "no-case-declarations": "error", + "no-empty-pattern": "warn", + "no-fallthrough": "error", + "no-unused-vars": "error", + "no-useless-catch": "error", + "no-var": "error", + "semi": "warn", + "no-extra-semi": "error", + "yoda": "warn" + } +} \ No newline at end of file diff --git a/client/babel.config.js b/client/babel.config.js index d470020..821efb6 100644 --- a/client/babel.config.js +++ b/client/babel.config.js @@ -1,5 +1,5 @@ module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ], -} + presets: [ + '@vue/cli-plugin-babel/preset' + ], +}; diff --git a/client/package-lock.json b/client/package-lock.json index 67dbef0..d95a895 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -2240,34 +2240,11 @@ "dev": true }, "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", "requires": { - "follow-redirects": "1.5.10" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "follow-redirects": "^1.10.0" } }, "babel-eslint": { @@ -4614,12 +4591,11 @@ "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -4632,6 +4608,12 @@ "restore-cursor": "^3.1.0" } }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4648,15 +4630,32 @@ "dev": true }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -4667,18 +4666,18 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -4691,9 +4690,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -4701,30 +4700,30 @@ } }, "inquirer": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.6.tgz", - "integrity": "sha512-7SVO4h+QIdMq6XcqIqrNte3gS5MzCCKZdsq9DO4PJziBFNYzP3PGFbDjgadDb//MCahzgjCxvQ/O2wa7kx9o4w==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4761,9 +4760,9 @@ "dev": true }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -4785,6 +4784,15 @@ "signal-exit": "^3.0.2" } }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -4831,9 +4839,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -4861,14 +4869,50 @@ } }, "eslint-plugin-vue": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.1.tgz", - "integrity": "sha512-MiIDOotoWseIfLIfGeDzF6sDvHkVvGd2JgkvjyHtN3q4RoxdAXrAMuI3SXTOKatljgacKwpNAYShmcKZa4yZzw==", + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.0.0-beta.4.tgz", + "integrity": "sha512-yb8Kki8b94a3A1sGum9TyVAkvPfKGPzWfZcXRmA2Tylt7TRi+b6mOtn1o6kM3NWatBs5gcGiCrH033DDPn0Msw==", "dev": true, "requires": { + "eslint-utils": "^2.1.0", "natural-compare": "^1.4.0", - "semver": "^5.6.0", - "vue-eslint-parser": "^7.0.0" + "semver": "^7.3.2", + "vue-eslint-parser": "^7.1.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "eslint-scope": { @@ -5428,9 +5472,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "flush-write-stream": { @@ -5447,7 +5491,6 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz", "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==", - "dev": true, "requires": { "debug": "^3.0.0" }, @@ -5456,7 +5499,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -8017,8 +8059,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -11261,9 +11302,9 @@ "dev": true }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "stylehacks": { @@ -11971,9 +12012,9 @@ "integrity": "sha512-Wg+ObZoYK6McHb5OOCFWvm0R7xHp0/p0G1ocx/8bO22jvA/yVY05rADbfiztwCokXBNfQuGv/XSd1ozcTFgekw==" }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "validate-npm-package-license": { @@ -12026,28 +12067,62 @@ "integrity": "sha512-vuEUm6wYMMrFAHFCrkzIUAy8+MgPAbBGmYXnk2M6X6O2KHbMT1wuDD2izacmsSUp6ZM02e23MJRtPRobl88VMg==" }, "vue-eslint-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz", - "integrity": "sha512-yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz", + "integrity": "sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==", "dev": true, "requires": { "debug": "^4.1.1", "eslint-scope": "^5.0.0", "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", + "espree": "^6.2.1", "esquery": "^1.0.1", "lodash": "^4.17.15" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } } } }, diff --git a/client/package.json b/client/package.json index 911d889..9e70ab8 100644 --- a/client/package.json +++ b/client/package.json @@ -1,71 +1,59 @@ { - "name": "spellsaurus_client", - "version": "1.0.0", - "description": "The client interface of spellsaurus", - "keywords": [ - "rpg", - "dev", - "spells", - "roleplay", - "website", - "database" - ], - "author": "AlexisNP", - "license": "ISC", - "bugs": { - "url": "https://github.com/AlexisNP/spellsaurus/issues" - }, - "homepage": "https://github.com/AlexisNP/spellsaurus#readme", - "private": true, - "repository": { - "type": "git", - "url": "git+https://github.com/AlexisNP/spellsaurus.git" - }, - "scripts": { - "serve": "vue-cli-service serve" - }, - "dependencies": { - "axios": "^0.19.2", - "bootstrap": "^4.5.0", - "bootstrap-vue": "^2.15.0", - "core-js": "^3.6.4", - "jquery": "^3.5.1", - "popper.js": "^1.16.1", - "v-clipboard": "^2.2.3", - "vue": "^2.6.11", - "vue-cookies": "^1.7.0", - "vue-masonry": "^0.11.8", - "vue-meta": "^2.4.0", - "vuex": "^3.5.1" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "~4.2.0", - "@vue/cli-plugin-eslint": "~4.2.0", - "@vue/cli-service": "~4.2.0", - "babel-eslint": "^10.0.3", - "eslint": "^6.7.2", - "eslint-plugin-vue": "^6.1.2", - "node-sass": "^4.14.1", - "sass-loader": "^8.0.2", - "vue-router": "^3.1.6", - "vue-template-compiler": "^2.6.11" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true - }, - "extends": [ - "plugin:vue/essential", - "eslint:recommended" - ], - "parserOptions": { - "parser": "babel-eslint" - }, - "rules": {} - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] + "name": "spellsaurus_client", + "version": "1.0.0", + "description": "The client interface of spellsaurus", + "keywords": [ + "rpg", + "dev", + "spells", + "roleplay", + "website", + "database" + ], + "author": "AlexisNP", + "license": "ISC", + "bugs": { + "url": "https://github.com/AlexisNP/spellsaurus/issues" + }, + "homepage": "https://github.com/AlexisNP/spellsaurus#readme", + "private": true, + "repository": { + "type": "git", + "url": "git+https://github.com/AlexisNP/spellsaurus.git" + }, + "scripts": { + "lint": "vue-cli-service lint", + "serve": "vue-cli-service serve", + "build": "vue-cli-service build" + }, + "dependencies": { + "axios": "^0.21.1", + "bootstrap": "^4.5.0", + "bootstrap-vue": "^2.15.0", + "core-js": "^3.6.4", + "jquery": "^3.5.1", + "popper.js": "^1.16.1", + "v-clipboard": "^2.2.3", + "vue": "^2.6.11", + "vue-cookies": "^1.7.0", + "vue-masonry": "^0.11.8", + "vue-meta": "^2.4.0", + "vuex": "^3.5.1" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "~4.2.0", + "@vue/cli-plugin-eslint": "~4.2.0", + "@vue/cli-service": "~4.2.0", + "babel-eslint": "^10.0.3", + "eslint": "^6.8.0", + "eslint-plugin-vue": "^7.0.0-beta.4", + "node-sass": "^4.14.1", + "sass-loader": "^8.0.2", + "vue-router": "^3.1.6", + "vue-template-compiler": "^2.6.11" + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] } diff --git a/client/src/api/api.js b/client/src/api/api.js index 57bf462..84ec773 100644 --- a/client/src/api/api.js +++ b/client/src/api/api.js @@ -1,9 +1,9 @@ -import axios from "axios" +import axios from "axios"; -const url = process.env.VUE_APP_API_URL +const url = process.env.VUE_APP_API_URL; -axios.defaults.headers.common[process.env.VUE_APP_API_KEY_NAME] = process.env.VUE_APP_API_KEY_VALUE +axios.defaults.headers.common[process.env.VUE_APP_API_KEY_NAME] = process.env.VUE_APP_API_KEY_VALUE; export default axios.create({ - baseURL: url -}) \ No newline at end of file + baseURL: url +}); \ No newline at end of file diff --git a/client/src/api/ingredientsRepository.js b/client/src/api/ingredientsRepository.js index 1b51667..52011ee 100644 --- a/client/src/api/ingredientsRepository.js +++ b/client/src/api/ingredientsRepository.js @@ -1,12 +1,12 @@ -import api from './api' +import api from './api'; -const resource = "/ingredients" +const resource = "/ingredients"; export default { - getAll() { - return api.get(`${resource}`) - }, - getOne(id) { - return api.get(`${resource}/${id}`) - }, -} \ No newline at end of file + getAll() { + return api.get(`${resource}`); + }, + getOne(id) { + return api.get(`${resource}/${id}`); + }, +}; \ No newline at end of file diff --git a/client/src/api/metaschoolsRepository.js b/client/src/api/metaschoolsRepository.js index 1f4985d..0a3baf1 100644 --- a/client/src/api/metaschoolsRepository.js +++ b/client/src/api/metaschoolsRepository.js @@ -1,12 +1,12 @@ -import api from './api' +import api from './api'; -const resource = "/meta_schools" +const resource = "/meta_schools"; export default { - getAll() { - return api.get(`${resource}`) - }, - getOne(id) { - return api.get(`${resource}/${id}`) - }, -} \ No newline at end of file + getAll() { + return api.get(`${resource}`); + }, + getOne(id) { + return api.get(`${resource}/${id}`); + }, +}; \ No newline at end of file diff --git a/client/src/api/repositories.js b/client/src/api/repositories.js index 96fddd7..3d05351 100644 --- a/client/src/api/repositories.js +++ b/client/src/api/repositories.js @@ -1,21 +1,21 @@ -import spellsRepository from './spellsRepository' -import schoolsRepository from './schoolsRepository' -import metaschoolsRepository from './metaschoolsRepository' -import variablesRepository from './variablesRepository' -import ingredientsRepository from './ingredientsRepository' -import usersRepository from './usersRepository' +import spellsRepository from './spellsRepository'; +import schoolsRepository from './schoolsRepository'; +import metaschoolsRepository from './metaschoolsRepository'; +import variablesRepository from './variablesRepository'; +import ingredientsRepository from './ingredientsRepository'; +import usersRepository from './usersRepository'; // List of possible repositories const repositories = { - spells: spellsRepository, - schools: schoolsRepository, - metaschools: metaschoolsRepository, - variables: variablesRepository, - ingredients: ingredientsRepository, - users: usersRepository, -} + spells: spellsRepository, + schools: schoolsRepository, + metaschools: metaschoolsRepository, + variables: variablesRepository, + ingredients: ingredientsRepository, + users: usersRepository, +}; // Usage : RepositoryFactoryInstance.get('reponame'); export const RepositoryFactory = { - get: name => repositories[name] -} \ No newline at end of file + get: name => repositories[name] +}; \ No newline at end of file diff --git a/client/src/api/schoolsRepository.js b/client/src/api/schoolsRepository.js index dd0529f..aaba9c0 100644 --- a/client/src/api/schoolsRepository.js +++ b/client/src/api/schoolsRepository.js @@ -1,15 +1,15 @@ -import api from './api' +import api from './api'; -const resource = "/schools" +const resource = "/schools"; export default { - getAll() { - return api.get(`${resource}`) - }, - getOne(id) { - return api.get(`${resource}/${id}`) - }, - getSpellsFromOne(id) { - return api.get(`${resource}/${id}/spells`) - } -} \ No newline at end of file + getAll() { + return api.get(`${resource}`); + }, + getOne(id) { + return api.get(`${resource}/${id}`); + }, + getSpellsFromOne(id) { + return api.get(`${resource}/${id}/spells`); + } +}; \ No newline at end of file diff --git a/client/src/api/spellsRepository.js b/client/src/api/spellsRepository.js index bcc4773..f505c7f 100644 --- a/client/src/api/spellsRepository.js +++ b/client/src/api/spellsRepository.js @@ -1,24 +1,24 @@ -import api from './api' +import api from './api'; -const resource = "/spells" +const resource = "/spells"; export default { - getAll() { - return api.get(`${resource}`) - }, - getPage(page) { - return api.get(`${resource}/page/${page}`) - }, - getOne(id) { - return api.get(`${resource}/${id}`) - }, - addOne(data) { - return api.post(`${resource}`, data) - }, - updateOne(id, data) { - return api.put(`${resource}/${id}`, data) - }, - deleteOne(id) { - return api.delete(`${resource}/${id}`) - } -} \ No newline at end of file + getAll() { + return api.get(`${resource}`); + }, + getPage(page) { + return api.get(`${resource}/page/${page}`); + }, + getOne(id) { + return api.get(`${resource}/${id}`); + }, + addOne(data) { + return api.post(`${resource}`, data); + }, + updateOne(id, data) { + return api.put(`${resource}/${id}`, data); + }, + deleteOne(id) { + return api.delete(`${resource}/${id}`); + } +}; \ No newline at end of file diff --git a/client/src/api/variablesRepository.js b/client/src/api/variablesRepository.js index 9cb9c1d..ffe9708 100644 --- a/client/src/api/variablesRepository.js +++ b/client/src/api/variablesRepository.js @@ -1,12 +1,12 @@ -import api from './api' +import api from './api'; -const resource = "/variables" +const resource = "/variables"; export default { - getAll() { - return api.get(`${resource}`) - }, - getOne(id) { - return api.get(`${resource}/${id}`) - }, -} \ No newline at end of file + getAll() { + return api.get(`${resource}`); + }, + getOne(id) { + return api.get(`${resource}/${id}`); + }, +}; \ No newline at end of file diff --git a/client/src/app.vue b/client/src/app.vue index d5c5232..33f07ed 100644 --- a/client/src/app.vue +++ b/client/src/app.vue @@ -1,19 +1,19 @@ \ No newline at end of file diff --git a/client/src/global-components.js b/client/src/global-components.js index fc988cb..d9029d8 100644 --- a/client/src/global-components.js +++ b/client/src/global-components.js @@ -1,7 +1,7 @@ -import Navbar from './components/global/navbar/navbar' -import Loader from './components/global/loader' +import Navbar from './components/global/navbar/navbar'; +import Loader from './components/global/loader'; export default [ - Navbar, - Loader -] \ No newline at end of file + Navbar, + Loader +]; \ No newline at end of file diff --git a/client/src/main.js b/client/src/main.js index 00310cc..3eac4fe 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -1,70 +1,76 @@ // Core -import Vue from 'vue' -import VueRouter from 'vue-router' -import App from './app.vue' -import VueMeta from 'vue-meta' +import Vue from 'vue'; +import VueRouter from 'vue-router'; +import App from './app.vue'; +import VueMeta from 'vue-meta'; Vue.use(VueMeta, { // optional pluginOptions refreshOnceOnNavigation: true -}) +}); // Environment -require('dotenv').config() +import dotenv from 'dotenv'; +dotenv.config(); -import store from './store' +// Store +import store from './store'; -import Globals from './global-components.js' +// Global components +import Globals from './global-components.js'; Globals.forEach(component => { - Vue.component(component.name, component) + Vue.component(component.name, component); }); // Cookies -import VueCookies from 'vue-cookies' -Vue.use(VueCookies) +import VueCookies from 'vue-cookies'; +Vue.use(VueCookies); // Jquery -import jquery from 'jquery' -window.$ = jquery -window.jquery = jquery +import jquery from 'jquery'; +window.$ = jquery; +window.jquery = jquery; // Styles // Fonts -import './assets/scss/_fonts.scss' -import './assets/scss/_global.scss' +import './assets/scss/_fonts.scss'; +import './assets/scss/_global.scss'; -import 'bootstrap/dist/css/bootstrap.css' -import 'bootstrap-vue/dist/bootstrap-vue.css' -import 'bootstrap/dist/js/bootstrap.js' +import 'bootstrap/dist/css/bootstrap.css'; +import 'bootstrap-vue/dist/bootstrap-vue.css'; +import 'bootstrap/dist/js/bootstrap.js'; // Plugins -import { BootstrapVue } from 'bootstrap-vue' -Vue.use(BootstrapVue) +import { BootstrapVue } from 'bootstrap-vue'; +Vue.use(BootstrapVue); -import { VueMasonryPlugin } from 'vue-masonry' -Vue.use(VueMasonryPlugin) +// Masonry (will probably get removed in the very very near future lmao) +import { VueMasonryPlugin } from 'vue-masonry'; +Vue.use(VueMasonryPlugin); -import clipboard from 'v-clipboard' -Vue.use(clipboard) +// Clipboard (might find a better one or code it myself idk) +import clipboard from 'v-clipboard'; +Vue.use(clipboard); // FUNCTIONS -var filter = (text, length, clamp) => { - clamp = clamp || '...'; - var node = document.createElement('div'); - node.innerHTML = text; - var content = node.textContent; - return content.length > length ? content.slice(0, length) + clamp : content; -} +// Let's be honest i will 1000% refactor this. +let filter = (text, length, clamp) => { + clamp = clamp || '...'; + let node = document.createElement('div'); + node.innerHTML = text; + let content = node.textContent; + return content.length > length ? content.slice(0, length) + clamp : content; +}; Vue.filter('truncate', filter); // Router -import router from './routes' -Vue.use(VueRouter) +import router from './routes'; +Vue.use(VueRouter); // Mount Vue const app = new Vue({ - render: h => h(App), - router, - store: store -}) -app.$mount('#srs') + render: h => h(App), + router, + store: store +}); +app.$mount('#srs'); diff --git a/client/src/pages/index-page.vue b/client/src/pages/index-page.vue index d6b6e47..1141cc1 100644 --- a/client/src/pages/index-page.vue +++ b/client/src/pages/index-page.vue @@ -2,8 +2,12 @@
-

"C'est magique, ta gueule."

-
— N'importe quel MJ, une fois dans sa vie
+

+ "C'est magique, ta gueule." +

+
+ — N'importe quel MJ, une fois dans sa vie +

Auracle est une base de données publique en ligne pour sortilèges, en soutien au jeu de rôle sur table Leïm. @@ -15,8 +19,8 @@ \ No newline at end of file diff --git a/client/src/pages/timelines/timeline-page.vue b/client/src/pages/timelines/timeline-page.vue index 14f3295..97803c3 100644 --- a/client/src/pages/timelines/timeline-page.vue +++ b/client/src/pages/timelines/timeline-page.vue @@ -1,22 +1,27 @@