diff --git a/gulp/gulp-tests.js b/gulp/gulp-tests.js index 47eec297ec..f334bc8c6d 100644 --- a/gulp/gulp-tests.js +++ b/gulp/gulp-tests.js @@ -160,7 +160,7 @@ gulp.task('test:content:safe', gulp.series('test:prepare:build', cb => { pipe(runner); })); -gulp.task('test:api:unit', done => { +gulp.task('test:api:unit:run', done => { const runner = exec( testBin('istanbul cover --dir coverage/api-unit node_modules/mocha/bin/_mocha -- test/api/unit --recursive --require ./test/helpers/start-server'), err => { @@ -174,7 +174,7 @@ gulp.task('test:api:unit', done => { pipe(runner); }); -gulp.task('test:api:unit:watch', () => gulp.watch(['website/server/libs/*', 'test/api/unit/**/*', 'website/server/controllers/**/*'], gulp.series('test:api:unit', done => done()))); +gulp.task('test:api:unit:watch', () => gulp.watch(['website/server/libs/*', 'test/api/unit/**/*', 'website/server/controllers/**/*'], gulp.series('test:api:unit:run', done => done()))); gulp.task('test:api-v3:integration', done => { const runner = exec( @@ -235,14 +235,22 @@ gulp.task('test', gulp.series( 'test:sanity', 'test:content', 'test:common', - 'test:api:unit', + 'test:prepare:mongo', + 'test:api:unit:run', 'test:api-v3:integration', 'test:api-v4:integration', done => done(), )); gulp.task('test:api-v3', gulp.series( - 'test:api:unit', + 'test:prepare:mongo', + 'test:api:unit:run', 'test:api-v3:integration', done => done(), )); + +gulp.task('test:api:unit', gulp.series( + 'test:prepare:mongo', + 'test:api:unit:run', + done => done(), +)); diff --git a/package-lock.json b/package-lock.json index e12a1a6bec..e1e9e1307c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7340,9 +7340,9 @@ } }, "habitica-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.0.tgz", - "integrity": "sha512-70Kl/d7v1d2Rz6TFkQQ9hYcBYGAHnIPbRgS3PrW/dD/GGpN42q6gT3sCLsIpLqEXbN0EWjVscGs2qKWYLc6BMQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.2.tgz", + "integrity": "sha512-GGzWuDKbFBMI+GqmQnSPUD5Zi/WPZDDuC2dC2La6uvu1zVNW7uHyQG0lxwCO43t5EdYXtOoOPin1rhhLdTuZfA==", "requires": { "habitica-markdown-emoji": "1.2.4", "markdown-it": "10.0.0", @@ -7351,9 +7351,9 @@ }, "dependencies": { "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" }, "markdown-it": { "version": "10.0.0", @@ -7533,9 +7533,9 @@ "dev": true }, "helmet": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz", - "integrity": "sha512-Xrqicn2nm1ZIUxP3YGuTBmbDL04neKsIT583Sjh0FkiwKDXYCMUqGqC88w3NUvVXtA75JyR2Jn6jw6ZEMOD+ZA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.23.0.tgz", + "integrity": "sha512-/AKPymGd+mJsFN43IkX+nf8J11V51bxLNYReQZmWrVx7M/FEOs2OEE6U1YIt8Y00rpOupbIeVWv5woEGja1Pug==", "requires": { "depd": "2.0.0", "dns-prefetch-control": "0.2.0", diff --git a/package.json b/package.json index 6bcbc106dd..ec51d1f423 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "gulp-imagemin": "^6.2.0", "gulp-nodemon": "^2.5.0", "gulp.spritesmith": "^6.9.0", - "habitica-markdown": "^2.0.0", - "helmet": "^3.22.0", + "habitica-markdown": "^2.0.2", + "helmet": "^3.23.0", "image-size": "^0.8.3", "in-app-purchase": "^1.11.3", "js2xmlparser": "^4.0.1", diff --git a/website/client/package-lock.json b/website/client/package-lock.json index 856e29bc65..b67783cbf4 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -39,19 +39,19 @@ } }, "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" + "version": "1.0.30001083", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz", + "integrity": "sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA==" }, "electron-to-chromium": { - "version": "1.3.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.455.tgz", - "integrity": "sha512-4lwnxp+ArqOX9hiLwLpwhfqvwzUHFuDgLz4NTiU3lhygUzWtocIJ/5Vix+mWVNE2HQ9aI1k2ncGe5H/0OktMvA==" + "version": "1.3.473", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz", + "integrity": "sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A==" }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" } } }, @@ -315,19 +315,19 @@ } }, "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" + "version": "1.0.30001083", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz", + "integrity": "sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA==" }, "electron-to-chromium": { - "version": "1.3.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.455.tgz", - "integrity": "sha512-4lwnxp+ArqOX9hiLwLpwhfqvwzUHFuDgLz4NTiU3lhygUzWtocIJ/5Vix+mWVNE2HQ9aI1k2ncGe5H/0OktMvA==" + "version": "1.3.473", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz", + "integrity": "sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A==" }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" } } }, @@ -2624,9 +2624,9 @@ } }, "@soda/get-current-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.0.tgz", - "integrity": "sha512-9GvTek+7cVw7r+L7TNGOG1astZJWXz2h5q4BqMXl28KN+24iSCm1xo+RhZOZvwdT3bzNe9hD7riJc/lBoO7mgg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==" }, "@storybook/addon-actions": { "version": "5.3.19", @@ -4727,9 +4727,9 @@ } }, "@vue/babel-preset-app": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.4.1.tgz", - "integrity": "sha512-VHVROEBBiW0dnuNuzlFElkncXo+zxh5Px0MZ51Th5da8UPbQodf43mnpotMnFtmCPTXAFL58tzDttu1FgrgfpQ==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.4.4.tgz", + "integrity": "sha512-9b74d/lz4GEc9zkF3C+vjgEXYqu9ITq1DimUT+IVRJDvhgnV+a3C+pQY4Kl4PZSOyqkTHM7jE6eG2K5DUwKpWg==", "requires": { "@babel/core": "^7.9.6", "@babel/helper-compilation-targets": "^7.9.6", @@ -4791,9 +4791,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" + "version": "1.0.30001083", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz", + "integrity": "sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA==" }, "core-js-compat": { "version": "3.6.5", @@ -4812,14 +4812,14 @@ } }, "electron-to-chromium": { - "version": "1.3.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.455.tgz", - "integrity": "sha512-4lwnxp+ArqOX9hiLwLpwhfqvwzUHFuDgLz4NTiU3lhygUzWtocIJ/5Vix+mWVNE2HQ9aI1k2ncGe5H/0OktMvA==" + "version": "1.3.473", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz", + "integrity": "sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A==" }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" }, "regenerator-runtime": { "version": "0.13.5", @@ -4886,18 +4886,18 @@ } }, "@vue/cli-overlay": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.4.1.tgz", - "integrity": "sha512-EQqAVy7O/qqGOfSYIGL073FWlr/s6QFA0wA1wY8pHnTS5WPwAiHT+D+xe+fgXKZ3KeL7v7u/le7YFIEVXFVXOg==" + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.4.4.tgz", + "integrity": "sha512-cTvtifIpsSVF2dPF+ibUoAq+hMkEbg4EYTsf6dUuUrBKi1G2tyZ3Pnx54U2NpqXjJMykqMGX+i+BxpIG5tJCGw==" }, "@vue/cli-plugin-babel": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.4.1.tgz", - "integrity": "sha512-dmhymfm2UnZDw13k/zKT6YIj7je53mE37Y+jEJxpRUlCKFmZUDuYkJ8i5HmO0SnaCnEGqNELaBkoIFnY3aE2Gw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.4.4.tgz", + "integrity": "sha512-VctlKy5oEYhI+AiPpzlorjDmuhbpoRQcKXpBdf2bXvq0+uuTQg7UXmPX0RKJejnFTKSJZvuPTihgfCWiyh9C3Q==", "requires": { "@babel/core": "^7.9.6", - "@vue/babel-preset-app": "^4.4.1", - "@vue/cli-shared-utils": "^4.4.1", + "@vue/babel-preset-app": "^4.4.4", + "@vue/cli-shared-utils": "^4.4.4", "babel-loader": "^8.1.0", "cache-loader": "^4.1.0", "thread-loader": "^2.1.3", @@ -4905,9 +4905,9 @@ }, "dependencies": { "@vue/cli-shared-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz", - "integrity": "sha512-teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.4.tgz", + "integrity": "sha512-ccMZtTMSutR35V5nrU/eyj+zRMomTRGBTLwJPmaJ2sRiW/93MTggQGXDWC8JRAA8yiU1N8xza8mjBxS0O2wIAA==", "requires": { "@hapi/joi": "^15.0.1", "chalk": "^2.4.2", @@ -4945,11 +4945,11 @@ } }, "@vue/cli-plugin-eslint": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.4.1.tgz", - "integrity": "sha512-T+9+q44iajQEbe59z6Io3otFOsWnPOEVU+/hrDyC6aOToJbQo6P4VacByDDcuGYENAjAd8ENLSt18TaPNSIyRw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.4.4.tgz", + "integrity": "sha512-B+l3smq3Lyob9qiuywC/IymCCyV2Gm/l1ZtxRzQI98RDTKei1PrRriIi3Hrg/AkK59HirwR7P7wiNhF2Pqg3VA==", "requires": { - "@vue/cli-shared-utils": "^4.4.1", + "@vue/cli-shared-utils": "^4.4.4", "eslint-loader": "^2.2.1", "globby": "^9.2.0", "inquirer": "^7.1.0", @@ -4957,26 +4957,6 @@ "yorkie": "^2.0.0" }, "dependencies": { - "@vue/cli-shared-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz", - "integrity": "sha512-teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==", - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - } - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -4991,6 +4971,15 @@ "color-convert": "^2.0.1" } }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -5023,9 +5012,9 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz", + "integrity": "sha512-E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==", "requires": { "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", @@ -5040,17 +5029,6 @@ "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "is-fullwidth-code-point": { @@ -5085,11 +5063,6 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -5119,17 +5092,17 @@ } }, "@vue/cli-plugin-router": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.4.1.tgz", - "integrity": "sha512-kCSsJG7pjDvCJDjGtcCI5l0UjmqwNigOR41RkeGSjSUvzV4ArSniXjFqrOmtpMp36S5xCtwtt9MFm/K4fCubkQ==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.4.4.tgz", + "integrity": "sha512-jZTupo+zFz1YHH3Q4WC5nJW5wlNEDqX//m+atwUISPahVEG6/EV8HwJnQDT7EQ9re4v78xI27eOtyNw+qSyiSA==", "requires": { - "@vue/cli-shared-utils": "^4.4.1" + "@vue/cli-shared-utils": "^4.4.4" }, "dependencies": { "@vue/cli-shared-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz", - "integrity": "sha512-teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.4.tgz", + "integrity": "sha512-ccMZtTMSutR35V5nrU/eyj+zRMomTRGBTLwJPmaJ2sRiW/93MTggQGXDWC8JRAA8yiU1N8xza8mjBxS0O2wIAA==", "requires": { "@hapi/joi": "^15.0.1", "chalk": "^2.4.2", @@ -5167,11 +5140,11 @@ } }, "@vue/cli-plugin-unit-mocha": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-4.4.1.tgz", - "integrity": "sha512-LNX7a6zuFncJvopQFmikkGs5SAmx4iYsfBZNmQUx1iORyAW87IrOf69FJQ+bRTAen7NMi4USNaEwiCxcTha4xg==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-4.4.4.tgz", + "integrity": "sha512-U+MZp0XYQUZcrkWE2g+CqPk6vA7qguCfCTr7bxhNMrhJSAdML4D3sTJN6+aoCNYs8+jNfyPfTkrKI4Ad6D/cRg==", "requires": { - "@vue/cli-shared-utils": "^4.4.1", + "@vue/cli-shared-utils": "^4.4.4", "jsdom": "^15.2.1", "jsdom-global": "^3.0.2", "mocha": "^6.2.2", @@ -5179,9 +5152,9 @@ }, "dependencies": { "@vue/cli-shared-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz", - "integrity": "sha512-teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.4.tgz", + "integrity": "sha512-ccMZtTMSutR35V5nrU/eyj+zRMomTRGBTLwJPmaJ2sRiW/93MTggQGXDWC8JRAA8yiU1N8xza8mjBxS0O2wIAA==", "requires": { "@hapi/joi": "^15.0.1", "chalk": "^2.4.2", @@ -5219,22 +5192,22 @@ } }, "@vue/cli-plugin-vuex": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.4.1.tgz", - "integrity": "sha512-FtOFsDP0qznwVaCz0BZmTzUm5vhHSJzX2/XD3L5dLTkrNxyDEbZmbKoX0n1OzBcQwZC7dkJZP2tdoCQx0mX//g==" + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.4.4.tgz", + "integrity": "sha512-A2SZD0B5yPz60W7go2ZYTIHooQse7bhhNUlinGQrdYeQCuURKUqqUbl/zF8u/8Qqo6nZ4F469fHNH6XWRN9Nnw==" }, "@vue/cli-service": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.4.1.tgz", - "integrity": "sha512-DVV0zr5Sw7pzdm3z3PRrfqihLgoJP/d9AgNFcSSQF/J9Gtvjf1t0PTJJFeLANHSL3kDWte+3kjc22sXayu0BJQ==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.4.4.tgz", + "integrity": "sha512-AKWpBpBAB+LHJ8JpArM2BJ0I2REy9lG7xIkJn9k3Vw9gadejx+y74P0bJh/J8hY65kDTFltO1BW1Kv3URw/ifQ==", "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", "@soda/friendly-errors-webpack-plugin": "^1.7.1", "@soda/get-current-script": "^1.0.0", - "@vue/cli-overlay": "^4.4.1", - "@vue/cli-plugin-router": "^4.4.1", - "@vue/cli-plugin-vuex": "^4.4.1", - "@vue/cli-shared-utils": "^4.4.1", + "@vue/cli-overlay": "^4.4.4", + "@vue/cli-plugin-router": "^4.4.4", + "@vue/cli-plugin-vuex": "^4.4.4", + "@vue/cli-shared-utils": "^4.4.4", "@vue/component-compiler-utils": "^3.1.2", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", @@ -5282,10 +5255,18 @@ "webpack-merge": "^4.2.2" }, "dependencies": { + "@vue/cli-plugin-router": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.4.4.tgz", + "integrity": "sha512-jZTupo+zFz1YHH3Q4WC5nJW5wlNEDqX//m+atwUISPahVEG6/EV8HwJnQDT7EQ9re4v78xI27eOtyNw+qSyiSA==", + "requires": { + "@vue/cli-shared-utils": "^4.4.4" + } + }, "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" }, "acorn-walk": { "version": "7.1.1", @@ -5329,9 +5310,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" + "version": "1.0.30001084", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", + "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==" }, "cliui": { "version": "6.0.0", @@ -5357,29 +5338,29 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "css-loader": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz", - "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", "requires": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", "icss-utils": "^4.1.1", "loader-utils": "^1.2.3", "normalize-path": "^3.0.0", - "postcss": "^7.0.27", + "postcss": "^7.0.32", "postcss-modules-extract-imports": "^2.0.0", "postcss-modules-local-by-default": "^3.0.2", "postcss-modules-scope": "^2.2.0", "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.3", - "schema-utils": "^2.6.6", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", "semver": "^6.3.0" } }, "electron-to-chromium": { - "version": "1.3.455", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.455.tgz", - "integrity": "sha512-4lwnxp+ArqOX9hiLwLpwhfqvwzUHFuDgLz4NTiU3lhygUzWtocIJ/5Vix+mWVNE2HQ9aI1k2ncGe5H/0OktMvA==" + "version": "1.3.474", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.474.tgz", + "integrity": "sha512-fPkSgT9IBKmVJz02XioNsIpg0WYmkPrvU1lUJblMMJALxyE7/32NGvbJQKKxpNokozPvqfqkuUqVClYsvetcLw==" }, "emoji-regex": { "version": "8.0.0", @@ -5387,9 +5368,9 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -5402,9 +5383,9 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" }, "pnp-webpack-plugin": { "version": "1.6.4", @@ -5415,9 +5396,9 @@ } }, "postcss": { - "version": "7.0.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", - "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -5501,9 +5482,9 @@ } }, "@vue/cli-shared-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz", - "integrity": "sha512-teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.4.tgz", + "integrity": "sha512-ccMZtTMSutR35V5nrU/eyj+zRMomTRGBTLwJPmaJ2sRiW/93MTggQGXDWC8JRAA8yiU1N8xza8mjBxS0O2wIAA==", "requires": { "@hapi/joi": "^15.0.1", "chalk": "^2.4.2", @@ -6664,9 +6645,9 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "json5": { "version": "1.0.1", @@ -9632,9 +9613,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", - "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz", + "integrity": "sha512-InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A==", "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", @@ -11562,9 +11543,9 @@ } }, "habitica-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.0.tgz", - "integrity": "sha512-70Kl/d7v1d2Rz6TFkQQ9hYcBYGAHnIPbRgS3PrW/dD/GGpN42q6gT3sCLsIpLqEXbN0EWjVscGs2qKWYLc6BMQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/habitica-markdown/-/habitica-markdown-2.0.2.tgz", + "integrity": "sha512-GGzWuDKbFBMI+GqmQnSPUD5Zi/WPZDDuC2dC2La6uvu1zVNW7uHyQG0lxwCO43t5EdYXtOoOPin1rhhLdTuZfA==", "requires": { "habitica-markdown-emoji": "1.2.4", "markdown-it": "10.0.0", @@ -12994,9 +12975,9 @@ }, "dependencies": { "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" }, "tough-cookie": { "version": "3.0.1", @@ -14486,21 +14467,21 @@ }, "dependencies": { "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -14519,42 +14500,22 @@ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "object-inspect": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } } } }, @@ -15233,9 +15194,9 @@ }, "dependencies": { "postcss": { - "version": "7.0.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", - "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -19754,9 +19715,9 @@ } }, "vue-router": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.3.2.tgz", - "integrity": "sha512-5sEbcfb7MW8mY8lbUVbF4kgcipGXsagkM/X+pb6n0MhjP+RorWIUTPAPSqgPaiPOxVCXgAItBl8Vwz8vq78faA==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.3.4.tgz", + "integrity": "sha512-SdKRBeoXUjaZ9R/8AyxsdTqkOfMcI5tWxPZOUX5Ie1BTL5rPSZ0O++pbiZCeYeythiZIdLEfkDiQPKIaWk5hDg==" }, "vue-style-loader": { "version": "4.1.2", @@ -19944,9 +19905,9 @@ }, "dependencies": { "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" }, "acorn-walk": { "version": "7.1.1", diff --git a/website/client/package.json b/website/client/package.json index af6867e927..fe1b2fd490 100644 --- a/website/client/package.json +++ b/website/client/package.json @@ -18,11 +18,11 @@ "@storybook/addon-links": "^5.3.19", "@storybook/addon-notes": "^5.3.19", "@storybook/vue": "^5.3.19", - "@vue/cli-plugin-babel": "^4.4.1", - "@vue/cli-plugin-eslint": "^4.4.1", - "@vue/cli-plugin-router": "^4.4.1", - "@vue/cli-plugin-unit-mocha": "^4.4.1", - "@vue/cli-service": "^4.4.1", + "@vue/cli-plugin-babel": "^4.4.4", + "@vue/cli-plugin-eslint": "^4.4.4", + "@vue/cli-plugin-router": "^4.4.4", + "@vue/cli-plugin-unit-mocha": "^4.4.4", + "@vue/cli-service": "^4.4.4", "@vue/test-utils": "1.0.0-beta.29", "amplitude-js": "^5.11.0", "axios": "^0.19.2", @@ -36,7 +36,7 @@ "eslint-config-habitrpg": "^6.2.0", "eslint-plugin-mocha": "^5.3.0", "eslint-plugin-vue": "^6.2.2", - "habitica-markdown": "^2.0.0", + "habitica-markdown": "^2.0.2", "hellojs": "^1.18.4", "inspectpack": "^4.5.2", "intro.js": "^2.9.3", @@ -56,7 +56,7 @@ "vue": "^2.6.11", "vue-cli-plugin-storybook": "^0.6.1", "vue-mugen-scroll": "^0.2.6", - "vue-router": "^3.3.2", + "vue-router": "^3.3.4", "vue-template-compiler": "^2.6.11", "vuedraggable": "^2.23.2", "vuejs-datepicker": "git://github.com/habitrpg/vuejs-datepicker.git#5d237615463a84a23dd6f3f77c6ab577d68593ec", diff --git a/website/client/src/assets/scss/button.scss b/website/client/src/assets/scss/button.scss index 0a2220a215..482e731700 100644 --- a/website/client/src/assets/scss/button.scss +++ b/website/client/src/assets/scss/button.scss @@ -1,92 +1,193 @@ -@mixin btn-focus-hover-shadow () { - box-shadow: 0 4px 4px 0 rgba($black, 0.16), 0 1px 8px 0 rgba($black, 0.12); -} - .btn { cursor: pointer; - font-family: 'Roboto Condensed', sans-serif; - font-size: 16px; + font-family: 'Roboto', sans-serif; + font-size: 14px; font-weight: bold; - line-height: 1.5; - border: 1px solid transparent !important; - padding: 7.5px 15.5px; + line-height: 1.71; + border: 1px solid transparent; + padding: 0.25rem 1rem; border-radius: 2px; - box-shadow: 0 2px 2px 0 rgba($black, 0.16), 0 1px 4px 0 rgba($black, 0.12); + box-shadow: 0 1px 3px 0 rgba($black, 0.12), 0 1px 2px 0 rgba($black, 0.24); color: $white; - &:focus:not(.btn-flat) { - outline: none; + &:hover, &:focus { + box-shadow: 0 3px 6px 0 rgba($black, 0.16), 0 3px 6px 0 rgba($black, 0.24); + + &:disabled, &.disabled, &.btn-flat { + box-shadow: none; + } + } + + &:focus { border-color: $purple-400; - @include btn-focus-hover-shadow(); } - &:hover:not(.btn-flat):not(.disabled):not(:disabled) { - @include btn-focus-hover-shadow(); - border-color: transparent; + &:active, &.active:not(.btn-flat), &:disabled, &.disabled { + box-shadow: none; } - &:active:not(.btn-flat), &.active:not(.btn-flat) { - box-shadow: none !important; - border: 1px solid transparent; + &:disabled, &.disabled { + cursor: default; + opacity: 0.75; } } -.btn-warning:hover, .btn-warning:focus, .btn-warning:active { - color: $white !important; -} - -.btn:disabled, .btn.disabled { - box-shadow: none; - cursor: default; - opacity: 0.64; - border-color: transparent; +.btn-front { + font-size: 16px; + line-height: 1.5; + padding: 7.5px 15.5px; } .btn-primary { background: $purple-200; + border: 1px solid transparent; - &:disabled { + &:hover:not(:disabled):not(.disabled) { + background: #5d3b9c; + border: 1px solid transparent; + } + + &:focus { background: $purple-200; + border-color: $purple-400; } - &:hover:not(:disabled):not(.disabled), &:active:not(:disabled):not(.disabled), &.active:not(:disabled):not(.disabled), &:focus:not(:disabled):not(.disabled) { - background: #5d3b9c !important; - color: $white; - } -} - -.btn-secondary, .dropdown > .btn-secondary { - color: $gray-50; - background: $white !important; - - &:hover:not(:disabled):not(.disabled), &:active:not(:disabled):not(.disabled), &.active:not(:disabled):not(.disabled), &:focus:not(:disabled):not(.disabled) { - color: $purple-200 !important; + &:not(:disabled):not(.disabled):active:focus, &:not(:disabled):not(.disabled).active:focus { + box-shadow: none; + border-color: $purple-400; } - &:active, &:focus, &.active { - border-color: $purple-500 !important; + &:not(:disabled):not(.disabled):active, &:not(:disabled):not(.disabled).active { + background: $purple-200; + border: 1px solid transparent; } &:disabled, &.disabled { - background: $gray-500 !important; - color: $gray-100 !important; + background: $purple-200; + border: 1px solid transparent; + cursor: default; + opacity: 0.75; + } +} + +.btn-secondary, +.dropdown > .btn-secondary.dropdown-toggle:not(.btn-success), +.show > .btn-secondary.dropdown-toggle:not(.btn-success) +{ + background: $white; + border: 1px solid transparent; + color: $gray-50; + + &:focus, &:active { + color: $gray-50; + background: $white; + border-color: $purple-400; + } + + &:not(:disabled):not(.disabled) { + &:active:focus, + &.active:focus { + color: $purple-300; + box-shadow: none; + border-color: $purple-400; + } + + &:active, + &.active { + color: $purple-300; + + &.dropdown-toggle { + color: $gray-50; + } + + + background: $white; + border: 1px solid transparent; + } + + &:hover { + color: $purple-300; + + &.dropdown-toggle { + color: $gray-50; + } + + background: $white !important; + border: 1px solid transparent; + } + } + + &:disabled, &.disabled { + color: $gray-50; + background: $white; + border: 1px solid transparent; + cursor: default; + opacity: 0.75; + } +} + +.btn-danger { + background: $maroon-100; + border: 1px solid transparent; + + &:hover:not(:disabled):not(.disabled) { + background: #e14e4e; + border: 1px solid transparent; + } + + &:focus { + background: $maroon-100; + border-color: $purple-400; + } + + &:not(:disabled):not(.disabled):active:focus, &:not(:disabled):not(.disabled).active:focus { + box-shadow: none; + border-color: $purple-400; + } + + &:not(:disabled):not(.disabled):active, &:not(:disabled):not(.disabled).active { + background: $maroon-100; + border: 1px solid transparent; + } + + &:disabled, &.disabled { + background: $maroon-100; + border: 1px solid transparent; + cursor: default; + opacity: 0.75; } } .btn-success { - background: $green-100; - - &:disabled { - background: $green-100; - } - - &:hover:not(:disabled):not(.disabled), &:active:not(:disabled):not(.disabled), &.active:not(:disabled):not(.disabled) { - background: $green-50; - } -} - -.show > .btn-success.dropdown-toggle { background: $green-50; + border: 1px solid transparent; + + &:hover:not(:disabled):not(.disabled) { + background: #32bd8a; + border: 1px solid transparent; + } + + &:focus { + background: $green-50; + border-color: $purple-400; + } + + &:not(:disabled):not(.disabled):active:focus, &:not(:disabled):not(.disabled).active:focus { + box-shadow: none; + border-color: $purple-400; + } + + &:not(:disabled):not(.disabled):active, &:not(:disabled):not(.disabled).active { + background: $green-50; + border: 1px solid transparent; + } + + &:disabled, &.disabled { + background: $green-50; + border: 1px solid transparent; + cursor: default; + opacity: 0.75; + } } .btn-info { @@ -105,22 +206,6 @@ } } -.btn-danger { - background: $red-50; - - &:disabled { - background: $red-50; - } - - &:hover:not(:disabled):not(.disabled) { - background: $red-100; - } - - &:active:not(:disabled):not(.disabled), &.active:not(:disabled):not(.disabled) { - background: $red-100; - } -} - .btn-show-more { display: block; width: 50%; diff --git a/website/client/src/assets/scss/task.scss b/website/client/src/assets/scss/task.scss index f969a41015..d651a574e7 100644 --- a/website/client/src/assets/scss/task.scss +++ b/website/client/src/assets/scss/task.scss @@ -1,34 +1,56 @@ +@mixin habit-controls($disabled-color, $active-color) { + &-habit-control-disabled { + .habit-option-button { + border: 2px solid $disabled-color; + } + &:hover { + .habit-option-button { + border: 2px solid $active-color; + } + .habit-option-icon, .habit-option-label { color: $active-color !important; } + } + } +} + +@mixin modal-text-input($color) { + &-text::placeholder { color: $color !important; } + &-input { + border: 0 !important; + + &:focus, &:active { + box-shadow: 0 0 0 1px $color !important; + } + } +} + .task { &-worst { // dark red &-control { &-bg { background: $maroon-100 !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $maroon-100 !important; - } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: $maroon-500 !important; } - &-checkbox { color: $maroon-100 !important; } - &-icon { color: #6c0406 !important; } + &-bg-noninteractive { background: $maroon-100 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($red-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $red-1 !important; } } &-modal { &-bg { background: $maroon-100 !important; } &-icon { color: $maroon-100 !important; } - &-text { color: $maroon-50 !important; } + &-text { color: $red-1 !important; } + &-content { + --svg-color: #{$maroon-100}; + } + @include modal-text-input($red-1); &-option-disabled:hover { .svg-icon { color: $maroon-100 !important; } .option-item-label { color: $maroon-50 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $maroon-100 !important; } - .option-item-label { color: $maroon-50 !important; } - } + @include habit-controls($gray-300, $maroon-100); } } @@ -36,32 +58,30 @@ &-control { &-bg { background: $red-100 !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $red-100 !important; - } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: $red-500 !important; } - &-checkbox { color: $red-100 !important; } - &-icon { color: #6c0406 !important; } + &-bg-noninteractive { background: $red-100 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($red-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $red-1 !important; } } &-modal { &-bg { background: $red-100 !important; } &-icon { color: $red-100 !important; } - &-text { color: $red-10 !important; } + &-text { color: $red-1 !important; } + &-content { + --svg-color: #{$red-100}; + } + @include modal-text-input($red-1); &-option-disabled:hover { .svg-icon { color: $red-100 !important; } .option-item-label { color: $red-10 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $red-100 !important; } - .option-item-label { color: $red-10 !important; } - } + + @include habit-controls($gray-300, $red-100); } } @@ -69,43 +89,30 @@ &-control { &-bg { background: $orange-100 !important; - - &:hover { - .habit-control { background: #b75a1c !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($orange-1, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $orange-100 !important; - } - &-inner-habit { background: rgba(183, 90, 28, 0.4) !important; } - &-inner-daily-todo { background: $orange-500 !important; } - &-checkbox { color: $orange-100 !important; } - &-icon { color: #7f3300 !important; } + &-bg-noninteractive { background: $orange-100 !important; } + &-inner-habit { background: rgba($orange-1, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($orange-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $orange-1 !important; } } &-modal { - &-bg { - background: $orange-100 !important; - - .form-control { - background: rgba(183, 90, 28, 0.4) !important; - - &:focus, &:active, &:hover { - background-color: #b75a1c !important; - } - } - } + &-bg { background: $orange-100 !important; } &-icon { color: $orange-100 !important; } - &-text { color: #b75a1c !important; } + &-text { color: $orange-1 !important; } + &-content { + --svg-color: #{$orange-100}; + } + @include modal-text-input($orange-1); &-option-disabled:hover { .svg-icon { color: $orange-100 !important; } - .option-item-label { color: #b75a1c !important; } - } - &-habit-control-disabled:hover { - .habit-control { background: $orange-100 !important; } - .option-item-label { color: #b75a1c !important; } + .option-item-label { color: $orange-1 !important; } } + + @include habit-controls($gray-300, $orange-100); } } @@ -113,42 +120,30 @@ &-control { &-bg { background: $yellow-100 !important; - &:hover { - .habit-control { background: #bf7d1a !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($yellow-1, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $yellow-100 !important; - } - &-inner-habit { background: rgba(183, 90, 28, 0.32) !important; } - &-inner-daily-todo { background: $yellow-500 !important; } - &-checkbox { color: $yellow-100 !important; } - &-icon { color: #794b00 !important; } + &-bg-noninteractive { background: $yellow-100 !important; } + &-inner-habit { background: rgba($yellow-1, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($yellow-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $yellow-1 !important; } } &-modal { - &-bg { - background: $yellow-100 !important; - - .form-control { - background: rgba(183, 90, 28, 0.4) !important; - - &:focus, &:active, &:hover { - background-color: #bf7d1a !important; - } - } - } + &-bg { background: $yellow-100 !important; } &-icon { color: $yellow-100 !important; } - &-text { color: #bf7d1a !important; } + &-text { color: $yellow-1 !important; } + @include modal-text-input($yellow-1); &-option-disabled:hover { .svg-icon { color: $yellow-100 !important; } .option-item-label { color: #bf7d1a !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $yellow-100 !important; } - .option-item-label { color: #bf7d1a !important; } + &-content { + --svg-color: #{$yellow-100}; } + + @include habit-controls($gray-300, $yellow-100); } } @@ -156,32 +151,31 @@ &-control { &-bg { background: $green-100 !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $green-100 !important; - } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: #77f4c7 !important; } - &-checkbox { color: $green-10 !important; } - &-icon { color: #005737 !important; } + &-bg-noninteractive { background: $green-100 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($green-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $green-1 !important; } } &-modal { &-bg { background: $green-100 !important; } &-icon { color: $green-10 !important; } - &-text { color: #1ca372 !important; } + &-text { color: $green-1 !important; } + &-content { + --svg-color: #{$green-100}; + } + + @include modal-text-input($green-1); &-option-disabled:hover { .svg-icon { color: $green-10 !important; } .option-item-label { color: #1ca372 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $green-10 !important; } - .option-item-label { color: #1ca372 !important; } - } + + @include habit-controls($gray-300, $green-100); } } @@ -189,32 +183,30 @@ &-control { &-bg { background: $teal-100 !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $teal-100 !important; - } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: #8dedf6 !important; } - &-checkbox { color: $teal-100 !important; } - &-icon { color: #005158 !important; } + &-bg-noninteractive { background: $teal-100 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($teal-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $teal-1 !important; } } &-modal { &-bg { background: $teal-100 !important; } &-icon { color: $teal-100 !important; } - &-text { color: $teal-10 !important; } + &-text { color: $teal-1 !important; } + &-content { + --svg-color: #{$teal-100}; + } + @include modal-text-input($teal-1); &-option-disabled:hover { .svg-icon { color: $teal-100 !important; } .option-item-label { color: $teal-10 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $teal-100 !important; } - .option-item-label { color: $teal-10 !important; } - } + + @include habit-controls($gray-300, $teal-100); } } @@ -222,32 +214,31 @@ &-control { &-bg { background: $blue-100 !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-bg-noninteractive { - background: $blue-100 !important; - } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: $blue-500 !important; } - &-checkbox { color: $blue-100 !important; } - &-icon { color: #033f5e !important; } + &-bg-noninteractive { background: $blue-100 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-habit-noninteractive { border: 1px solid rgba($blue-1, 0.5) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } + &-checkbox, &-icon { color: $blue-1 !important; } } &-modal { &-bg { background: $blue-100 !important; } &-icon { color: $blue-100 !important; } - &-text { color: $blue-10 !important; } + &-text { color: $blue-1 !important; } + &-content { + --svg-color: #{$blue-100}; + } + + @include modal-text-input($blue-1); &-option-disabled:hover { .svg-icon { color: $blue-50 !important; } .option-item-label { color: $blue-10 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $blue-50 !important; } - .option-item-label { color: $blue-10 !important; } - } + + @include habit-controls($gray-300, $blue-100); } } @@ -255,42 +246,43 @@ &-control { &-bg { background: $purple-task !important; - &:hover { - .habit-control { background: rgba(26, 24, 29, 0.48) !important; } - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + .habit-control:hover { background: rgba($black, 0.5) !important; } + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-inner-habit { background: rgba(26, 24, 29, 0.24) !important; } - &-inner-daily-todo { background: #ffffff80 !important; } + &-inner-habit { background: rgba($black, 0.25) !important; } + &-inner-daily-todo { background: rgba($white, 0.5) !important; } &-checkbox { color: $purple-task !important; } } &-modal { &-bg { background: $purple-300 !important; } &-icon { color: $purple-300 !important; } - &-text { color: $purple-200 !important; } + &-text { color: $black !important; } + &-content { + --svg-color: #{$purple-300}; + } + + @include modal-text-input($black); &-option-disabled:hover { .svg-icon { color: $purple-300 !important; } .option-item-label { color: $purple-200 !important; } } - &-habit-control-disabled:hover { - .habit-control { background: $purple-300 !important; } - .option-item-label { color: $purple-200 !important; } - } + + @include habit-controls($gray-300, $purple-300); } } &-reward { &-control { &-bg { - background: rgba(255, 217, 160, 0.32) !important; - .small-text { color: $orange-10 !important; } + background: rgba($yellow-100, 0.15) !important; + .small-text { color: $yellow-1 !important; } - &:hover { background: rgba(255, 217, 160, 0.48) !important; } + &:hover { background: rgba($yellow-100, 0.25) !important; } } &-bg-noninteractive { - background: rgba(255, 217, 160, 0.32) !important; - .small-text { color: $orange-10 !important; } + background: rgba($yellow-100, 0.15) !important; + .small-text { color: $yellow-1 !important; } } } } @@ -300,8 +292,12 @@ &-control { &-bg { background: $gray-600; } &-inner { - color: rgba(26, 24, 29, 0.12) !important; - border: 1px solid rgba(26, 24, 29, 0.12); + border: 1px solid $gray-300; + opacity: 0.75; + + .negative, .positive { + color: $gray-200; + } } } } @@ -309,13 +305,14 @@ &-daily-todo { &-control { &-bg { - background: $gray-400 !important; - &:hover { - .daily-todo-control { background: rgba(255, 255, 255, 0.72) !important; } - } + background: $gray-200 !important; + .daily-todo-control:hover { background: rgba($white, 0.75) !important; } } - &-inner { background: $gray-500 !important; } - &-checkbox { color: $gray-400 !important; } + &-bg-noninteractive { + background: $gray-200 !important; + } + &-inner { background: rgba($white, 0.5) !important; } + &-checkbox { color: $gray-10 !important; } &-content { background: $gray-600; @@ -337,6 +334,24 @@ border-radius: 100px; color: $white; + &-negative { + &-enabled { + padding-top: 13px; + } + &-disabled { + padding-top: 12px; + } + } + + &-positive { + &-enabled { + padding-top: 9px; + } + &-disabled { + padding-top: 8px; + } + } + .svg-icon { width: 10px; height: 10px; @@ -347,14 +362,10 @@ margin-top: 7px; height: 12px; width: 10px; - } - .positive { - margin-top: 9px; - } - - .negative { - margin-top: 13px; + &.disabled { + color: $gray-10; + } } } diff --git a/website/client/src/components/header/index.vue b/website/client/src/components/header/index.vue index 8531737395..5cc76ba717 100644 --- a/website/client/src/components/header/index.vue +++ b/website/client/src/components/header/index.vue @@ -19,10 +19,10 @@ />

{{ $t('battleWithFriends') }}

@@ -119,12 +119,6 @@ margin-top: 16px; } } - - @media only screen and (max-width: 768px) { - .view-party-button { - display: none; - } - }